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 0000000..04d5ec2 Binary files /dev/null and b/src/main/resources/assets/mfmd2627/textures/block/tin_ore.png differ diff --git a/src/main/resources/assets/mfmd2627/textures/item/raw_tin.png b/src/main/resources/assets/mfmd2627/textures/item/raw_tin.png index d520e7b..d25d912 100644 Binary files a/src/main/resources/assets/mfmd2627/textures/item/raw_tin.png and b/src/main/resources/assets/mfmd2627/textures/item/raw_tin.png differ