aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/OptionalModules')
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs37
1 files changed, 34 insertions, 3 deletions
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index 068eec8..87cb322 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -217,7 +217,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
217 return npcAvatar.AgentId; 217 return npcAvatar.AgentId;
218 } 218 }
219 219
220 public void MoveToTarget(UUID agentID, Scene scene, Vector3 pos) 220 public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos)
221 { 221 {
222 lock (m_avatars) 222 lock (m_avatars)
223 { 223 {
@@ -230,22 +230,49 @@ namespace OpenSim.Region.OptionalModules.World.NPC
230 "[NPC MODULE]: Moving {0} to {1} in {2}", sp.Name, pos, scene.RegionInfo.RegionName); 230 "[NPC MODULE]: Moving {0} to {1} in {2}", sp.Name, pos, scene.RegionInfo.RegionName);
231 231
232 sp.MoveToTarget(pos); 232 sp.MoveToTarget(pos);
233
234 return true;
235 }
236 }
237
238 return false;
239 }
240
241 public bool StopMoveToTarget(UUID agentID, Scene scene)
242 {
243 lock (m_avatars)
244 {
245 if (m_avatars.ContainsKey(agentID))
246 {
247 ScenePresence sp;
248 scene.TryGetScenePresence(agentID, out sp);
249
250 sp.Velocity = Vector3.Zero;
251 sp.ResetMoveToTarget();
252
253 return true;
233 } 254 }
234 } 255 }
256
257 return false;
235 } 258 }
236 259
237 public void Say(UUID agentID, Scene scene, string text) 260 public bool Say(UUID agentID, Scene scene, string text)
238 { 261 {
239 lock (m_avatars) 262 lock (m_avatars)
240 { 263 {
241 if (m_avatars.ContainsKey(agentID)) 264 if (m_avatars.ContainsKey(agentID))
242 { 265 {
243 m_avatars[agentID].Say(text); 266 m_avatars[agentID].Say(text);
267
268 return true;
244 } 269 }
245 } 270 }
271
272 return false;
246 } 273 }
247 274
248 public void DeleteNPC(UUID agentID, Scene scene) 275 public bool DeleteNPC(UUID agentID, Scene scene)
249 { 276 {
250 lock (m_avatars) 277 lock (m_avatars)
251 { 278 {
@@ -253,8 +280,12 @@ namespace OpenSim.Region.OptionalModules.World.NPC
253 { 280 {
254 scene.RemoveClient(agentID); 281 scene.RemoveClient(agentID);
255 m_avatars.Remove(agentID); 282 m_avatars.Remove(agentID);
283
284 return true;
256 } 285 }
257 } 286 }
287
288 return false;
258 } 289 }
259 290
260 public void PostInitialise() 291 public void PostInitialise()