diff --git a/src/main/java/com/technovision/tutorial/tools/ModItemTier.java b/src/main/java/com/technovision/tutorial/tools/ModItemTier.java new file mode 100644 index 0000000..f1aad72 --- /dev/null +++ b/src/main/java/com/technovision/tutorial/tools/ModItemTier.java @@ -0,0 +1,60 @@ +package com.technovision.tutorial.tools; + +import com.technovision.tutorial.util.RegistryHandler; +import net.minecraft.item.IItemTier; +import net.minecraft.item.crafting.Ingredient; + +import java.util.function.Supplier; + +public enum ModItemTier implements IItemTier { + + RUBY(2, 800, 7.0F, 3.0F, 12, () -> { + return Ingredient.fromItems(RegistryHandler.RUBY_SWORD.get()); + }); + + private final int harvestLevel; + private final int maxUses; + private final float efficiency; + private final float attackDamage; + private final int enchantability; + private final Supplier repairMaterial; + + ModItemTier(int harvestLevel, int maxUses, float efficiency, float attackDamage, int enchantability, Supplier repairMaterial) { + this.harvestLevel = harvestLevel; + this.maxUses = maxUses; + this.efficiency = efficiency; + this.attackDamage = attackDamage; + this.enchantability = enchantability; + this.repairMaterial = repairMaterial; + } + + @Override + public int getMaxUses() { + return maxUses; + } + + @Override + public float getEfficiency() { + return efficiency; + } + + @Override + public float getAttackDamage() { + return attackDamage; + } + + @Override + public int getHarvestLevel() { + return harvestLevel; + } + + @Override + public int getEnchantability() { + return enchantability; + } + + @Override + public Ingredient getRepairMaterial() { + return repairMaterial.get(); + } +} diff --git a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java index 99e3041..726e6fa 100644 --- a/src/main/java/com/technovision/tutorial/util/RegistryHandler.java +++ b/src/main/java/com/technovision/tutorial/util/RegistryHandler.java @@ -4,8 +4,9 @@ import com.technovision.tutorial.Tutorial; import com.technovision.tutorial.blocks.BlockItemBase; import com.technovision.tutorial.blocks.RubyBlock; import com.technovision.tutorial.items.ItemBase; +import com.technovision.tutorial.tools.ModItemTier; import net.minecraft.block.Block; -import net.minecraft.item.Item; +import net.minecraft.item.*; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; @@ -24,6 +25,22 @@ public class RegistryHandler { // Items public static final RegistryObject RUBY = ITEMS.register("ruby", ItemBase::new); + // Tools + public static final RegistryObject RUBY_SWORD = ITEMS.register("ruby_sword", () -> + new SwordItem(ModItemTier.RUBY, 2, -2.4F, new Item.Properties().group(Tutorial.TAB))); + + public static final RegistryObject RUBY_PICKAXE = ITEMS.register("ruby_pickaxe", () -> + new PickaxeItem(ModItemTier.RUBY, 0, -2.8F, new Item.Properties().group(Tutorial.TAB))); + + public static final RegistryObject RUBY_SHOVEL = ITEMS.register("ruby_shovel", () -> + new ShovelItem(ModItemTier.RUBY,0.5F, -3.0F, new Item.Properties().group(Tutorial.TAB))); + + public static final RegistryObject RUBY_AXE = ITEMS.register("ruby_axe", () -> + new AxeItem(ModItemTier.RUBY, 5, -3.1F, new Item.Properties().group(Tutorial.TAB))); + + public static final RegistryObject RUBY_HOE = ITEMS.register("ruby_hoe", () -> + new HoeItem(ModItemTier.RUBY, -1.0F, new Item.Properties().group(Tutorial.TAB))); + // Blocks public static final RegistryObject RUBY_BLOCK = BLOCKS.register("ruby_block", RubyBlock::new); diff --git a/src/main/resources/assets/tutorial/lang/en_us.json b/src/main/resources/assets/tutorial/lang/en_us.json index 4a95fc0..f485499 100644 --- a/src/main/resources/assets/tutorial/lang/en_us.json +++ b/src/main/resources/assets/tutorial/lang/en_us.json @@ -1,5 +1,10 @@ { "item.tutorial.ruby": "Ruby", "block.tutorial.ruby_block": "Block of Ruby", - "itemGroup.tutorialTab": "Tutorial" + "itemGroup.tutorialTab": "Tutorial", + "item.tutorial.ruby_sword": "Ruby Sword", + "item.tutorial.ruby_pickaxe": "Ruby Pickaxe", + "item.tutorial.ruby_shovel": "Ruby Shovel", + "item.tutorial.ruby_axe": "Ruby Axe", + "item.tutorial.ruby_hoe": "Ruby Hoe" } \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_axe.json b/src/main/resources/assets/tutorial/models/item/ruby_axe.json new file mode 100644 index 0000000..eed938a --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "tutorial:items/ruby_axe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_hoe.json b/src/main/resources/assets/tutorial/models/item/ruby_hoe.json new file mode 100644 index 0000000..65e3dab --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "tutorial:items/ruby_hoe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_pickaxe.json b/src/main/resources/assets/tutorial/models/item/ruby_pickaxe.json new file mode 100644 index 0000000..d7de05e --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "tutorial:items/ruby_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_shovel.json b/src/main/resources/assets/tutorial/models/item/ruby_shovel.json new file mode 100644 index 0000000..28a8e6d --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "tutorial:items/ruby_shovel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/models/item/ruby_sword.json b/src/main/resources/assets/tutorial/models/item/ruby_sword.json new file mode 100644 index 0000000..dfe9b9c --- /dev/null +++ b/src/main/resources/assets/tutorial/models/item/ruby_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "tutorial:items/ruby_sword" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tutorial/textures/items/ruby_axe.png b/src/main/resources/assets/tutorial/textures/items/ruby_axe.png new file mode 100644 index 0000000..5fd75d1 Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/items/ruby_axe.png differ diff --git a/src/main/resources/assets/tutorial/textures/items/ruby_hoe.png b/src/main/resources/assets/tutorial/textures/items/ruby_hoe.png new file mode 100644 index 0000000..01a8c03 Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/items/ruby_hoe.png differ diff --git a/src/main/resources/assets/tutorial/textures/items/ruby_pickaxe.png b/src/main/resources/assets/tutorial/textures/items/ruby_pickaxe.png new file mode 100644 index 0000000..787c87e Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/items/ruby_pickaxe.png differ diff --git a/src/main/resources/assets/tutorial/textures/items/ruby_shovel.png b/src/main/resources/assets/tutorial/textures/items/ruby_shovel.png new file mode 100644 index 0000000..9b728d6 Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/items/ruby_shovel.png differ diff --git a/src/main/resources/assets/tutorial/textures/items/ruby_sword.png b/src/main/resources/assets/tutorial/textures/items/ruby_sword.png new file mode 100644 index 0000000..39826e6 Binary files /dev/null and b/src/main/resources/assets/tutorial/textures/items/ruby_sword.png differ diff --git a/src/main/resources/data/tutorial/recipes/ruby.json b/src/main/resources/data/tutorial/recipes/ruby.json new file mode 100644 index 0000000..b4018b6 --- /dev/null +++ b/src/main/resources/data/tutorial/recipes/ruby.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:emerald" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": + { + "item": "tutorial:ruby", + "count": 3 + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorial/recipes/ruby_block.json b/src/main/resources/data/tutorial/recipes/ruby_block.json new file mode 100644 index 0000000..95bb10e --- /dev/null +++ b/src/main/resources/data/tutorial/recipes/ruby_block.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": + [ + "xxx", + "xdx", + "xxx" + ], + "key": + { + "x": + { + "item": "tutorial:ruby" + }, + "d": + { + "item": "minecraft:diamond" + } + }, + "result": + { + "item": "tutorial:ruby_block", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/tutorial/recipes/ruby_smelt.json b/src/main/resources/data/tutorial/recipes/ruby_smelt.json new file mode 100644 index 0000000..1c71e57 --- /dev/null +++ b/src/main/resources/data/tutorial/recipes/ruby_smelt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "minecraft:emerald" + }, + "result": "tutorial:ruby", + "experience": 1.0, + "cookingtime": 100 +} \ No newline at end of file