From ca44ee4cf4660198906717b1653d41152c7ee943 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Sun, 4 Aug 2013 03:35:33 -0400 Subject: [PATCH] I lied, I'm not signing off. Packets for Battery multiblock --- .../battery/SynchronizedBatteryData.java | 5 ++ .../battery/TileEntityBattery.java | 53 ++++++++++++++++--- 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/src/resonantinduction/battery/SynchronizedBatteryData.java b/src/resonantinduction/battery/SynchronizedBatteryData.java index 950eee49..f57be3bb 100644 --- a/src/resonantinduction/battery/SynchronizedBatteryData.java +++ b/src/resonantinduction/battery/SynchronizedBatteryData.java @@ -20,6 +20,11 @@ public class SynchronizedBatteryData public boolean didTick; + public int getVolume() + { + return length*width*height; + } + @Override public int hashCode() { diff --git a/src/resonantinduction/battery/TileEntityBattery.java b/src/resonantinduction/battery/TileEntityBattery.java index 01a528c2..682cb4e6 100644 --- a/src/resonantinduction/battery/TileEntityBattery.java +++ b/src/resonantinduction/battery/TileEntityBattery.java @@ -3,6 +3,7 @@ */ package resonantinduction.battery; +import java.util.ArrayList; import java.util.HashSet; import java.util.Set; @@ -10,33 +11,36 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import resonantinduction.PacketHandler; import resonantinduction.api.IBattery; +import resonantinduction.base.IPacketReceiver; import resonantinduction.base.TileEntityBase; +import com.google.common.io.ByteArrayDataInput; + /** * A modular battery with no GUI. * - * @author Calclavia + * @author AidanBrady */ -public class TileEntityBattery extends TileEntityBase +public class TileEntityBattery extends TileEntityBase implements IPacketReceiver { public Set inventory = new HashSet(); - private byte[] sideStatus = new byte[] { 0, 0, 0, 0, 0, 0 }; - public SynchronizedBatteryData structure; public boolean prevStructure; public boolean clientHasStructure; - public int inventoryID; + public int inventoryID = BatteryManager.WILDCARD; @Override public void updateEntity() { + //DO NOT SUPER, CALCLAVIA! + ticks++; - //DO NOT SUPER if(worldObj.isRemote) { @@ -70,7 +74,7 @@ public class TileEntityBattery extends TileEntityBase if(prevStructure != (structure != null)) { - //packet + PacketHandler.sendTileEntityPacketToClients(this, getNetworkedData(new ArrayList())); } prevStructure = structure != null; @@ -165,4 +169,39 @@ public class TileEntityBattery extends TileEntityBase return max; } + + @Override + public void handle(ByteArrayDataInput input) + { + try { + if(structure == null) + { + structure = new SynchronizedBatteryData(); + } + + clientHasStructure = input.readBoolean(); + + if(clientHasStructure) + { + structure.height = input.readInt(); + structure.length = input.readInt(); + structure.width = input.readInt(); + } + } catch(Exception e) {} + } + + @Override + public ArrayList getNetworkedData(ArrayList data) + { + data.add(structure != null); + + if(structure != null) + { + data.add(structure.height); + data.add(structure.length); + data.add(structure.width); + } + + return data; + } }