aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Interfaces/INPCModule.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-01-28 00:00:12 +0000
committerJustin Clark-Casey (justincc)2012-01-28 00:00:12 +0000
commit7837c611fb483dc776b531306d3d791e8f177aab (patch)
tree01c728a0f46a209eb0267bc166f70260748f4ca8 /OpenSim/Region/Framework/Interfaces/INPCModule.cs
parentIncrement LPS script stat for OSSL functions that were not already doing this (diff)
downloadopensim-SC-7837c611fb483dc776b531306d3d791e8f177aab.zip
opensim-SC-7837c611fb483dc776b531306d3d791e8f177aab.tar.gz
opensim-SC-7837c611fb483dc776b531306d3d791e8f177aab.tar.bz2
opensim-SC-7837c611fb483dc776b531306d3d791e8f177aab.tar.xz
Add OS_NPC_SENSE_AS_AGENT option to osNpcCreate().
This allows NPCs to be sensed as agents by LSL sensors rather than as a specific NPC type (which is currently an OpenSimulator-only extension). Wiki doc on this and other recent NPC functions will follow soon
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Interfaces/INPCModule.cs34
1 files changed, 33 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/INPCModule.cs b/OpenSim/Region/Framework/Interfaces/INPCModule.cs
index b428c40..2731291 100644
--- a/OpenSim/Region/Framework/Interfaces/INPCModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/INPCModule.cs
@@ -31,6 +31,19 @@ using OpenSim.Region.Framework.Scenes;
31 31
32namespace OpenSim.Region.Framework.Interfaces 32namespace OpenSim.Region.Framework.Interfaces
33{ 33{
34 /// <summary>
35 /// Temporary interface. More methods to come at some point to make NPCs more object oriented rather than
36 /// controlling purely through module level interface calls (e.g. sit/stand).
37 /// </summary>
38 public interface INPC
39 {
40 /// <summary>
41 /// Should this NPC be sensed by LSL sensors as an 'agent' (interpreted here to mean a normal user)
42 /// rather than an OpenSim specific NPC extension?
43 /// </summary>
44 bool SenseAsAgent { get; }
45 }
46
34 public interface INPCModule 47 public interface INPCModule
35 { 48 {
36 /// <summary> 49 /// <summary>
@@ -39,10 +52,21 @@ namespace OpenSim.Region.Framework.Interfaces
39 /// <param name="firstname"></param> 52 /// <param name="firstname"></param>
40 /// <param name="lastname"></param> 53 /// <param name="lastname"></param>
41 /// <param name="position"></param> 54 /// <param name="position"></param>
55 /// <param name="senseAsAgent">
56 /// Make the NPC show up as an agent on LSL sensors. The default is that they
57 /// show up as the NPC type instead, but this is currently an OpenSim-only extension.
58 /// </param>
42 /// <param name="scene"></param> 59 /// <param name="scene"></param>
43 /// <param name="appearance">The avatar appearance to use for the new NPC.</param> 60 /// <param name="appearance">The avatar appearance to use for the new NPC.</param>
44 /// <returns>The UUID of the ScenePresence created.</returns> 61 /// <returns>The UUID of the ScenePresence created.</returns>
45 UUID CreateNPC(string firstname, string lastname, Vector3 position, UUID owner, Scene scene, AvatarAppearance appearance); 62 UUID CreateNPC(
63 string firstname,
64 string lastname,
65 Vector3 position,
66 UUID owner,
67 bool senseAsAgent,
68 Scene scene,
69 AvatarAppearance appearance);
46 70
47 /// <summary> 71 /// <summary>
48 /// Check if the agent is an NPC. 72 /// Check if the agent is an NPC.
@@ -53,6 +77,14 @@ namespace OpenSim.Region.Framework.Interfaces
53 bool IsNPC(UUID agentID, Scene scene); 77 bool IsNPC(UUID agentID, Scene scene);
54 78
55 /// <summary> 79 /// <summary>
80 /// Get the NPC. This is not currently complete - manipulation of NPCs still occurs through the region interface
81 /// </summary>
82 /// <param name="agentID"></param>
83 /// <param name="scene"></param>
84 /// <returns>The NPC. null if it does not exist.</returns>
85 INPC GetNPC(UUID agentID, Scene scene);
86
87 /// <summary>
56 /// Check if the caller has permission to manipulate the given NPC. 88 /// Check if the caller has permission to manipulate the given NPC.
57 /// </summary> 89 /// </summary>
58 /// <param name="npcID"></param> 90 /// <param name="npcID"></param>