diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/World')
-rw-r--r-- | OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs | 29 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs | 2 |
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); |