diff --git a/src/main/java/xyz/sillyangel/nugget/NuggetMod.java b/src/main/java/xyz/sillyangel/nugget/NuggetMod.java index a69b99d..ba5c07d 100644 --- a/src/main/java/xyz/sillyangel/nugget/NuggetMod.java +++ b/src/main/java/xyz/sillyangel/nugget/NuggetMod.java @@ -15,6 +15,7 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; +import xyz.sillyangel.nugget.item.ModCreativeModeTabs; import xyz.sillyangel.nugget.item.ModItems; import xyz.sillyangel.nugget.block.ModBlocks; @@ -33,6 +34,8 @@ public class NuggetMod { // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); + ModCreativeModeTabs.register(modEventBus); + ModItems.register(modEventBus); ModBlocks.register(modEventBus); @@ -48,13 +51,7 @@ public class NuggetMod { // Add the example block item to the building blocks tab private void addCreative(BuildCreativeModeTabContentsEvent event) { - if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) { - event.accept(ModItems.NUGGET); - } - if (event.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS) { - event.accept(ModBlocks.NUGGET_BLOCK); - event.accept(ModBlocks.RAW_NUGGET_BLOCK); - } + } // You can use SubscribeEvent and let the Event Bus discover methods to call diff --git a/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java b/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java index 80b5df0..af1da62 100644 --- a/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java +++ b/src/main/java/xyz/sillyangel/nugget/block/ModBlocks.java @@ -2,9 +2,11 @@ package xyz.sillyangel.nugget.block; import xyz.sillyangel.nugget.NuggetMod; import xyz.sillyangel.nugget.item.ModItems; +import net.minecraft.util.valueproviders.UniformInt; 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.DropExperienceBlock; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraftforge.eventbus.api.IEventBus; @@ -25,8 +27,16 @@ public class ModBlocks { public static final RegistryObject RAW_NUGGET_BLOCK = registerBlock("raw_nugget_block", () -> new Block(BlockBehaviour.Properties.of() .strength(3f).requiresCorrectToolForDrops())); - - private static RegistryObject registerBlock(String name, Supplier block) { + // ores + public static final RegistryObject NUGGET_ORE = registerBlock("nugget_ore", + () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() + .strength(4f).requiresCorrectToolForDrops())); + + public static final RegistryObject NUGGET_DEEPSLATE_ORE = registerBlock("nugget_deepslate_ore", + () -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of() + .strength(5f).requiresCorrectToolForDrops().sound(SoundType.DEEPSLATE))); + + private static RegistryObject registerBlock(String name, Supplier block) { RegistryObject toReturn = BLOCKS.register(name, block); registerBlockItem(name, toReturn); return toReturn; diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java index 736d9f3..b3febf1 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModCreativeModeTabs.java @@ -1,4 +1,43 @@ package xyz.sillyangel.nugget.item; +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; +import xyz.sillyangel.nugget.NuggetMod; +import xyz.sillyangel.nugget.block.ModBlocks; + public class ModCreativeModeTabs { + public static final DeferredRegister CREATIVE_MODE_TABS = + DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID); + + public static final RegistryObject NUGGET_ITEMS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_items_tab", + () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.NUGGET.get())) + .title(Component.translatable("creativetab.nuggetmod.nugget_items")) + .displayItems((itemDisplayParameters, output) -> { + output.accept(ModItems.NUGGET.get()); + output.accept(ModItems.RAW_NUGGET.get()); + + }).build()); + + public static final RegistryObject NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab", + () -> CreativeModeTab.builder().icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get())) + .withTabsBefore(NUGGET_ITEMS_TAB.getId()) + .title(Component.translatable("creativetab.nuggetmod.nugget_blocks")) + .displayItems((itemDisplayParameters, output) -> { + output.accept(ModBlocks.NUGGET_BLOCK.get()); + output.accept(ModBlocks.RAW_NUGGET_BLOCK.get()); + output.accept(ModBlocks.NUGGET_ORE.get()); + output.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); + }).build()); + + + + + public static void register(IEventBus eventBus) { + CREATIVE_MODE_TABS.register(eventBus); + } } diff --git a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java index 0fe761b..600ebc4 100644 --- a/src/main/java/xyz/sillyangel/nugget/item/ModItems.java +++ b/src/main/java/xyz/sillyangel/nugget/item/ModItems.java @@ -14,6 +14,9 @@ public class ModItems { public static final RegistryObject NUGGET = ITEMS.register("nugget", () -> new Item(new Item.Properties())); + public static final RegistryObject RAW_NUGGET = ITEMS.register("raw_nugget", + () -> new Item(new Item.Properties())); + public static void register(IEventBus eventBus) { diff --git a/src/main/resources/assets/nuggetmod/blockstates/nugget_deepslate_ore.json b/src/main/resources/assets/nuggetmod/blockstates/nugget_deepslate_ore.json new file mode 100644 index 0000000..e4d9a13 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/blockstates/nugget_deepslate_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "nuggetmod:block/nugget_deepslate_ore" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/blockstates/nugget_ore.json b/src/main/resources/assets/nuggetmod/blockstates/nugget_ore.json new file mode 100644 index 0000000..af332b5 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/blockstates/nugget_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "nuggetmod:block/nugget_ore" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/lang/en_us.json b/src/main/resources/assets/nuggetmod/lang/en_us.json index 6615b6f..25d3e0d 100644 --- a/src/main/resources/assets/nuggetmod/lang/en_us.json +++ b/src/main/resources/assets/nuggetmod/lang/en_us.json @@ -1,5 +1,12 @@ { + "item.nuggetmod.raw_nugget": "Raw Nugget", "item.nuggetmod.nugget": "nugget", + "block.nuggetmod.nugget_block": "Nugget Block", - "block.nuggetmod.raw_nugget_block": "Raw Nugget Block" + "block.nuggetmod.raw_nugget_block": "Raw Nugget Block", + "block.nuggetmod.nugget_ore": "Nugget Ore", + "block.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore", + + "creativetab.nuggetmod.nugget_items": "Nugget Mod Items", + "creativetab.nuggetmod.nugget_blocks": "Nugget Mod Blocks" } \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/models/block/nugget_deepslate_ore.json b/src/main/resources/assets/nuggetmod/models/block/nugget_deepslate_ore.json new file mode 100644 index 0000000..4b5dc97 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/models/block/nugget_deepslate_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "nuggetmod:block/nugget_deepslate_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/models/block/nugget_ore.json b/src/main/resources/assets/nuggetmod/models/block/nugget_ore.json new file mode 100644 index 0000000..10d20f8 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/models/block/nugget_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "nuggetmod:block/nugget_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/models/item/nugget_deepslate_ore.json b/src/main/resources/assets/nuggetmod/models/item/nugget_deepslate_ore.json new file mode 100644 index 0000000..c7d55b6 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/models/item/nugget_deepslate_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "nuggetmod:block/nugget_deepslate_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/models/item/nugget_ore.json b/src/main/resources/assets/nuggetmod/models/item/nugget_ore.json new file mode 100644 index 0000000..2d118a6 --- /dev/null +++ b/src/main/resources/assets/nuggetmod/models/item/nugget_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "nuggetmod:block/nugget_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/models/item/raw_nugget.json b/src/main/resources/assets/nuggetmod/models/item/raw_nugget.json index e69de29..a902b58 100644 --- a/src/main/resources/assets/nuggetmod/models/item/raw_nugget.json +++ b/src/main/resources/assets/nuggetmod/models/item/raw_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "nuggetmod:item/raw_nugget" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nuggetmod/textures/block/nugget_deepslate_ore.png b/src/main/resources/assets/nuggetmod/textures/block/nugget_deepslate_ore.png new file mode 100644 index 0000000..9887820 Binary files /dev/null and b/src/main/resources/assets/nuggetmod/textures/block/nugget_deepslate_ore.png differ diff --git a/src/main/resources/assets/nuggetmod/textures/block/nugget_ore.png b/src/main/resources/assets/nuggetmod/textures/block/nugget_ore.png new file mode 100644 index 0000000..bed87cb Binary files /dev/null and b/src/main/resources/assets/nuggetmod/textures/block/nugget_ore.png differ diff --git a/src/main/resources/assets/nuggetmod/textures/item/raw_nugget.png b/src/main/resources/assets/nuggetmod/textures/item/raw_nugget.png new file mode 100644 index 0000000..683a313 Binary files /dev/null and b/src/main/resources/assets/nuggetmod/textures/item/raw_nugget.png differ diff --git a/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000..aac995c --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "nuggetmod:nugget_block", + "nuggetmod:raw_nugget_block", + "nuggetmod:nugget_ore", + "nuggetmod:nugget_deepslate_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json new file mode 100644 index 0000000..ccfdd17 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "nuggetmod:nugget_deepslate_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 0000000..33412d2 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "nuggetmod:nugget_block", + "nuggetmod:raw_nugget_block", + "nuggetmod:nugget_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_block.json b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_block.json new file mode 100644 index 0000000..b00103d --- /dev/null +++ b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nuggetmod:nugget_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "nuggetmod:blocks/nugget_block" + } \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json new file mode 100644 index 0000000..21fb98a --- /dev/null +++ b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "nuggetmod:nugget_deepslate_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "nuggetmod:raw_nugget" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "nuggetmod:blocks/nugget_deepslate_ore" + } \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_ore.json b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_ore.json new file mode 100644 index 0000000..53172e2 --- /dev/null +++ b/src/main/resources/data/nuggetmod/loot_table/blocks/nugget_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "nuggetmod:nugget_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "nuggetmod:raw_nugget" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "nuggetmod:blocks/nugget_ore" + } \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/loot_table/blocks/raw_nugget_block.json b/src/main/resources/data/nuggetmod/loot_table/blocks/raw_nugget_block.json new file mode 100644 index 0000000..1d10b32 --- /dev/null +++ b/src/main/resources/data/nuggetmod/loot_table/blocks/raw_nugget_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nuggetmod:raw_nugget_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "nuggetmod:blocks/raw_nugget_block" + } \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/nugget.json b/src/main/resources/data/nuggetmod/recipe/nugget.json index e69de29..8930a26 100644 --- a/src/main/resources/data/nuggetmod/recipe/nugget.json +++ b/src/main/resources/data/nuggetmod/recipe/nugget.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "nuggetmod:nugget_block" + } + ], + "result": { + "count": 9, + "id": "nuggetmod:nugget" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/nugget_block.json b/src/main/resources/data/nuggetmod/recipe/nugget_block.json index e69de29..afbc976 100644 --- a/src/main/resources/data/nuggetmod/recipe/nugget_block.json +++ b/src/main/resources/data/nuggetmod/recipe/nugget_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "nuggetmod:nugget" + } + }, + "pattern": [ + "AAA", + "AAA", + "AAA" + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_block" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json b/src/main/resources/data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json new file mode 100644 index 0000000..f4fa045 --- /dev/null +++ b/src/main/resources/data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.50, + "ingredient": { + "item": "nuggetmod:raw_nugget" + }, + "result": { + "id": "nuggetmod:nugget" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json b/src/main/resources/data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json new file mode 100644 index 0000000..4aec86b --- /dev/null +++ b/src/main/resources/data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "nuggetmod:raw_nugget" + }, + "result": { + "id": "nuggetmod:nugget" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/raw_nugget.json b/src/main/resources/data/nuggetmod/recipe/raw_nugget.json new file mode 100644 index 0000000..b0b33c7 --- /dev/null +++ b/src/main/resources/data/nuggetmod/recipe/raw_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "nuggetmod:raw_nugget_block" + } + ], + "result": { + "count": 9, + "id": "nuggetmod:raw_nugget" + } + } \ No newline at end of file diff --git a/src/main/resources/data/nuggetmod/recipe/raw_nugget_block.json b/src/main/resources/data/nuggetmod/recipe/raw_nugget_block.json new file mode 100644 index 0000000..93a1bde --- /dev/null +++ b/src/main/resources/data/nuggetmod/recipe/raw_nugget_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "nuggetmod:raw_nugget" + } + }, + "pattern": [ + "AAA", + "AAA", + "AAA" + ], + "result": { + "count": 1, + "id": "nuggetmod:raw_nugget_block" + } + } \ No newline at end of file