コード例 #1
0
 internal void AppendFile(TextWriter append)
 {
     if (errors.Count == 0)
     {
         return;
     }
     lock (ExportCommand.fileWriterLock)
     {
         if (!ImportCommand.MissingLLSD(ObjectID))
         {
             var ptc = ImportCommand.Importing.GetOldPrim(ObjectID);
             append.WriteLine("OBJ: " + ptc + " " + Obj);
             append.WriteLine("LOC: " + ptc.SimPosition);
         }
         else
         {
             var o = Obj;
             if (o != null)
             {
                 append.WriteLine("OBJ: " + o);
                 append.WriteLine("LOC: " + o.SimPosition);
             }
         }
         foreach (string error in errors)
         {
             append.WriteLine("  " + error);
         }
     }
 }
コード例 #2
0
 public ImportCommand(BotClient testClient)
     : base(testClient)
 {
     Name        = "simimport";
     Description = "Import prims from an exported xml file. Usage: import inputfile.xml [usegroup]";
     Category    = CommandCategory.Objects;
     Client.Assets.AssetUploaded           += new EventHandler <AssetUploadEventArgs>(Assets_AssetUploaded);
     Client.Objects.ObjectPropertiesFamily += OnObjectPropertiesFamily;
     Client.Objects.ObjectUpdate           += OnObjectPropertiesNewesh;
     Client.Objects.ObjectProperties       += OnObjectPropertiesNewesh1;
     Client.Network.EventQueueRunning      += logged_in;
     ImportPTCFiles(new ImportSettings(), true, false);
     Importing = this;
 }
コード例 #3
0
        static public string IsComplete(UUID uuid, bool includeLink, bool includeTask, ImportSettings settings)
        {
            string whynotCOmplete = "";

            if (ImportCommand.MissingLLSD(uuid))
            {
                return("!llsd");
            }
            if (includeLink && ImportCommand.MissingLINK(uuid))
            {
                whynotCOmplete += "!link";
            }
            if (ImportCommand.MissingTASK(uuid))
            {
                return(whynotCOmplete += "!task");
            }
            whynotCOmplete += PerfectTaskOSD(uuid, settings, true);
            return(whynotCOmplete);
        }
