Ejemplo n.º 1
0
        private void SwitchSalientProc()
        {
            procnum++;
            if (procnum >= proceedure.Length)
            {
                procnum = 0;
            }
            proposed = proceedure[procnum];
            SimAvatarClient TheCBot = (SimAvatarClient)this.TheCBot;

            if (setFlight)
            {
                setFlight      = false;
                TheCBot.Flying = false;
            }
            switch (proposed.Proc)
            {
            case MovementProceedure.AutoPilot:
                if (!UseAutoPilot)
                {
                    SwitchSalientProc();
                    break;
                }
                CheckAvoidFalls(TheCBot);
                break;

            case MovementProceedure.AStar:
                if (!UseGotoTarget)
                {
                    SwitchSalientProc();
                }
                break;

            case MovementProceedure.TurnToAndWalk:
                if (!UseSimpleTurnTo)
                {
                    SwitchSalientProc();
                    break;
                }
                CheckAvoidFalls(TheCBot);
                break;

            case MovementProceedure.FlyTo:
                if (!UseFlight || !TheCBot.CanFly)
                {
                    SwitchSalientProc();
                }
                break;

            case MovementProceedure.Teleport:
                if (!UseTeleport || !TheCBot.GetSimRegion().CanTeleportLocally /*|| SimAvatarClient.GotoUseTeleportFallback || SimAvatarClient.MoveUseTeleportFallback*/)
                {
                    SwitchSalientProc();
                }
                break;

            default:
                throw new ArgumentOutOfRangeException("proposed.Proc=" + proposed.Proc);
            }
            TheCBot.SalientMovementProceedure = proposed.Proc;
        }
Ejemplo n.º 2
0
 private void SwitchSalientProc()
 {
     procnum++;
     if (procnum >= proceedure.Length) procnum = 0;
     proposed = proceedure[procnum];
     SimAvatarClient TheCBot = (SimAvatarClient)this.TheCBot;
     if (setFlight)
     {
         setFlight = false;
         TheCBot.Flying = false;
     }
     switch (proposed.Proc)
     {
         case MovementProceedure.AutoPilot:
             if (!UseAutoPilot)
             {
                 SwitchSalientProc();
                 break;
             }
             CheckAvoidFalls(TheCBot);
             break;
         case MovementProceedure.AStar:
             if (!UseGotoTarget)
             {
                 SwitchSalientProc();
             }
             break;
         case MovementProceedure.TurnToAndWalk:
             if (!UseSimpleTurnTo)
             {
                 SwitchSalientProc();
                 break;
             }
             CheckAvoidFalls(TheCBot);
             break;
         case MovementProceedure.FlyTo:
             if (!UseFlight || !TheCBot.CanFly)
             {
                 SwitchSalientProc();
             }
             break;
         case MovementProceedure.Teleport:
             if (!UseTeleport || !TheCBot.GetSimRegion().CanTeleportLocally/*|| SimAvatarClient.GotoUseTeleportFallback || SimAvatarClient.MoveUseTeleportFallback*/)
             {
                 SwitchSalientProc();
             }
             break;
         default:
             throw new ArgumentOutOfRangeException("proposed.Proc=" + proposed.Proc);
     }
     TheCBot.SalientMovementProceedure = proposed.Proc;
 }