using LiteNetLib.Utils; namespace PacketLib; public struct PlayerState(int pid, int camera, bool[] doorStates, int power, bool poweredOut) : INetSerializable { public int Pid = pid; public int Camera = camera; public bool MonitorUp; public int OfficeTileId; public bool[] DoorStates = doorStates; public int[] NeighbouringTiles = []; // the indexes should correspond in both arrays public int Power = power; public bool PoweredOut = poweredOut; public void Serialize(NetDataWriter writer) { writer.Put(Pid); writer.Put(Camera); writer.Put(MonitorUp); writer.PutArray(DoorStates); writer.Put(OfficeTileId); writer.PutArray(NeighbouringTiles); writer.Put(Power); writer.Put(PoweredOut); } public void Deserialize(NetDataReader reader) { Pid = reader.GetInt(); Camera = reader.GetInt(); MonitorUp = reader.GetBool(); DoorStates = reader.GetBoolArray(); OfficeTileId = reader.GetInt(); NeighbouringTiles = reader.GetIntArray(); Power = reader.GetInt(); PoweredOut = reader.GetBool(); } }