Added NBT data to liquid stacks. Closes #501
This commit is contained in:
parent
969cd4e762
commit
b66d3b6b0f
|
@ -27,6 +27,7 @@ public class LiquidStack
|
||||||
public final int itemID;
|
public final int itemID;
|
||||||
public int amount;
|
public int amount;
|
||||||
public final int itemMeta;
|
public final int itemMeta;
|
||||||
|
public NBTTagCompound extra;
|
||||||
|
|
||||||
public LiquidStack(int itemID, int amount) { this(itemID, amount, 0); }
|
public LiquidStack(int itemID, int amount) { this(itemID, amount, 0); }
|
||||||
public LiquidStack(Item item, int amount) { this(item.itemID, amount, 0); }
|
public LiquidStack(Item item, int amount) { this(item.itemID, amount, 0); }
|
||||||
|
@ -39,12 +40,25 @@ public class LiquidStack
|
||||||
this.itemMeta = itemDamage;
|
this.itemMeta = itemDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LiquidStack(int itemID, int amount, int itemDamage, NBTTagCompound nbt)
|
||||||
|
{
|
||||||
|
this(itemID, amount, itemDamage);
|
||||||
|
if (nbt != null)
|
||||||
|
{
|
||||||
|
extra = (NBTTagCompound)nbt.copy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
|
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
nbt.setInteger("Amount", amount);
|
nbt.setInteger("Amount", amount);
|
||||||
nbt.setShort("Id", (short)itemID);
|
nbt.setShort("Id", (short)itemID);
|
||||||
nbt.setShort("Meta", (short)itemMeta);
|
nbt.setShort("Meta", (short)itemMeta);
|
||||||
nbt.setString("LiquidName", LiquidDictionary.findLiquidName(this));
|
nbt.setString("LiquidName", LiquidDictionary.findLiquidName(this));
|
||||||
|
if (extra != null)
|
||||||
|
{
|
||||||
|
nbt.setTag("extra", extra);
|
||||||
|
}
|
||||||
return nbt;
|
return nbt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +78,7 @@ public class LiquidStack
|
||||||
*/
|
*/
|
||||||
public LiquidStack copy()
|
public LiquidStack copy()
|
||||||
{
|
{
|
||||||
return new LiquidStack(itemID, amount, itemMeta);
|
return new LiquidStack(itemID, amount, itemMeta, extra);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,7 +87,7 @@ public class LiquidStack
|
||||||
*/
|
*/
|
||||||
public boolean isLiquidEqual(LiquidStack other)
|
public boolean isLiquidEqual(LiquidStack other)
|
||||||
{
|
{
|
||||||
return other != null && itemID == other.itemID && itemMeta == other.itemMeta;
|
return other != null && itemID == other.itemID && itemMeta == other.itemMeta && (extra == null ? other.extra == null : extra.equals(other.extra));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,7 +123,12 @@ public class LiquidStack
|
||||||
*/
|
*/
|
||||||
public ItemStack asItemStack()
|
public ItemStack asItemStack()
|
||||||
{
|
{
|
||||||
return new ItemStack(itemID, 1, itemMeta);
|
ItemStack stack = new ItemStack(itemID, 1, itemMeta);
|
||||||
|
if (extra != null)
|
||||||
|
{
|
||||||
|
stack.stackTagCompound = (NBTTagCompound)extra.copy();
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -139,6 +158,10 @@ public class LiquidStack
|
||||||
}
|
}
|
||||||
int amount = nbt.getInteger("Amount");
|
int amount = nbt.getInteger("Amount");
|
||||||
LiquidStack liquidstack = new LiquidStack(itemID, amount, itemMeta);
|
LiquidStack liquidstack = new LiquidStack(itemID, amount, itemMeta);
|
||||||
|
if (nbt.hasKey("extra"))
|
||||||
|
{
|
||||||
|
liquidstack.extra = nbt.getCompoundTag("extra");
|
||||||
|
}
|
||||||
return liquidstack.itemID == 0 ? null : liquidstack;
|
return liquidstack.itemID == 0 ? null : liquidstack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +246,7 @@ public class LiquidStack
|
||||||
if (ob instanceof LiquidStack)
|
if (ob instanceof LiquidStack)
|
||||||
{
|
{
|
||||||
LiquidStack ls = (LiquidStack)ob;
|
LiquidStack ls = (LiquidStack)ob;
|
||||||
return ls.itemID == itemID && ls.itemMeta == itemMeta;
|
return ls.itemID == itemID && ls.itemMeta == itemMeta && (extra == null ? ls.extra == null : extra.equals(ls.extra));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue