2013-12-17 21:48:21 +01:00
|
|
|
package com.pahimar.ee3.helper;
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Equivalent-Exchange-3
|
2013-12-16 02:26:42 +01:00
|
|
|
* <p/>
|
2013-11-20 01:42:29 +01:00
|
|
|
* NBTHelper
|
2013-12-16 02:26:42 +01:00
|
|
|
*
|
2013-11-20 01:42:29 +01:00
|
|
|
* @author pahimar
|
|
|
|
*/
|
2013-12-16 02:26:42 +01:00
|
|
|
public class ItemStackNBTHelper
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Initializes the NBT Tag Compound for the given ItemStack if it is null
|
2013-12-16 02:26:42 +01:00
|
|
|
*
|
2013-12-20 00:41:22 +01:00
|
|
|
* @param itemStack
|
|
|
|
* The ItemStack for which its NBT Tag Compound is being checked for initialization
|
2013-11-20 01:42:29 +01:00
|
|
|
*/
|
2013-12-16 02:26:42 +01:00
|
|
|
private static void initNBTTagCompound(ItemStack itemStack)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (itemStack.stackTagCompound == null)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
itemStack.setTagCompound(new NBTTagCompound());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static boolean hasTag(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-12-20 00:41:22 +01:00
|
|
|
return itemStack.stackTagCompound != null && itemStack.stackTagCompound.hasKey(keyName);
|
2013-11-20 01:42:29 +01:00
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void removeTag(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (itemStack.stackTagCompound != null)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
itemStack.stackTagCompound.removeTag(keyName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// String
|
2013-12-16 02:26:42 +01:00
|
|
|
public static String getString(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setString(itemStack, keyName, "");
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getString(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setString(ItemStack itemStack, String keyName, String keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setString(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// boolean
|
2013-12-16 02:26:42 +01:00
|
|
|
public static boolean getBoolean(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setBoolean(itemStack, keyName, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getBoolean(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setBoolean(ItemStack itemStack, String keyName, boolean keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setBoolean(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// byte
|
2013-12-16 02:26:42 +01:00
|
|
|
public static byte getByte(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setByte(itemStack, keyName, (byte) 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getByte(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setByte(ItemStack itemStack, String keyName, byte keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setByte(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// short
|
2013-12-16 02:26:42 +01:00
|
|
|
public static short getShort(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setShort(itemStack, keyName, (short) 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getShort(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setShort(ItemStack itemStack, String keyName, short keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setShort(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// int
|
2013-12-16 02:26:42 +01:00
|
|
|
public static int getInt(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setInteger(itemStack, keyName, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getInteger(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setInteger(ItemStack itemStack, String keyName, int keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setInteger(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// long
|
2013-12-16 02:26:42 +01:00
|
|
|
public static long getLong(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setLong(itemStack, keyName, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getLong(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setLong(ItemStack itemStack, String keyName, long keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setLong(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// float
|
2013-12-16 02:26:42 +01:00
|
|
|
public static float getFloat(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setFloat(itemStack, keyName, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getFloat(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setFloat(ItemStack itemStack, String keyName, float keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setFloat(keyName, keyValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
// double
|
2013-12-16 02:26:42 +01:00
|
|
|
public static double getDouble(ItemStack itemStack, String keyName)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
if (!itemStack.stackTagCompound.hasKey(keyName))
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
setDouble(itemStack, keyName, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemStack.stackTagCompound.getDouble(keyName);
|
|
|
|
}
|
|
|
|
|
2013-12-16 02:26:42 +01:00
|
|
|
public static void setDouble(ItemStack itemStack, String keyName, double keyValue)
|
|
|
|
{
|
2013-11-20 01:42:29 +01:00
|
|
|
|
|
|
|
initNBTTagCompound(itemStack);
|
|
|
|
|
|
|
|
itemStack.stackTagCompound.setDouble(keyName, keyValue);
|
|
|
|
}
|
|
|
|
}
|