import java.io.DataOutputStream;
import java.util.ArrayList;
-
-import net.minecraft.src.EntityItem;
-import net.minecraft.src.ItemStack;
-import net.minecraft.src.NBTTagCompound;
-import net.minecraft.src.NBTTagList;
-import net.minecraft.src.Packet;
-import net.minecraft.src.TileEntity;
+import java.util.Arrays;
+
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.network.packet.Packet;
+import net.minecraft.tileentity.TileEntity;
+import chemicraft.ChemiCraft;
+import chemicraft.ChemiCraftData;
import chemicraft.inventory.InventoryChemicalCombinationTableMaterial;
import chemicraft.inventory.InventoryChemicalCombinationTableResult;
import chemicraft.system.PacketHandler;
+import chemicraft.util.ComparatorItemStack;
import com.google.common.io.ByteArrayDataInput;
-import cpw.mods.fml.common.Side;
-import cpw.mods.fml.common.asm.SideOnly;
import cpw.mods.fml.common.network.PacketDispatcher;
public class TileEntityChemicalCombinationTable extends TileEntity {
private ItemStack dropItems;
+ private boolean isProvidePower;
+
@Override
public void updateEntity(){
super.updateEntity();
+ if (this.isProvidePower && !this.worldObj.isRemote) {
+ this.field_00001();
+ this.isProvidePower = false;
+ PacketDispatcher.sendPacketToAllPlayers(this.getDescriptionPacket());
+ }
}
@Override
for(int i = 0;i < this.atomsListSize;i++){
this.atomsAmountList.add(par1.getInteger("atomsAmountList" + i));
}
+
+ this.isProvidePower = par1.getBoolean("isProvidePower");
}
@Override
this.atomsListSize = this.atomsList.size();
par1.setInteger("atomsListSize", this.atomsListSize);
+
+ par1.setBoolean("isProvidePower", this.isProvidePower);
}
@Override
ItemStack itemstack = new ItemStack(data.readInt(), data.readByte(), data.readInt());
if(itemstack.itemID != 0 && !this.worldObj.isRemote){
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord, this.zCoord, itemstack));
+ this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord + 1, this.zCoord, itemstack));
}
this.dropItems = null;
+
+ this.isProvidePower = data.readBoolean();
} catch (Exception e) {
e.printStackTrace();
}
dos.writeInt(0);
}
this.dropItems = null;
+
+ dos.writeBoolean(this.isProvidePower);
} catch (Exception e) {
e.printStackTrace();
}
}
- @SideOnly(Side.CLIENT)
public void setAtoms(String par1, int par2){
if (this.atomsList.indexOf(par1) != -1){
int var1 = this.atomsList.indexOf(par1);
this.atomsList.add(par1);
this.atomsAmountList.add(par2);
}
- PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
+ PacketDispatcher.sendPacketToAllPlayers(this.getDescriptionPacket());
}
public void setDropItems(ItemStack par1ItemStack){
this.atomsAmountList.clear();
}
+ public void setProvidePower(boolean par1) {
+ this.isProvidePower = par1;
+ }
+
+ public boolean getProvidePower() {
+ return this.isProvidePower;
+ }
+
+ public void field_00001() {
+ IInventory inv = this.getInvMaterial();
+ ItemStack[] stacks = new ItemStack[inv.getSizeInventory()];
+ for(int i = 0;i < stacks.length;i++){
+ if(inv.getStackInSlot(i) != null){
+ stacks[i] = inv.getStackInSlot(i);
+ }
+ }
+ Arrays.sort(stacks, new ComparatorItemStack());
+ stacks = ChemiCraft.instance.arrayAuxiliary.deleteNull(stacks);
+
+ for(int i = 0;i < stacks.length;i++){
+ if(stacks[i].stackSize > 1){
+ this.setAtoms(ChemiCraftData.ATOMSLIST[stacks[i].getItemDamage()], stacks[i].stackSize);
+ }else{
+ this.setAtoms(ChemiCraftData.ATOMSLIST[stacks[i].getItemDamage()], 1);
+ }
+ }
+
+ for(int i = 0;i < inv.getSizeInventory();i++){
+ inv.setInventorySlotContents(i, null);
+ }
+ }
+
+ public void field_00002() {
+ ArrayList<String> var1 = this.getAtomsList();
+ ArrayList<Integer> var2 = this.getAtomsAmountList();
+
+ for (int i = 0;i < var1.size();i++) {
+ for (int j = 0;j < ChemiCraftData.ATOMSLIST.length;j++) {
+ if (var1.get(i).equals(ChemiCraftData.ATOMSLIST[j])) {
+ int var3 = var2.get(i);
+ while(var3 > 0){
+ if(var3 > 64){
+ ItemStack itemstack = new ItemStack(ChemiCraft.instance.itemAtoms, 64, j);
+ this.setDropItems(itemstack);
+ PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
+ var3 -= 64;
+ }else{
+ ItemStack itemstack = new ItemStack(ChemiCraft.instance.itemAtoms, var3, j);
+ this.setDropItems(itemstack);
+ PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
+ var3 = 0;
+ }
+ }
+ break;
+ }
+ }
+ }
+ IInventory invr = this.getInvResult();
+ if (invr.getStackInSlot(0) != null) {
+ invr.setInventorySlotContents(0, null);
+ }
+ this.emptytoAtomsList();
+ }
+
protected boolean isNumber(String par1){
try {
int var1 = Integer.valueOf(new String(par1));