User Tools

Site Tools


tutorial:tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
tutorial:tools [2020/07/24 07:58]
boogiemonster1o1 [Creating the tool objects] minor change to constructor warning
tutorial:tools [2020/08/07 04:07]
boogiemonster1o1 [Creating a Tool Material class]
Line 8: Line 8:
 The first step to creating a tool is to implement the `ToolMaterial` interface in a class The first step to creating a tool is to implement the `ToolMaterial` interface in a class
  
-It's best to make the class as an enum, as it doesnt ​require you to create an object a regular class, and enum constants make adding tool materials easier.+It's best to make the class as an enum, as it doesn'​t ​require you to create an object, like a regular class, and enum constants make adding ​multiple ​tool materials easier.
  
  
 <code java [enable_line_numbers=true]>​ <code java [enable_line_numbers=true]>​
 public enum CustomToolMaterial implements ToolMaterial {; public enum CustomToolMaterial implements ToolMaterial {;
-    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeed, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {+    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeedMultiplier, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {
    
     }     }
Line 22: Line 22:
 1. `miningLevel` refers to the strength of the tool necessary to mine any material. Wood is 1, Stone is 2, Iron is 3, Diamond is 4. 1. `miningLevel` refers to the strength of the tool necessary to mine any material. Wood is 1, Stone is 2, Iron is 3, Diamond is 4.
 2. `itemDurability` refers to the initial durability of a tool. Gold is 32, Iron is 250, Netherite is 2031. 2. `itemDurability` refers to the initial durability of a tool. Gold is 32, Iron is 250, Netherite is 2031.
-3. `miningSpeed` refers to how fast your tools can break blocks. Gold is 12.0f, Diamond is 8.0f, Iron is 6.0f.+3. `miningSpeedMultiplier ​` refers to how fast your tools can break blocks. Gold is 12.0f, Diamond is 8.0f, Iron is 6.0f.
 4. `attackDamage` refers to the melee damage that your tools perform. Wood is 0.0f, Stone is 1.0f, Diamond is 3.0f 4. `attackDamage` refers to the melee damage that your tools perform. Wood is 0.0f, Stone is 1.0f, Diamond is 3.0f
-5. `enchantability` refers to the chance of getting high level enchantments on your tools. Wood is 15, Stone is 5, Gold is 22, Iron is 14.+5. `enchantability` refers to the chance of getting high-level enchantments on your tools. Wood is 15, Stone is 5, Gold is 22, Iron is 14.
 6. `repairIngredient` refers to the item that can repair your tools in an anvil. This will not be stored in an `Ingredient`,​ but in a `Lazy<​Ingredient>​`,​ which requires a `Supplier` in the constructor. 6. `repairIngredient` refers to the item that can repair your tools in an anvil. This will not be stored in an `Ingredient`,​ but in a `Lazy<​Ingredient>​`,​ which requires a `Supplier` in the constructor.
  
Line 32: Line 32:
     private final int miningLevel;​     private final int miningLevel;​
     private final int itemDurability;​     private final int itemDurability;​
-    private final float miningSpeed;+    private final float miningSpeedMultiplier;
     private final float attackDamage;​     private final float attackDamage;​
     private final int enchantability;​     private final int enchantability;​
     private final Lazy<​Ingredient>​ repairIngredient;​     private final Lazy<​Ingredient>​ repairIngredient;​
  
-    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeed, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {+    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeedMultiplier, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {
         this.miningLevel = miningLevel;​         this.miningLevel = miningLevel;​
         this.itemDurability = itemDurability;​         this.itemDurability = itemDurability;​
-        this.miningSpeed ​miningSpeed;+        this. miningSpeedMultiplier ​miningSpeedMultiplier;
         this.attackDamage = attackDamage;​         this.attackDamage = attackDamage;​
         this.enchantability = enchantability;​         this.enchantability = enchantability;​
Line 54: Line 54:
     private final int miningLevel;​     private final int miningLevel;​
     private final int itemDurability;​     private final int itemDurability;​
-    private final float miningSpeed;+    private final float miningSpeedMultiplier;
     private final float attackDamage;​     private final float attackDamage;​
     private final int enchantability;​     private final int enchantability;​
     private final Lazy<​Ingredient>​ repairIngredient;​     private final Lazy<​Ingredient>​ repairIngredient;​
  
-    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeed, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {+    CustomToolMaterial(int miningLevel,​ int itemDurability,​ float miningSpeedMultiplier, float attackDamage,​ int enchantability,​ Supplier<​Ingredient>​ repairIngredient) {
         this.miningLevel = miningLevel;​         this.miningLevel = miningLevel;​
         this.itemDurability = itemDurability;​         this.itemDurability = itemDurability;​
-        this.miningSpeed ​miningSpeed;+        this.miningSpeedMultiplier ​miningSpeedMultiplier;
         this.attackDamage = attackDamage;​         this.attackDamage = attackDamage;​
         this.enchantability = enchantability;​         this.enchantability = enchantability;​
Line 74: Line 74:
  
     @Override     @Override
-    public float getMiningSpeed() { +    public float getMiningSpeedMultiplier() { 
-        return this.miningSpeed;+        return this.miningSpeedMultiplier;
     }     }
  
Line 105: Line 105:
 <code java [enable_line_numbers=true]>​ <code java [enable_line_numbers=true]>​
 public enum CustomToolMaterial implements ToolMaterial { public enum CustomToolMaterial implements ToolMaterial {
-    POTATO(1, 167, 4.8F, 1.1F, 11, () -> Ingredient.ofItems(Items.POTATO));​+    POTATO(1, 167, 4.8F, 1.1F, 11, () -> 
 +        return ​Ingredient.ofItems(Items.POTATO)
 +    });
     ​     ​
     [...]     [...]
Line 132: Line 134:
 public static ToolItem POTATO_PICKAXE = new PickaxeSubclass(CustomToolMaterial.POTATO,​ 1, -2.8F, new Item.Settings().group(ItemGroup.TOOLS));​ public static ToolItem POTATO_PICKAXE = new PickaxeSubclass(CustomToolMaterial.POTATO,​ 1, -2.8F, new Item.Settings().group(ItemGroup.TOOLS));​
 public static ToolItem POTATO_AXE = new AxeSubclass(CustomToolMaterial.POTATO,​ 7.0F, -3.2F, new Item.Settings().group(ItemGroup.TOOLS));​ public static ToolItem POTATO_AXE = new AxeSubclass(CustomToolMaterial.POTATO,​ 7.0F, -3.2F, new Item.Settings().group(ItemGroup.TOOLS));​
-public static ToolItem POTATO_HOE = new HoeSubclass(CustomToolMaterial.POTATO,​ 7.0F, -3.2F, new Item.Settings().group(ItemGroup.TOOLS));​+public static ToolItem POTATO_HOE = new HoeSubclass(CustomToolMaterial.POTATO,​ 7, -3.2F, new Item.Settings().group(ItemGroup.TOOLS));​
 </​code>​ </​code>​
  
tutorial/tools.txt · Last modified: 2020/09/14 01:50 by draylar