copy items to root part

master
Christopher 2020-06-28 14:55:15 +02:00
parent 1066eb509c
commit 3b5f52a4d1
1 changed files with 11 additions and 11 deletions

View File

@ -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<TaskInventoryItem> inventarContend = part.Inventory.GetInventoryItems();
List<TaskInventoryItem> 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<UUID> allTextures = new List<UUID>();
@ -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);
}
}