diff --git a/.vscode/java-formatter.xml b/.vscode/java-formatter.xml index 7b2d48b..c0370f9 100644 --- a/.vscode/java-formatter.xml +++ b/.vscode/java-formatter.xml @@ -83,7 +83,7 @@ - + diff --git a/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java b/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java index 0e6d0ef..5ee0d51 100644 --- a/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java +++ b/src/main/java/cc/toph/tutorialmod/block/ModBlocks.java @@ -4,10 +4,12 @@ import java.util.function.Supplier; import cc.toph.tutorialmod.TutorialMod; import cc.toph.tutorialmod.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.Blocks; +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; @@ -22,12 +24,52 @@ public class ModBlocks { TutorialMod.MODID); // Blocks // - public static final RegistryObject SAPPHIRE_BLOCK = registerBlock("sapphire_block", - () -> new Block(BlockBehaviour.Properties.copy(Blocks.IRON_BLOCK).sound(SoundType.AMETHYST))); + // @formatter:off + 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))); + public static final RegistryObject RAW_SAPPHIRE_BLOCK = + registerBlock("raw_sapphire_block", + () -> new Block( + BlockBehaviour.Properties.copy(Blocks.RAW_IRON_BLOCK) + .sound(SoundType.AMETHYST))); + public static final RegistryObject SAPPHIRE_ORE = + registerBlock("sapphire_ore", + () -> new DropExperienceBlock( + BlockBehaviour.Properties.copy(Blocks.STONE) + .strength(2f) + .sound(SoundType.AMETHYST_CLUSTER) + .requiresCorrectToolForDrops(), UniformInt.of(3, 6))); + + public static final RegistryObject DEEPSLATE_SAPPHIRE_ORE = + registerBlock("deepslate_sapphire_ore", + () -> new DropExperienceBlock( + BlockBehaviour.Properties.copy(Blocks.DEEPSLATE_DIAMOND_ORE) + .strength(3f) + .sound(SoundType.DEEPSLATE) + .requiresCorrectToolForDrops(), UniformInt.of(4, 6))); + + public static final RegistryObject NETHER_SAPPHIRE_ORE = + registerBlock("nether_sapphire_ore", + () -> new DropExperienceBlock( + BlockBehaviour.Properties.copy(Blocks.NETHER_GOLD_ORE) + .strength(1f) + .sound(SoundType.NETHER_ORE) + .requiresCorrectToolForDrops(), UniformInt.of(2, 5))); + + public static final RegistryObject END_STONE_SAPPHIRE_ORE = + registerBlock("end_stone_sapphire_ore", + () -> new DropExperienceBlock( + BlockBehaviour.Properties.copy(Blocks.END_STONE) + .strength(2f) + .sound(SoundType.NETHER_ORE) + .requiresCorrectToolForDrops(), UniformInt.of(10, 30))); + + // @formatter:on // Methods // public static void register(IEventBus eventBus) { BLOCKS.register(eventBus); diff --git a/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java index 03251d4..2e131e5 100644 --- a/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java +++ b/src/main/java/cc/toph/tutorialmod/item/ModCreativeTabs.java @@ -25,5 +25,9 @@ public class ModCreativeTabs { pOut.accept(ModItems.RAW_SAPPHIRE.get()); pOut.accept(ModBlocks.SAPPHIRE_BLOCK.get()); pOut.accept(ModBlocks.RAW_SAPPHIRE_BLOCK.get()); + pOut.accept(ModBlocks.SAPPHIRE_ORE.get()); + pOut.accept(ModBlocks.DEEPSLATE_SAPPHIRE_ORE.get()); + pOut.accept(ModBlocks.END_STONE_SAPPHIRE_ORE.get()); + pOut.accept(ModBlocks.NETHER_SAPPHIRE_ORE.get()); }).build()); } diff --git a/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json new file mode 100644 index 0000000..d3cbc84 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/deepslate_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/deepslate_sapphire_ore" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json new file mode 100644 index 0000000..91c23bf --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/end_stone_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/end_stone_sapphire_ore" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json new file mode 100644 index 0000000..2bcef3a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/nether_sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/nether_sapphire_ore" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json b/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json new file mode 100644 index 0000000..ee65eb1 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/blockstates/sapphire_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tutorialmod:block/sapphire_ore" + } + } +} diff --git a/src/main/resources/assets/tutorialmod/lang/en_us.json b/src/main/resources/assets/tutorialmod/lang/en_us.json index c5aa50c..9000c7f 100644 --- a/src/main/resources/assets/tutorialmod/lang/en_us.json +++ b/src/main/resources/assets/tutorialmod/lang/en_us.json @@ -4,6 +4,10 @@ "block.tutorialmod.sapphire_block": "Block of Sapphire", "block.tutorialmod.raw_sapphire_block": "Block of Raw Sapphire", + "block.tutorialmod.sapphire_ore": "Sapphire Ore", + "block.tutorialmod.deepslate_sapphire_ore": "Deepslate Sapphire Ore", + "block.tutorialmod.nether_sapphire_ore": "Netherack Sapphire Ore", + "block.tutorialmod.end_stone_sapphire_ore": "End Stone Sapphire Ore", "creativetab.tutorial_tab": "Sapphire Tab" } diff --git a/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json new file mode 100644 index 0000000..5e209e2 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/deepslate_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/deepslate_sapphire_ore" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json new file mode 100644 index 0000000..3cd10ea --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/end_stone_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/end_stone_sapphire_ore" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json new file mode 100644 index 0000000..9ddcd1a --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/nether_sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/nether_sapphire_ore" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json new file mode 100644 index 0000000..8ebbe77 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/block/sapphire_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/sapphire_ore" + } +} diff --git a/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json new file mode 100644 index 0000000..5044cbd --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/deepslate_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/deepslate_sapphire_ore" +} diff --git a/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json new file mode 100644 index 0000000..e6e65d1 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/end_stone_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/end_stone_sapphire_ore" +} diff --git a/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json new file mode 100644 index 0000000..1c3c9f4 --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/nether_sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/nether_sapphire_ore" +} diff --git a/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json b/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json new file mode 100644 index 0000000..915046e --- /dev/null +++ b/src/main/resources/assets/tutorialmod/models/item/sapphire_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/sapphire_ore" +} diff --git a/src/main/resources/assets/tutorialmod/textures/block/deepslate_sapphire_ore.png b/src/main/resources/assets/tutorialmod/textures/block/deepslate_sapphire_ore.png new file mode 100644 index 0000000..4b782c6 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/deepslate_sapphire_ore.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/block/end_stone_sapphire_ore.png b/src/main/resources/assets/tutorialmod/textures/block/end_stone_sapphire_ore.png new file mode 100644 index 0000000..e110a6d Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/end_stone_sapphire_ore.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/block/nether_sapphire_ore.png b/src/main/resources/assets/tutorialmod/textures/block/nether_sapphire_ore.png new file mode 100644 index 0000000..ca2b8a1 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/nether_sapphire_ore.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/block/sapphire_ore.png b/src/main/resources/assets/tutorialmod/textures/block/sapphire_ore.png new file mode 100644 index 0000000..767602a Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/sapphire_ore.png differ diff --git a/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json b/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/forge/tags/blocks/needs_netherite_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..fe363c3 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,10 @@ +{ + "values": [ + "tutorialmod:sapphire_block", + "tutorialmod:raw_sapphire_block", + "tutorialmod:sapphire_ore", + "tutorialmod:deepslate_sapphire_ore", + "tutorialmod:end_stone_sapphire_ore", + "tutorialmod:nether_sapphire_ore" + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json b/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json new file mode 100644 index 0000000..fe363c3 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -0,0 +1,10 @@ +{ + "values": [ + "tutorialmod:sapphire_block", + "tutorialmod:raw_sapphire_block", + "tutorialmod:sapphire_ore", + "tutorialmod:deepslate_sapphire_ore", + "tutorialmod:end_stone_sapphire_ore", + "tutorialmod:nether_sapphire_ore" + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json new file mode 100644 index 0000000..8252388 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json new file mode 100644 index 0000000..cbeccb7 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/deepslate_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:deepslate_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 40.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/deepslate_sapphire_ore" +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json new file mode 100644 index 0000000..5cea2f0 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/end_stone_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:end_stone_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 40.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/end_stone_sapphire_ore" +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json new file mode 100644 index 0000000..7bd4ba4 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/nether_sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:nether_sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 40.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/nether_sapphire_ore" +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json new file mode 100644 index 0000000..7f42a5f --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/raw_sapphire_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:raw_sapphire_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_block" +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json new file mode 100644 index 0000000..3e02649 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tutorialmod:sapphire_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_block" +} diff --git a/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json new file mode 100644 index 0000000..63c0bf2 --- /dev/null +++ b/src/main/resources/data/tutorialmod/loot_tables/blocks/sapphire_ore.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorialmod:sapphire_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 40.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "tutorialmod:raw_sapphire" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "tutorialmod:blocks/sapphire_ore" +}