generated from tilera/1710mod
130 lines
4.6 KiB
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;
|
|
}
|
|
}
|