private static IEnumerator SendChunkToServer(ZRpc client, int chunk) { if (chunk >= CHUNKS) { yield break; } var size = ExplorationDatabase.MapSizeSquared / CHUNKS; var startIndex = chunk * (ExplorationDatabase.MapSizeSquared / CHUNKS); var explored = Traverse.Create(_Minimap._instance).Field("m_explored").GetValue() as bool[]; var z = ExplorationDatabase.PackBoolArray(explored, chunk, startIndex, size); if (client == null) { OnClientInitialData(null, z); } else { yield return(new WaitUntil(() => _ZNet.GetServerRPC(_ZNet._instance) != null)); var server = _ZNet.GetServerRPC(_ZNet._instance); server.Invoke("OnClientInitialData", (object)z); } }
private static void SendChunkToClient(ZRpc client, int chunk) { if (chunk >= CHUNKS) { return; } var size = ExplorationDatabase.MapSizeSquared / CHUNKS; var startIndex = chunk * (ExplorationDatabase.MapSizeSquared / CHUNKS); var z = ExplorationDatabase.PackBoolArray(ExplorationDatabase.GetExplorationArray(), chunk, startIndex, size); if (client == null) { OnReceiveMapDataInitial(null, z); } else { client.Invoke("OnReceiveMapDataInitial", (object)z); } }