Cleanup on crate wrenching code, also made ore filtering optional

This commit is contained in:
Robert S 2014-04-14 05:22:22 -04:00
parent 847c182571
commit 1212e27f54
2 changed files with 343 additions and 365 deletions

View file

@ -17,427 +17,400 @@ import resonantinduction.core.Reference;
import universalelectricity.api.UniversalElectricity; import universalelectricity.api.UniversalElectricity;
import calclavia.lib.prefab.block.BlockTile; import calclavia.lib.prefab.block.BlockTile;
import calclavia.lib.utility.WrenchUtility; import calclavia.lib.utility.WrenchUtility;
import calclavia.lib.utility.inventory.InventoryUtility;
import codechicken.multipart.ControlKeyModifer; import codechicken.multipart.ControlKeyModifer;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
/** /** A block that allows the placement of mass amount of a specific item within it. It will be allowed
* A block that allows the placement of mass amount of a specific item within it. It will be allowed
* to go on Conveyor Belts. * to go on Conveyor Belts.
* *
* NOTE: Crates should be upgraded with an item. * NOTE: Crates should be upgraded with an item.
* *
* @author DarkGuardsman * @author DarkGuardsman */
*/
public class BlockCrate extends BlockTile public class BlockCrate extends BlockTile
{ {
Icon advanced, elite; Icon advanced, elite;
public BlockCrate(int id) public BlockCrate(int id)
{ {
super(id, UniversalElectricity.machine); super(id, UniversalElectricity.machine);
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@Override @Override
public void registerIcons(IconRegister iconReg) public void registerIcons(IconRegister iconReg)
{ {
this.blockIcon = iconReg.registerIcon(Reference.PREFIX + "crate_wood"); this.blockIcon = iconReg.registerIcon(Reference.PREFIX + "crate_wood");
this.advanced = iconReg.registerIcon(Reference.PREFIX + "crate_iron"); this.advanced = iconReg.registerIcon(Reference.PREFIX + "crate_iron");
this.elite = iconReg.registerIcon(Reference.PREFIX + "crate_steel"); this.elite = iconReg.registerIcon(Reference.PREFIX + "crate_steel");
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Icon getIcon(int side, int meta) public Icon getIcon(int side, int meta)
{ {
if (meta == 1) if (meta == 1)
{ {
return advanced; return advanced;
} }
else if (meta == 2) else if (meta == 2)
{ {
return elite; return elite;
} }
return this.blockIcon; return this.blockIcon;
} }
@Override @Override
public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player)
{ {
if (!world.isRemote) if (!world.isRemote)
{ {
if (world.getBlockTileEntity(x, y, z) instanceof TileCrate) if (world.getBlockTileEntity(x, y, z) instanceof TileCrate)
{ {
TileCrate tileEntity = (TileCrate) world.getBlockTileEntity(x, y, z); TileCrate tileEntity = (TileCrate) world.getBlockTileEntity(x, y, z);
/** Make double clicking input all stacks. */ /** Make double clicking input all stacks. */
boolean allMode = (world.getWorldTime() - tileEntity.prevClickTime < 10); boolean allMode = (world.getWorldTime() - tileEntity.prevClickTime < 10);
tileEntity.prevClickTime = world.getWorldTime(); tileEntity.prevClickTime = world.getWorldTime();
this.tryEject(tileEntity, player, allMode); this.tryEject(tileEntity, player, allMode);
} }
} }
} }
/** Placed the item the player is holding into the crate. */ /** Placed the item the player is holding into the crate. */
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
{ {
if (!world.isRemote) if (!world.isRemote)
{ {
if (world.getBlockTileEntity(x, y, z) instanceof TileCrate) if (world.getBlockTileEntity(x, y, z) instanceof TileCrate)
{ {
TileCrate tile = (TileCrate) world.getBlockTileEntity(x, y, z); TileCrate tile = (TileCrate) world.getBlockTileEntity(x, y, z);
tile.buildSampleStack();
ItemStack sampleStack = tile.getSampleStack();
if (player.getCurrentEquippedItem() != null && WrenchUtility.isWrench(player.getCurrentEquippedItem())) if (WrenchUtility.isWrench(player.getCurrentEquippedItem()))
{ {
if (player.isSneaking()) if (player.isSneaking())
{ {
ItemStack containingStack = tile.getSampleStack(); if (sampleStack != null && sampleStack.stackSize > 0)
tile.buildSampleStack(); {
ItemStack dropStack = new ItemStack(this, 1, world.getBlockMetadata(x, y, z));
ItemBlockCrate.setContainingItemStack(dropStack, sampleStack);
InventoryUtility.dropItemStack(world, x, y, z, dropStack, 10, 0);
if (containingStack != null) for (int i = 0; i < tile.getInventory().getSizeInventory(); i++)
{ {
if (containingStack.stackSize > 0) tile.getInventory().setInventorySlotContents(i, null);
{ }
float area = 0.7F; world.setBlock(x, y, z, 0, 0, 3);
double dropX = (world.rand.nextFloat() * area) + (1.0F - area) * 0.5D; }
double dropY = (world.rand.nextFloat() * area) + (1.0F - area) * 0.5D; return true;
double dropZ = (world.rand.nextFloat() * area) + (1.0F - area) * 0.5D; }
ItemStack dropStack = new ItemStack(this, 1, tile.getBlockMetadata()); int oreID = OreDictionary.getOreID(sampleStack);
ItemBlockCrate.setContainingItemStack(dropStack, containingStack);
EntityItem var13 = new EntityItem(world, x + dropX, y + dropY, z + dropZ, dropStack); if (oreID != -1)
var13.delayBeforeCanPickup = 10; {
world.spawnEntityInWorld(var13); ArrayList<ItemStack> ores = OreDictionary.getOres(oreID);
for (int i = 0; i < tile.getInventory().getSizeInventory(); i++) for (int i = 0; i < ores.size(); i++)
{ {
tile.getInventory().setInventorySlotContents(i, null); if (ores.get(i).isItemEqual(sampleStack))
} {
world.setBlock(x, y, z, 0, 0, 3); int nextIndex = (i + 1) % ores.size();
return true; ItemStack desiredStack = ores.get(nextIndex).copy();
} desiredStack.stackSize = sampleStack.stackSize;
}
return false; for (int index = 0; index < tile.getSizeInventory(); index++)
} tile.setInventorySlotContents(index, null);
/** tile.addStackToStorage(desiredStack);
* Swap oredict nodes if the player is wrenching the crate. break;
*/ }
ItemStack sampleStack = tile.getSampleStack(); }
}
return true;
}
int oreID = OreDictionary.getOreID(sampleStack); /** Make double clicking input all stacks. */
boolean allMode = (world.getWorldTime() - tile.prevClickTime < 10);
if (oreID != -1) tile.prevClickTime = world.getWorldTime();
{
ArrayList<ItemStack> ores = OreDictionary.getOres(oreID);
for (int i = 0; i < ores.size(); i++) if (ControlKeyModifer.isControlDown(player))
{ {
if (ores.get(i).isItemEqual(sampleStack)) tryEject(tile, player, allMode);
{ }
int nextIndex = (i + 1) % ores.size(); else
ItemStack desiredStack = ores.get(nextIndex).copy(); {
desiredStack.stackSize = sampleStack.stackSize; ItemStack current = player.inventory.getCurrentItem();
if (side == 1 && player.capabilities.isCreativeMode)
{
if (current != null && tile.getSampleStack() == null)
{
ItemStack cStack = current.copy();
cStack.stackSize = TileCrate.getSlotCount(world.getBlockMetadata(x, y, z)) * 64;
addStackToCrate(tile, cStack);
}
}
for (int index = 0; index < tile.getSizeInventory(); index++) tryInsert(tile, player, allMode);
tile.setInventorySlotContents(index, null); }
}
}
tile.addStackToStorage(desiredStack); return true;
break; }
}
}
}
}
/** Make double clicking input all stacks. */ /** Try to inject it into the crate. Otherwise, look around for nearby crates and try to put them
boolean allMode = (world.getWorldTime() - tile.prevClickTime < 10); * in. */
public void tryInsert(TileCrate tileEntity, EntityPlayer player, boolean allMode, boolean doSearch)
{
boolean success;
tile.prevClickTime = world.getWorldTime(); if (allMode)
{
success = this.insertAllItems(tileEntity, player);
}
else
{
success = this.insertCurrentItem(tileEntity, player);
}
if (ControlKeyModifer.isControlDown(player)) if (!success && doSearch)
{ {
tryEject(tile, player, allMode); PathfinderCrate pathfinder = new PathfinderCrate().init(tileEntity);
}
else
{
ItemStack current = player.inventory.getCurrentItem();
if (side == 1 && player.capabilities.isCreativeMode)
{
if (current != null && tile.getSampleStack() == null)
{
ItemStack cStack = current.copy();
cStack.stackSize = TileCrate.getSlotCount(world.getBlockMetadata(x, y, z)) * 64;
addStackToCrate(tile, cStack);
}
}
tryInsert(tile, player, allMode); for (TileEntity checkTile : pathfinder.iteratedNodes)
} {
} if (checkTile instanceof TileCrate)
} {
this.tryInsert(((TileCrate) checkTile), player, allMode, false);
}
}
}
}
return true; public void tryInsert(TileCrate tileEntity, EntityPlayer player, boolean allMode)
} {
tryInsert(tileEntity, player, allMode, true);
}
/** public void tryEject(TileCrate tileEntity, EntityPlayer player, boolean allMode)
* Try to inject it into the crate. Otherwise, look around for nearby crates and try to put them {
* in. if (tileEntity.getSampleStack() == null)
*/ {
public void tryInsert(TileCrate tileEntity, EntityPlayer player, boolean allMode, boolean doSearch) return;
{ }
boolean success; if (allMode && !player.isSneaking())
{
this.ejectItems(tileEntity, player, tileEntity.getSlotCount() * 64);
}
else
{
if (player.isSneaking())
{
this.ejectItems(tileEntity, player, 1);
}
else
{
this.ejectItems(tileEntity, player, tileEntity.getSampleStack().getMaxStackSize());
}
}
}
if (allMode) /** Inserts a the itemStack the player is holding into the crate. */
{ public boolean insertCurrentItem(TileCrate tileEntity, EntityPlayer player)
success = this.insertAllItems(tileEntity, player); {
} ItemStack currentStack = player.getCurrentEquippedItem();
else
{
success = this.insertCurrentItem(tileEntity, player);
}
if (!success && doSearch) if (currentStack != null)
{ {
PathfinderCrate pathfinder = new PathfinderCrate().init(tileEntity); if (currentStack.getItem().itemID == blockID)
{
ItemStack containedStack = ItemBlockCrate.getContainingItemStack(currentStack);
ItemStack crateStack = tileEntity.getSampleStack();
for (TileEntity checkTile : pathfinder.iteratedNodes) if (containedStack != null && (crateStack == null || ItemStack.areItemStacksEqual(containedStack, crateStack)))
{ {
if (checkTile instanceof TileCrate) ItemStack returned = BlockCrate.addStackToCrate(tileEntity, containedStack);
{ ItemBlockCrate.setContainingItemStack(currentStack, returned);
this.tryInsert(((TileCrate) checkTile), player, allMode, false); return true;
} }
} }
} else
} {
if (tileEntity.getSampleStack() != null)
{
if (!(tileEntity.getSampleStack().isItemEqual(currentStack) || (tileEntity.oreFilterEnabled && !OreDictionary.getOreName(OreDictionary.getOreID(tileEntity.getSampleStack())).equals("Unknown") && OreDictionary.getOreID(tileEntity.getSampleStack()) == OreDictionary.getOreID(currentStack))))
{
return false;
}
}
public void tryInsert(TileCrate tileEntity, EntityPlayer player, boolean allMode) player.inventory.setInventorySlotContents(player.inventory.currentItem, BlockCrate.addStackToCrate(tileEntity, currentStack));
{ return true;
tryInsert(tileEntity, player, allMode, true); }
} }
public void tryEject(TileCrate tileEntity, EntityPlayer player, boolean allMode) return false;
{ }
if (tileEntity.getSampleStack() == null)
{
return;
}
if (allMode && !player.isSneaking())
{
this.ejectItems(tileEntity, player, tileEntity.getSlotCount() * 64);
}
else
{
if (player.isSneaking())
{
this.ejectItems(tileEntity, player, 1);
}
else
{
this.ejectItems(tileEntity, player, tileEntity.getSampleStack().getMaxStackSize());
}
}
}
/** Inserts a the itemStack the player is holding into the crate. */ /** Inserts all items of the same type this player has into the crate.
public boolean insertCurrentItem(TileCrate tileEntity, EntityPlayer player) *
{ * @return True on success */
ItemStack currentStack = player.getCurrentEquippedItem(); public boolean insertAllItems(TileCrate tileEntity, EntityPlayer player)
{
ItemStack requestStack = null;
if (currentStack != null) if (tileEntity.getSampleStack() != null)
{ {
if (currentStack.getItem().itemID == blockID) requestStack = tileEntity.getSampleStack().copy();
{ }
ItemStack containedStack = ItemBlockCrate.getContainingItemStack(currentStack);
ItemStack crateStack = tileEntity.getSampleStack();
if (containedStack != null && (crateStack == null || ItemStack.areItemStacksEqual(containedStack, crateStack))) if (requestStack == null)
{ {
ItemStack returned = BlockCrate.addStackToCrate(tileEntity, containedStack); requestStack = player.getCurrentEquippedItem();
ItemBlockCrate.setContainingItemStack(currentStack, returned); }
return true;
}
}
else
{
if (tileEntity.getSampleStack() != null)
{
if (!(tileEntity.getSampleStack().isItemEqual(currentStack) || (!OreDictionary.getOreName(OreDictionary.getOreID(tileEntity.getSampleStack())).equals("Unknown") && OreDictionary.getOreID(tileEntity.getSampleStack()) == OreDictionary.getOreID(currentStack))))
{
return false;
}
}
player.inventory.setInventorySlotContents(player.inventory.currentItem, BlockCrate.addStackToCrate(tileEntity, currentStack)); if (requestStack != null && requestStack.itemID != this.blockID)
return true; {
} boolean success = false;
}
return false; for (int i = 0; i < player.inventory.getSizeInventory(); i++)
} {
ItemStack currentStack = player.inventory.getStackInSlot(i);
/** if (currentStack != null)
* Inserts all items of the same type this player has into the crate. {
* if (requestStack.isItemEqual(currentStack))
* @return True on success {
*/ player.inventory.setInventorySlotContents(i, BlockCrate.addStackToCrate(tileEntity, currentStack));
public boolean insertAllItems(TileCrate tileEntity, EntityPlayer player)
{
ItemStack requestStack = null;
if (tileEntity.getSampleStack() != null) if (player instanceof EntityPlayerMP)
{ {
requestStack = tileEntity.getSampleStack().copy(); ((EntityPlayerMP) player).sendContainerToPlayer(player.inventoryContainer);
} }
if (requestStack == null) success = true;
{ }
requestStack = player.getCurrentEquippedItem(); }
} }
return success;
}
return false;
}
if (requestStack != null && requestStack.itemID != this.blockID) /** Ejects and item out of the crate and spawn it under the player entity.
{ *
boolean success = false; * @param tileEntity
* @param player
* @param requestSize - The maximum stack size to take out. Default should be 64.
* @return True on success */
public boolean ejectItems(TileCrate tileEntity, EntityPlayer player, int requestSize)
{
World world = tileEntity.worldObj;
if (!world.isRemote)
{
ItemStack sampleStack = tileEntity.getSampleStack();
int ammountEjected = 0;
if (sampleStack != null && requestSize > 0)
{
for (int slot = 0; slot < tileEntity.getInventory().getSizeInventory(); slot++)
{
ItemStack slotStack = tileEntity.getInventory().getStackInSlot(slot);
for (int i = 0; i < player.inventory.getSizeInventory(); i++) if (slotStack != null && slotStack.stackSize > 0)
{ {
ItemStack currentStack = player.inventory.getStackInSlot(i); int amountToTake = Math.min(slotStack.stackSize, requestSize);
if (currentStack != null) ItemStack dropStack = slotStack.copy();
{ dropStack.stackSize = amountToTake;
if (requestStack.isItemEqual(currentStack))
{
player.inventory.setInventorySlotContents(i, BlockCrate.addStackToCrate(tileEntity, currentStack));
if (player instanceof EntityPlayerMP) EntityItem entityItem = new EntityItem(world, player.posX, player.posY, player.posZ, dropStack);
{ entityItem.delayBeforeCanPickup = 0;
((EntityPlayerMP) player).sendContainerToPlayer(player.inventoryContainer); world.spawnEntityInWorld(entityItem);
}
success = true; slotStack.stackSize -= amountToTake;
} ammountEjected += amountToTake;
} if (slotStack.stackSize <= 0)
} {
return success; slotStack = null;
} }
return false; tileEntity.getInventory().setInventorySlotContents(slot, slotStack);
}
/** }
* Ejects and item out of the crate and spawn it under the player entity. if (ammountEjected >= requestSize)
* {
* @param tileEntity return true;
* @param player }
* @param requestSize - The maximum stack size to take out. Default should be 64. }
* @return True on success return true;
*/ }
public boolean ejectItems(TileCrate tileEntity, EntityPlayer player, int requestSize) }
{ return false;
World world = tileEntity.worldObj; }
if (!world.isRemote)
{
ItemStack sampleStack = tileEntity.getSampleStack();
int ammountEjected = 0;
if (sampleStack != null && requestSize > 0)
{
for (int slot = 0; slot < tileEntity.getInventory().getSizeInventory(); slot++)
{
ItemStack slotStack = tileEntity.getInventory().getStackInSlot(slot);
if (slotStack != null && slotStack.stackSize > 0) /** Puts an itemStack into the crate.
{ *
int amountToTake = Math.min(slotStack.stackSize, requestSize); * @param tileEntity
* @param itemStack */
public static ItemStack addStackToCrate(TileCrate tileEntity, ItemStack itemStack)
{
if (itemStack == null || itemStack.getItem().isDamageable() && itemStack.getItem().getDamage(itemStack) > 0)
{
return itemStack;
}
ItemStack dropStack = slotStack.copy(); ItemStack containingStack = tileEntity.getSampleStack();
dropStack.stackSize = amountToTake;
EntityItem entityItem = new EntityItem(world, player.posX, player.posY, player.posZ, dropStack); if (containingStack == null || (containingStack.isItemEqual(itemStack) || (tileEntity.oreFilterEnabled && OreDictionary.getOreID(containingStack) == OreDictionary.getOreID(itemStack))))
entityItem.delayBeforeCanPickup = 0; {
world.spawnEntityInWorld(entityItem); int room = Math.max((tileEntity.getInventory().getSizeInventory() * 64) - (containingStack != null ? containingStack.stackSize : 0), 0);
if (itemStack.stackSize <= room)
{
tileEntity.addToStack(itemStack);
itemStack = null;
}
else
{
tileEntity.addToStack(itemStack, room);
itemStack.stackSize -= room;
}
return itemStack;
slotStack.stackSize -= amountToTake; }
ammountEjected += amountToTake;
if (slotStack.stackSize <= 0)
{
slotStack = null;
}
tileEntity.getInventory().setInventorySlotContents(slot, slotStack);
} if (itemStack.stackSize <= 0)
if (ammountEjected >= requestSize) {
{ return null;
return true; }
}
}
return true;
}
}
return false;
}
/** return itemStack;
* Puts an itemStack into the crate. }
*
* @param tileEntity
* @param itemStack
*/
public static ItemStack addStackToCrate(TileCrate tileEntity, ItemStack itemStack)
{
if (itemStack == null || itemStack.getItem().isDamageable() && itemStack.getItem().getDamage(itemStack) > 0)
{
return itemStack;
}
ItemStack containingStack = tileEntity.getSampleStack(); @Override
public int damageDropped(int metadata)
{
return metadata;
}
if (containingStack == null || (containingStack.isItemEqual(itemStack) || OreDictionary.getOreID(containingStack) == OreDictionary.getOreID(itemStack))) @Override
{ public TileEntity createNewTileEntity(World var1)
int room = Math.max((tileEntity.getInventory().getSizeInventory() * 64) - (containingStack != null ? containingStack.stackSize : 0), 0); {
if (itemStack.stackSize <= room) return new TileCrate();
{ }
tileEntity.addToStack(itemStack);
itemStack = null;
}
else
{
tileEntity.addToStack(itemStack, room);
itemStack.stackSize -= room;
}
return itemStack;
} @Override
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
if (itemStack.stackSize <= 0) {
{ par3List.add(new ItemStack(par1, 1, 0));
return null; par3List.add(new ItemStack(par1, 1, 1));
} par3List.add(new ItemStack(par1, 1, 2));
}
return itemStack;
}
@Override
public int damageDropped(int metadata)
{
return metadata;
}
@Override
public TileEntity createNewTileEntity(World var1)
{
return new TileCrate();
}
@Override
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
{
par3List.add(new ItemStack(par1, 1, 0));
par3List.add(new ItemStack(par1, 1, 1));
par3List.add(new ItemStack(par1, 1, 2));
}
} }

