/// <summary> /// Default constructor gets the current gamestate /// </summary> public GameState() { Type = PacketType.GameState; State = new Diag.GameState(true); GetState(); }
/// <summary> /// Deserialization constructor /// </summary> /// <param name="data">The GameState packet received from the server</param> public GameState(byte[] data) { if (data.Length < 1) { Console.WriteLine("ERROR: GameState deserialization: data.Length == " + data.Length); return; } Type = (PacketType)data[0]; // get the compressed bytes from the packet State = new Diag.GameState(); State.StateBytesCompressed = new byte[data.Length - 1]; Buffer.BlockCopy(data, 1, State.StateBytesCompressed, 0, State.StateBytesCompressed.Length); // decompress State.StateBytes = LZ4Codec.Unwrap(State.StateBytesCompressed); // persist to object vars State = State.LoadState(); }