From b5921e2b95305d2918f94f52a560f8c004b8bcb4 Mon Sep 17 00:00:00 2001 From: MW Date: Wed, 22 Aug 2007 14:37:54 +0000 Subject: Start of Task Inventory (ie prim's inventory). For now, you can only move scripts into a prim (from your user inventory) and although the script will now show up in the prims inventory, you can't make any changes to it (or delete it). Also a prim's inventory is currently not saved between restarts. --- .../Region/Environment/Scenes/Scene.Inventory.cs | 32 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs') diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 765fafc..bf7bb7e 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -189,7 +189,6 @@ namespace OpenSim.Region.Environment.Scenes /// public void RequestTaskInventory(IClientAPI remoteClient, uint primLocalID) { - bool hasPrim = false; foreach (EntityBase ent in Entities.Values) { @@ -198,7 +197,11 @@ namespace OpenSim.Region.Environment.Scenes hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); if (hasPrim != false) { - ((SceneObjectGroup)ent).GetPartInventoryFileName(remoteClient, primLocalID); + bool fileChange = ((SceneObjectGroup)ent).GetPartInventoryFileName(remoteClient, primLocalID); + if (fileChange) + { + ((SceneObjectGroup)ent).RequestInventoryFile(primLocalID, xferManager); + } break; } } @@ -216,6 +219,7 @@ namespace OpenSim.Region.Environment.Scenes if (item != null) { bool isTexture = false; + bool rezzed = false; if (item.invType == 0) { isTexture = true; @@ -226,6 +230,7 @@ namespace OpenSim.Region.Environment.Scenes string script = Util.FieldToString(rezAsset.Data); //Console.WriteLine("rez script "+script); this.EventManager.TriggerRezScript(localID, script); + rezzed = true; } else { @@ -236,8 +241,31 @@ namespace OpenSim.Region.Environment.Scenes string script = Util.FieldToString(rezAsset.Data); // Console.WriteLine("rez script " + script); this.EventManager.TriggerRezScript(localID, script); + rezzed = true; } } + + if (rezzed) + { + bool hasPrim = false; + foreach (EntityBase ent in Entities.Values) + { + if (ent is SceneObjectGroup) + { + hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); + if (hasPrim != false) + { + bool added = ((SceneObjectGroup)ent).AddInventoryItem(remoteClient, localID, item); + if (added) + { + userInfo.DeleteItem(remoteClient.AgentId, item); + remoteClient.SendRemoveInventoryItem(itemID); + } + } + } + } + + } } } } -- cgit v1.1