mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
cosmetics
This commit is contained in:
@@ -1081,7 +1081,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||
so.AttachedAvatar = sp.UUID;
|
||||
so.AttachmentPoint = attachmentpoint;
|
||||
so.RootPart.AttachedPos = attachOffset;
|
||||
so.AbsolutePosition = attachOffset;
|
||||
so.RootPart.GroupPosition = attachOffset; // can not set absolutepos
|
||||
so.IsAttachment = true;
|
||||
|
||||
sp.AddAttachment(so);
|
||||
@@ -1099,7 +1099,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||
// scene that it's no longer in their awareness.
|
||||
m_scene.ForEachClient(
|
||||
client =>
|
||||
{ if (client.AgentId != so.AttachedAvatar)
|
||||
{ if (client.IsActive && client.AgentId != so.AttachedAvatar)
|
||||
client.SendKillObject(new List<uint>() { so.LocalId });
|
||||
});
|
||||
}
|
||||
|
||||
@@ -79,8 +79,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (group is SceneObjectGroup)
|
||||
{
|
||||
scriptsValidForStarting
|
||||
+= ((SceneObjectGroup) group).CreateScriptInstances(0, false, DefaultScriptEngine, 0);
|
||||
scriptsValidForStarting += ((SceneObjectGroup) group).CreateScriptInstances(0, false, DefaultScriptEngine, 0);
|
||||
((SceneObjectGroup) group).ResumeScripts();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,7 +499,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private uint _groupMask = (uint)PermissionMask.None;
|
||||
private uint _everyoneMask = (uint)PermissionMask.None;
|
||||
private uint _nextOwnerMask = (uint)(PermissionMask.Move | PermissionMask.Transfer);
|
||||
private PrimFlags _flags = PrimFlags.None;
|
||||
private PrimFlags m_flags = PrimFlags.None;
|
||||
private DateTime m_expires;
|
||||
private DateTime m_rezzed;
|
||||
private bool m_createSelected = false;
|
||||
@@ -1395,11 +1395,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// </remarks>
|
||||
public PrimFlags Flags
|
||||
{
|
||||
get { return _flags; }
|
||||
get { return m_flags; }
|
||||
set
|
||||
{
|
||||
// m_log.DebugFormat("[SOP]: Setting flags for {0} {1} to {2}", UUID, Name, value);
|
||||
_flags = value;
|
||||
//m_log.DebugFormat("[SOP]: Setting flags for {0} {1} to {2}", UUID, Name, value);
|
||||
m_flags = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1908,11 +1908,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void AddFlag(PrimFlags flag)
|
||||
{
|
||||
// PrimFlags prevflag = Flags;
|
||||
if ((Flags & flag) == 0)
|
||||
if ((m_flags & flag) == 0)
|
||||
{
|
||||
//m_log.Debug("Adding flag: " + ((PrimFlags) flag).ToString());
|
||||
Flags |= flag;
|
||||
m_flags |= flag;
|
||||
|
||||
if (flag == PrimFlags.TemporaryOnRez)
|
||||
ResetExpire();
|
||||
|
||||
@@ -312,11 +312,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
m_items.LockItemsForWrite(false);
|
||||
|
||||
if (m_part == null || m_part.ParentGroup == null || m_part.ParentGroup.Scene == null)
|
||||
if (m_part.ParentGroup == null || m_part.ParentGroup.Scene == null)
|
||||
return;
|
||||
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines == null) // No engine at all
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0) // No engine at all
|
||||
return;
|
||||
|
||||
bool running;
|
||||
@@ -326,7 +326,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
foreach (TaskInventoryItem item in m_scripts.Values)
|
||||
{
|
||||
//running = false;
|
||||
foreach (IScriptModule e in engines)
|
||||
foreach (IScriptModule e in scriptEngines)
|
||||
{
|
||||
if (e.HasScript(item.ItemID, out running))
|
||||
{
|
||||
@@ -359,11 +359,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (item.InvType != (int)InventoryType.LSL)
|
||||
return false;
|
||||
|
||||
IScriptModule[] engines = scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines == null) // No engine at all
|
||||
IScriptModule[] scriptEngines = scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0) // No engine at all
|
||||
return false;
|
||||
|
||||
foreach (IScriptModule e in engines)
|
||||
foreach (IScriptModule e in scriptEngines)
|
||||
{
|
||||
if (e.HasScript(item.ItemID, out running))
|
||||
return true;
|
||||
@@ -394,11 +394,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public ArrayList GetScriptErrors(UUID itemID)
|
||||
{
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
ArrayList ret = new ArrayList();
|
||||
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
|
||||
foreach (IScriptModule e in engines)
|
||||
foreach (IScriptModule e in scriptEngines)
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
@@ -461,8 +459,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <returns>true if the script instance was created, false otherwise</returns>
|
||||
public bool CreateScriptInstance(TaskInventoryItem item, int startParam, bool postOnRez, string engine, int stateSource)
|
||||
{
|
||||
// m_log.DebugFormat("[PRIM INVENTORY]: Starting script {0} {1} in prim {2} {3} in {4}",
|
||||
// item.Name, item.ItemID, m_part.Name, m_part.UUID, m_part.ParentGroup.Scene.RegionInfo.RegionName);
|
||||
//m_log.DebugFormat("[PRIM INVENTORY]: Starting script {0} {1} in prim {2} {3} in {4}",
|
||||
// item.Name, item.ItemID, m_part.Name, m_part.UUID, m_part.ParentGroup.Scene.RegionInfo.RegionName);
|
||||
|
||||
if (!m_part.ParentGroup.Scene.Permissions.CanRunScript(item, m_part))
|
||||
{
|
||||
@@ -476,13 +474,25 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return false;
|
||||
|
||||
UUID itemID = item.ItemID;
|
||||
TaskInventoryItem it;
|
||||
|
||||
m_items.LockItemsForRead(true);
|
||||
if (!m_items.TryGetValue(item.ItemID, out TaskInventoryItem it))
|
||||
{
|
||||
m_items.LockItemsForRead(false);
|
||||
|
||||
StoreScriptError(itemID, String.Format("TaskItem ID {0} could not be found", item.ItemID));
|
||||
m_log.ErrorFormat(
|
||||
"[PRIM INVENTORY]: Couldn't start script {0}, {1} at {2} in {3} since taskitem ID {4} could not be found",
|
||||
item.Name, item.ItemID, m_part.AbsolutePosition,
|
||||
m_part.ParentGroup.Scene.RegionInfo.RegionName, item.ItemID);
|
||||
return false;
|
||||
}
|
||||
m_items.LockItemsForRead(false);
|
||||
|
||||
if (stateSource == 2 && m_part.ParentGroup.Scene.m_trustBinaries)
|
||||
{
|
||||
// Prim crossing
|
||||
m_items.LockItemsForWrite(true);
|
||||
it = m_items[itemID];
|
||||
it.PermsMask = 0;
|
||||
it.PermsGranter = UUID.Zero;
|
||||
m_items.LockItemsForWrite(false);
|
||||
@@ -511,7 +521,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
item.OldItemID = RestoreSavedScriptState(item.LoadedItemID, item.OldItemID, itemID);
|
||||
|
||||
m_items.LockItemsForWrite(true);
|
||||
it = m_items[itemID];
|
||||
it.OldItemID = item.OldItemID;
|
||||
it.PermsMask = 0;
|
||||
it.PermsGranter = UUID.Zero;
|
||||
@@ -531,12 +540,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private UUID RestoreSavedScriptState(UUID loadedID, UUID oldID, UUID newID)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Restoring scripted state for item {0}, oldID {1}, loadedID {2}",
|
||||
// newID, oldID, loadedID);
|
||||
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines.Length == 0) // No engine at all
|
||||
//m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Restoring scripted state for item {0}, oldID {1}, loadedID {2}",
|
||||
// newID, oldID, loadedID);
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0) // No engine at all
|
||||
return oldID;
|
||||
|
||||
UUID stateID = oldID;
|
||||
@@ -576,12 +584,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// This created document has only the minimun data
|
||||
// necessary for XEngine to parse it successfully
|
||||
|
||||
// m_log.DebugFormat("[PRIM INVENTORY]: Adding legacy state {0} in {1}", stateID, newID);
|
||||
//m_log.DebugFormat("[PRIM INVENTORY]: Adding legacy state {0} in {1}", stateID, newID);
|
||||
|
||||
m_part.ParentGroup.m_savedScriptState[stateID] = newDoc.OuterXml;
|
||||
}
|
||||
|
||||
foreach (IScriptModule e in engines)
|
||||
foreach (IScriptModule e in scriptEngines)
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
@@ -618,11 +626,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
m_items.LockItemsForRead(true);
|
||||
|
||||
if (m_items.ContainsKey(itemId))
|
||||
if (m_items.TryGetValue(itemId, out TaskInventoryItem it))
|
||||
{
|
||||
TaskInventoryItem it = m_items[itemId];
|
||||
m_items.LockItemsForRead(false);
|
||||
|
||||
CreateScriptInstance(it, startParam, postOnRez, engine, stateSource);
|
||||
}
|
||||
else
|
||||
@@ -1236,7 +1242,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (m_items.ContainsKey(item.ItemID))
|
||||
{
|
||||
// m_log.DebugFormat("[PRIM INVENTORY]: Updating item {0} in {1}", item.Name, m_part.Name);
|
||||
//m_log.DebugFormat("[PRIM INVENTORY]: Updating item {0} in {1}", item.Name, m_part.Name);
|
||||
|
||||
item.ParentID = m_part.UUID;
|
||||
item.ParentPartID = m_part.UUID;
|
||||
@@ -1669,8 +1675,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <returns></returns>
|
||||
public int RunningScriptCount()
|
||||
{
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines.Length == 0)
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0)
|
||||
return 0;
|
||||
|
||||
int count = 0;
|
||||
@@ -1685,15 +1691,19 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
foreach (TaskInventoryItem item in scripts)
|
||||
{
|
||||
foreach (IScriptModule engine in engines)
|
||||
foreach (IScriptModule engine in scriptEngines)
|
||||
{
|
||||
if (engine != null)
|
||||
{
|
||||
if (engine.GetScriptState(item.ItemID))
|
||||
count++;
|
||||
if (engine.HasScript(item.ItemID, out bool running))
|
||||
{
|
||||
if(running)
|
||||
count++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -1743,8 +1753,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (m_part.ParentGroup.Scene == null) // Group not in a scene
|
||||
return ret;
|
||||
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines.Length == 0) // No engine at all
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0) // No engine at all
|
||||
return ret;
|
||||
|
||||
m_items.LockItemsForRead(true);
|
||||
@@ -1758,13 +1768,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
foreach (TaskInventoryItem item in scripts)
|
||||
{
|
||||
foreach (IScriptModule e in engines)
|
||||
foreach (IScriptModule e in scriptEngines)
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Getting script state from engine {0} for {1} in part {2} in group {3} in {4}",
|
||||
// e.Name, item.Name, m_part.Name, m_part.ParentGroup.Name, m_part.ParentGroup.Scene.Name);
|
||||
//m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Getting script state from engine {0} for {1} in part {2} in group {3} in {4}",
|
||||
// e.Name, item.Name, m_part.Name, m_part.ParentGroup.Name, m_part.ParentGroup.Scene.Name);
|
||||
|
||||
string n = e.GetXMLState(item.ItemID);
|
||||
if (n != String.Empty)
|
||||
@@ -1789,8 +1799,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void ResumeScripts()
|
||||
{
|
||||
IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (engines.Length == 0)
|
||||
IScriptModule[] scriptEngines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>();
|
||||
if (scriptEngines.Length == 0)
|
||||
return;
|
||||
|
||||
m_items.LockItemsForRead(true);
|
||||
@@ -1804,15 +1814,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
foreach (TaskInventoryItem item in scripts)
|
||||
{
|
||||
foreach (IScriptModule engine in engines)
|
||||
foreach (IScriptModule engine in scriptEngines)
|
||||
{
|
||||
if (engine != null)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Resuming script {0} {1} for {2}, OwnerChanged {3}",
|
||||
// item.Name, item.ItemID, item.OwnerID, item.OwnerChanged);
|
||||
//m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Resuming script {0} {1} for {2}, OwnerChanged {3}",
|
||||
// item.Name, item.ItemID, item.OwnerID, item.OwnerChanged);
|
||||
|
||||
engine.ResumeScript(item.ItemID);
|
||||
if(!engine.ResumeScript(item.ItemID))
|
||||
continue;
|
||||
|
||||
if (item.OwnerChanged)
|
||||
engine.PostScriptEvent(item.ItemID, "changed", new Object[] { (int)Changed.OWNER });
|
||||
|
||||
@@ -1214,9 +1214,6 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
if (script.StartsWith("//MRM:"))
|
||||
return;
|
||||
|
||||
SceneObjectPart part = m_Scene.GetSceneObjectPart(localID);
|
||||
TaskInventoryItem item = part.Inventory.GetInventoryItem(itemID);
|
||||
|
||||
if(!m_LateInit)
|
||||
{
|
||||
m_LateInit = true;
|
||||
@@ -1281,6 +1278,9 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
if(!string.IsNullOrEmpty(langsrt) && langsrt !="lsl")
|
||||
return;
|
||||
|
||||
SceneObjectPart part = m_Scene.GetSceneObjectPart(localID);
|
||||
TaskInventoryItem item = part.Inventory.GetInventoryItem(itemID);
|
||||
|
||||
// Put on object/instance lists.
|
||||
XMRInstance instance = (XMRInstance)Activator.CreateInstance(ScriptCodeGen.xmrInstSuperType);
|
||||
instance.m_LocalID = localID;
|
||||
@@ -1411,6 +1411,10 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
if(!instance.m_Running)
|
||||
instance.EmptyEventQueues();
|
||||
}
|
||||
// Declare which events the script's current state can handle.
|
||||
int eventMask = instance.GetStateEventFlags(instance.stateCode);
|
||||
instance.m_Part.SetScriptEvents(instance.m_ItemID, eventMask);
|
||||
|
||||
QueueToStart(instance);
|
||||
}
|
||||
|
||||
|
||||
@@ -126,10 +126,6 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
|
||||
suspendOnCheckRunHold = false;
|
||||
suspendOnCheckRunTemp = false;
|
||||
|
||||
// Declare which events the script's current state can handle.
|
||||
int eventMask = GetStateEventFlags(stateCode);
|
||||
m_Part.SetScriptEvents(m_ItemID, eventMask);
|
||||
}
|
||||
|
||||
private void InitScriptApi(Yengine engine, string api, IScriptApi scriptApi)
|
||||
|
||||
@@ -213,24 +213,23 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||
* @brief For a given stateCode, get a mask of the low 32 event codes
|
||||
* that the state has handlers defined for.
|
||||
*/
|
||||
public int GetStateEventFlags(int stateCode)
|
||||
public int GetStateEventFlags(int state)
|
||||
{
|
||||
if((stateCode < 0) ||
|
||||
(stateCode >= m_ObjCode.scriptEventHandlerTable.GetLength(0)))
|
||||
if((state < 0) ||
|
||||
(state >= m_ObjCode.scriptEventHandlerTable.GetLength(0)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int code = 0;
|
||||
int flags = 0;
|
||||
for(int i = 0; i < 32; i++)
|
||||
{
|
||||
if(m_ObjCode.scriptEventHandlerTable[stateCode, i] != null)
|
||||
if(m_ObjCode.scriptEventHandlerTable[state, i] != null)
|
||||
{
|
||||
code |= 1 << i;
|
||||
flags |= 1 << i;
|
||||
}
|
||||
}
|
||||
|
||||
return code;
|
||||
return flags;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user