diff --git a/src/main/java/ley/modding/dartcraft/item/DartItems.java b/src/main/java/ley/modding/dartcraft/item/DartItems.java index 7bca11e..0d8e134 100644 --- a/src/main/java/ley/modding/dartcraft/item/DartItems.java +++ b/src/main/java/ley/modding/dartcraft/item/DartItems.java @@ -1,8 +1,10 @@ package ley.modding.dartcraft.item; +import ley.modding.dartcraft.item.tool.ItemForceAxe; import ley.modding.dartcraft.item.tool.ItemForceMitts; import ley.modding.dartcraft.item.tool.ItemForcePickaxe; import ley.modding.dartcraft.item.tool.ItemForceShears; +import ley.modding.dartcraft.item.tool.ItemForceShovel; import ley.modding.tileralib.api.IRegistry; import net.minecraft.item.Item; @@ -15,6 +17,8 @@ public class DartItems { public static Item forceshard; public static Item forceshears; public static Item forcepickaxe; + public static Item forceshovel; + public static Item forceaxe; public static Item forcemitts; public static Item forceflask; public static Item entitybottle; @@ -27,6 +31,8 @@ public class DartItems { DartItems.forceshard = reg.registerItem(new BaseItem("forceshard")); DartItems.forcemitts = reg.registerItem(new ItemForceMitts()); DartItems.forcepickaxe = reg.registerItem(new ItemForcePickaxe()); + DartItems.forceshovel = reg.registerItem(new ItemForceShovel()); + DartItems.forceaxe = reg.registerItem(new ItemForceAxe()); DartItems.forceshears = reg.registerItem(new ItemForceShears()); DartItems.forceflask = reg.registerItem(new ItemForceFlask()); DartItems.entitybottle = reg.registerItem(new ItemEntityBottle()); diff --git a/src/main/java/ley/modding/dartcraft/item/tool/ItemForceAxe.java b/src/main/java/ley/modding/dartcraft/item/tool/ItemForceAxe.java new file mode 100644 index 0000000..7bcea5a --- /dev/null +++ b/src/main/java/ley/modding/dartcraft/item/tool/ItemForceAxe.java @@ -0,0 +1,75 @@ +package ley.modding.dartcraft.item.tool; + +import ley.modding.dartcraft.Dartcraft; +import ley.modding.dartcraft.api.IBreakable; +import ley.modding.dartcraft.api.IForceConsumer; +import ley.modding.dartcraft.item.DartItems; +import ley.modding.dartcraft.util.ForceConsumerUtils; +import ley.modding.dartcraft.util.Util; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.util.EnumHelper; + +public class ItemForceAxe extends ItemAxe 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); + + public ItemForceAxe() { + super(material); + Util.configureItem(this, "forceaxe"); + } + + @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 int getStored(ItemStack stack) { + return ForceConsumerUtils.getStoredForce(stack); + } + + @Override + public int getMaxStored(ItemStack var1) { + return 10000; + } + + @Override + public int amountUsedBase(ItemStack var1) { + return 0; + } + + @Override + public boolean useForce(ItemStack var1, int var2, boolean var3) { + return false; + } + + @Override + public boolean attemptRepair(ItemStack stack) { + return ForceConsumerUtils.attemptRepair(stack); + } + + @Override + public ItemStack itemReturned() { + return new ItemStack(DartItems.forceshard); + } +} diff --git a/src/main/java/ley/modding/dartcraft/item/tool/ItemForceShovel.java b/src/main/java/ley/modding/dartcraft/item/tool/ItemForceShovel.java new file mode 100644 index 0000000..1001c69 --- /dev/null +++ b/src/main/java/ley/modding/dartcraft/item/tool/ItemForceShovel.java @@ -0,0 +1,75 @@ +package ley.modding.dartcraft.item.tool; + +import ley.modding.dartcraft.Dartcraft; +import ley.modding.dartcraft.api.IBreakable; +import ley.modding.dartcraft.api.IForceConsumer; +import ley.modding.dartcraft.item.DartItems; +import ley.modding.dartcraft.util.ForceConsumerUtils; +import ley.modding.dartcraft.util.Util; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.util.EnumHelper; + +public class ItemForceShovel extends ItemSpade 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); + + public ItemForceShovel() { + super(material); + Util.configureItem(this, "forceshovel"); + } + + @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 int getStored(ItemStack stack) { + return ForceConsumerUtils.getStoredForce(stack); + } + + @Override + public int getMaxStored(ItemStack var1) { + return 10000; + } + + @Override + public int amountUsedBase(ItemStack var1) { + return 0; + } + + @Override + public boolean useForce(ItemStack var1, int var2, boolean var3) { + return false; + } + + @Override + public boolean attemptRepair(ItemStack stack) { + return ForceConsumerUtils.attemptRepair(stack); + } + + @Override + public ItemStack itemReturned() { + return new ItemStack(DartItems.forceshard); + } +} diff --git a/src/main/resources/assets/dartcraft/lang/en_US.lang b/src/main/resources/assets/dartcraft/lang/en_US.lang index a20c951..a68e0f1 100644 --- a/src/main/resources/assets/dartcraft/lang/en_US.lang +++ b/src/main/resources/assets/dartcraft/lang/en_US.lang @@ -5,6 +5,8 @@ item.forcestick.name=Force Stick item.forceshard.name=Force Shard item.forcemitts.name=Force Mitts item.forceshears.name=Force Shears +item.forceshovel.name=Force Shovel +item.forceaxe.name=Force Axe item.forceflask_empty.name=Force Flask item.forceflask_milk.name=Milk Flask item.forceflask_potion_force.name=Liquid Force Flask diff --git a/src/main/resources/assets/dartcraft/textures/items/forcespade.png b/src/main/resources/assets/dartcraft/textures/items/forceshovel.png similarity index 100% rename from src/main/resources/assets/dartcraft/textures/items/forcespade.png rename to src/main/resources/assets/dartcraft/textures/items/forceshovel.png