From 047df887933b8e690b25d2cab40cef8ba3deb641 Mon Sep 17 00:00:00 2001 From: tterrag1098 Date: Fri, 9 Jan 2015 02:33:03 -0500 Subject: [PATCH] Further simplify IChiselItem and improve chisel tooltips --- .../cricketcraft/chisel/api/IChiselItem.java | 8 ------ .../chisel/inventory/ContainerChisel.java | 10 ++------ .../chisel/item/chisel/ChiselController.java | 4 +-- .../chisel/item/chisel/ItemChisel.java | 16 ++++++------ .../cricketcraft/chisel/utils/General.java | 25 +++++++++++++++++-- .../resources/assets/chisel/lang/en_US.lang | 9 +++++-- 6 files changed, 43 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/cricketcraft/chisel/api/IChiselItem.java b/src/main/java/com/cricketcraft/chisel/api/IChiselItem.java index ec78970a..f198aeee 100644 --- a/src/main/java/com/cricketcraft/chisel/api/IChiselItem.java +++ b/src/main/java/com/cricketcraft/chisel/api/IChiselItem.java @@ -18,12 +18,4 @@ public interface IChiselItem extends IChiselMode { */ void onChisel(World world, IInventory inv, int slot, ItemStack chisel, ItemStack target); - /** - * Gets the current target of this chisel. - * - * @param chisel - * @return The ItemStack this chisel is targeting. {@code null} if nothing is targeted. - */ - ItemStack getTarget(ItemStack chisel); - } diff --git a/src/main/java/com/cricketcraft/chisel/inventory/ContainerChisel.java b/src/main/java/com/cricketcraft/chisel/inventory/ContainerChisel.java index 23421400..9476e720 100644 --- a/src/main/java/com/cricketcraft/chisel/inventory/ContainerChisel.java +++ b/src/main/java/com/cricketcraft/chisel/inventory/ContainerChisel.java @@ -143,14 +143,8 @@ public class ContainerChisel extends Container { if (finished) return; - if (chisel.stackTagCompound == null) - chisel.stackTagCompound = new NBTTagCompound(); - - NBTTagCompound tag = new NBTTagCompound(); - if (inventory.getStackInSpecialSlot() != null) - inventory.getStackInSpecialSlot().writeToNBT(tag); - - chisel.stackTagCompound.setTag("chiselTarget", tag); + General.setChiselTarget(chisel, inventory.getStackInSpecialSlot()); + playerInventory.mainInventory[currentIndex] = chisel; } } diff --git a/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java b/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java index d90c6424..11e1ecb4 100644 --- a/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java +++ b/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java @@ -14,11 +14,11 @@ import org.apache.commons.lang3.ArrayUtils; import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.PacketHandler; -import com.cricketcraft.chisel.api.ChiselMode; import com.cricketcraft.chisel.api.IChiselItem; import com.cricketcraft.chisel.carving.Carving; import com.cricketcraft.chisel.carving.CarvingVariation; import com.cricketcraft.chisel.client.GeneralChiselClient; +import com.cricketcraft.chisel.utils.General; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -56,7 +56,7 @@ public final class ChiselController { CarvingVariation[] variations = Carving.chisel.getVariations(block, metadata); if (variations != null) { - ItemStack target = ((IChiselItem) held.getItem()).getTarget(held); + ItemStack target = General.getChiselTarget(held); if (target != null) { for (CarvingVariation v : variations) { diff --git a/src/main/java/com/cricketcraft/chisel/item/chisel/ItemChisel.java b/src/main/java/com/cricketcraft/chisel/item/chisel/ItemChisel.java index 2e871af4..d1a7d2ce 100644 --- a/src/main/java/com/cricketcraft/chisel/item/chisel/ItemChisel.java +++ b/src/main/java/com/cricketcraft/chisel/item/chisel/ItemChisel.java @@ -59,7 +59,15 @@ public class ItemChisel extends Item implements IChiselItem { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean held) { - list.add(StatCollector.translateToLocal(getUnlocalizedName(stack) + ".desc")); + String unloc = "item.chisel.chisel.desc."; + for (int i = 0; i < 3; i ++) { + list.add(StatCollector.translateToLocal(unloc + i)); + } + + if (type == ChiselType.DIAMOND) { + list.add(""); + list.add(StatCollector.translateToLocal(getUnlocalizedName(stack) + ".desc")); + } } @Override @@ -88,10 +96,4 @@ public class ItemChisel extends Item implements IChiselItem { } } } - - @Override - public ItemStack getTarget(ItemStack chisel) { - return chisel.hasTagCompound() ? ItemStack.loadItemStackFromNBT(chisel.stackTagCompound.getCompoundTag("chiselTarget")) : null; - } - } \ No newline at end of file diff --git a/src/main/java/com/cricketcraft/chisel/utils/General.java b/src/main/java/com/cricketcraft/chisel/utils/General.java index 1193d6a9..f2892cfc 100644 --- a/src/main/java/com/cricketcraft/chisel/utils/General.java +++ b/src/main/java/com/cricketcraft/chisel/utils/General.java @@ -8,6 +8,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; @@ -89,6 +90,26 @@ public class General { Vec3 var23 = var13.addVector(var18 * var21, var17 * var21, var20 * var21); return par1World.rayTraceBlocks(var13, var23, par3); } - - public static final String[] sGNames = new String[] { "White", "Orange", "Magenta", "Light Blue", "Yellow", "Lime", "Pink", "Gray", "Light Gray", "Cyan", "Purple", "Blue", "Brown", "Green", "Red", "Black" }; + + public static ItemStack getChiselTarget(ItemStack chisel) { + return chisel.hasTagCompound() ? ItemStack.loadItemStackFromNBT(chisel.stackTagCompound.getCompoundTag("chiselTarget")) : null; + } + + public static final String[] sGNames = new String[] { "White", "Orange", "Magenta", "Light Blue", "Yellow", "Lime", "Pink", "Gray", "Light Gray", "Cyan", "Purple", "Blue", "Brown", "Green", + "Red", "Black" }; + + public static void setChiselTarget(ItemStack chisel, ItemStack target) { + initTag(chisel); + NBTTagCompound targetTag = new NBTTagCompound(); + if (target != null) { + target.writeToNBT(targetTag); + } + chisel.getTagCompound().setTag("chiselTarget", targetTag); + } + + private static void initTag(ItemStack stack) { + if (!stack.hasTagCompound()) { + stack.setTagCompound(new NBTTagCompound()); + } + } } diff --git a/src/main/resources/assets/chisel/lang/en_US.lang b/src/main/resources/assets/chisel/lang/en_US.lang index b6596c9c..aab6cb59 100644 --- a/src/main/resources/assets/chisel/lang/en_US.lang +++ b/src/main/resources/assets/chisel/lang/en_US.lang @@ -2,9 +2,14 @@ # Item localizations item.chisel.chisel_iron.name=Chisel -item.chisel.desc=Right-Click to open GUI + +item.chisel.chisel.desc.0=Right-Click to open GUI +item.chisel.chisel.desc.1=Left click to chisel blocks in world +item.chisel.chisel.desc.2=Can target a block by leaving it in the inventory + item.chisel.chisel_diamond.name=Diamond Chisel -item.chisel.chisel_diamond.desc=Left click and it changes blocks! +item.chisel.chisel_diamond.desc=Has multiple modes for chiseling. WIP. + item.ballMoss.name=Ball O' Moss item.ballMoss.desc=Right-Click to throw. This will turn Cobblestone to Moss Stone on impact. item.cloudBottle.name=Cloud In A Bottle