Files
Chisel/src/main/java/com/cricketcraft/chisel/inventory/ContainerChisel.java
T
tterrag1098 4cfcc874dc The great format and clean up. IMPORTANT: Read below.
All devs and contributors should use the provided formatter settings. 
If your IDE does not support the format, the rules are simple, it is the
default java formatting rules, with 200char line lengths and 1 extra
line after class definitions.
2015-01-07 19:50:18 -05:00

114 lines
3.5 KiB
Java

package com.cricketcraft.chisel.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import com.cricketcraft.chisel.carving.Carving;
import com.cricketcraft.chisel.item.ItemChisel;
import com.cricketcraft.chisel.utils.General;
public class ContainerChisel extends Container {
public final InventoryChiselSelection inventory;
public InventoryPlayer playerInventory;
int currentIndex;
public ItemStack chisel;
public boolean finished;
public Carving carving;
public ContainerChisel(InventoryPlayer inventoryplayer, InventoryChiselSelection inv) {
inventory = inv;
playerInventory = inventoryplayer;
currentIndex = playerInventory.currentItem;
inv.container = this;
int[] leftOffsets = { 8, 26, 134, 152, 44, 116 };
int[] topOffsets = { 8, 26, 44, 62 };
for (int i = 0; i < 2; i++) {
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 2; x++) {
addSlotToContainer(new SlotChiselSelection(this, inventory, inventory, x + i * 8 + y * 2, leftOffsets[x + i * 2], topOffsets[y]));
}
}
}
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 2; x++) {
addSlotToContainer(new SlotChiselSelection(this, inventory, inventory, 16 + x + y * 2, leftOffsets[4 + x], topOffsets[3 - y]));
}
}
addSlotToContainer(new SlotChiselInput(this, inventory, InventoryChiselSelection.normalSlots, 80, 35));
for (int k = 0; k < 3; k++) {
for (int j1 = 0; j1 < 9; j1++) {
addSlotToContainer(new Slot(inventoryplayer, j1 + k * 9 + 9, 8 + j1 * 18, 102 + k * 18 - 18));
}
}
for (int l = 0; l < 9; l++) {
addSlotToContainer(l == currentIndex ? new SlotChiselPlayer(this, inventoryplayer, l, 8 + l * 18, 160 - 18) : new Slot(inventoryplayer, l, 8 + l * 18, 160 - 18));
}
chisel = inventoryplayer.getCurrentItem();
if (chisel.stackTagCompound != null) {
ItemStack stack = ItemStack.loadItemStackFromNBT(chisel.stackTagCompound.getCompoundTag("chiselTarget"));
inventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, stack);
}
Item item = General.getItem(chisel);
carving = item instanceof ItemChisel ? ItemChisel.carving : Carving.chisel;
inventory.updateItems();
}
@Override
public ItemStack slotClick(int par1, int par2, int par3, EntityPlayer par4EntityPlayer) {
if (par3 == 2 && par2 == currentIndex)
return null;
return super.slotClick(par1, par2, par3, par4EntityPlayer);
}
@Override
public void onContainerClosed(EntityPlayer entityplayer) {
inventory.clearItems();
super.onContainerClosed(entityplayer);
}
@Override
public boolean canInteractWith(EntityPlayer entityplayer) {
return inventory.isUseableByPlayer(entityplayer);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer entity, int i) {
return null;
}
public void onChiselSlotChanged() {
ItemStack stack = playerInventory.mainInventory[currentIndex];
if (!stack.isItemEqual(chisel))
finished = true;
if (finished)
return;
if (chisel.stackTagCompound == null)
chisel.stackTagCompound = new NBTTagCompound();
NBTTagCompound tag = new NBTTagCompound();
if (inventory.getStackInSpecialSlot() != null)
inventory.getStackInSpecialSlot().writeToNBT(tag);
chisel.stackTagCompound.setTag("chiselTarget", tag);
playerInventory.mainInventory[currentIndex] = chisel;
}
}