mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
Merge branch 'master' into careminster
This commit is contained in:
@@ -235,7 +235,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <summary>
|
||||
/// Stop all the scripts in this prim.
|
||||
/// </summary>
|
||||
public void RemoveScriptInstances()
|
||||
/// <param name="sceneObjectBeingDeleted">
|
||||
/// Should be true if these scripts are being removed because the scene
|
||||
/// object is being deleted. This will prevent spurious updates to the client.
|
||||
/// </param>
|
||||
public void RemoveScriptInstances(bool sceneObjectBeingDeleted)
|
||||
{
|
||||
Items.LockItemsForRead(true);
|
||||
IList<TaskInventoryItem> items = new List<TaskInventoryItem>(Items.Values);
|
||||
@@ -412,10 +416,17 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// Stop a script which is in this prim's inventory.
|
||||
/// </summary>
|
||||
/// <param name="itemId"></param>
|
||||
public void RemoveScriptInstance(UUID itemId)
|
||||
/// <param name="sceneObjectBeingDeleted">
|
||||
/// Should be true if this script is being removed because the scene
|
||||
/// object is being deleted. This will prevent spurious updates to the client.
|
||||
/// </param>
|
||||
public void RemoveScriptInstance(UUID itemId, bool sceneObjectBeingDeleted)
|
||||
{
|
||||
if (m_items.ContainsKey(itemId))
|
||||
{
|
||||
if (!sceneObjectBeingDeleted)
|
||||
m_part.RemoveScriptEvents(itemId);
|
||||
|
||||
m_part.ParentGroup.Scene.EventManager.TriggerRemoveScript(m_part.LocalId, itemId);
|
||||
m_part.ParentGroup.AddActiveScriptCount(-1);
|
||||
}
|
||||
@@ -496,7 +507,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (i.Name == item.Name)
|
||||
{
|
||||
if (i.InvType == (int)InventoryType.LSL)
|
||||
RemoveScriptInstance(i.ItemID);
|
||||
RemoveScriptInstance(i.ItemID, false);
|
||||
|
||||
RemoveInventoryItem(i.ItemID);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user