Use custom tool materials (#2631)

* Use custom tool materials

* Separate jackhammer materials
This commit is contained in:
Technici4n 2021-12-07 13:53:39 +01:00 committed by GitHub
parent ce18aab73d
commit 7d9fb6d414
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 94 additions and 18 deletions

View file

@ -34,7 +34,6 @@ import net.minecraft.item.ToolMaterials;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import reborncore.RebornRegistry; import reborncore.RebornRegistry;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import reborncore.common.powerSystem.RcEnergyTier;
import team.reborn.energy.api.EnergyStorage; import team.reborn.energy.api.EnergyStorage;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.blockentity.cable.CableBlockEntity; import techreborn.blockentity.cable.CableBlockEntity;
@ -187,13 +186,13 @@ public class ModRegistry {
RebornRegistry.registerItem(TRContent.WRENCH = InitUtils.setup(new WrenchItem(), "wrench")); RebornRegistry.registerItem(TRContent.WRENCH = InitUtils.setup(new WrenchItem(), "wrench"));
RebornRegistry.registerItem(TRContent.PAINTING_TOOL = InitUtils.setup(new PaintingToolItem(), "painting_tool")); RebornRegistry.registerItem(TRContent.PAINTING_TOOL = InitUtils.setup(new PaintingToolItem(), "painting_tool"));
RebornRegistry.registerItem(TRContent.BASIC_DRILL = InitUtils.setup(new DrillItem(ToolMaterials.IRON, TechRebornConfig.basicDrillCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicDrillCost, 6F, -.5F, MiningLevel.IRON), "basic_drill")); RebornRegistry.registerItem(TRContent.BASIC_DRILL = InitUtils.setup(new DrillItem(TRToolMaterials.BASIC_DRILL, TechRebornConfig.basicDrillCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicDrillCost, 6F, -.5F, MiningLevel.IRON), "basic_drill"));
RebornRegistry.registerItem(TRContent.BASIC_CHAINSAW = InitUtils.setup(new ChainsawItem(ToolMaterials.IRON, TechRebornConfig.basicChainsawCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicChainsawCost, 20F, 0.5F, Items.IRON_AXE), "basic_chainsaw")); RebornRegistry.registerItem(TRContent.BASIC_CHAINSAW = InitUtils.setup(new ChainsawItem(TRToolMaterials.BASIC_CHAINSAW, TechRebornConfig.basicChainsawCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicChainsawCost, 20F, 0.5F, Items.IRON_AXE), "basic_chainsaw"));
RebornRegistry.registerItem(TRContent.BASIC_JACKHAMMER = InitUtils.setup(new JackhammerItem(TechRebornConfig.basicJackhammerCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicJackhammerCost), "basic_jackhammer")); RebornRegistry.registerItem(TRContent.BASIC_JACKHAMMER = InitUtils.setup(new JackhammerItem(TRToolMaterials.BASIC_JACKHAMMER, TechRebornConfig.basicJackhammerCharge, RcEnergyTier.MEDIUM, TechRebornConfig.basicJackhammerCost), "basic_jackhammer"));
RebornRegistry.registerItem(TRContent.ELECTRIC_TREE_TAP = InitUtils.setup(new ElectricTreetapItem(), "electric_treetap")); RebornRegistry.registerItem(TRContent.ELECTRIC_TREE_TAP = InitUtils.setup(new ElectricTreetapItem(), "electric_treetap"));
RebornRegistry.registerItem(TRContent.ADVANCED_DRILL = InitUtils.setup(new DrillItem(ToolMaterials.DIAMOND, TechRebornConfig.advancedDrillCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedDrillCost, 12F, 0.2F, MiningLevel.DIAMOND), "advanced_drill")); RebornRegistry.registerItem(TRContent.ADVANCED_DRILL = InitUtils.setup(new DrillItem(TRToolMaterials.ADVANCED_DRILL, TechRebornConfig.advancedDrillCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedDrillCost, 12F, 0.2F, MiningLevel.DIAMOND), "advanced_drill"));
RebornRegistry.registerItem(TRContent.ADVANCED_CHAINSAW = InitUtils.setup(new ChainsawItem(ToolMaterials.DIAMOND, TechRebornConfig.advancedChainsawCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE), "advanced_chainsaw")); RebornRegistry.registerItem(TRContent.ADVANCED_CHAINSAW = InitUtils.setup(new ChainsawItem(TRToolMaterials.ADVANCED_CHAINSAW, TechRebornConfig.advancedChainsawCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE), "advanced_chainsaw"));
RebornRegistry.registerItem(TRContent.ADVANCED_JACKHAMMER = InitUtils.setup(new AdvancedJackhammerItem(), "advanced_jackhammer")); RebornRegistry.registerItem(TRContent.ADVANCED_JACKHAMMER = InitUtils.setup(new AdvancedJackhammerItem(), "advanced_jackhammer"));
RebornRegistry.registerItem(TRContent.ROCK_CUTTER = InitUtils.setup(new RockCutterItem(), "rock_cutter")); RebornRegistry.registerItem(TRContent.ROCK_CUTTER = InitUtils.setup(new RockCutterItem(), "rock_cutter"));

View file

@ -0,0 +1,69 @@
package techreborn.init;
import net.minecraft.item.ToolMaterial;
import net.minecraft.item.ToolMaterials;
import net.minecraft.recipe.Ingredient;
import techreborn.TechReborn;
import static net.minecraft.item.ToolMaterials.*;
/**
* We use custom materials to allow LevelZ to tweak the mining level of our tools.
*/
public class TRToolMaterials {
public static final ToolMaterial BASIC_CHAINSAW = copy(IRON, "basic_chainsaw");
public static final ToolMaterial BASIC_DRILL = copy(IRON, "basic_drill");
public static final ToolMaterial BASIC_JACKHAMMER = copy(DIAMOND, "basic_jackhammer");
public static final ToolMaterial ADVANCED_CHAINSAW = copy(DIAMOND, "advanced_chainsaw");
public static final ToolMaterial ADVANCED_DRILL = copy(DIAMOND, "advanced_drill");
public static final ToolMaterial ADVANCED_JACKHAMMER = copy(DIAMOND, "advanced_jackhammer");
public static final ToolMaterial INDUSTRIAL_CHAINSAW = copy(DIAMOND, "industrial_chainsaw");
public static final ToolMaterial INDUSTRIAL_DRILL = copy(DIAMOND, "industrial_drill");
public static final ToolMaterial INDUSTRIAL_JACKHAMMER = copy(DIAMOND, "industrial_jackhammer");
public static final ToolMaterial ROCK_CUTTER = copy(DIAMOND, "rock_cutter");
public static final ToolMaterial NANOSABER = copy(DIAMOND, "nanosaber");
public static final ToolMaterial OMNI_TOOL = copy(DIAMOND, "omni_tool");
public static ToolMaterial copy(ToolMaterial material, String id) {
return new ToolMaterial() {
@Override
public int getDurability() {
return material.getDurability();
}
@Override
public float getMiningSpeedMultiplier() {
return material.getMiningSpeedMultiplier();
}
@Override
public float getAttackDamage() {
return material.getAttackDamage();
}
@Override
public int getMiningLevel() {
return material.getMiningLevel();
}
@Override
public int getEnchantability() {
return material.getEnchantability();
}
@Override
public Ingredient getRepairIngredient() {
return material.getRepairIngredient();
}
// This allows LevelZ to identify the material.
@Override
public String toString() {
return TechReborn.MOD_ID + ":" + id;
}
};
}
}

View file

@ -51,7 +51,7 @@ public class ChainsawItem extends AxeItem implements RcEnergyItem {
public final Item referenceTool; public final Item referenceTool;
public final RcEnergyTier tier; public final RcEnergyTier tier;
public ChainsawItem(ToolMaterials material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, Item referenceTool) { public ChainsawItem(ToolMaterial material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, Item referenceTool) {
// combat stats same as for diamond axe. Fix for #2468 // combat stats same as for diamond axe. Fix for #2468
super(material, 5.0F, -3.0F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(material, 5.0F, -3.0F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.maxCharge = energyCapacity; this.maxCharge = energyCapacity;

View file

@ -51,7 +51,7 @@ public class DrillItem extends PickaxeItem implements RcEnergyItem, DynamicAttri
public final int miningLevel; public final int miningLevel;
public final RcEnergyTier tier; public final RcEnergyTier tier;
public DrillItem(ToolMaterials material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, MiningLevel miningLevel) { public DrillItem(ToolMaterial material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, MiningLevel miningLevel) {
// combat stats same as for diamond pickaxe. Fix for #2468 // combat stats same as for diamond pickaxe. Fix for #2468
super(material, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(material, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.maxCharge = energyCapacity; this.maxCharge = energyCapacity;

View file

@ -41,6 +41,7 @@ import reborncore.common.powerSystem.RcEnergyItem;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import reborncore.common.util.ItemUtils; import reborncore.common.util.ItemUtils;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.init.TRToolMaterials;
import techreborn.utils.InitUtils; import techreborn.utils.InitUtils;
import techreborn.utils.ToolsUtil; import techreborn.utils.ToolsUtil;
@ -53,9 +54,9 @@ public class JackhammerItem extends PickaxeItem implements RcEnergyItem, Dynamic
public final int cost; public final int cost;
protected final float unpoweredSpeed = 0.5F; protected final float unpoweredSpeed = 0.5F;
public JackhammerItem(int energyCapacity, RcEnergyTier tier, int cost) { public JackhammerItem(ToolMaterial material, int energyCapacity, RcEnergyTier tier, int cost) {
// combat stats same as for diamond pickaxe. Fix for #2468 // combat stats same as for diamond pickaxe. Fix for #2468
super(ToolMaterials.DIAMOND, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(material, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.maxCharge = energyCapacity; this.maxCharge = energyCapacity;
this.tier = tier; this.tier = tier;
this.cost = cost; this.cost = cost;

View file

@ -43,6 +43,7 @@ import reborncore.common.misc.MultiBlockBreakingTool;
import reborncore.common.util.ItemUtils; import reborncore.common.util.ItemUtils;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRToolMaterials;
import techreborn.items.tool.JackhammerItem; import techreborn.items.tool.JackhammerItem;
import techreborn.utils.MessageIDs; import techreborn.utils.MessageIDs;
import techreborn.utils.ToolsUtil; import techreborn.utils.ToolsUtil;
@ -55,7 +56,7 @@ import java.util.stream.Collectors;
public class AdvancedJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool { public class AdvancedJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool {
public AdvancedJackhammerItem() { public AdvancedJackhammerItem() {
super(TechRebornConfig.advancedJackhammerCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedJackhammerCost); super(TRToolMaterials.ADVANCED_JACKHAMMER, TechRebornConfig.advancedJackhammerCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedJackhammerCost);
} }
private boolean shouldBreak(World worldIn, BlockPos originalPos, BlockPos pos, ItemStack stack) { private boolean shouldBreak(World worldIn, BlockPos originalPos, BlockPos pos, ItemStack stack) {

View file

@ -42,6 +42,7 @@ import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.init.TRToolMaterials;
import java.util.Random; import java.util.Random;
@ -53,7 +54,7 @@ public class RockCutterItem extends PickaxeItem implements RcEnergyItem {
// 10k Energy with 128 E\t charge rate // 10k Energy with 128 E\t charge rate
public RockCutterItem() { public RockCutterItem() {
// combat stats same as for diamond pickaxe. Fix for #2468 // combat stats same as for diamond pickaxe. Fix for #2468
super(ToolMaterials.DIAMOND, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(TRToolMaterials.ROCK_CUTTER, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
} }
// PickaxeItem // PickaxeItem

View file

@ -45,6 +45,7 @@ import org.jetbrains.annotations.Nullable;
import reborncore.common.util.ItemUtils; import reborncore.common.util.ItemUtils;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRToolMaterials;
import techreborn.items.tool.ChainsawItem; import techreborn.items.tool.ChainsawItem;
import techreborn.utils.MessageIDs; import techreborn.utils.MessageIDs;
import techreborn.utils.TagUtils; import techreborn.utils.TagUtils;
@ -58,7 +59,7 @@ public class IndustrialChainsawItem extends ChainsawItem {
private static final Direction[] SEARCH_ORDER = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST, Direction.UP}; private static final Direction[] SEARCH_ORDER = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST, Direction.UP};
public IndustrialChainsawItem() { public IndustrialChainsawItem() {
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialChainsawCharge, RcEnergyTier.EXTREME, TechRebornConfig.industrialChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE); super(TRToolMaterials.INDUSTRIAL_CHAINSAW, TechRebornConfig.industrialChainsawCharge, RcEnergyTier.EXTREME, TechRebornConfig.industrialChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE);
} }
private void findWood(World world, BlockPos pos, List<BlockPos> wood, List<BlockPos> leaves) { private void findWood(World world, BlockPos pos, List<BlockPos> wood, List<BlockPos> leaves) {

View file

@ -46,6 +46,7 @@ import reborncore.common.util.ItemUtils;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.init.TRToolMaterials;
import techreborn.items.tool.DrillItem; import techreborn.items.tool.DrillItem;
import techreborn.items.tool.MiningLevel; import techreborn.items.tool.MiningLevel;
import techreborn.utils.InitUtils; import techreborn.utils.InitUtils;
@ -57,7 +58,7 @@ import java.util.List;
public class IndustrialDrillItem extends DrillItem { public class IndustrialDrillItem extends DrillItem {
public IndustrialDrillItem() { public IndustrialDrillItem() {
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialDrillCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialDrillCost, 20.0F, 1.0F, MiningLevel.DIAMOND); super(TRToolMaterials.INDUSTRIAL_DRILL, TechRebornConfig.industrialDrillCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialDrillCost, 20.0F, 1.0F, MiningLevel.DIAMOND);
} }
private boolean shouldBreak(PlayerEntity playerIn, World worldIn, BlockPos originalPos, BlockPos pos) { private boolean shouldBreak(PlayerEntity playerIn, World worldIn, BlockPos originalPos, BlockPos pos) {

View file

@ -47,6 +47,7 @@ import reborncore.common.util.ChatUtils;
import reborncore.common.util.ItemUtils; import reborncore.common.util.ItemUtils;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRToolMaterials;
import techreborn.items.tool.JackhammerItem; import techreborn.items.tool.JackhammerItem;
import techreborn.utils.MessageIDs; import techreborn.utils.MessageIDs;
import techreborn.utils.ToolsUtil; import techreborn.utils.ToolsUtil;
@ -59,7 +60,7 @@ import java.util.stream.Collectors;
public class IndustrialJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool { public class IndustrialJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool {
public IndustrialJackhammerItem() { public IndustrialJackhammerItem() {
super(TechRebornConfig.industrialJackhammerCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialJackhammerCost); super(TRToolMaterials.INDUSTRIAL_JACKHAMMER, TechRebornConfig.industrialJackhammerCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialJackhammerCost);
} }
// Cycle Inactive, Active 3*3 and Active 5*5 // Cycle Inactive, Active 3*3 and Active 5*5

View file

@ -52,6 +52,7 @@ import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.init.TRToolMaterials;
import techreborn.utils.MessageIDs; import techreborn.utils.MessageIDs;
import java.util.List; import java.util.List;
@ -62,7 +63,7 @@ public class NanosaberItem extends SwordItem implements RcEnergyItem, ItemStackM
// 4ME max charge with 1k charge rate // 4ME max charge with 1k charge rate
public NanosaberItem() { public NanosaberItem() {
super(ToolMaterials.DIAMOND, 1, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(TRToolMaterials.NANOSABER, 1, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
} }
// SwordItem // SwordItem

View file

@ -52,6 +52,7 @@ import reborncore.common.powerSystem.RcEnergyTier;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.init.TRToolMaterials;
import techreborn.items.tool.MiningLevel; import techreborn.items.tool.MiningLevel;
import techreborn.utils.InitUtils; import techreborn.utils.InitUtils;
@ -66,7 +67,7 @@ public class OmniToolItem extends PickaxeItem implements RcEnergyItem, DynamicAt
// 4M FE max charge with 1k charge rate // 4M FE max charge with 1k charge rate
public OmniToolItem() { public OmniToolItem() {
super(ToolMaterials.DIAMOND, 3, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(TRToolMaterials.OMNI_TOOL, 3, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.miningLevel = MiningLevel.DIAMOND.intLevel; this.miningLevel = MiningLevel.DIAMOND.intLevel;
} }
@ -81,7 +82,7 @@ public class OmniToolItem extends PickaxeItem implements RcEnergyItem, DynamicAt
@Override @Override
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) { public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
if (getStoredEnergy(stack) >= cost) { if (getStoredEnergy(stack) >= cost) {
return ToolMaterials.DIAMOND.getMiningSpeedMultiplier(); return getMaterial().getMiningSpeedMultiplier();
} }
return super.getMiningSpeedMultiplier(stack, state); return super.getMiningSpeedMultiplier(stack, state);
} }