Look up the NPC module when the SensorRepeat class is created, rather than on every single sensor sweep.
parent
04d8c6b4fe
commit
794363421d
|
@ -60,8 +60,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
||||||
m_CmdManager = CmdManager;
|
m_CmdManager = CmdManager;
|
||||||
maximumRange = CmdManager.m_ScriptEngine.Config.GetDouble("SensorMaxRange", 96.0d);
|
maximumRange = CmdManager.m_ScriptEngine.Config.GetDouble("SensorMaxRange", 96.0d);
|
||||||
maximumToReturn = CmdManager.m_ScriptEngine.Config.GetInt("SensorMaxResults", 16);
|
maximumToReturn = CmdManager.m_ScriptEngine.Config.GetInt("SensorMaxResults", 16);
|
||||||
|
m_npcModule = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<INPCModule>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private INPCModule m_npcModule;
|
||||||
|
|
||||||
private Object SenseLock = new Object();
|
private Object SenseLock = new Object();
|
||||||
|
|
||||||
private const int AGENT = 1;
|
private const int AGENT = 1;
|
||||||
|
@ -450,8 +453,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
||||||
|
|
||||||
private List<SensedEntity> doAgentSensor(SenseRepeatClass ts)
|
private List<SensedEntity> doAgentSensor(SenseRepeatClass ts)
|
||||||
{
|
{
|
||||||
INPCModule npcModule = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<INPCModule>();
|
|
||||||
|
|
||||||
List<SensedEntity> sensedEntities = new List<SensedEntity>();
|
List<SensedEntity> sensedEntities = new List<SensedEntity>();
|
||||||
|
|
||||||
// If nobody about quit fast
|
// If nobody about quit fast
|
||||||
|
@ -484,7 +485,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
||||||
bool attached = (SensePoint.ParentGroup.AttachmentPoint != 0);
|
bool attached = (SensePoint.ParentGroup.AttachmentPoint != 0);
|
||||||
Vector3 toRegionPos;
|
Vector3 toRegionPos;
|
||||||
double dis;
|
double dis;
|
||||||
|
|
||||||
Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence =>
|
Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence =>
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
@ -493,7 +494,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
||||||
|
|
||||||
if ((ts.type & NPC) == 0 && (ts.type & OS_NPC) == 0 && presence.PresenceType == PresenceType.Npc)
|
if ((ts.type & NPC) == 0 && (ts.type & OS_NPC) == 0 && presence.PresenceType == PresenceType.Npc)
|
||||||
{
|
{
|
||||||
INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene);
|
INPC npcData = m_npcModule.GetNPC(presence.UUID, presence.Scene);
|
||||||
if (npcData == null || !npcData.SenseAsAgent)
|
if (npcData == null || !npcData.SenseAsAgent)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
@ -511,7 +512,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene);
|
INPC npcData = m_npcModule.GetNPC(presence.UUID, presence.Scene);
|
||||||
if (npcData != null && npcData.SenseAsAgent)
|
if (npcData != null && npcData.SenseAsAgent)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
|
Loading…
Reference in New Issue