From 3b5f52a4d1779d0434898b18f2ee53161fe29876 Mon Sep 17 00:00:00 2001 From: Christopher Date: Sun, 28 Jun 2020 14:55:15 +0200 Subject: [PATCH] copy items to root part --- src/TextureFetcher.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/TextureFetcher.cs b/src/TextureFetcher.cs index 3b77600..bf904d4 100644 --- a/src/TextureFetcher.cs +++ b/src/TextureFetcher.cs @@ -79,7 +79,7 @@ namespace OpenSim.Modules.TextureFetcher private bool inventoryContainsScripts(SceneObjectPart part) { - foreach (TaskInventoryItem item in part.Inventory.GetInventoryItems()) + foreach (TaskInventoryItem item in part.ParentGroup.RootPart.Inventory.GetInventoryItems()) if (item.InvType == 10) { AssetBase assetData = m_scene.AssetService.Get(item.AssetID.ToString()); @@ -105,7 +105,7 @@ namespace OpenSim.Modules.TextureFetcher private bool isAssetInInventory(SceneObjectPart part, UUID assetID) { - List inventarContend = part.Inventory.GetInventoryItems(); + List inventarContend = part.ParentGroup.RootPart.Inventory.GetInventoryItems(); foreach (TaskInventoryItem item in inventarContend) if (item.AssetID == assetID) @@ -116,14 +116,9 @@ namespace OpenSim.Modules.TextureFetcher private void copyTexturesToInventory(SceneObjectPart part) { - if (part.ParentGroup.IsAttachment) - return; - if (inventoryContainsScripts(part)) return; - m_log.Info("[" + Name + "] Process part '" + part.Name + "'"); - try { List allTextures = new List(); @@ -132,6 +127,7 @@ namespace OpenSim.Modules.TextureFetcher //Get all Textures from the scene object Primitive.TextureEntry textures = part.Shape.Textures; int allSides = part.GetNumberOfSides(); + for (uint i = 0; i < allSides; i++) { if (textures.FaceTextures[i] != null) @@ -149,13 +145,18 @@ namespace OpenSim.Modules.TextureFetcher { if (texture != UUID.Zero) { + String partname = part.Name.Trim(); + + if (partname == "") + partname = "tf"; + TaskInventoryItem item = new TaskInventoryItem(); item.AssetID = texture; item.ItemID = UUID.Random(); item.OwnerID = part.OwnerID; item.CurrentPermissions = 581639; - item.Name = "tf-" + texture.ToString(); - item.Description = "This item was generated by the texture fetcher module."; + item.Name = partname + " - Texture"; + item.Description = "This item was automatically generated by the texture fetcher module."; item.OwnerID = part.OwnerID; item.CreatorID = part.OwnerID; item.LastOwnerID = part.OwnerID; @@ -170,8 +171,7 @@ namespace OpenSim.Modules.TextureFetcher if (!isAssetInInventory(part, item.AssetID)) { updateNeeded = true; - part.Inventory.AddInventoryItem(item, false); - m_log.Info("[" + Name + "] Add item '" + item.Name + "' to '" + part.Name + "'."); + part.ParentGroup.RootPart.Inventory.AddInventoryItem(item, false); } }