예제 #1
0
    public static MatrixMoveMessage SendToAll(GameObject matrix, MatrixState state)
    {
        var msg = new MatrixMoveMessage
        {
            Matrix = matrix != null?matrix.GetComponent <NetworkIdentity>().netId : NetworkInstanceId.Invalid,
            State  = state,
        };

        msg.SendToAll();
        return(msg);
    }
예제 #2
0
 private void NotifyPlayers()
 {
     //Generally not sending mid-flight updates (unless there's a sudden change of course etc.)
     if (!isMovingServer || serverState.Inform)
     {
         MatrixMoveMessage.SendToAll(gameObject, serverState);
         //Clear inform flags
         serverTargetState.Inform = false;
         serverState.Inform       = false;
     }
 }
예제 #3
0
    public static MatrixMoveMessage Send(NetworkConnection recipient, GameObject matrix, MatrixState state)
    {
        var msg = new MatrixMoveMessage
        {
            Matrix = matrix != null?matrix.GetComponent <NetworkIdentity>().netId : NetId.Invalid,
            State  = state,
        };

        msg.SendTo(recipient);
        return(msg);
    }
예제 #4
0
    private void NotifyPlayers()
    {
        //Generally not sending mid-flight updates (unless there's a sudden change of course etc.)\
        if (!IsMovingServer || serverState.Inform)
        {
            serverState.RotationTime = rotTime;

            //fixme: this whole class behaves like ass!
            if (serverState.RotationTime != serverTargetState.RotationTime)
            {             //Doesn't guarantee that matrix will stop
                MatrixMoveMessage.SendToAll(gameObject, serverState);
            }
            else
            {             //Ends up in instant rotations
                MatrixMoveMessage.SendToAll(gameObject, serverTargetState);
            }
            //Clear inform flags
            serverTargetState.Inform = false;
            serverState.Inform       = false;
        }
    }
예제 #5
0
 public void UpdateNewPlayer(NetworkConnection playerConn, bool rotateImmediate = false)
 {
     serverState.RotationTime = rotateImmediate ? 0 : rotTime;
     MatrixMoveMessage.Send(playerConn, gameObject, serverState);
 }
예제 #6
0
 public void NotifyPlayer(GameObject playerGameObject, bool rotateImmediate = false)
 {
     serverState.RotationTime = rotateImmediate ? 0 : rotTime;
     MatrixMoveMessage.Send(playerGameObject, gameObject, serverState);
 }
예제 #7
0
 public void NotifyPlayer(GameObject playerGameObject)
 {
     MatrixMoveMessage.Send(playerGameObject, gameObject, serverState);
 }