From 771440dccc8bd249d0ec7a5d40019dac2fe31247 Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Thu, 1 Apr 2021 14:33:51 +0200 Subject: [PATCH] Starting with Force Pickaxe --- .../java/ley/modding/dartcraft/Dartcraft.java | 2 + .../dartcraft/item/tool/ItemForcePickaxe.java | 119 ++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 src/main/java/ley/modding/dartcraft/item/tool/ItemForcePickaxe.java diff --git a/src/main/java/ley/modding/dartcraft/Dartcraft.java b/src/main/java/ley/modding/dartcraft/Dartcraft.java index b6f0e95..e4f17e1 100644 --- a/src/main/java/ley/modding/dartcraft/Dartcraft.java +++ b/src/main/java/ley/modding/dartcraft/Dartcraft.java @@ -10,6 +10,7 @@ import ley.modding.dartcraft.block.Blocks; import ley.modding.dartcraft.internal.Registry; import ley.modding.dartcraft.item.BaseItem; import ley.modding.dartcraft.item.Items; +import ley.modding.dartcraft.item.tool.ItemForcePickaxe; import ley.modding.dartcraft.proxy.CommonProxy; import ley.modding.dartcraft.tab.DartcraftTab; import ley.modding.tileralib.api.IRegistry; @@ -44,6 +45,7 @@ public class Dartcraft { Items.forcenugget = registry.registerItem(new BaseItem("forcenugget")); Items.forcestick = registry.registerItem(new BaseItem("forcestick")); Items.forceshard = registry.registerItem(new BaseItem("forceshard")); + registry.registerItem(new ItemForcePickaxe()); Blocks.powerore = registry.registerBlock(new BlockPowerOre()); } diff --git a/src/main/java/ley/modding/dartcraft/item/tool/ItemForcePickaxe.java b/src/main/java/ley/modding/dartcraft/item/tool/ItemForcePickaxe.java new file mode 100644 index 0000000..275c04a --- /dev/null +++ b/src/main/java/ley/modding/dartcraft/item/tool/ItemForcePickaxe.java @@ -0,0 +1,119 @@ +package ley.modding.dartcraft.item.tool; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ley.modding.dartcraft.Dartcraft; +import ley.modding.dartcraft.api.IBreakable; +import ley.modding.dartcraft.api.IForceConsumer; +import ley.modding.dartcraft.item.Items; +import ley.modding.dartcraft.util.ForceConsumerUtils; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.common.util.EnumHelper; + +public class ItemForcePickaxe extends ItemPickaxe implements IBreakable, IForceConsumer { + + private static int damage = 1; + private static float efficiency = 5.0F; + private static int toolLevel = 10; + public static ToolMaterial material = EnumHelper.addToolMaterial("FORCE", toolLevel, 512, efficiency, (float) damage, 0); + + private IIcon heatPick; + + public ItemForcePickaxe() { + super(material); + setUnlocalizedName("forcepickaxe"); + setTextureName(Dartcraft.MODID + ":forcepickaxe"); + setCreativeTab(Dartcraft.tab); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if (!stack.hasTagCompound()) { + stack.setTagCompound(new NBTTagCompound()); + } + + stack.getTagCompound().setBoolean("active", !stack.getTagCompound().getBoolean("active")); + if (!Dartcraft.proxy.isSimulating(world)) { + if (stack.getTagCompound().getBoolean("active")) { + Dartcraft.proxy.sendChatToPlayer(player, "Area mode activated."); + } else { + Dartcraft.proxy.sendChatToPlayer(player, "Area mode deactivated"); + } + } + + return stack; + } + + @Override + public ItemStack itemReturned() { + return new ItemStack(Items.forceshard); + } + + + + public IIcon getIcon(ItemStack stack, int pass) { + if(stack.hasTagCompound()) { + NBTTagCompound upgrades = stack.getTagCompound().getCompoundTag("upgrades"); + if(upgrades != null && upgrades.hasKey("heat")) { + return heatPick; + } + } + return itemIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public EnumRarity getRarity(ItemStack stack) { + if(stack.hasTagCompound() && stack.getTagCompound().hasKey("upgrades")) { + NBTTagCompound upgrades = stack.getTagCompound().getCompoundTag("upgrades"); + if(upgrades.hasKey("Heat")) { + return EnumRarity.uncommon; + } + } + + return EnumRarity.common; + } + + @Override + public void registerIcons(IIconRegister reg) { + heatPick = reg.registerIcon(Dartcraft.MODID + ":heatpickaxe"); + super.registerIcons(reg); + } + + @Override + public int getStored(ItemStack stack) { + return ForceConsumerUtils.getStoredForce(stack); + } + + @Override + public int getMaxStored(ItemStack stack) { + return 10000; + } + + @Override + public int amountUsedBase(ItemStack stack) { + return 0; + } + + @Override + public boolean useForce(ItemStack stack, int var2, boolean var3) { + return false; + } + + @Override + public boolean attemptRepair(ItemStack stack) { + return ForceConsumerUtils.attemptRepair(stack); + } +}