Inheritance: MonoBehaviour
Ejemplo n.º 1
0
 public static bool IsSkipped(SimObject P, ImportSettings settings)
 {
     if (P is SimAvatar) return true;
     if (P == null) return true;
     if (IsIncluded(P.ID, P.LocalID)) return false;
     if (P.Parent != null) if (IsIncluded(P.Parent.ID, P.ParentID)) return false;
     Primitive pp = P.Prim0;
     if (P.IsKilled)
     {
         if (pp != null)
         {
             if (P.IsTemporary) return true;
         }
     }
     if (P.IsTemporary) return true;           
     if (!P.HasPrim) return true;
     if (pp == null) return true;
     var sp = P.SimPosition;
     if (!onlyObjectAt.IsInside(sp.X, sp.Y, sp.Z)) return true;
     Primitive.ObjectProperties props = pp.Properties;
     if (props != null)
     {
         if (IsSkippedName(props.Name))
         {
             return true;
         }
     }
     if (pp.ParentID == 0) return false;
     SimObject parent = P.Parent;
     // yes SL really does have links two deep! (called attachment linksets)
     if (parent == null) return true;
     if (parent == P) return false;
     if (!IsSkipped(parent, settings)) return false;
     return true;
 }
Ejemplo n.º 2
0
 private void SnagUsers(SimObject o)
 {
     var prim = o.Prim;
     AddExportUser(prim.OwnerID);
     AddExportGroup(prim.GroupID);
     Primitive.ObjectProperties primProperties = prim.Properties ?? o.Properties;
     if (primProperties != null)
     {
         AddExportUser(primProperties.CreatorID);
         AddExportGroup(primProperties.GroupID);
     }
 }
Ejemplo n.º 3
0
        void ScanForLinksets(SimObject O)
        {
            if (O.Children == null) return;
            if (O.Children.Count == 0)
            {
                lock (fileWriterLock) File.WriteAllText(dumpDir + O.ID + ".link", "");
            }

            var lst = new SortedList<uint, UUID>();
            foreach (var o in LockInfo.CopyOf(O.Children))
            {
                lst.Add(o.LocalID, o.ID);
            }
            string contents = "" + O.ID;
            foreach (KeyValuePair<uint, UUID> uuid in lst)
            {
                contents += "," + uuid.Value;
            }
            lock (fileWriterLock) File.WriteAllText(dumpDir + O.ID + ".link", contents);
        }
Ejemplo n.º 4
0
 private void SaveRelatedAssets(string pathStem, SimObject exportPrim, OutputDelegate Failure)
 {
     string exportFile = pathStem + ".deps";
     if (Incremental || showsMissingOnly) lock (fileWriterLock) if (File.Exists(exportFile)) return;
     needFiles++;
     if (showsMissingOnly)
     {
         Failure("NEED DEPS for " + named(exportPrim));
         return;
     }
     if (PrimDepsAssets.Count == 0)
     {
         lock (fileWriterLock) File.WriteAllText(exportFile, "");
         return;
     }
     string content = "";
     foreach (UUID assetID in PrimDepsAssets)
     {
         content += assetTypeOf(assetID) + "," + assetID + "\n";
     }
     lock (fileWriterLock) File.WriteAllText(exportFile, content);
 }
Ejemplo n.º 5
0
        public string GiveAll(BotInventoryEval man, InventoryBase b, SimObject dest, bool moveInsteadOfCopy)
        {
            string ret = "";
            var manager = man.Manager;
            if (b is InventoryItem)
            {
                InventoryItem item = b as InventoryItem;

                bool canCopy = (item.Permissions.OwnerMask & PermissionMask.Copy) == PermissionMask.Copy;

                ret += item.Name + nl;
                if (dest.IsAvatar)
                {
                    manager.GiveItem(item.UUID, item.Name, item.AssetType, dest.ID, true);
                }
                else
                {
                    throw new NotImplementedException("giving items to objects");
                }
            }
            else if (b is InventoryFolder)
            {
                InventoryFolder item = b as InventoryFolder;
                if (dest.IsAvatar)
                {
                    manager.GiveFolder(item.UUID, item.Name, AssetType.Folder, dest.ID, true);
                    return item.Name + nl;
                }
                InventoryFolder folder = b as InventoryFolder;
                List<InventoryBase> folderContents = man.FolderContents(folder.UUID);
                if (folderContents != null)
                    foreach (InventoryBase list in folderContents)
                    {
                        ret += GiveAll(man, list, dest, moveInsteadOfCopy);
                    }
            }
            return ret;
        }
