import net.minecraft.src.EntityPlayer;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.network.IGuiHandler;
public class CommonProxy implements IGuiHandler {
return null;
}
+ public World getClientWorld(){
+ return null;
+ }
+
}
\ No newline at end of file
private int posZ;
+ /**
+ * the TileEntity.
+ */
+ private TileEntityScienceCraftingTable tileEntity;
+
+
public ContainerScienceCraftingTable(EntityPlayer par1EntityPlayer, TileEntityScienceCraftingTable par2)
{
+ super();
this.worldObj = par2.worldObj;
this.posX = par2.xCoord;
this.posY = par2.yCoord;
this.posZ = par2.zCoord;
+ this.tileEntity = par2;
//GenerateInventory
this.generateSlots(par2.getActiveTab(), par2.getActiveInventory());
- System.out.println("----------------------------------------------------------------------------------");
- if(par2.getActiveInventory() != null){
- for(int i = 0;i < par2.getActiveInventory().getSizeInventory();i++){
- System.out.println(par2.getActiveInventory().getStackInSlot(i));
- }
- }
//GeneratePlayerInventory
int var3;
return null;
}
+
+
private void generateSlots(String activeTabs, IInventory inventory){
if(activeTabs.equals("Decomposition")){
int count = 0;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
import cpw.mods.fml.common.network.PacketDispatcher;
+import cpw.mods.fml.common.network.Player;
@SideOnly(Side.CLIENT)
public class GuiScienceCraftingTable extends GuiContainer {
private InventoryPlayer inventoryPlayer;
+ /**
+ * the Container
+ */
+ private ContainerScienceCraftingTable container;
+
+
public GuiScienceCraftingTable(EntityPlayer par1EntityPlayer, TileEntityScienceCraftingTable par2){
super(new ContainerScienceCraftingTable(par1EntityPlayer, par2));
//TileEntityを設定
this.inventoryPlayer = par1EntityPlayer.inventory;
this.tileEntity = par2;
+ this.container = (ContainerScienceCraftingTable) this.inventorySlots;
//TabListにTabを追加する
this.addTabs(0, "Decomposition", new ItemStack(Block.tnt.blockID, 1, 1));
this.addTabs(1, "Test", new ItemStack(Block.bedrock.blockID, 1, 1));
this.mc.renderEngine.bindTexture(this.guiImageMap.get("Decomposition"));
this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
}
- //TileEntity of ActiveTab Reset.
- this.tileEntity.setActiveTab(this.tileEntity.getActiveTab());
}
if (packet.channel.equals("chemicraft")) {\r
ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data);\r
\r
- World world;\r
+ World worldClient;\r
+ World worldServer;\r
TileEntity tileEntity;\r
TileEntityScienceCraftingTable var2;\r
\r
y = var1.readInt();\r
z = var1.readInt();\r
\r
- // from Client to Server\r
- world = ((EntityPlayer) player).worldObj;\r
- tileEntity = world.getBlockTileEntity(x, y, z);\r
- if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
- var2 = (TileEntityScienceCraftingTable) tileEntity;\r
- var2.readPacket(var1);\r
+ worldClient = ChemiCraft.proxy.getClientWorld();\r
+ worldServer = ((EntityPlayer)player).worldObj;\r
+ if(worldClient != null){\r
+ tileEntity = worldClient.getBlockTileEntity(x, y, z);\r
+ if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
+ var2 = (TileEntityScienceCraftingTable) tileEntity;\r
+ var2.readPacket(var1);\r
+ }\r
+ return;\r
+ }\r
+ if(worldServer != null){\r
+ tileEntity = worldServer.getBlockTileEntity(x, y, z);\r
+ if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
+ var2 = (TileEntityScienceCraftingTable) tileEntity;\r
+ var2.readPacket(var1);\r
+ }\r
+ return;\r
}\r
}\r
}\r
import java.io.DataOutputStream;
-import net.minecraft.src.EntityPlayer;
import net.minecraft.src.IInventory;
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 net.minecraftforge.common.ForgeDirection;
-import net.minecraftforge.common.ISidedInventory;
+import net.minecraft.src.WorldClient;
+import net.minecraft.src.WorldServer;
import com.google.common.io.ByteArrayDataInput;
/**
* DecompositionのInventory
*/
- private IInventory decompositionInv = new InventoryDecomposition();
+ public IInventory decompositionInv = new InventoryDecomposition();
/**
* ActiveなTabの名前
this.activeTab = "Decomposition";
}
-
+ int time = 0;
@Override
public void updateEntity() {
super.updateEntity();
public void readPacket(ByteArrayDataInput data) {
try {
this.activeTab = data.readUTF();
+ for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
+ int id = data.readInt();
+ int damage = data.readInt();
+ int size = data.readInt();
+ if(id != 0){
+ this.decompositionInv.setInventorySlotContents(i, new ItemStack(id, size, damage));
+ }
+ }
} catch (Exception e) {
e.printStackTrace();
}
public void writePacket(DataOutputStream dos){
try {
dos.writeUTF(this.activeTab);
+ for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
+ if(this.decompositionInv.getStackInSlot(i) != null){
+ dos.writeInt(this.decompositionInv.getStackInSlot(i).itemID);
+ dos.writeInt(this.decompositionInv.getStackInSlot(i).getItemDamage());
+ dos.writeInt(this.decompositionInv.getStackInSlot(i).stackSize);
+ }else{
+ dos.writeInt(0);
+ dos.writeInt(0);
+ dos.writeInt(0);
+ }
+ }
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
+ @Override
+ public World getClientWorld(){
+ return FMLClientHandler.instance().getClient().theWorld;
+ }
+
}