diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index a626be8211..a7483bc72c 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;
///
@@ -78,24 +113,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
private double maximumRange = 96.0;
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
//
@@ -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();
@@ -451,7 +468,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
return sensedEntities;
}
- private List doAgentSensor(SenseRepeatClass ts)
+ private List doAgentSensor(SensorInfo ts)
{
List sensedEntities = new List();
@@ -627,7 +644,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
{
List