aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/World/NPC
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/OptionalModules/World/NPC')
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs29
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs2
2 files changed, 30 insertions, 1 deletions
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index 4f21d9d..d966345 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -137,6 +137,35 @@ namespace OpenSim.Region.OptionalModules.World.NPC
137 } 137 }
138 } 138 }
139 139
140 public bool IsNPC(UUID agentId, Scene scene)
141 {
142 ScenePresence sp = scene.GetScenePresence(agentId);
143 if (sp == null || sp.IsChildAgent)
144 return false;
145
146 lock (m_avatars)
147 return m_avatars.ContainsKey(agentId);
148 }
149
150 public bool SetNPCAppearance(UUID agentId, AvatarAppearance appearance, Scene scene)
151 {
152 ScenePresence sp = scene.GetScenePresence(agentId);
153 if (sp == null || sp.IsChildAgent)
154 return false;
155
156 lock (m_avatars)
157 if (!m_avatars.ContainsKey(agentId))
158 return false;
159
160 AvatarAppearance npcAppearance = new AvatarAppearance(appearance, true);
161 sp.Appearance = npcAppearance;
162
163 IAvatarFactory module = scene.RequestModuleInterface<IAvatarFactory>();
164 module.SendAppearance(sp.UUID);
165
166 return true;
167 }
168
140 public UUID CreateNPC(string firstname, string lastname, Vector3 position, Scene scene, UUID cloneAppearanceFrom) 169 public UUID CreateNPC(string firstname, string lastname, Vector3 position, Scene scene, UUID cloneAppearanceFrom)
141 { 170 {
142 NPCAvatar npcAvatar = new NPCAvatar(firstname, lastname, position, scene); 171 NPCAvatar npcAvatar = new NPCAvatar(firstname, lastname, position, scene);
diff --git a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
index a0260a5..2ec354f 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
72 // ScenePresence.SendInitialData() to reset our entire appearance. 72 // ScenePresence.SendInitialData() to reset our entire appearance.
73 scene.AssetService.Store(AssetHelpers.CreateAsset(originalFace8TextureId)); 73 scene.AssetService.Store(AssetHelpers.CreateAsset(originalFace8TextureId));
74 74
75 afm.SetAppearance(originalClient, originalTe, null); 75 afm.SetAppearanceFromClient(originalClient, originalTe, null);
76 76
77 INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); 77 INPCModule npcModule = scene.RequestModuleInterface<INPCModule>();
78 UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), scene, originalClient.AgentId); 78 UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), scene, originalClient.AgentId);