示例#1
0
    public void Nudge(NudgeInfo info)
    {
        Vector2 impulse = info.Trajectory.normalized;

        serverState.Speed = info.InitialSpeed;

        serverState.Impulse = impulse;
        if (info.SpinMode != SpinMode.None)
        {
            if (info.SpinMultiplier <= 0)
            {
                info.SpinMultiplier = 1;
            }
            serverState.SpinFactor = ( sbyte )(Mathf.Clamp(info.InitialSpeed * info.SpinMultiplier, sbyte.MinValue, sbyte.MaxValue)
                                               * (info.SpinMode == SpinMode.Clockwise ? 1 : -1));
        }
        Logger.LogTraceFormat("Nudge:{0} {1}", Category.Transform, info, serverState);
        NotifyPlayers();
    }
示例#2
0
    public void Nudge(NudgeInfo info)
    {
        if (PushPull.IsNotPushable)
        {
            return;
        }

        Vector2 impulse = info.Trajectory.normalized;

        serverState.Speed = info.InitialSpeed;

        serverState.WorldImpulse = impulse;
        if (info.SpinMode != SpinMode.None)
        {
            if (info.SpinMultiplier <= 0)
            {
                info.SpinMultiplier = 1;
            }
            serverState.SpinFactor = (sbyte)(Mathf.Clamp(info.InitialSpeed * info.SpinMultiplier, sbyte.MinValue, sbyte.MaxValue) *
                                             (info.SpinMode == SpinMode.Clockwise ? 1 : -1));
        }
        Logger.LogTraceFormat(NUDGE, Category.Movement, info, serverState);
        NotifyPlayers();
    }
示例#3
0
 public bool Equals(NudgeInfo other)
 {
     return(OriginPos.Equals(other.OriginPos) && Trajectory.Equals(other.Trajectory));
 }