From 1c4689207ded3236bd1d41860f705d9952e35eed Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sun, 4 Oct 2026 18:55:57 +0200 Subject: [PATCH] added tin ore block --- .../java/de/jottyfan/minecraft/Mfmd2627.java | 5 ++- .../jottyfan/minecraft/block/ModBlocks.java | 17 ++++++++ .../minecraft/block/ModBlocksRegistrator.java | 37 ++++++++++++++++++ .../de/jottyfan/minecraft/tab/ModTab.java | 6 ++- .../assets/mfmd2627/blockstates/tin_ore.json | 7 ++++ .../assets/mfmd2627/items/tin_ore.json | 6 +++ .../resources/assets/mfmd2627/lang/de_de.json | 1 + .../resources/assets/mfmd2627/lang/en_us.json | 1 + .../assets/mfmd2627/models/block/tin_ore.json | 6 +++ .../assets/mfmd2627/models/item/tin_ore.json | 3 ++ .../mfmd2627/textures/block/tin_ore.png | Bin 0 -> 576 bytes .../assets/mfmd2627/textures/item/raw_tin.png | Bin 336 -> 579 bytes 12 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/jottyfan/minecraft/block/ModBlocks.java create mode 100644 src/main/java/de/jottyfan/minecraft/block/ModBlocksRegistrator.java create mode 100644 src/main/resources/assets/mfmd2627/blockstates/tin_ore.json create mode 100644 src/main/resources/assets/mfmd2627/items/tin_ore.json create mode 100644 src/main/resources/assets/mfmd2627/models/block/tin_ore.json create mode 100644 src/main/resources/assets/mfmd2627/models/item/tin_ore.json create mode 100644 src/main/resources/assets/mfmd2627/textures/block/tin_ore.png diff --git a/src/main/java/de/jottyfan/minecraft/Mfmd2627.java b/src/main/java/de/jottyfan/minecraft/Mfmd2627.java index 87b1dff..467e4bb 100644 --- a/src/main/java/de/jottyfan/minecraft/Mfmd2627.java +++ b/src/main/java/de/jottyfan/minecraft/Mfmd2627.java @@ -5,10 +5,12 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import de.jottyfan.minecraft.block.ModBlocks; import de.jottyfan.minecraft.item.ModItems; import de.jottyfan.minecraft.tab.ModTab; import net.fabricmc.api.ModInitializer; import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; /** * @@ -24,6 +26,7 @@ public class Mfmd2627 implements ModInitializer { public void onInitialize() { LOGGER.debug("initializing {}", MOD_ID); List items = ModItems.registerItems(); - ModTab.registerItemGroup(items); + List blocks = ModBlocks.registerBlocks(); + ModTab.registerItemGroup(items, blocks); } } diff --git a/src/main/java/de/jottyfan/minecraft/block/ModBlocks.java b/src/main/java/de/jottyfan/minecraft/block/ModBlocks.java new file mode 100644 index 0000000..e9adf96 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/block/ModBlocks.java @@ -0,0 +1,17 @@ +package de.jottyfan.minecraft.block; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.world.level.block.Block; + +public class ModBlocks extends ModBlocksRegistrator { + + public static final Block TIN_ORE = registerBlock("tin_ore"); + + public static final List registerBlocks() { + List registeredBlocks = new ArrayList<>(); + registeredBlocks.add(TIN_ORE); + return registeredBlocks; + } +} diff --git a/src/main/java/de/jottyfan/minecraft/block/ModBlocksRegistrator.java b/src/main/java/de/jottyfan/minecraft/block/ModBlocksRegistrator.java new file mode 100644 index 0000000..beb768b --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/block/ModBlocksRegistrator.java @@ -0,0 +1,37 @@ +package de.jottyfan.minecraft.block; + +import java.util.function.Function; + +import de.jottyfan.minecraft.Mfmd2627; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +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.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockBehaviour.Properties; + +public class ModBlocksRegistrator { + + public static final Block registerBlock(String name) { + return registerBlock(name, BlockBehaviour.Properties.of(), Block::new); + } + + public static final Block registerBlock(String name, Properties properties, + Function function) { + Identifier identifier = Identifier.fromNamespaceAndPath(Mfmd2627.MOD_ID, name); + Block block = function.apply(properties.setId(ResourceKey.create(Registries.BLOCK, identifier))); + Registry.register(BuiltInRegistries.BLOCK, identifier, block); + registerBlockItem(identifier, block, new Item.Properties()); + return block; + } + + private static final void registerBlockItem(Identifier identifier, Block block, Item.Properties properties) { + BlockItem blockItem = new BlockItem(block, new Item.Properties() + .setId(ResourceKey.create(Registries.ITEM, identifier)).modelId(identifier).useItemDescriptionPrefix()); + Registry.register(BuiltInRegistries.ITEM, identifier, blockItem); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/tab/ModTab.java b/src/main/java/de/jottyfan/minecraft/tab/ModTab.java index a0f3864..e1b4e8d 100644 --- a/src/main/java/de/jottyfan/minecraft/tab/ModTab.java +++ b/src/main/java/de/jottyfan/minecraft/tab/ModTab.java @@ -14,6 +14,7 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; /** * @@ -27,7 +28,7 @@ public class ModTab { * * @param items the items */ - public static final void registerItemGroup(List items) { + public static final void registerItemGroup(List items, List blocks) { ResourceKey tabKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB, Identifier.fromNamespaceAndPath(Mfmd2627.MOD_ID, "itemgroup")); @@ -36,6 +37,9 @@ public class ModTab { for (Item item : items) { output.accept(item); } + for (Block block : blocks) { + output.accept(block.asItem()); + } }).build(); Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tabKey, quicklyTab); diff --git a/src/main/resources/assets/mfmd2627/blockstates/tin_ore.json b/src/main/resources/assets/mfmd2627/blockstates/tin_ore.json new file mode 100644 index 0000000..2186c76 --- /dev/null +++ b/src/main/resources/assets/mfmd2627/blockstates/tin_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "mfmd2627:block/tin_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/items/tin_ore.json b/src/main/resources/assets/mfmd2627/items/tin_ore.json new file mode 100644 index 0000000..e5d6d40 --- /dev/null +++ b/src/main/resources/assets/mfmd2627/items/tin_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "mfmd2627:block/tin_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/lang/de_de.json b/src/main/resources/assets/mfmd2627/lang/de_de.json index 7bbebb2..084a58d 100644 --- a/src/main/resources/assets/mfmd2627/lang/de_de.json +++ b/src/main/resources/assets/mfmd2627/lang/de_de.json @@ -3,5 +3,6 @@ "item.mfmd2627.raw_tin": "Zinn", "item.mfmd2627.ruby": "Rubin", "item.mfmd2627.tin_ingot": "Zinnbarren", + "item.mfmd2627.tin_ore": "Zinnerz", "tab.mfmd2627": "Mfmd2627" } \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/lang/en_us.json b/src/main/resources/assets/mfmd2627/lang/en_us.json index 85d1f44..476aaa7 100644 --- a/src/main/resources/assets/mfmd2627/lang/en_us.json +++ b/src/main/resources/assets/mfmd2627/lang/en_us.json @@ -3,5 +3,6 @@ "item.mfmd2627.raw_tin": "Tin", "item.mfmd2627.ruby": "Ruby", "item.mfmd2627.tin_ingot": "Tin Ingot", + "item.mfmd2627.tin_ore": "Tin Ore", "tab.mfmd2627": "Mfmd2627" } \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/models/block/tin_ore.json b/src/main/resources/assets/mfmd2627/models/block/tin_ore.json new file mode 100644 index 0000000..583f8e8 --- /dev/null +++ b/src/main/resources/assets/mfmd2627/models/block/tin_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "mfmd2627:block/tin_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/models/item/tin_ore.json b/src/main/resources/assets/mfmd2627/models/item/tin_ore.json new file mode 100644 index 0000000..d82552c --- /dev/null +++ b/src/main/resources/assets/mfmd2627/models/item/tin_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tin_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/mfmd2627/textures/block/tin_ore.png b/src/main/resources/assets/mfmd2627/textures/block/tin_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..04d5ec22eafa57899225ff3a081fe334b35e9023 GIT binary patch literal 576 zcmV-G0>Axz@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUyz)(z7MKd!yFf=I72~2M?*SCMM6hLMoUdsO;cG^Q&Lk? zSV~r3Q&nD0TxMNfV_slvU}0xyXlQ9{b!u#LaCCZfb#!rfhj)F7dVY|9e}900fr5d6 zbcK$CgN1&CjeLcTg@%WQhK7WPiie4ddyJQgiHM7ik&BR>kdv2(m!g)Hn39*8kC~&F zo2QqYpq8DllAo)SqO6^xsGFy-^$zP)#mKm>-6ID z_7;dz5dZ)H32;bRa{vGf6951U69E94oEQKA00(qQO+^Rl3Iq@w4LUiWA^-pY%1J~) zR2b7GkbhgkFbsqv{z6gF4i3HGpkr83aLN=!Cw~8LWis2IIir8kMYMa0P2J#Q>@EiVdezk7^ O0000cE5ZGXm4OjJbx000000466SCMqf{G&V9fHby)#H$X)?KtVc0Nk2qI zM@2wCN>D*dPD@KiQA#y7$}S*s-mK_7$3XbyOVO4?lq-BPEFLJd7d}b2T);qSdo7THj(2+6gB+k!8 hg?Khz!M|L_t&-({+zQ z5`ZuW1AE1g{QtSO1f8*JE|8@#=@=i9v{{L>p$D=^RyBw~^9DG=7OYLke%25N0!St`~b5-%`=^B#pqyncD}##s}s6=2!g9Hfqno0002ovPDHLkV1jKdQWpRK