diff --git a/src/main/java/com/cricketcraft/chisel/item/BaseItem.java b/src/main/java/com/cricketcraft/chisel/item/BaseItem.java new file mode 100644 index 00000000..1b1248f5 --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/item/BaseItem.java @@ -0,0 +1,86 @@ +package com.cricketcraft.chisel.item; + +import java.util.Enumeration; +import java.util.List; +import java.util.Vector; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +public class BaseItem extends Item { + @Override + public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean par4){ + getWrappedDesc(list, itemStack); + } + public static void getWrappedDesc(List list, ItemStack stack) + { + String[] wrappedDesc; + wrappedDesc = wrap(StatCollector.translateToLocal(stack.getUnlocalizedName() + ".desc"), 35); + for (String element : wrappedDesc) + list.add(element.trim()); + } + public static String[] wrap(String input, int len) + { + // return empty array for null text + if (input == null) + return new String[] {}; + + // return text if len is zero or less + if (len <= 0) + return new String[] { input }; + + // return text if less than length + if (input.length() <= len) + return new String[] { input }; + + char[] chars = input.toCharArray(); + Vector lines = new Vector(); + StringBuffer line = new StringBuffer(); + StringBuffer word = new StringBuffer(); + + for (char c : chars) + { + word.append(c); + + if (c == ' ') + { + if ((line.length() + word.length()) > len) + { + lines.add(line.toString()); + line.delete(0, line.length()); + } + + line.append(word); + word.delete(0, word.length()); + } + } + + // handle any extra chars in current word + if (word.length() > 0) + { + if ((line.length() + word.length()) > len) + { + lines.add(line.toString()); + line.delete(0, line.length()); + } + line.append(word); + } + + // handle extra line + if (line.length() > 0) + { + lines.add(line.toString()); + } + + String[] ret = new String[lines.size()]; + int c = 0; // counter + for (Enumeration e = lines.elements(); e.hasMoreElements(); c++) + { + ret[c] = (String) e.nextElement(); + } + + return ret; + } +} diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemBallOMoss.java b/src/main/java/com/cricketcraft/chisel/item/ItemBallOMoss.java index 8d5ffa86..e531e47e 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemBallOMoss.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemBallOMoss.java @@ -1,13 +1,16 @@ package com.cricketcraft.chisel.item; +import java.util.List; + import com.cricketcraft.chisel.entity.EntityBallOMoss; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class ItemBallOMoss extends Item +public class ItemBallOMoss extends BaseItem { public ItemBallOMoss() diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java b/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java index 1fced424..4aa53503 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemChisel.java @@ -1,19 +1,21 @@ package com.cricketcraft.chisel.item; import java.util.HashSet; +import java.util.List; import java.util.Set; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + import com.cricketcraft.chisel.Chisel; import com.cricketcraft.chisel.api.ChiselMode; import com.cricketcraft.chisel.api.IChiselMode; import com.cricketcraft.chisel.carving.CarvableHelper; import com.cricketcraft.chisel.carving.Carving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.world.World; - public class ItemChisel extends ItemTool implements IChiselMode { private static final HashSet toolSet = new HashSet(); public static Carving carving = Carving.chisel; @@ -28,7 +30,6 @@ public class ItemChisel extends ItemTool implements IChiselMode { toolSet.add("chisel"); } - @Override public Set getToolClasses(ItemStack stack) { return toolSet; @@ -50,4 +51,8 @@ public class ItemChisel extends ItemTool implements IChiselMode { public ChiselMode getChiselMode(ItemStack itemStack) { return ChiselMode.SINGLE; } + @Override + public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean par4){ + StatCollector.translateToLocal(itemStack.getUnlocalizedName() + ".desc"); + } } diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemCloudInABottle.java b/src/main/java/com/cricketcraft/chisel/item/ItemCloudInABottle.java index 6ee76187..ca0d3533 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemCloudInABottle.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemCloudInABottle.java @@ -1,13 +1,16 @@ package com.cricketcraft.chisel.item; +import java.util.List; + import com.cricketcraft.chisel.entity.EntityCloudInABottle; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class ItemCloudInABottle extends Item +public class ItemCloudInABottle extends BaseItem { public ItemCloudInABottle() @@ -15,7 +18,6 @@ public class ItemCloudInABottle extends Item super(); setUnlocalizedName("cloudBottle"); } - @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemSmashingRock.java b/src/main/java/com/cricketcraft/chisel/item/ItemSmashingRock.java index 32fdda78..bca3a686 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemSmashingRock.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemSmashingRock.java @@ -1,13 +1,16 @@ package com.cricketcraft.chisel.item; +import java.util.List; + import com.cricketcraft.chisel.entity.EntitySmashingRock; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class ItemSmashingRock extends Item +public class ItemSmashingRock extends BaseItem { public ItemSmashingRock() diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemUpgrade.java b/src/main/java/com/cricketcraft/chisel/item/ItemUpgrade.java index 2a8e1175..f892630e 100644 --- a/src/main/java/com/cricketcraft/chisel/item/ItemUpgrade.java +++ b/src/main/java/com/cricketcraft/chisel/item/ItemUpgrade.java @@ -15,7 +15,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class ItemUpgrade extends Item{ +public class ItemUpgrade extends BaseItem{ public IIcon[] icons = new IIcon[6]; @@ -34,11 +34,6 @@ public class ItemUpgrade extends Item{ return true; } - @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean par4){ - list.add(StatCollector.translateToLocal(this.getUnlocalizedName(itemStack) + ".desc")); - } - @Override public IIcon getIconFromDamage(int meta) { if (meta > 3) diff --git a/src/main/resources/assets/chisel/lang/en_US.lang b/src/main/resources/assets/chisel/lang/en_US.lang index a71c00f6..65bcfd78 100644 --- a/src/main/resources/assets/chisel/lang/en_US.lang +++ b/src/main/resources/assets/chisel/lang/en_US.lang @@ -2,9 +2,13 @@ # Item localizations item.chisel.name=Chisel +item.chisel.desc=Right-Click to open GUI 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 +item.cloudBottle.desc=Right-Click to throw. This will spawn clouds on impact. item.smashingRock.name=Smashing Rock +item.smashingRock.desc=Right-Click to throw. This will turn Cobblestone into Gravel, Gravel into Sand etc on impact. item.upgrade_speed.name=Speed Upgrade item.upgrade_automation.name=Automation Upgrade item.upgrade_stack.name=Stack Upgrade