icbm/src/main/java/icbm/gangshao/container/ContainerTurretPlatform.java

130 lines
4.6 KiB
Java

package icbm.gangshao.container;
import icbm.gangshao.IAmmunition;
import icbm.gangshao.ITurretUpgrade;
import icbm.gangshao.SlotTurret;
import icbm.gangshao.access.AccessLevel;
import icbm.gangshao.platform.TTurretPlatform;
import icbm.gangshao.turret.ItemAmmo;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import universalelectricity.core.item.IItemElectric;
public class ContainerTurretPlatform extends ContainerTerminal {
private TTurretPlatform tileEntity;
public ContainerTurretPlatform(
final InventoryPlayer inventoryPlayer, final TTurretPlatform tileEntity
) {
super(inventoryPlayer, tileEntity);
this.tileEntity = tileEntity;
for (int row = 0; row < 3; ++row) {
for (int column = 0; column < 4; ++column) {
this.addSlotToContainer((Slot) new SlotTurret(
(IInventory) tileEntity,
column + row * 4,
8 + column * 18,
40 + row * 18,
new Class[] { IAmmunition.class, IItemElectric.class }
));
}
}
for (int i = 0; i < 4; ++i) {
this.addSlotToContainer((Slot) new SlotTurret(
(IInventory) tileEntity,
i + 12,
89 + i * 18,
77,
new Class[] { ITurretUpgrade.class }
));
}
for (int row = 0; row < 3; ++row) {
for (int slot = 0; slot < 9; ++slot) {
this.addSlotToContainer(new Slot(
(IInventory) inventoryPlayer,
slot + row * 9 + 9,
8 + slot * 18,
97 + row * 18
));
}
}
for (int row = 0; row < 9; ++row) {
this.addSlotToContainer(
new Slot((IInventory) inventoryPlayer, row, 8 + row * 18, 155)
);
}
}
public ItemStack
transferStackInSlot(final EntityPlayer entityPlayer, final int slotID) {
ItemStack var2 = null;
final Slot slot = (Slot) super.inventorySlots.get(slotID);
if (slot != null && slot.getHasStack()) {
final ItemStack itemStack = slot.getStack();
var2 = itemStack.copy();
if (slotID > this.tileEntity.containingItems.length - 1) {
if (this.tileEntity.getUserAccess(entityPlayer.getDisplayName()).ordinal()
> AccessLevel.NONE.ordinal()) {
if (itemStack.getItem() instanceof ItemAmmo
|| itemStack.getItem() instanceof IItemElectric) {
if (!this.mergeItemStack(itemStack, 0, 12, false)) {
return null;
}
} else if (itemStack.getItem() instanceof ITurretUpgrade &&
!this.mergeItemStack(
itemStack, 12, this.tileEntity.containingItems.length,
false)) {
return null;
}
} else if (slotID < this.tileEntity.containingItems.length + 27) {
if (!this.mergeItemStack(
itemStack,
this.tileEntity.containingItems.length + 27,
this.tileEntity.containingItems.length + 36,
false
)) {
return null;
}
} else if (!this.mergeItemStack(
itemStack,
this.tileEntity.containingItems.length,
this.tileEntity.containingItems.length + 27,
false
)) {
return null;
}
} else if (!this.mergeItemStack(
itemStack,
this.tileEntity.containingItems.length,
36 + this.tileEntity.containingItems.length,
false
)) {
return null;
}
if (itemStack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
if (itemStack.stackSize == var2.stackSize) {
return null;
}
slot.onPickupFromSlot(entityPlayer, itemStack);
}
return var2;
}
}