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 {
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean par4) {
getWrappedDesc(list, itemStack);
}
public static void getWrappedDesc(List<String> 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<String> lines = new Vector<String>();
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<String> e = lines.elements(); e.hasMoreElements(); c++) {
ret[c] = (String) e.nextElement();
}
return ret;
}
}