diff --git a/.vscode/settings.json b/.vscode/settings.json index 8265cf5..4577b25 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,9 @@ "gradlew": "build.gradle, gradle.properties, gradlew.bat, settings.gradle", ".gitignore": ".gitattributes, .tool-versions, LICENSE.txt, README.md" }, - "workbench.iconTheme": "mc-dp-icons" + "workbench.iconTheme": "material-icon-theme", + "editor.fontSize": 15, + "editor.cursorStyle": "block", + "editor.fontLigatures": true, + "editor.fontFamily": "'Monocraft Nerd Font', 'monospace', monospace" } diff --git a/src/main/java/cc/toph/tutorialmod/TutorialMod.java b/src/main/java/cc/toph/tutorialmod/TutorialMod.java index 651ac77..781bc54 100644 --- a/src/main/java/cc/toph/tutorialmod/TutorialMod.java +++ b/src/main/java/cc/toph/tutorialmod/TutorialMod.java @@ -4,10 +4,10 @@ import org.slf4j.Logger; import com.mojang.logging.LogUtils; +import cc.toph.tutorialmod.block.ModBlocks; 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; @@ -38,9 +38,9 @@ public class TutorialMod { // 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); + ModItems.register(modEventBus); + ModBlocks.register(modEventBus); // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java b/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java new file mode 100644 index 0000000..0e6d0ef --- /dev/null +++ b/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java @@ -0,0 +1,48 @@ +package cc.toph.tutorialmod.block; + +import java.util.function.Supplier; + +import cc.toph.tutorialmod.TutorialMod; +import cc.toph.tutorialmod.item.ModItems; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModBlocks { + + // Deferrer // + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, + TutorialMod.MODID); + + // Blocks // + public static final RegistryObject SAPPHIRE_BLOCK = registerBlock("sapphire_block", + () -> new Block(BlockBehaviour.Properties.copy(Blocks.IRON_BLOCK).sound(SoundType.AMETHYST))); + + public static final RegistryObject RAW_SAPPHIRE_BLOCK = registerBlock("raw_sapphire_block", + () -> new Block(BlockBehaviour.Properties.copy(Blocks.RAW_IRON_BLOCK).sound(SoundType.AMETHYST))); + + // Methods // + public static void register(IEventBus eventBus) { + BLOCKS.register(eventBus); + } + + private static RegistryObject registerBlock(String name, Supplier block) { + + RegistryObject toReturn = BLOCKS.register(name, block); + registerBlockItem(name, toReturn); + + return toReturn; + } + + private static RegistryObject registerBlockItem(String name, RegistryObject block) { + return ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties())); + } + +} diff --git a/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java index 242e84a..03251d4 100644 --- a/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java +++ b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java @@ -1,6 +1,7 @@ package cc.toph.tutorialmod.item; import cc.toph.tutorialmod.TutorialMod; +import cc.toph.tutorialmod.block.ModBlocks; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; @@ -22,5 +23,7 @@ public class ModCreativeTabs { .title(Component.translatable("creativetab.tutorial_tab")).displayItems((pParams, pOut) -> { pOut.accept(ModItems.SAPPHIRE.get()); pOut.accept(ModItems.RAW_SAPPHIRE.get()); + pOut.accept(ModBlocks.SAPPHIRE_BLOCK.get()); + pOut.accept(ModBlocks.RAW_SAPPHIRE_BLOCK.get()); }).build()); } diff --git a/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json new file mode 100644 index 0000000..f1ea3a8 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/raw_sapphire_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/raw_sapphire_block" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json new file mode 100644 index 0000000..06dd520 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/sapphire_block" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/lang/en_us.json b/src/main/resources/assets/tutorialmod/lang/en_us.json index f39306a..c5aa50c 100644 --- a/src/main/resources/assets/tutorialmod/lang/en_us.json +++ b/src/main/resources/assets/tutorialmod/lang/en_us.json @@ -1,5 +1,9 @@ { "item.tutorialmod.sapphire": "Sapphire", "item.tutorialmod.raw_sapphire": "Raw Sapphire", + + "block.tutorialmod.sapphire_block": "Block of Sapphire", + "block.tutorialmod.raw_sapphire_block": "Block of Raw Sapphire", + "creativetab.tutorial_tab": "Sapphire Tab" } diff --git a/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json new file mode 100644 index 0000000..78fcabb --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/raw_sapphire_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/raw_sapphire_block" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json new file mode 100644 index 0000000..f011e09 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/sapphire_block" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json new file mode 100644 index 0000000..21c246b --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/raw_sapphire_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/raw_sapphire_block" +} diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json new file mode 100644 index 0000000..b4bcb35 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_block" +} diff --git a/src/main/resources/assets/tutorialmod/textures/block/raw_sapphire_block.png b/src/main/resources/assets/tutorialmod/textures/block/raw_sapphire_block.png new file mode 100644 index 0000000..3686018 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/raw_sapphire_block.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/block/sapphire_block.png b/src/main/resources/assets/tutorialmod/textures/block/sapphire_block.png new file mode 100644 index 0000000..47a8754 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/sapphire_block.png differ