From 9ddddde42ec3b92393f699e4f6cace8267cda5db Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 10 Jan 2013 00:32:22 +0000
Subject: Add "show sensors" command to show script sensor information for
debug purposes.
---
.../Api/Implementation/Plugins/SensorRepeat.cs | 94 ++++++++++++++--------
1 file changed, 62 insertions(+), 32 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index 24cceea..37422d7 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -42,6 +42,41 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ ///
+ /// Used by one-off and repeated sensors
+ ///
+ public class SensorInfo
+ {
+ public uint localID;
+ public UUID itemID;
+ public double interval;
+ public DateTime next;
+
+ public string name;
+ public UUID keyID;
+ public int type;
+ public double range;
+ public double arc;
+ public SceneObjectPart host;
+
+ public SensorInfo Clone()
+ {
+ SensorInfo s = new SensorInfo();
+ s.localID = localID;
+ s.itemID = itemID;
+ s.interval = interval;
+ s.next = next;
+ s.name = name;
+ s.keyID = keyID;
+ s.type = type;
+ s.range = range;
+ s.arc = arc;
+ s.host = host;
+
+ return s;
+ }
+ }
+
public AsyncCommandManager m_CmdManager;
///
@@ -79,24 +114,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
private int maximumToReturn = 16;
//
- // SenseRepeater and Sensors
- //
- private class SenseRepeatClass
- {
- public uint localID;
- public UUID itemID;
- public double interval;
- public DateTime next;
-
- public string name;
- public UUID keyID;
- public int type;
- public double range;
- public double arc;
- public SceneObjectPart host;
- }
-
- //
// Sensed entity
//
private class SensedEntity : IComparable
@@ -128,7 +145,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
///
/// Always lock SenseRepeatListLock when updating this list.
///
- private List SenseRepeaters = new List();
+ private List SenseRepeaters = new List();
private object SenseRepeatListLock = new object();
public void SetSenseRepeatEvent(uint m_localID, UUID m_itemID,
@@ -142,7 +159,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
return;
// Add to timer
- SenseRepeatClass ts = new SenseRepeatClass();
+ SensorInfo ts = new SensorInfo();
ts.localID = m_localID;
ts.itemID = m_itemID;
ts.interval = sec;
@@ -161,11 +178,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
AddSenseRepeater(ts);
}
- private void AddSenseRepeater(SenseRepeatClass senseRepeater)
+ private void AddSenseRepeater(SensorInfo senseRepeater)
{
lock (SenseRepeatListLock)
{
- List newSenseRepeaters = new List(SenseRepeaters);
+ List newSenseRepeaters = new List(SenseRepeaters);
newSenseRepeaters.Add(senseRepeater);
SenseRepeaters = newSenseRepeaters;
}
@@ -176,8 +193,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
// Remove from timer
lock (SenseRepeatListLock)
{
- List newSenseRepeaters = new List();
- foreach (SenseRepeatClass ts in SenseRepeaters)
+ List newSenseRepeaters = new List();
+ foreach (SensorInfo ts in SenseRepeaters)
{
if (ts.localID != m_localID || ts.itemID != m_itemID)
{
@@ -192,7 +209,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
public void CheckSenseRepeaterEvents()
{
// Go through all timers
- foreach (SenseRepeatClass ts in SenseRepeaters)
+ foreach (SensorInfo ts in SenseRepeaters)
{
// Time has passed?
if (ts.next.ToUniversalTime() < DateTime.Now.ToUniversalTime())
@@ -209,7 +226,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
double range, double arc, SceneObjectPart host)
{
// Add to timer
- SenseRepeatClass ts = new SenseRepeatClass();
+ SensorInfo ts = new SensorInfo();
ts.localID = m_localID;
ts.itemID = m_itemID;
ts.interval = 0;
@@ -225,7 +242,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
SensorSweep(ts);
}
- private void SensorSweep(SenseRepeatClass ts)
+ private void SensorSweep(SensorInfo ts)
{
if (ts.host == null)
{
@@ -301,7 +318,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
}
}
- private List doObjectSensor(SenseRepeatClass ts)
+ private List doObjectSensor(SensorInfo ts)
{
List Entities;
List sensedEntities = new List();
@@ -450,7 +467,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
return sensedEntities;
}
- private List doAgentSensor(SenseRepeatClass ts)
+ private List doAgentSensor(SensorInfo ts)
{
List sensedEntities = new List();
@@ -626,7 +643,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
{
List