aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs31
1 files changed, 22 insertions, 9 deletions
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index 3f25bcf..b372c88 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -31,6 +31,7 @@ using System.Reflection;
31using System.Threading; 31using System.Threading;
32using log4net; 32using log4net;
33using Nini.Config; 33using Nini.Config;
34using Mono.Addins;
34using OpenMetaverse; 35using OpenMetaverse;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Region.Framework.Scenes; 37using OpenSim.Region.Framework.Scenes;
@@ -40,26 +41,41 @@ using OpenSim.Services.Interfaces;
40 41
41namespace OpenSim.Region.OptionalModules.World.NPC 42namespace OpenSim.Region.OptionalModules.World.NPC
42{ 43{
43 public class NPCModule : IRegionModule, INPCModule 44 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
45 public class NPCModule : INPCModule, ISharedRegionModule
44 { 46 {
45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46 48
47 private Dictionary<UUID, NPCAvatar> m_avatars = new Dictionary<UUID, NPCAvatar>(); 49 private Dictionary<UUID, NPCAvatar> m_avatars = new Dictionary<UUID, NPCAvatar>();
48 50
49 public void Initialise(Scene scene, IConfigSource source) 51 public bool Enabled { get; private set; }
52
53 public void Initialise(IConfigSource source)
50 { 54 {
51 IConfig config = source.Configs["NPC"]; 55 IConfig config = source.Configs["NPC"];
52 56
53 if (config != null && config.GetBoolean("Enabled", false)) 57 Enabled = (config != null && config.GetBoolean("Enabled", false));
54 { 58 }
59
60 public void AddRegion(Scene scene)
61 {
62 if (Enabled)
55 scene.RegisterModuleInterface<INPCModule>(this); 63 scene.RegisterModuleInterface<INPCModule>(this);
56 } 64 }
65
66 public void RegionLoaded(Scene scene)
67 {
57 } 68 }
58 69
59 public void PostInitialise() 70 public void PostInitialise()
60 { 71 {
61 } 72 }
62 73
74 public void RemoveRegion(Scene scene)
75 {
76 scene.UnregisterModuleInterface<INPCModule>(this);
77 }
78
63 public void Close() 79 public void Close()
64 { 80 {
65 } 81 }
@@ -69,10 +85,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
69 get { return "NPCModule"; } 85 get { return "NPCModule"; }
70 } 86 }
71 87
72 public bool IsSharedModule 88 public Type ReplaceableInterface { get { return null; } }
73 {
74 get { return true; }
75 }
76 89
77 public bool IsNPC(UUID agentId, Scene scene) 90 public bool IsNPC(UUID agentId, Scene scene)
78 { 91 {