Ejemplo n.º 6
0
        public static Dictionary<string, float> ToNamedColors(SimObject av)
        {
            Primitive p = av.Prim;
            if (p==null) return null;
            var t = p.Textures;
            var tf = t.FaceTextures;
            Color4 fnd = Color4.Black;
            bool cf = false;
            foreach (var entryFace in tf)
            {
                if (entryFace == null) continue;
                var fc = entryFace.TextureID;
                var fnd0 = entryFace.RGBA;
                if (fnd0 != Color4.White)
                {
                    fnd = fnd0;
                    cf = true;
                    break;
                }
            }
            if (!cf)
            {
                var dc = t.DefaultTexture;
                if (dc != null)
                {

                    var fnd0 = dc.RGBA;
                    if (fnd0 != Color4.White)
                    {
                        fnd = fnd0;
                    }
                }
            }
            Dictionary<string, float> dict = new Dictionary<string, float>();
            CatchNamedColors(ToColor(fnd), dict, false);
            return dict;
        }
Ejemplo n.º 7
0
        private void InvokeThis(SimTypeUsage name, object sender, EventArgs args, SimObject O, object target, Type type)
        {

            Plugin.TheBot.WorldSystem.TheSimAvatar.Do(name, O ?? GetSimObject(target));
        }
Ejemplo n.º 8
0
 public SaveFileDialog(SimObject pObj) : base(pObj)
 {
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Triggers the OnRemovePartSimObject event.
 /// </summary>
 public virtual void SendOnRemovePartSimObject(SimObject ea, string property, object oldValue, object newValue)
 {
     if (OnRemovePartSimObject != null)
         OnRemovePartSimObject(ea, property, oldValue, newValue);
 }
Ejemplo n.º 10
0
 public PermissionMask NonEffectivePermissionsMask(SimObject exportPrim)
 {
     Permissions perms = exportPrim.Properties.Permissions;
     return CogbotHelpers.PermMaskForWho(EffectivePermissionWho(exportPrim), perms);
 }
Ejemplo n.º 11
0
 public SaveFileDialog(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 12
0
 public RenderParticleMgr(SimObject pObj) : base(pObj)
 {
 }
Ejemplo n.º 13
0
 public StreamObject(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 14
0
 public GuiRoadEditorCtrl(SimObject pObj)
     : base(pObj)
 {
 }
 public GuiInspectorTypeBitMask32(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 16
0
 public FlyingVehicleData(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 17
0
 public GuiRoadEditorCtrl(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
 public GuiInspectorTypeCheckBox(SimObject pObj) : base(pObj)
 {
 }
Ejemplo n.º 19
0
 public guiAnimBitmapCtrl(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 20
0
 public guiAnimBitmapCtrl(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 21
0
 private void OfferPrimToSimObject(Primitive prim, SimObject obj0, Simulator simulator)
 {
     if (simulator != null && prim.Properties == null)
     {
         EnsureSelected(prim, simulator);
     }
     obj0.ConfirmedObject = true;
     obj0.ResetPrim(prim, client, simulator);
 }
 public GuiInspectorTypeBitMask32(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 23
0
 public SimObjectListViewItem(SimObject o)
 {
     _simObject = o;
     this.Tag = o.ID;
     this.Text = o.ToString();
 }
Ejemplo n.º 24
0
 public VehicleData(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 25
0
        public void SaveLLSD(BotClient Client, string pathStem, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings)
        {
            if (exportPrim != null)
            {
                string exportFile = pathStem + ".llsd";
                if (Incremental || showsMissingOnly) lock (fileWriterLock) if (File.Exists(exportFile)) return;
                needFiles++;
                if (showsMissingOnly)
                {
                    Failure("NEED LLSD for " + named(exportPrim));
                    AddMoveTo(exportPrim.SimPosition);
                    return;
                }

                try
                {
                    List<string> skipTag = new List<string>() { "Tag" };
                    Primitive prim = exportPrim.Prim;

                    Vector3 pp = prim.Position;
                    Quaternion pr = prim.Rotation;
                    //prim = prim.Clone(); 
                    OSDMap primOSD = (OSDMap) prim.GetOSD();
                    if (prim.ParentID != 0)
                    {
                        var parent = WorldSystem.GetLibOMVHostedPrim(prim.ParentID, settings.CurSim, false);
                        if (parent == null)
                        {
                            pp += new Vector3(128, 128, Client.Self.SimPosition.Z + 20);
                            Failure("YET FAILED: Cant GET parent of " + prim);
                            return;
                        }
                        else
                        {
                            pp = prim.Position * Matrix4.CreateFromQuaternion(parent.Rotation) + parent.Position;
                            pr = parent.Rotation * pr;
                            primOSD["ParentUUID"] = parent.ID;
                        }
                    }
                    primOSD["RegionPosition"] = pp;
                    primOSD["RegionRotation"] = pr;
                    if (exportPrim.PathFinding.MadeNonPhysical)
                    {
                        primOSD["physical"] = true;
                        primOSD["use_physics"] = true;
                    }
                    if (exportPrim.PathFinding.MadeNonTemp)
                    {
                        primOSD["temporary"] = true;
                    }
                    AddExportUser(primOSD["CreatorID"]);
                    AddExportGroup(primOSD["GroupID"]);
                    AddExportUser(primOSD["OwnerID"]);
                    AddExportUser(primOSD["LastOwnerID"]);
                    string output = OSDParser.SerializeLLSDXmlString(primOSD);
                    {
                        lock (fileWriterLock) File.WriteAllText(exportFile, output);
                    }
                    var ptc = Importing.APrimToCreate(prim);
                    ptc.Rezed = exportPrim;
                   
                    if (forced && !verbosely) return;
                    return;
                    Primitive prim2 = FromFile(exportFile, ExportCommand.UseBinarySerialization) as Primitive;
                    string memberwiseCompare = MemberwiseCompare(prim, prim2, skipTag);
                    if (!string.IsNullOrEmpty(memberwiseCompare))
                    {
                        string failre = "Error in LLSD: " + memberwiseCompare;
                        Failure(failre);
                        if (!forced)
                        {
                            File.Delete(exportFile);
                            return;
                            Error(failre);
                        }
                    }
                }
                catch (Exception e)
                {
                    File.Delete(exportFile);
                    Failure("Writing file " + exportFile + " caused " + e);
                }
            }
        }
Ejemplo n.º 26
0
 public VehicleData(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 27
0
 public PermissionWho EffectivePermissionWho(SimObject exportPrim)
 {
     if (WorldSystem.AssumeOwner) return PermissionWho.Owner;
     Primitive.ObjectProperties permProps = exportPrim.Properties;
     Primitive prim = exportPrim.Prim;
     UUID objectGroupID = UUID.Zero;
     UUID ownerID = UUID.Zero;
     PrimFlags flag = PrimFlags.None;
     if (prim != null)
     {
         objectGroupID = prim.GroupID;
         ownerID = prim.OwnerID;
         flag = prim.Flags;
     } else if (permProps != null)
     {
         objectGroupID = permProps.GroupID;
         ownerID = permProps.OwnerID;
     }
     bool groupOwned = (flag & PrimFlags.ObjectGroupOwned) != 0;
   //  bool groupOwned = (flag & PrimFlags.) != 0;
     return EffectivePermissionWho(ownerID, objectGroupID, groupOwned);
 }
Ejemplo n.º 28
0
 public afxSpellBookData(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 29
0
 public void DoBestUse(SimObject someObject)
 {
     if (someObject == null) return;
     SimTypeUsage use = someObject.Affordances.GetBestUse(CurrentNeeds);
     if (use == null)
     {
         double closeness = Actor.Approach(someObject, someObject.GetSizeDistance() + 1);
         //AgentManager ClientSelf = client.Self;
         Actor.Touch(someObject);
         if (closeness < 3)
         {
             Actor.SitOn(someObject);
         }
         return;
     }
     Actor.Do(use, someObject);
     return;
 }
Ejemplo n.º 30
0
 public afxSpellBookData(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 31
0
 public StreamObject(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 32
0
 public SimDataBlock(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 33
0
 /// <summary>
 /// Triggers the OnRemoveSimObject event.
 /// </summary>
 public virtual void SendOnRemoveSimObject(SimObject ea)
 {
     if (OnRemoveSimObject != null)
         OnRemoveSimObject(ea);
 }
Ejemplo n.º 34
0
        /// <summary>
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// </summary>
        /// <param name="someObject"></param>
        /// <returns></returns>
        public bool SitOn(SimObject someObject)
        {
            if (someObject == null) return SitOnGround();

            AgentManager ClientSelf = Client.Self;
            uint local = someObject.LocalID;

            //already sitting on 
            Avatar theAvatar = this.theAvatar;
            if (theAvatar == null) return false;
            if (theAvatar.ParentID == local || Client.Self.SittingOn == local)
            {
                Debug("todo should we stand once first? " + someObject);
                return true;
            }

            AutoResetEvent are = new AutoResetEvent(false);
            EventHandler<AvatarSitChangedEventArgs> OnSitChanged =
                (s, e) =>
                {
                    if (e.Avatar == theAvatar)
                    {
                        are.Set();
                    }
                };
            Client.Objects.AvatarSitChanged += OnSitChanged;
            try
            {
                ClientSelf.RequestSit(someObject.Prim.ID, Vector3.Zero);
                ClientSelf.Sit();
                if (!are.WaitOne(10000))
                {
                    // return false;
                }
                return local == ClientSelf.SittingOn;
            }
            finally
            {
                Client.Objects.AvatarSitChanged -= OnSitChanged;
            }
        }
	//-----------  SELECTED OBJECT STUFF.

	public void selectObject(SimObject obj) {

		if (obj != null) {
			//do the generic stuff.

			hudView.setObjectName(obj.getName());
			hudView.setObjectDescription(obj.getDesc());


			hud.setSelectedObject(obj);
		}

	}
Ejemplo n.º 36
0
 public bool ExportPrim(BotClient Client, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings)
 {
     uint localID = exportPrim.LocalID;
     WorldObjects.EnsureRequested(localID + 1, settings.CurSim);
     try
     {
         Client.Objects.SelectObject(settings.CurSim, localID);
         WorldObjects.EnsureRequested(localID, settings.CurSim);
         return ExportPrim0(Client, exportPrim, Failure, settings);
     }
     finally
     {
         Client.Objects.DeselectObject(settings.CurSim, localID);                
     }
 }
Ejemplo n.º 37
0
 public SimObjectUsage(SimTypeUsage use, SimObject target) : base (""+ use.ToString() + " " + target.ToString())
 {
     TypeUsage = use;
     Target = target;
 }
Ejemplo n.º 38
0
 void SaveLinksetInfo(BotClient Client, string pathStem, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings)
 {
     string exportFile = pathStem + ".link";
     if (Incremental || true) lock (fileWriterLock) if (File.Exists(exportFile)) return;
     if (false && exportPrim.Children.Count == 0)
     {
         // so we dont do it again
         if (Incremental) lock (fileWriterLock) File.WriteAllText(exportFile, "");
         return;
     }
     if (Incremental || showsMissingOnly) lock (fileWriterLock) if (File.Exists(exportFile)) return;
     needFiles++;
     if (showsMissingOnly)
     {
         Failure("NEED LINK for " + named(exportPrim));
         return;
     }
     SlowlyDo(() => RequestLinksetInfo(Client, pathStem, exportPrim, Failure, settings));
 }
Ejemplo n.º 39
0
 public static bool TryGetSimObject(UUID victim, out SimObject victimAv)
 {
     victimAv = GetSimObjectFromUUID(victim);
     return victimAv != null;
 }
 public afxXM_OscillateZodiacColorData(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 41
0
 public SimDataBlock(SimObject pObj)
     : base(pObj)
 {
 }
 public afxXM_OscillateZodiacColorData(SimObject pObj) : base(pObj)
 {
 }
Ejemplo n.º 43
0
 /// <summary>
 ///  
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="maxDistance"></param>
 /// <returns></returns>
 public double Approach(SimObject obj, double maxDistance)
 {
     OnlyMoveOnThisThread();
     ///  stand up first
     SimObject UnPhantom = StandUp();
     ///  make sure it not going somewhere
     ///  set the new target
     ApproachDistance = maxDistance;
     string str = "Approaching " + obj + " " + DistanceVectorString(obj) + " to get " + ApproachDistance;
     Debug(str);
     try
     {
         if (DebugLevel > 1) IndicateTarget(obj, true);
         obj.PathFinding.MakeEnterable(this);
         ///  if (!MoveTo(obj.GlobalPosition(), obj.GetSizeDistance() + 0.5f, 12))
         SalientGoto(obj);
         TurnToward(obj);
         SimpleMoveTo(obj.GlobalPosition, maxDistance, 1, true);
     }
     finally
     {
         if (UnPhantom != null)
             UnPhantom.PathFinding.RestoreEnterable(this);
         if (DebugLevel > 1) IndicateTarget(obj, false);
     }
     return (double)Distance(obj);
 }
Ejemplo n.º 44
0
 public AudioDescription(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 45
0
 internal bool ExportPrim0(BotClient Client, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings)
 {
     if (IsSkipped(exportPrim, settings)) return false;
     Simulator CurSim = exportPrim.GetSimulator();
     //settings.CurSim = CurSim;
     WorldObjects.EnsureSelected(exportPrim.LocalID, CurSim);
     string pathStem = Path.Combine(dumpDir, exportPrim.ID.ToString());
     if (settings.Contains("task") || showsMissingOnly)
     {
         exportPrim.StartGetTaskInventory();
     }
     if (settings.Contains("wait"))
     {
         var waitUntil = DateTime.Now.AddSeconds(10);
         bool needsLoop = true;
         while (needsLoop && waitUntil > DateTime.Now)
         {
             needsLoop = false;
             if (exportPrim.Properties == null || CogbotHelpers.IsNullOrZero(exportPrim.Properties.OwnerID))
             {
                 needsLoop = true;
             }
             if (settings.Contains("task"))
             {
                 var ti = exportPrim.TaskInventory;
                 if (ti == null)
                 {
                     needsLoop = true;
                 }
             }
         }
         if (needsLoop)
         {
             Success("needs loop " + named(exportPrim));
             string bissues = exportPrim.MissingData;
             if (!string.IsNullOrEmpty(bissues) && !settings.Allows(bissues ,exportPrim))
             {
                 Failure("Cant wait out the Issues " + bissues + ": " + named(exportPrim));
                 if (LocalFailures == 0) LocalFailures++;
               //  return;
             }
         }
     }
     string issues = exportPrim.MissingData;           
     if (!string.IsNullOrEmpty(issues) && !settings.Allows(issues, exportPrim))
     {
         Failure("Issues " + issues + " " + named(exportPrim));
         if (LocalFailures == 0) LocalFailures++;
         //return false;
     }
     //ImportCommand.PrimToCreate ptc = ImportCommand.Running.APrimToCreate(exportPrim.ID);
     //ptc._prim = exportPrim.Prim;
     bool passedOK = true;
     if (settings.Contains("llsd"))
     {
         SaveLLSD(Client, pathStem, exportPrim, Failure, settings);
     }
     if (exportPrim.IsRoot && (true || exportPrim.Children.Count > 0))
     {
         if (settings.Contains("link")) SaveLinksetInfo(Client, pathStem, exportPrim, Failure, settings);
         string exportFile = pathStem + ".link";
         //lock (fileWriterLock) if (File.Exists(exportFile))
         {
             foreach (var c in exportPrim.Children)
             {
                 var ch = ExportPrim(Client, c, Failure, settings);
                 if (!ch) passedOK = false;
             }
         }
     }
     if (settings.Contains("task"))
     {
         if (!SaveTaskInv(settings, Client, pathStem, exportPrim, Failure)) passedOK = false;
         // ImportCommand.PrimToCreate ptc = ImportCommand.Running.APrimToCreate(exportPrim.ID);
         //  if (!ptc.EnsureTaskInv()) return false;
     }
     if (!settings.Contains("dep")) return passedOK;
     AddRelatedTextures(exportPrim);
     SaveRelatedAssets(pathStem, exportPrim, Failure);
     return passedOK;
 }
Ejemplo n.º 46
0
 public AudioDescription(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 47
0
 public void RequestLinksetInfo(BotClient Client, string pathStem, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings)
 {
     string exportFile = pathStem + ".link";
     lock (fileWriterLock) if (File.Exists(exportFile)) return;
     bool canScript = checkPerms(Client, exportPrim, SilientFailure, true);
     InventoryItem found = GetInvItem(Client, "LinksetSpeaker");
     if (!canScript || found == null)
     {
         ScanForLinksets(exportPrim);
         return;
     }
     lock (PrimWaitingLinkset)
     {
         if (PrimWaitingLinkset.ContainsKey(exportPrim.ID)) return;
         PrimWaitingLinkset.Add(exportPrim.ID, new LinkSetBuffer {S = "", O = exportPrim, F = pathStem});
     }
     PutItemToTaskInv(Client,exportPrim.LocalID, exportPrim, "LinksetSpeaker");
 }
Ejemplo n.º 48
0
 public RenderImposterMgr(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 49
0
        public static bool checkPerms(BotClient Client, SimObject exportPrim, OutputDelegate Failure, bool mustModify)
        {
            if (exportPrim != null)
            {

                var Properties = exportPrim.Properties;
                if (Properties == null)
                {
                    Client.Objects.RequestObjectPropertiesFamily(exportPrim.GetSimulator(), exportPrim.ID, true);
                    Failure("No props yet for " + named(exportPrim));
                    return false;
                }
                // Check for export permission first
                //GotPermissions = false;
                //
                //if (!GotPermissions)
                // {
                //   Properties = exportPrim.Properties ?? new Primitive.ObjectProperties();
                //}
                //   GotPermissionsEvent.WaitOne(1000 * 10, false);
                if (Properties.OwnerID != Client.Self.AgentID &&
                    Properties.OwnerID != Client.MasterKey &&
                    Properties.GroupID != Client.Self.ActiveGroup)
                {
                    Failure("That object is owned by " + Properties.OwnerID + ", we don't have permission " +
                            "to export " + named(exportPrim));
                }

                SimAvatarClient theAvatar = Client.TheSimAvatar;
                PermissionWho pw = theAvatar.EffectivePermissionWho(exportPrim);
                PermissionMask pm = theAvatar.EffectivePermissionsMask(exportPrim);

                bool modify = Permissions.HasPermissions(pm, PermissionMask.Modify);

                bool cmt = Permissions.HasPermissions(pm, PermissionMask.Copy) ||
                           Permissions.HasPermissions(pm, PermissionMask.Modify) ||
                           Permissions.HasPermissions(pm, PermissionMask.Transfer);

                if (mustModify)
                {
                    if (!modify)
                    {
                        Failure("ObjPerms NOMODIFY " + pm + " for " + pw + " on " + named(exportPrim));
                        return false;
                    }
                }
                if (!cmt)
                {
                    Failure("ObjPerms " + pm + " for " + pw + " on " + named(exportPrim));
                    return false;
                }

                //List<SimObject> family = new List<SimObject>();
                //family.Add(exportPrim);
                //family.AddRange(exportPrim.Children);

                /*bool complete = RequestObjectProperties(family, 250, exportPrim.GetSimulator());
                exportedPrims.AddRange(family);

                if (!complete)
                {
                    Logger.Log("Warning: Unable to retrieve full properties for:", Helpers.LogLevel.Warning, Client);
                    foreach (UUID uuid in PrimsWaiting.Keys)
                        Logger.Log(uuid.ToString(), Helpers.LogLevel.Warning, Client);
                }
                 * return true;*/
            }
            return true;
        }
Ejemplo n.º 50
0
 public RenderImposterMgr(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 51
0
        public static string named(SimObject prim)
        {
            string s = ("" + prim);
            int start = s.IndexOf("localID");
            int fp = s.IndexOf(")", start + 1);
            //if (fp < 64) fp = 0;
            if (fp > 0) return s.Substring(0, fp + 1);
            if (s.Length < 100) return s;
            return s.Substring(0, 100);

        }
Ejemplo n.º 52
0
 public GuiGameListOptionsProfile(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 53
0
 public void RemoveObject(SimObject O)
 {
     KnownSimObjects.Remove(O);
 }
Ejemplo n.º 54
0
 public GuiGameListOptionsProfile(SimObject pObj)
     : base(pObj)
 {
 }
Ejemplo n.º 55
0
 public PermissionMask EffectivePermissionsMask(SimObject exportPrim)
 {
     Permissions perms = exportPrim.Properties.Permissions;
     return NonEffectivePermissionsMask(exportPrim) & perms.BaseMask;
 }
Ejemplo n.º 56
0
 public GuiStackControl(string pName, SimObject pParent, bool pRegister = false)
     : this(pName, pRegister)
 {
     CopyFrom(pParent);
 }
Ejemplo n.º 57
0
 public int CompareObjects(SimObject act1, SimObject act2)
 {
     if (act1 == act2) return 0;
     if (act1 == null) return -1;
     if (act2 == null) return 1;
     return (int)(act2.Affordances.RateIt(CurrentNeeds) - act1.Affordances.RateIt(CurrentNeeds));
 }
Ejemplo n.º 58
0
 public GuiStackControl(SimObject pObj)
     : base(pObj)
 {
 }
	//-----------  SELECTED OBJECT STUFF.

	public void selectObject(SimObject obj) {

		if (obj != null) {
			//do the generic stuff.

			hudView.setObjectName(obj.getName());
			hudView.setObjectDescription(obj.getDesc());


			hud.setSelectedObject(obj);



			//get other object set up stuff.
			if (obj.GetType() == typeof(PlugLoadController)) {
				PlugLoadController pl = (PlugLoadController)obj;

				hudView.plugLoad_setListOfEnergyUsingObjects(pl.getEuoList(), pl);

			}
			else if (obj.GetType() == typeof(EnergyUsingObject)) {
				EnergyUsingObject euo = (EnergyUsingObject)obj;
				hudView.setListOfSelectablePlugLoads(euo);
			}

		}

	}
 public afxXM_GroundConformData(SimObject pObj) : base(pObj)
 {
 }