Provide replace stacks

This commit is contained in:
Aidan C. Brady 2013-11-19 15:38:18 -05:00
parent 3939000190
commit c9deba55df
3 changed files with 23 additions and 29 deletions

View file

@ -15,19 +15,19 @@ public class ContainerDigitalMiner extends Container
{ {
private TileEntityDigitalMiner tileEntity; private TileEntityDigitalMiner tileEntity;
public ContainerDigitalMiner(InventoryPlayer inventory, TileEntityDigitalMiner tentity, IInventory inv, boolean b) public ContainerDigitalMiner(InventoryPlayer inventory, TileEntityDigitalMiner tentity)
{ {
tileEntity = tentity; tileEntity = tentity;
for(int slotY = 0; slotY < 6; slotY++) for(int slotY = 0; slotY < 3; slotY++)
{ {
for(int slotX = 0; slotX < 9; slotX++) for(int slotX = 0; slotX < 9; slotX++)
{ {
addSlotToContainer(new SlotElectricChest(getInv(), slotX + slotY * 9, 8 + slotX * 18, 26 + slotY * 18)); addSlotToContainer(new Slot(tentity, slotX + slotY * 9, 8 + slotX * 18, 26 + slotY * 18));
} }
} }
addSlotToContainer(new SlotDischarge(getInv(), 54, 180, 11)); addSlotToContainer(new SlotDischarge(tentity, 27, 180, 11));
int slotX; int slotX;
@ -43,17 +43,9 @@ public class ContainerDigitalMiner extends Container
{ {
addSlotToContainer(new SlotElectricChest(inventory, slotX, 8 + slotX * 18, 206)); addSlotToContainer(new SlotElectricChest(inventory, slotX, 8 + slotX * 18, 206));
} }
}
public IInventory getInv() tileEntity.openChest();
{ tileEntity.playersUsing.add(inventory.player);
if(isBlock)
{
return tileEntity;
}
else {
return itemInventory;
}
} }
@Override @Override
@ -61,27 +53,16 @@ public class ContainerDigitalMiner extends Container
{ {
super.onContainerClosed(entityplayer); super.onContainerClosed(entityplayer);
if(isBlock)
{
tileEntity.closeChest(); tileEntity.closeChest();
tileEntity.playersUsing.remove(entityplayer); tileEntity.playersUsing.remove(entityplayer);
} }
else {
itemInventory.closeChest();
}
}
@Override @Override
public boolean canInteractWith(EntityPlayer entityplayer) public boolean canInteractWith(EntityPlayer entityplayer)
{
if(isBlock)
{ {
return tileEntity.isUseableByPlayer(entityplayer); return tileEntity.isUseableByPlayer(entityplayer);
} }
return true;
}
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer player, int slotID) public ItemStack transferStackInSlot(EntityPlayer player, int slotID)
{ {

View file

@ -44,6 +44,7 @@ public class ContainerElectricPump extends Container
public void onContainerClosed(EntityPlayer entityplayer) public void onContainerClosed(EntityPlayer entityplayer)
{ {
super.onContainerClosed(entityplayer); super.onContainerClosed(entityplayer);
tileEntity.closeChest(); tileEntity.closeChest();
tileEntity.playersUsing.remove(entityplayer); tileEntity.playersUsing.remove(entityplayer);
} }

View file

@ -48,6 +48,8 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public int clientToMine; public int clientToMine;
public ItemStack replaceStack;
/** This machine's current RedstoneControl type. */ /** This machine's current RedstoneControl type. */
public RedstoneControl controlType = RedstoneControl.DISABLED; public RedstoneControl controlType = RedstoneControl.DISABLED;
@ -91,6 +93,11 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
doPull = nbtTags.getBoolean("doPull"); doPull = nbtTags.getBoolean("doPull");
controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")]; controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")];
if(nbtTags.hasKey("replaceStack"))
{
replaceStack = ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("replaceStack"));
}
if(nbtTags.hasKey("filters")) if(nbtTags.hasKey("filters"))
{ {
NBTTagList tagList = nbtTags.getTagList("filters"); NBTTagList tagList = nbtTags.getTagList("filters");
@ -124,6 +131,11 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
nbtTags.setBoolean("doPull", doPull); nbtTags.setBoolean("doPull", doPull);
nbtTags.setInteger("controlType", controlType.ordinal()); nbtTags.setInteger("controlType", controlType.ordinal());
if(replaceStack != null)
{
nbtTags.setCompoundTag("replaceStack", replaceStack.writeToNBT(new NBTTagCompound()));
}
NBTTagList filterTags = new NBTTagList(); NBTTagList filterTags = new NBTTagList();
for(MinerFilter filter : filters) for(MinerFilter filter : filters)