View file

@ -23,13 +23,17 @@ import com.google.common.io.ByteArrayDataInput;
* @author DarkGuardsman */ * @author DarkGuardsman */
public class TileCrate extends TileExternalInventory implements IPacketReceiver, IExtendedStorage public class TileCrate extends TileExternalInventory implements IPacketReceiver, IExtendedStorage
{ {
/** Collective total stack of all inv slots */ /** max meta size of the crate */
private ItemStack sampleStack; public static final int maxSize = 2;
/** delay from last click */ /** delay from last click */
public long prevClickTime = -1000; public long prevClickTime = -1000;
/** max meta size of the crate */
public static final int maxSize = 2; /** Check to see if oreName items can be force stacked */
public boolean oreFilterEnabled = false;
/** Collective total stack of all inv slots */
private ItemStack sampleStack;
@Override @Override
public InventoryCrate getInventory() public InventoryCrate getInventory()
@ -112,7 +116,7 @@ public class TileCrate extends TileExternalInventory implements IPacketReceiver,
this.sampleStack = stack; this.sampleStack = stack;
getInventory().buildInventory(getSampleStack()); getInventory().buildInventory(getSampleStack());
} }
else if (this.getSampleStack().isItemEqual(stack) || OreDictionary.getOreID(getSampleStack()) == OreDictionary.getOreID(stack)) else if (this.getSampleStack().isItemEqual(stack) || (this.oreFilterEnabled && OreDictionary.getOreID(getSampleStack()) == OreDictionary.getOreID(stack)))
{ {
getSampleStack().stackSize += stack.stackSize; getSampleStack().stackSize += stack.stackSize;
getInventory().buildInventory(getSampleStack()); getInventory().buildInventory(getSampleStack());
@ -134,7 +138,7 @@ public class TileCrate extends TileExternalInventory implements IPacketReceiver,
@Override @Override
public boolean canStore(ItemStack stack, int slot, ForgeDirection side) public boolean canStore(ItemStack stack, int slot, ForgeDirection side)
{ {
return getSampleStack() == null || stack != null && (stack.isItemEqual(getSampleStack()) || OreDictionary.getOreID(getSampleStack()) == OreDictionary.getOreID(stack)); return getSampleStack() == null || stack != null && (stack.isItemEqual(getSampleStack()) || (this.oreFilterEnabled && OreDictionary.getOreID(getSampleStack()) == OreDictionary.getOreID(stack)));
} }
/** Gets the current slot count for the crate */ /** Gets the current slot count for the crate */
@ -233,6 +237,7 @@ public class TileCrate extends TileExternalInventory implements IPacketReceiver,
this.sampleStack = stack; this.sampleStack = stack;
this.getInventory().buildInventory(this.sampleStack); this.getInventory().buildInventory(this.sampleStack);
} }
this.oreFilterEnabled = nbt.getBoolean("oreFilter");
} }
@ -249,7 +254,7 @@ public class TileCrate extends TileExternalInventory implements IPacketReceiver,
nbt.setInteger("Count", stack.stackSize); nbt.setInteger("Count", stack.stackSize);
nbt.setCompoundTag("stack", stack.writeToNBT(new NBTTagCompound())); nbt.setCompoundTag("stack", stack.writeToNBT(new NBTTagCompound()));
} }
nbt.setBoolean("oreFilter", this.oreFilterEnabled);
} }
} }