internal static void WriteServerInfo(NetOutgoingMessage message, ServerInfo info) { // name message.Write(info.name); // scheme Scheme scheme = info.scheme; // scheme: name message.Write(scheme.name); // scheme: field data FieldData fieldData = scheme.fieldData; message.Write(fieldData.GetWidth()); message.Write(fieldData.GetHeight()); FieldBlocks[] blocks = fieldData.GetDataArray(); for (int i = 0; i < blocks.Length; ++i) { byte block = (byte)blocks[i]; message.Write(block); } // scheme: player locations PlayerLocationInfo[] playerLocations = scheme.GetPlayerLocations(); message.Write((byte)playerLocations.Length); for (int i = 0; i < playerLocations.Length; ++i) { message.Write((byte)playerLocations[i].x); message.Write((byte)playerLocations[i].y); message.Write((byte)playerLocations[i].team); } }