/// <summary> /// When a new player joins we need to inform all the other clients as to /// which entity they control. /// </summary> private void AnnounceClientEntityControlSituationToClients(RemotePlayer player, Entity entity) { var msg = new ServerClientEntityControlMessage { EntityId = entity.EntityId, ClientId = player.ClientId }; Engine.SendMessage(msg); }
/// <summary> /// Server - Inform a client who controls which entities. /// </summary> /// <param name="msg"></param> private void AnnounceClientEntitiesControlSituationToClient(Message msg) { var message = (ClientRequestEntityControlMessage)msg; var player = message.Sender; foreach (var playerControlledEntity in Engine.Entities.Where(item => item.GetPlayerId() != null)) { var playerId = playerControlledEntity.GetPlayerId(); if (playerId == null) { continue; } var outMsg = new ServerClientEntityControlMessage { EntityId = playerControlledEntity.EntityId, ClientId = playerId.Value }; Engine.SendMessageToClient(outMsg, player); } }