From c704a6ba51fb372cfe282c922216e323dea9b24d Mon Sep 17 00:00:00 2001 From: Chris Toph Date: Sun, 16 Feb 2025 02:43:25 -0500 Subject: [PATCH] Added custom item, sapphire --- .vscode/settings.json | 3 +- .../java/cc/toph/tutorialmod/TutorialMod.java | 14 ++++++++-- .../tutorialmod/item/ModCreativeTabs.java | 26 ++++++++++++++++++ .../cc/toph/tutorialmod/item/ModItems.java | 21 ++++++++++++++ .../assets/tutorialmod/lang/en_us.json | 5 ++++ .../tutorialmod/models/item/raw_sapphire.json | 6 ++++ .../tutorialmod/models/item/sapphire.json | 6 ++++ .../textures/item/raw_sapphire.png | Bin 0 -> 535 bytes .../tutorialmod/textures/item/sapphire.png | Bin 0 -> 392 bytes 9 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java create mode 100644 src/main/java/cc/toph/tutorialmod/item/ModItems.java create mode 100644 src/main/resources/assets/tutorialmod/lang/en_us.json create mode 100644 src/main/resources/assets/tutorialmod/models/item/raw_sapphire.json create mode 100644 src/main/resources/assets/tutorialmod/models/item/sapphire.json create mode 100644 src/main/resources/assets/tutorialmod/textures/item/raw_sapphire.png create mode 100644 src/main/resources/assets/tutorialmod/textures/item/sapphire.png 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 0000000000000000000000000000000000000000..c0fbd83b6a8ef8d2d7db6c76132ce5b24d0c5497 GIT binary patch literal 535 zcmV+y0_gpTP)(R5*>LlQC!$Q5eU6FQ%H|M6-kruZQ%YN2NHF40cMSf>H=5 z1S$ljOA&;E`f5k=I+RtHfWT)Gv`K{{lzL#K1NULjDf4oSd!+GLSnpM&Po^IDgD zFIt$Q#p1$MO0%=nH#R6$ zstFSTV45>=WA)<)0DgSk1)$k%^6dT#49kwq=W8|Y+_+8@MIr-WST^OCuNhxjCfM2p zh|}1`ix`&8t9MVyNy*M$kAs3afY_%G&~{zkOUcc@!iSIE#z6C@PVnZ5gWpsf9HNlz z({H;j-A2H~*a)MemkG8u={5q!mzLT0JZ|0d_^x(&e0P!FuYp5~L8r4#sZyoBzLr>5 zsZs?<^rI*e@y{~N8Qtk@4+K}P!O1N3^)-}IBDuZ{N_`Vr>+~)ByJw};vG=02Mhtt- ZzX7zvwFv=_CENf2002ovPDHLkV1kLV^-%x- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..54bfb78575b3cd11c1212c0daa777d13947730ca GIT binary patch literal 392 zcmV;30eAk1P)Px$LPX_1|S2z%65YFF}~>sYe3cvV&nA! zSR*tb?`?n0pe}Qi;nsyyaD&h_gVkfp3&@5jd5VISpgSF=4|gUJR{SsEx{Cp10D9ab mTZ%U~f?NVpj2vj_E(QP~qNx$a8!|rt0000