diff --git a/.vscode/settings.json b/.vscode/settings.json index b062f0e..8265cf5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,5 +13,6 @@ "explorer.fileNesting.patterns": { "gradlew": "build.gradle, gradle.properties, gradlew.bat, settings.gradle", ".gitignore": ".gitattributes, .tool-versions, LICENSE.txt, README.md" - } + }, + "workbench.iconTheme": "mc-dp-icons" } diff --git a/src/main/java/cc/toph/tutorialmod/TutorialMod.java b/src/main/java/cc/toph/tutorialmod/TutorialMod.java index d0eac47..651ac77 100644 --- a/src/main/java/cc/toph/tutorialmod/TutorialMod.java +++ b/src/main/java/cc/toph/tutorialmod/TutorialMod.java @@ -4,7 +4,11 @@ import org.slf4j.Logger; import com.mojang.logging.LogUtils; +import cc.toph.tutorialmod.item.ModCreativeTabs; +import cc.toph.tutorialmod.item.ModItems; import net.minecraft.client.Minecraft; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.level.block.Blocks; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.MinecraftForge; @@ -31,10 +35,13 @@ public class TutorialMod { public TutorialMod() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - // Register the commonSetup method for modloading modEventBus.addListener(this::commonSetup); + // Register the ModItems and CreativeModeTabs class to the modEventBus + ModItems.register(modEventBus); + ModCreativeTabs.register(modEventBus); + // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); @@ -59,7 +66,10 @@ public class TutorialMod { // Add the example block item to the building blocks tab private void addCreative(BuildCreativeModeTabContentsEvent event) { - + if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) { + event.accept(ModItems.SAPPHIRE); + event.accept(ModItems.RAW_SAPPHIRE); + } } // You can use SubscribeEvent and let the Event Bus discover methods to call diff --git a/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java new file mode 100644 index 0000000..242e84a --- /dev/null +++ b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java @@ -0,0 +1,26 @@ +package cc.toph.tutorialmod.item; + +import cc.toph.tutorialmod.TutorialMod; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; + +public class ModCreativeTabs { + public static final DeferredRegister CREATIVE_TABS = DeferredRegister + .create(Registries.CREATIVE_MODE_TAB, TutorialMod.MODID); + + public static void register(IEventBus eventBus) { + CREATIVE_TABS.register(eventBus); + } + + public static final RegistryObject TUTORIAL_MOD = CREATIVE_TABS.register("tutorial_tab", + () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.SAPPHIRE.get())) + .title(Component.translatable("creativetab.tutorial_tab")).displayItems((pParams, pOut) -> { + pOut.accept(ModItems.SAPPHIRE.get()); + pOut.accept(ModItems.RAW_SAPPHIRE.get()); + }).build()); +} diff --git a/src/main/java/cc/toph/tutorialmod/item/ModItems.java b/src/main/java/cc/toph/tutorialmod/item/ModItems.java new file mode 100644 index 0000000..2da264a --- /dev/null +++ b/src/main/java/cc/toph/tutorialmod/item/ModItems.java @@ -0,0 +1,21 @@ +package cc.toph.tutorialmod.item; + +import cc.toph.tutorialmod.TutorialMod; +import net.minecraft.world.item.Item; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModItems { + + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TutorialMod.MODID); + + public static void register(IEventBus eventBus) { + ITEMS.register(eventBus); + } + + public static final RegistryObject SAPPHIRE = ITEMS.register("sapphire", () -> new Item(new Item.Properties())); + public static final RegistryObject RAW_SAPPHIRE = ITEMS.register("raw_sapphire", + () -> new Item(new Item.Properties())); +} diff --git a/src/main/resources/assets/tutorialmod/lang/en_us.json b/src/main/resources/assets/tutorialmod/lang/en_us.json new file mode 100644 index 0000000..f39306a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "item.tutorialmod.sapphire": "Sapphire", + "item.tutorialmod.raw_sapphire": "Raw Sapphire", + "creativetab.tutorial_tab": "Sapphire Tab" +} diff --git a/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json new file mode 100644 index 0000000..198af3a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tutorialmod:item/raw_sapphire" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire.json b/src/main/resources/assets/tutorialmod/models/item/sapphire.json new file mode 100644 index 0000000..4655723 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tutorialmod:item/sapphire" + } +} diff --git a/src/main/resources/assets/tutorialmod/textures/item/raw_sapphire.png b/src/main/resources/assets/tutorialmod/textures/item/raw_sapphire.png new file mode 100644 index 0000000..c0fbd83 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/item/raw_sapphire.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/item/sapphire.png b/src/main/resources/assets/tutorialmod/textures/item/sapphire.png new file mode 100644 index 0000000..54bfb78 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/item/sapphire.png differ