import com.google.common.io.ByteArrayDataInput;\r
import com.google.common.io.ByteStreams;\r
\r
+import net.minecraft.src.EntityPlayer;\r
+import net.minecraft.src.EntityPlayerMP;\r
import net.minecraft.src.NetworkManager;\r
import net.minecraft.src.Packet;\r
import net.minecraft.src.Packet250CustomPayload;\r
\r
/**\r
* サーバーとクライアントのデータの同期に必要なクラス\r
- *\r
+ * \r
* @author Lilly\r
- *\r
+ * \r
*/\r
public class PacketHandler implements IPacketHandler {\r
\r
- @Override\r
- public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) {\r
- if (packet.channel.equals("chemicraft")) {\r
- ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data);\r
-\r
- //TileEntityのx, y, z座標\r
- int x, y, z;\r
-<<<<<<< HEAD
- //activeTab\r
- String activeTab;\r
-=======
- String tab;\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
-\r
- //座標読み込み\r
- x = var1.readInt();\r
- y = var1.readInt();\r
- z = var1.readInt();\r
-<<<<<<< HEAD
- //activeTab読み込み\r
- activeTab = var1.readUTF();\r
-=======
- tab = var1.readUTF();\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
-\r
- // TileEntityを取得し読み込んだデータを送る\r
- World world = ChemiCraft.proxy.getClientWorld();\r
- TileEntity tileEntity = world.getBlockTileEntity(x, y, z);\r
- if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
- TileEntityScienceCraftingTable var2 = (TileEntityScienceCraftingTable) tileEntity;\r
-<<<<<<< HEAD
- var2.setActiveTab(activeTab);\r
-=======
- var2.handlePacket(new Object[]{tab});\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
- }\r
- }\r
+ @Override\r
+ public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) {\r
+ if (packet.channel.equals("chemicraft")) {\r
+ ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data);\r
+\r
+ World world;\r
+ TileEntity tileEntity;\r
+ TileEntityScienceCraftingTable var2;\r
+\r
+ // TileEntityのx, y, z座標\r
+ int x, y, z;\r
+\r
+ // activeTab\r
+ String activeTab;\r
+\r
+ // 座標読み込み\r
+ x = var1.readInt();\r
+ y = var1.readInt();\r
+ z = var1.readInt();\r
+ // activeTab読み込み\r
+ activeTab = var1.readUTF();\r
+\r
+ // TileEntityを取得し読み込んだデータを送る\r
+ // from Server to Client\r
+ world = ChemiCraft.proxy.getClientWorld();\r
+ tileEntity = world.getBlockTileEntity(x, y, z);\r
+ if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
+ var2 = (TileEntityScienceCraftingTable) tileEntity;\r
+ \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.handlePacket(new Object[] { activeTab });\r
+ }\r
}\r
+ }\r
+\r
\r
+ public static Packet getPacket(TileEntityScienceCraftingTable tileEntity) {\r
+ ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
+ DataOutputStream var2 = new DataOutputStream(var1);\r
\r
- public static Packet getPacket(TileEntityScienceCraftingTable tileEntity) {\r
- ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
- DataOutputStream var2 = new DataOutputStream(var1);\r
-\r
- //Blockのx, y, z座標\r
- int x, y, z;\r
-<<<<<<< HEAD
- //activeTab\r
- String activeTab;\r
-=======
- String tab;\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
-\r
- // x, y, z座標を代入\r
- x = tileEntity.xCoord;\r
- y = tileEntity.yCoord;\r
- z = tileEntity.zCoord;\r
-<<<<<<< HEAD
- //activeTabに代入\r
- activeTab = tileEntity.getActiveTab();\r
-=======
- tab = tileEntity.getActiveTab();\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
-\r
- try {\r
- var2.writeInt(x);\r
- var2.writeInt(y);\r
- var2.writeInt(z);\r
-<<<<<<< HEAD
- var2.writeUTF(activeTab);\r
-=======
- var2.writeUTF(tab);\r
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
- } catch (IOException e) {\r
- e.printStackTrace();\r
- }\r
-\r
- // パケットの作成\r
- Packet250CustomPayload packet = new Packet250CustomPayload();\r
- packet.channel = "chemicraft";\r
- packet.data = var1.toByteArray();\r
- packet.length = var1.size();\r
- packet.isChunkDataPacket = true;\r
- return packet;\r
+ // Blockのx, y, z座標\r
+ int x, y, z;\r
+\r
+ // activeTab\r
+ String activeTab;\r
+\r
+ // x, y, z座標を代入\r
+ x = tileEntity.xCoord;\r
+ y = tileEntity.yCoord;\r
+ z = tileEntity.zCoord;\r
+\r
+ // activeTabに代入\r
+ activeTab = tileEntity.getActiveTab();\r
+\r
+ try {\r
+ // 座標書き込み\r
+ var2.writeInt(x);\r
+ var2.writeInt(y);\r
+ var2.writeInt(z);\r
+ // activeTab書き込み\r
+ var2.writeUTF(activeTab);\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
}\r
+\r
+ // パケットの作成\r
+ Packet250CustomPayload packet = new Packet250CustomPayload();\r
+ packet.channel = "chemicraft";\r
+ packet.data = var1.toByteArray();\r
+ packet.length = var1.size();\r
+ packet.isChunkDataPacket = true;\r
+ return packet;\r
+ }\r
}\r
public class TileEntityScienceCraftingTable extends TileEntity implements IInventory, ISidedInventory {
- /**
- * InventorySlotのItemStack配列
- */
- private ItemStack[] inventory = new ItemStack[17];
+ /**
+ * InventorySlotのItemStack配列
+ */
+ private ItemStack[] inventory = new ItemStack[17];
+ /**
+ * ActiveなTabの名前
+ */
+ private String activeTab;
- /**
- * ActiveなTabの名前
- */
- private String activeTab;
+ public TileEntityScienceCraftingTable() {
+ super();
+ // ActiveTabのデフォルトを設定
+ this.activeTab = "Decomposition";
+ }
- public TileEntityScienceCraftingTable() {
- super();
- //ActiveTabのデフォルトを設定
- this.activeTab = "Decomposition";
- }
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ }
- @Override
- public void updateEntity() {
- super.updateEntity();
- System.out.println(this.activeTab);
- }
+ @Override
+ public void readFromNBT(NBTTagCompound par1) {
+ super.readFromNBT(par1);
+ this.activeTab = par1.getString("activeTab");
+ }
- @Override
- public void readFromNBT(NBTTagCompound par1) {
- super.readFromNBT(par1);
- this.activeTab = par1.getString("activeTab");
- }
+ @Override
+ public void writeToNBT(NBTTagCompound par1) {
+ super.writeToNBT(par1);
+ par1.setString("activeTab", this.activeTab);
+ }
- @Override
- public void writeToNBT(NBTTagCompound par1) {
- super.writeToNBT(par1);
- par1.setString("activeTab", this.activeTab);
- }
+ public String getActiveTab() {
+ return this.activeTab;
+ }
- public String getActiveTab(){
- return this.activeTab;
- }
+ public void setActiveTab(String activeTab) {
+ this.activeTab = activeTab;
+ }
- public void setActiveTab(String activeTab){
- PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
- this.activeTab = activeTab;
- }
+ @Override
+ public int getSizeInventory() {
+ return inventory.length;
+ }
- @Override
- public int getSizeInventory() {
- return inventory.length;
- }
+ @Override
+ public ItemStack getStackInSlot(int var1) {
+ return inventory[var1];
+ }
- @Override
- public ItemStack getStackInSlot(int var1) {
- return inventory[var1];
- }
+ @Override
+ public ItemStack decrStackSize(int var1, int var2) {
+ return null;
+ }
- @Override
- public ItemStack decrStackSize(int var1, int var2) {
- return null;
- }
+ @Override
+ public ItemStack getStackInSlotOnClosing(int var1) {
+ return null;
+ }
- @Override
- public ItemStack getStackInSlotOnClosing(int var1) {
- return null;
- }
+ @Override
+ public void setInventorySlotContents(int var1, ItemStack var2) {
+ }
- @Override
- public void setInventorySlotContents(int var1, ItemStack var2) {
- }
+ @Override
+ public String getInvName() {
+ return null;
+ }
- @Override
- public String getInvName() {
- return null;
- }
+ @Override
+ public int getInventoryStackLimit() {
+ return 64;
+ }
- @Override
- public int getInventoryStackLimit() {
- return 64;
- }
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer var1) {
+ return false;
+ }
- @Override
- public boolean isUseableByPlayer(EntityPlayer var1) {
- return false;
- }
+ @Override
+ public void openChest() {
+ }
- @Override
- public void openChest() {
- }
+ @Override
+ public void closeChest() {
+ }
- @Override
- public void closeChest() {
- }
+ @Override
+ public Packet getDescriptionPacket() {
+ return PacketHandler.getPacket(this);
+ }
- @Override
- public Packet getDescriptionPacket() {
- return PacketHandler.getPacket(this);
- }
+ public void handlePacket(Object[] data) {
+ this.activeTab = (String) data[0];
+ }
-<<<<<<< HEAD
-=======
- public void handlePacket(Object[] data) {
- this.activeTab = (String) data[0];
- }
+ @Override
+ public int getStartInventorySide(ForgeDirection side) {
+ return 0;
+ }
->>>>>>> 820e884ca2933199d4be03f7de49a491a7f9e93e
- @Override
- public int getStartInventorySide(ForgeDirection side) {
- return 0;
- }
-
-
- @Override
- public int getSizeInventorySide(ForgeDirection side) {
- return 0;
- }
+ @Override
+ public int getSizeInventorySide(ForgeDirection side) {
+ return 0;
+ }
}