【春Modを作ろう】卒業証書を追加しよう
ModItems.javaに以下のコードを追加(黄色の部分)
public class ModItems {
public static final Item ODANGO = registerItem("odango",
new CustomFoodItem(new FabricItemSettings()));
public static final Item DIPLOMA = registerItem("diploma",
new DiplomaItem(new FabricItemSettings().maxCount(1)));
private static Item registerItem(String name, Item item) {
return Registry.register(Registries.ITEM, new Identifier(Springmod.MOD_ID, name), item);
}
private static void itemGroupIngredients(FabricItemGroupEntries entries) {
}
public static void registerModItems() {
ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(ModItems::itemGroupIngredients);
}
}
ModItemGroup.javaを編集(黄色の部分)
package mark.spring.springmod;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class ModItemGroup {
public static final ItemGroup SPRING_GROUP = Registry.register(Registries.ITEM_GROUP,
new Identifier(Springmod.MOD_ID, "spring"),
FabricItemGroup.builder().displayName(Text.translatable("itemgroup.spring"))
.icon(() -> new ItemStack(ModItems.ODANGO)).entries((displayContext, entries) -> {
entries.add(ModItems.ODANGO);
entries.add(ModBlocks.CHIRASHI_SUSHI);
entries.add(ModItems.DIPLOMA);
}).build());
public static void registerItemGroups() {
Springmod.LOGGER.info("Registering Item Groups for " + Springmod.MOD_ID);
}
}
テクスチャーを追加しよう
models/itemディレクトリにファイル作成をクリックしてdiploma.jsonを作成し以下のように編集。
{
"parent": "item/generated",
"textures": {
"layer0": "springmod:item/diploma"
}
}
itemディレクトリにdiploma.pngというファイル名でダウンロードしたテクスチャをアップロードしよう!
右クリックで文字を表示できるようにしよう
springmodディレクトリにファイル作成をクリックしてDiplomaItem.javaを作成し以下のように編集。
package mark.spring.springmod;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.world.World;
public class DiplomaItem extends Item {
public DiplomaItem(Settings settings) {
super(settings);
}
@Override
public TypedActionResult<ItemStack> use(World world, PlayerEntity player, Hand hand) {
if (world.isClient) {
player.sendMessage(Text.of("卒業証書を取得しました!おめでとうございます!"), true);
return TypedActionResult.success(player.getStackInHand(hand));
}
return TypedActionResult.pass(player.getStackInHand(hand));
}
}