private void receiveRelayData(ByteReceiver br, int uniqueID) { DataType typeL = (DataType)br.getInt(); br.clean(); ReceiveDataEvent(typeL, playerInfoList[findWithUniqueID(uniqueID)], br.data); }
public virtual void receiveSyncOthers(ByteReceiver br) { br.clean(); if (isServer()) { return; } //Remove all synced PlayerInfo's int count = 0; for (int i = 0; i < playerInfoList.Count; i++) { if (playerInfoList [count].synced) { playerInfoList.RemoveAt(count); } else { count++; } } int max = br.getInt(); for (int i = 0; i < max; i++) { var pi = new PlayerInfo(); br.index = pi.deserialize(br.data, br.index); pi.synced = true; playerInfoList.Add(pi); } updatePlayerInfoListArrays(); }
public override void ReceiveDataEvent(DataType type, PlayerInfo playerInfo, byte[] data, int index = 0) { base.ReceiveDataEvent(type, playerInfo, data, index); if (type == DataType.Sync) { ByteReceiver br = new ByteReceiver(data, index); var stype = (SyncType)br.getInt(); data = br.clean(); switch (stype) { case SyncType.Spawning: receiveSpawn(data); break; case SyncType.TransUpdate: receiveTransUpdate(data); break; case SyncType.Request: if (!server) { logMessage("Request Received, not server", "error"); return; } receiveRequest(data, playerInfo); break; } } }
public void ReceiveDataBasicEvent(int hostId, int connectionID, int channelId, byte[] data, int size) { ByteReceiver br = new ByteReceiver(data); var type = (DataType)br.getInt(); br.clean(); ReceiveDataEvent(type, playerInfoList [findWithConnID(connectionID)], br.data); }
public override void ReceiveDataEvent(DataType type, PlayerInfo playerInfo, byte[] data, int index = 0) { base.ReceiveDataEvent(type, playerInfo, data, index); ByteReceiver br = new ByteReceiver(data, index); switch (type) { case DataType.ListUpdate: switch ((ListUpdateType)br.getInt()) { case ListUpdateType.UpdateYourself: receiveUpdateYourself(br); break; case ListUpdateType.SyncOthers: receiveSyncOthers(br); break; } break; case DataType.Relay: int[] uniqueIDs = br.getIntArray(); bool runInServer = br.getBool(); br.clean(); sendRelayS(br.data, playerInfo.uniqueID, uniqueIDs); if (runInServer) { receiveRelayData(br, playerInfo.uniqueID); } break; case DataType.RelayS: receiveRelayS(br); break; } }
public virtual void receiveUpdateYourself(ByteReceiver br) { br.clean(); playerInfo.deserialize(br.data, br.index); }