package chemicraft;
-import cpw.mods.fml.common.network.PacketDispatcher;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
import net.minecraft.src.InventoryPlayer;
import net.minecraft.src.ItemStack;
-import net.minecraft.src.Packet;
import net.minecraft.src.Slot;
import net.minecraft.src.World;
+import cpw.mods.fml.common.network.PacketDispatcher;
public class ContainerDecompositionTable extends Container {
@Override
public void onCraftMatrixChanged(IInventory par1IInventory){
- ((InventoryDecomposition) par1IInventory).setFlag(false);
- this.putStacksInSlots(ChemiCraftAPI.getCraftingManager().getDecompositionResults(par1IInventory));
- ((InventoryDecomposition) par1IInventory).setFlag(true);
+ for(int i = 0;i < ChemiCraftAPI.getCraftingManager().getDecompositionResults(this.inv).length;i++){
+ this.inv.setInventorySlotContents(i, ChemiCraftAPI.getCraftingManager().getDecompositionResults(this.inv)[i]);
+ }
+ this.inv.setFlag(true);
+ }
+
+
+
+ @Override
+ public void updateCraftingResults(){
+ super.updateCraftingResults();
}
- public void addPlayerInv(int par1, ItemStack par2ItemStack){
- this.putStackInSlot(par1, par2ItemStack);
- }
-
-
-
public void onButtonClick(int par1){
if(par1 == 0){
- for(int loop = 0;loop < 1;loop++){
- if(this.inv.getStackInSlot(16) == null) break;
- for(int i = 0;i < this.inv.getSizeInventory();i++){
- if(i < 16 && this.inv.getStackInSlot(i) != null){
- if(this.invp.player.inventory.getFirstEmptyStack() != -1){
- this.tileEntity.setItemDrop(false);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }else{
- this.tileEntity.setItemDrop(true);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- this.updateCraftingResults();
- }
- }
- }
- }
- }else if(par1 == 1){
- for(int loop = 0;loop < 16;loop++){
- if(this.inv.getStackInSlot(16) == null) break;
- for(int i = 0;i < this.inv.getSizeInventory();i++){
- if(i < 16 && this.inv.getStackInSlot(i) != null){
- if(this.invp.player.inventory.getFirstEmptyStack() != -1){
- this.tileEntity.setItemDrop(false);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }else{
- this.tileEntity.setItemDrop(true);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }
- }
- }
- }
- }else if(par1 == 2){
- for(int loop = 0;loop < 32;loop++){
- if(this.inv.getStackInSlot(16) == null) break;
- for(int i = 0;i < this.inv.getSizeInventory();i++){
- if(i < 16 && this.inv.getStackInSlot(i) != null){
- if(this.invp.player.inventory.getFirstEmptyStack() != -1){
- this.tileEntity.setItemDrop(false);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }else{
- this.tileEntity.setItemDrop(true);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }
- }
- }
- }
- }else if(par1 == 3){
- for(int loop = 0;loop < 64;loop++){
- if(this.inv.getStackInSlot(16) == null) break;
- for(int i = 0;i < this.inv.getSizeInventory();i++){
- if(i < 16 && this.inv.getStackInSlot(i) != null){
- if(this.invp.player.inventory.getFirstEmptyStack() != -1){
- this.tileEntity.setItemDrop(false);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }else{
- this.tileEntity.setItemDrop(true);
- PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
- }
+ if(this.inv.getStackInSlot(16) != null){
+ for(int loop = 0;loop < this.inv.getStackInSlot(16).stackSize;loop++){
+ if(this.invp.player.inventory.getFirstEmptyStack() != -1){
+ this.tileEntity.setItemDrop(false);
+ this.tileEntity.setButtonClick(true);
+ PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+ this.tileEntity.setButtonClick(false);
+ }else{
+ this.tileEntity.setItemDrop(true);
+ this.tileEntity.setButtonClick(true);
+ PacketDispatcher.sendPacketToServer(this.tileEntity.getDescriptionPacket());
+ this.tileEntity.setButtonClick(false);
}
}
}
}
- this.onCraftMatrixChanged(this.inv);
}
@Override
public void initGui(){
super.initGui();
- this.controlList.add(new GuiButton(0, this.guiLeft + 44, this.guiTop+2, 20, 10,"x1"));
- this.controlList.add(new GuiButton(0, this.guiLeft + 44+20, this.guiTop+2, 20, 10,"x16"));
- this.controlList.add(new GuiButton(0, this.guiLeft + 44, this.guiTop+2+10, 20, 10,"x32"));
- this.controlList.add(new GuiButton(0, this.guiLeft + 44+20, this.guiTop+2+10, 20, 10,"x64"));
+ this.controlList.add(new GuiButton(0, this.guiLeft + 17, this.guiTop+4, 60, 16,"TakeOut"));
}
@Override
protected void drawGuiContainerForegroundLayer()
{
- this.fontRenderer.drawString("Takeout:", 3, 8, 0x000000);
}
import com.google.common.io.ByteArrayDataInput;
+import cpw.mods.fml.common.network.PacketDispatcher;
+
public class TileEntityDecompositionTable extends TileEntity {
private IInventory decompositionInv = new InventoryDecomposition();
private boolean isItemDrop = false;
+ private boolean isButtonClick = false;
+
+ private boolean isEndPutItems = false;
+
public TileEntityDecompositionTable() {
super();
}
}
+ public void setButtonClick(boolean par1){
+ this.isButtonClick = par1;
+ }
+
+
+ public void setEndPutItems(boolean par1){
+ this.isEndPutItems = par1;
+ }
+
+
@Override
public Packet getDescriptionPacket() {
return PacketHandler.getPacket(this);
try {
this.isItemDrop = data.readBoolean();
-
- for(int i = 0;i < 16;i++){
- id = data.readInt();
- damage = data.readInt();
- size = data.readInt();
- if(id != 0){
- if(!this.isItemDrop){
- entityPlayer.inventory.addItemStackToInventory(new ItemStack(id, size, damage));
- }else{
- entityPlayer.dropPlayerItem(new ItemStack(id, size, damage));
+ this.isButtonClick = data.readBoolean();
+ this.isEndPutItems = data.readBoolean();
+
+ if(isButtonClick){
+ for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
+ id = data.readInt();
+ damage = data.readInt();
+ size = data.readInt();
+ if(id != 0){
+ if(i != 16){
+ this.setItemDrop(entityPlayer.inventory.getFirstEmptyStack() == -1);
+ if(!this.isItemDrop){
+ entityPlayer.inventory.addItemStackToInventory(new ItemStack(id, size, damage));
+ }else{
+ entityPlayer.dropPlayerItem(new ItemStack(id, size, damage));
+ }
+ }
}
}
}
- id = data.readInt();
- damage = data.readInt();
- size = data.readInt();
- if(id != 0){
- if(entityPlayer.worldObj instanceof WorldServer){
- this.decompositionInv.setInventorySlotContents(16, new ItemStack(id, --size, damage));
- }
- }
+
+ this.decompositionInv.setInventorySlotContents(16, null);
+
} catch (Exception e) {
e.printStackTrace();
}
try {
dos.writeBoolean(this.isItemDrop);
+ dos.writeBoolean(this.isButtonClick);
+ dos.writeBoolean(this.isEndPutItems);
for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
if(this.decompositionInv.getStackInSlot(i) != null){