示例#1
0
 /** Network command handling */
 private void HandleWorldState(NetCommand.WorldState cmd)
 {
     if (simulation != null)
     {
         simulation.EnqueueWorldState(cmd);
     }
 }
    private void BroadcastWorldState(float dt)
    {
        var players      = playerManager.GetPlayers();
        var playerStates = players.Select(p => p.Controller.ToNetworkState()).ToArray();

        foreach (var player in players)
        {
            var cmd = new NetCommand.WorldState {
                WorldTick           = WorldTick,
                YourLatestInputTick = playerConnectionInfo[player.Id].latestInputTick,
                PlayerStates        = playerStates,
            };
            handler.SendWorldState(player, cmd);
        }
    }
 public void EnqueueWorldState(NetCommand.WorldState state)
 {
     worldStateQueue.Enqueue(state);
 }
示例#4
0
 /** Simulation.Handler interface */
 public void SendWorldState(Player player, NetCommand.WorldState state)
 {
     netChannel.SendCommand(player.Peer, state);
 }