diff --git a/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java b/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java index d21ee88..d02ccd2 100644 --- a/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java +++ b/src/main/java/com/technovision/tutorial/blocks/RubyBlock.java @@ -1,7 +1,6 @@ package com.technovision.tutorial.blocks; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; +import net.minecraft.block.*; import net.minecraft.block.material.Material; import net.minecraftforge.common.ToolType; diff --git a/src/main/java/com/technovision/tutorial/blocks/RubyOre.java b/src/main/java/com/technovision/tutorial/blocks/RubyOre.java new file mode 100644 index 0000000..151745e --- /dev/null +++ b/src/main/java/com/technovision/tutorial/blocks/RubyOre.java @@ -0,0 +1,26 @@ +package com.technovision.tutorial.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.OreBlock; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IWorldReader; +import net.minecraftforge.common.ToolType; + +public class RubyOre extends OreBlock { + + public RubyOre() { + super(Block.Properties.create(Material.IRON) + .hardnessAndResistance(3.0f, 4.0f) + .sound(SoundType.STONE) + .harvestLevel(2) + .harvestTool(ToolType.PICKAXE)); + } + + @Override + public int getExpDrop(BlockState state, IWorldReader reader, BlockPos pos, int fortune, int silktouch) { + return 1; + } +} diff --git a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java index 0bd14c4..d2ea2d2 100644 --- a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java +++ b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java @@ -3,6 +3,7 @@ package com.technovision.tutorial.util; import com.technovision.tutorial.Tutorial; import com.technovision.tutorial.armor.ModArmorMaterial; import com.technovision.tutorial.blocks.RubyBlock; +import com.technovision.tutorial.blocks.RubyOre; import com.technovision.tutorial.items.PoisonApple; import com.technovision.tutorial.tools.ModItemTier; import net.minecraft.block.Block; @@ -51,8 +52,9 @@ public class RegistryHandler { // Blocks public static final RegistryObject RUBY_BLOCK = BLOCKS.register("ruby_block", RubyBlock::new); + public static final RegistryObject RUBY_ORE = BLOCKS.register("ruby_ore", RubyOre::new); // Block Items public static final RegistryObject RUBY_BLOCK_ITEM = ITEMS.register("ruby_block", () -> new BlockItem(RUBY_BLOCK.get(), new Item.Properties().group(Tutorial.TAB))); - + public static final RegistryObject RUBY_ORE_ITEM = ITEMS.register("ruby_ore", () -> new BlockItem(RUBY_ORE.get(), new Item.Properties().group(Tutorial.TAB))); } diff --git a/src/main/java/com/technovision/tutorial/world/ModOreGen.java b/src/main/java/com/technovision/tutorial/world/gen/ModOreGen.java similarity index 88% rename from src/main/java/com/technovision/tutorial/world/ModOreGen.java rename to src/main/java/com/technovision/tutorial/world/gen/ModOreGen.java index 93a447d..24eab47 100644 --- a/src/main/java/com/technovision/tutorial/world/ModOreGen.java +++ b/src/main/java/com/technovision/tutorial/world/gen/ModOreGen.java @@ -1,4 +1,4 @@ -package com.technovision.tutorial.world; +package com.technovision.tutorial.world.gen; import com.technovision.tutorial.Tutorial; import com.technovision.tutorial.util.RegistryHandler; @@ -28,15 +28,15 @@ public class ModOreGen { //World Generation if (biome.getCategory() == Biome.Category.NETHER) { - genOre(biome, 15, 20, 5, 50, OreFeatureConfig.FillerBlockType.NETHERRACK, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 6); + genOre(biome, 15, 20, 5, 50, OreFeatureConfig.FillerBlockType.NETHERRACK, RegistryHandler.RUBY_ORE.get().getDefaultState(), 6); - //End Generation + //End Generation } else if (biome.getCategory() == Biome.Category.THEEND) { - genOre(biome, 15, 5, 5, 80, END_STONE, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 8); + genOre(biome, 15, 5, 5, 80, END_STONE, RegistryHandler.RUBY_ORE.get().getDefaultState(), 8); - //Nether Generation + //Nether Generation } else { - genOre(biome, 15, 5, 5, 80, OreFeatureConfig.FillerBlockType.NATURAL_STONE, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 12); + genOre(biome, 15, 5, 5, 80, OreFeatureConfig.FillerBlockType.NATURAL_STONE, RegistryHandler.RUBY_ORE.get().getDefaultState(), 12); } } } diff --git a/src/main/resources/assets/tutorial/blockstates/ruby_ore.json b/src/main/resources/assets/tutorial/blockstates/ruby_ore.json new file mode 100644 index 0000000..d944039 --- /dev/null +++ b/src/main/resources/assets/tutorial/blockstates/ruby_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "tutorial:block/ruby_ore" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/lang/en_us.json b/src/main/resources/assets/tutorial/lang/en_us.json index edddaa0..e67ea43 100644 --- a/src/main/resources/assets/tutorial/lang/en_us.json +++ b/src/main/resources/assets/tutorial/lang/en_us.json @@ -2,6 +2,7 @@ "item.tutorial.ruby": "Ruby", "item.tutorial.poison_apple": "Poison Apple", "block.tutorial.ruby_block": "Block of Ruby", + "block.tutorial.ruby_ore": "Ruby Ore", "itemGroup.tutorialTab": "Tutorial", "item.tutorial.ruby_sword": "Ruby Sword", "item.tutorial.ruby_pickaxe": "Ruby Pickaxe", diff --git a/src/main/resources/assets/tutorial/models/block/ruby_ore.json b/src/main/resources/assets/tutorial/models/block/ruby_ore.json new file mode 100644 index 0000000..cf9246d --- /dev/null +++ b/src/main/resources/assets/tutorial/models/block/ruby_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "tutorial:blocks/ruby_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_ore.json b/src/main/resources/assets/tutorial/models/item/ruby_ore.json new file mode 100644 index 0000000..3660190 --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorial:block/ruby_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/textures/blocks/ruby_ore.png b/src/main/resources/assets/tutorial/textures/blocks/ruby_ore.png new file mode 100644 index 0000000..a75097f Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/blocks/ruby_ore.png differ diff --git a/src/main/resources/data/tutorial/loot_tables/blocks/ruby_ore.json b/src/main/resources/data/tutorial/loot_tables/blocks/ruby_ore.json new file mode 100644 index 0000000..36bca96 --- /dev/null +++ b/src/main/resources/data/tutorial/loot_tables/blocks/ruby_ore.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "tutorial:ruby_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 1 + } + } + ], + "name": "tutorial:ruby" + } + ] + } + ] + } + ] +} \ No newline at end of file