コード例 #4
0
        private static bool IsIncluded(UUID id, uint lid)
        {
            ImportCommand importing = ImportCommand.Importing;

            if (!CogbotHelpers.IsNullOrZero(id))
            {
                if (Exporting.TasksRezed.ContainsKey(id) || importing.MustExport.Contains(id))
                {
                    return(true);
                }
            }
            if (lid != 0)
            {
                if (importing.MustExportUINT.Contains(lid) || importing.GetOldPrim(lid) != null)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #5
0
 public static bool IsSkippedPTC(ImportCommand.PrimToCreate P)
 {
     if (IsIncluded(P.OldID, P.OldLocalID)) return false;
     if (IsIncluded(P.ParentUUID, P.ParentID)) return false;
     Primitive pp = P.Prim;
     uint pid = pp.ParentID;
     if (IsSkippedName(pp.Properties.Name))
     {
         return true;
     }
     return false;
 }
コード例 #6
0
ファイル: ImportCommand.cs プロジェクト: drzo/opensim4opencog
 public ImportCommand(BotClient testClient)
     : base(testClient)
 {
     Name = "simimport";
     Description = "Import prims from an exported xml file. Usage: import inputfile.xml [usegroup]";
     Category = CommandCategory.Objects;
     Client.Assets.AssetUploaded += new EventHandler<AssetUploadEventArgs>(Assets_AssetUploaded);
     Client.Objects.ObjectPropertiesFamily += OnObjectPropertiesFamily;
     Client.Objects.ObjectUpdate += OnObjectPropertiesNewesh;
     Client.Objects.ObjectProperties += OnObjectPropertiesNewesh1;
     Client.Network.EventQueueRunning += logged_in;
     ImportPTCFiles(new ImportSettings(), true, false);
     Importing = this;
 }
コード例 #7
0
 private static ICollection<InventoryBase> GetTaskInv(ImportCommand.PrimToCreate primitive)
 {
     //todo
     return primitive.SourceTaskInventory(true);
 }
コード例 #8
0
 public void ChildAdd(ImportCommand.PrimToCreate create)
 {
     if (!Children.Contains(create)) Children.Add(create);
 }
コード例 #9
0
        public static void WriteTaskInventory(Primitive sop, XmlTextWriter writer, ICollection <InventoryBase> tinv, ImportSettings options)
        {
            if (tinv == null)
            {
                return;
            }
            int ObjectNum = -1;

            if (tinv.Count > 0) // otherwise skip this
            {
                writer.WriteStartElement("TaskInventory");

                foreach (InventoryBase item2c in tinv)
                {
                    InventoryItem item = item2c as InventoryItem;
                    if (item == null)
                    {
                        continue;
                    }
                    string itemName      = item.Name;
                    bool   obj           = (item.AssetType == AssetType.Object);
                    UUID   itemAssetUUID = obj ? item.RezzID : item.AssetUUID;
                    if (obj)
                    {
                        ObjectNum++;
                        if (CogbotHelpers.IsNullOrZero(itemAssetUUID))
                        {
                            string rtiStatus = ExportCommand.dumpDir + sop.ID + "." + ObjectNum + ".rti";
                            lock (ExportCommand.fileWriterLock)
                            {
                                if (File.Exists(rtiStatus))
                                {
                                    string[] conts = File.ReadAllText(rtiStatus).Split(',');
                                    if (conts.Length > 2)
                                    {
                                        itemAssetUUID = UUID.Parse(conts[0]);
                                    }
                                }
                            }
                        }
                        if (CogbotHelpers.IsNullOrZero(itemAssetUUID))
                        {
                            ExportCommand.LogError(sop.ID, "AssetZERO: " + item);
                            if (!options.ContainsKey("keepmissing"))
                            {
                                continue;
                            }
                            if (options.ContainsKey("use404"))
                            {
                                itemAssetUUID = ImportCommand.GetMissingFiller(item.AssetType);
                            }
                            if (options.ContainsKey("error404") && !itemName.Contains("ERROR404"))
                            {
                                itemName += "ERROR404";
                            }
                            ImportCommand.Importing.Failure("Zero AssetID " + item.Name);
                        }
                    }
                    else
                    {
                        if (CogbotHelpers.IsNullOrZero(itemAssetUUID))
                        {
                            itemAssetUUID = item.RezzID;
                        }
                        if (CogbotHelpers.IsNullOrZero(itemAssetUUID))
                        {
                            ExportCommand.LogError(sop.ID, "AssetZERO: " + item);
                            if (!options.ContainsKey("keepmissing"))
                            {
                                continue;
                            }
                            if (options.ContainsKey("use404"))
                            {
                                itemAssetUUID = ImportCommand.GetMissingFiller(item.AssetType);
                            }
                            if (options.ContainsKey("error404") && !itemName.Contains("ERROR404"))
                            {
                                itemName += "ERROR404";
                            }
                            ImportCommand.Importing.Failure("Zero AssetID " + item.Name);
                        }
                    }
                    writer.WriteStartElement("TaskInventoryItem");
                    Permissions perms = item.Permissions;
                    if (!options.Contains("sameperm"))
                    {
                        perms = Permissions.FullPermissions;
                    }

                    if (CogbotHelpers.IsNullOrZero(itemAssetUUID))
                    {
                        continue;
                    }
                    WriteUUID(writer, "AssetID", itemAssetUUID, options);
                    WriteEnum(writer, "BasePermissions", perms.BaseMask);
                    WriteDate(writer, "CreationDate", item.CreationDate);

                    WriteUUID(writer, "CreatorID", item.CreatorID, options);

                    /*
                     * //todo if (item.CreatorData != null && item.CreatorData != string.Empty)
                     *  WES(writer,"CreatorData", item.CreatorData);
                     * else if (options.ContainsKey("home"))
                     * {
                     *  if (m_UserManagement == null)
                     *      m_UserManagement = scene.RequestModuleInterface<IUserManagement>();
                     *  string name = m_UserManagement.GetUserName(item.CreatorID);
                     *  WES(writer,"CreatorData", (string)options["home"] + ";" + name);
                     * }
                     */
                    WriteValue(writer, "Description", item.Description);
                    WriteEnum(writer, "EveryonePermissions", Reperm(perms.EveryoneMask, options));
                    WriteUInt(writer, "Flags", item.Flags);
                    WriteUUID(writer, "GroupID", item.GroupID, options);
                    WriteEnum(writer, "GroupPermissions", Reperm(perms.GroupMask, options));
                    WriteEnum(writer, "InvType", item.InventoryType);
                    WriteUUID(writer, "ItemID", item.UUID, options);
                    //todo WriteUUID(writer, "OldItemID", item.OldItemID, options);

                    UUID lastOwnerID = options.ContainsKey("wipe-owners") ? UUID.Zero : item.LastOwnerID;
                    WriteUserUUID(writer, "LastOwnerID", lastOwnerID, options);

                    WriteValue(writer, "Name", itemName);
                    WriteEnum(writer, "NextPermissions", Reperm(perms.NextOwnerMask, options));

                    UUID ownerID = options.ContainsKey("wipe-owners") ? UUID.Zero : item.OwnerID;
                    WriteUUID(writer, "OwnerID", ownerID, options);

                    WriteEnum(writer, "CurrentPermissions", Reperm(perms.OwnerMask, options));
                    WriteUUID(writer, "ParentID", item.ParentUUID, options);

                    /*todo
                     * WriteUUID(writer, "ParentPartID", item.ParentPartID, options);
                     * WriteUUID(writer, "PermsGranter", item.PermsGranter, options);
                     */
                    // todo what is this?
                    WriteEnum(writer, "PermsMask", PermissionMask.All);//  perms.BaseMask);//item.PermsMask);

                    WriteEnum(writer, "Type", item.AssetType);
                    //todo WES(writer,"OwnerChanged", item.OwnerChanged.ToString().ToLower());

                    writer.WriteEndElement(); // TaskInventoryItem
                }

                writer.WriteEndElement(); // TaskInventory
            }
        }