using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; namespace Networking { public class LogicProtocols { public const short SendLogicList = 200; public class LogicMsg : MessageBase { public LogicBlock[] elements; public LogicMsg() { } public LogicMsg(LogicBlock[] elements) { this.elements = elements; } public override void Serialize(NetworkWriter writer) { base.Serialize(writer); writer.Write(elements.Length); foreach (LogicBlock block in elements) { BlockToken token = block.ToToken(); byte[] bytes = Utility.ObjectToByteArray(token); writer.WriteBytesAndSize(bytes,bytes.Length); } } public override void Deserialize(NetworkReader reader) { base.Deserialize(reader); int count = reader.ReadInt32(); elements = new LogicBlock[count]; for (int i = 0; i < count; i++) { BlockToken token = Utility.ByteArrayToObject(reader.ReadBytesAndSize()); elements[i] = token.ToLogicBlock(); } } } } }