diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs')
-rw-r--r-- | OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs | 29 |
1 files changed, 29 insertions, 0 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); |