Exemple #1
0
 private void CheckAvoidFalls(SimAvatarClient TheCBot)
 {
     if (AvoidFalls && !TheCBot.Flying)
     {
         if (!AvoidFallsWithFlight)
         {
             SwitchSalientProc();
             return;
         }
         TheCBot.Flying = true;
         setFlight      = true;
     }
 }
 public SimAvatarClient(UUID id, WorldObjects objectSystem, Simulator reg)
     : base(id, objectSystem, reg)
 {
     SingleInstance = this;
     Affordances.ObjectType.SuperType.Add(SimTypeSystem.GetObjectType("PlayerAvatar"));
     //try
     //{
     //    AspectName = slAvatar.Name;
     //}
     //catch (Exception)
     //{
     //    AspectName += objectSystem.client + "_Avatar_" + slAvatar.LocalID;
     //}
     //MakeEnterable(this);
     WorldSystem.AddAvatar(this, id);
 }
Exemple #3
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;
        }
Exemple #4
0
 public void Objects_OnNewAvatar1(Simulator simulator, Avatar avatar, ulong regionHandle)
 {
     try
     {
         Objects_OnNewPrimReal(simulator, avatar, regionHandle);
         if (avatar.LocalID == client.Self.LocalID)
         {
             SimObject AV = (SimObject)GetSimObject(avatar, simulator);
             if (AV is SimActor)
             {
                 TheSimAvatar = (SimAvatarClient)AV;
                 TheSimAvatar.SetClient(client);
             }
         }
     }
     catch (Exception e)
     {
         WriteLine(String.Format("err :{0}", e.StackTrace));
     }
 }
Exemple #5
0
 //object Objects_OnNewAvatarLock = new object();
 public override void Objects_OnNewAvatar(object sender, AvatarUpdateEventArgs e)
 {
     Avatar avatar = e.Avatar;
     var simulator = e.Simulator;
     var regionHandle = e.Simulator.Handle;
     if (regionHandle==0)
     {
         return;
     }
     SimObject AV = GetSimObject(avatar, simulator);
     if (avatar.ID == client.Self.AgentID)
     {
         if (AV is SimActor)
         {
             TheSimAvatar = (SimAvatarClient)AV;
             TheSimAvatar.SetClient(client);
         }
     }
     AV.IsKilled = false;
     if (IsMaster(simulator))
     //lock (Objects_OnNewAvatarLock)
     {
         AV.ResetPrim(avatar, client, simulator);
     }
     Objects_OnNewAvatar1(simulator, avatar, regionHandle);
 }
Exemple #6
0
 public void SetSimAvatar(SimActor simAvatar)
 {
     TheSimAvatar = (SimAvatarClient)simAvatar;
 }
Exemple #7
0
 internal SimAvatarImpl CreateSimAvatar(UUID uuid, WorldObjects objects, Simulator simulator)
 {
     if (uuid == UUID.Zero)
     {
         throw new NullReferenceException("UUID.Zero!");
     }
     // Request all of the packets that make up an avatar profile
     // lock (GetSimObjectLock)
     if (client.Self.AgentID == uuid)
     {
         return TheSimAvatar;
     }
     SimAvatarImpl obj0 = GetSimObjectFromUUID(uuid) as SimAvatarImpl;
     if (obj0 != null) return (SimAvatarImpl)obj0;
     object getSimLock = GetSimLock(simulator ?? client.Network.CurrentSim);
     lock (getSimLock)
     {
         lock (UUIDTypeObjectLock)
             //lock (SimObjects)
             //  lock (SimAvatars)
         {
             SimObject simObj = GetSimObjectFromUUID(uuid);
             obj0 = simObj as SimAvatarImpl;
             if (obj0 != null) return (SimAvatarImpl) obj0;
             if (simObj != null)
             {
                 Debug("SimObj->SimAvatar!?! " + simObj);
             }
             obj0 = new SimAvatarClient(uuid, objects, simulator);
             AddAvatar(obj0,uuid);
             obj0.PollForPrim(this, simulator);
             return (SimAvatarImpl)obj0;
         }
     }
 }
 private void CheckAvoidFalls(SimAvatarClient TheCBot)
 {
     if (AvoidFalls && !TheCBot.Flying)
     {
         if (!AvoidFallsWithFlight)
         {
             SwitchSalientProc();
             return;
         }
         TheCBot.Flying = true;
         setFlight = true;
     }
 }
 public SimAvatarClient(UUID id, WorldObjects objectSystem, Simulator reg)
     : base(id, objectSystem, reg)
 {
     SingleInstance = this;
     Affordances.ObjectType.SuperType.Add(SimTypeSystem.GetObjectType("PlayerAvatar"));
     //try
     //{
     //    AspectName = slAvatar.Name;
     //}
     //catch (Exception)
     //{
     //    AspectName += objectSystem.client + "_Avatar_" + slAvatar.LocalID;
     //}
     //MakeEnterable(this);
     WorldSystem.AddAvatar(this,id);
 }