Exemple #1
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;
         }
     }
 }