aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/World
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/OptionalModules/World')
-rw-r--r--OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs4
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs15
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs45
3 files changed, 41 insertions, 23 deletions
diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
index 9c838d0..d206f69 100644
--- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
+++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
@@ -838,6 +838,10 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
838 if (module != null) 838 if (module != null)
839 module.BuyObject(remoteClient, categoryID, localID, saleType, salePrice); 839 module.BuyObject(remoteClient, categoryID, localID, saleType, salePrice);
840 } 840 }
841
842 public void MoveMoney(UUID fromAgentID, UUID toAgentID, int amount, string text)
843 {
844 }
841 } 845 }
842 846
843 public enum TransactionType : int 847 public enum TransactionType : int
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 24b9e6b..d88b2bd 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
47 private readonly string m_firstname; 47 private readonly string m_firstname;
48 private readonly string m_lastname; 48 private readonly string m_lastname;
49 private readonly Vector3 m_startPos; 49 private readonly Vector3 m_startPos;
50 private readonly UUID m_uuid = UUID.Random(); 50 private UUID m_uuid = UUID.Random();
51 private readonly Scene m_scene; 51 private readonly Scene m_scene;
52 private readonly UUID m_ownerID; 52 private readonly UUID m_ownerID;
53 53
@@ -174,7 +174,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
174#pragma warning disable 67 174#pragma warning disable 67
175 public event Action<IClientAPI> OnLogout; 175 public event Action<IClientAPI> OnLogout;
176 public event ObjectPermissions OnObjectPermissions; 176 public event ObjectPermissions OnObjectPermissions;
177 177 public event MoveItemsAndLeaveCopy OnMoveItemsAndLeaveCopy;
178 public event MoneyTransferRequest OnMoneyTransferRequest; 178 public event MoneyTransferRequest OnMoneyTransferRequest;
179 public event ParcelBuy OnParcelBuy; 179 public event ParcelBuy OnParcelBuy;
180 public event Action<IClientAPI> OnConnectionClosed; 180 public event Action<IClientAPI> OnConnectionClosed;
@@ -380,7 +380,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
380 public event ClassifiedInfoRequest OnClassifiedInfoRequest; 380 public event ClassifiedInfoRequest OnClassifiedInfoRequest;
381 public event ClassifiedInfoUpdate OnClassifiedInfoUpdate; 381 public event ClassifiedInfoUpdate OnClassifiedInfoUpdate;
382 public event ClassifiedDelete OnClassifiedDelete; 382 public event ClassifiedDelete OnClassifiedDelete;
383 public event ClassifiedDelete OnClassifiedGodDelete; 383 public event ClassifiedGodDelete OnClassifiedGodDelete;
384 384
385 public event EventNotificationAddRequest OnEventNotificationAddRequest; 385 public event EventNotificationAddRequest OnEventNotificationAddRequest;
386 public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest; 386 public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest;
@@ -419,6 +419,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
419 public event GroupVoteHistoryRequest OnGroupVoteHistoryRequest; 419 public event GroupVoteHistoryRequest OnGroupVoteHistoryRequest;
420 public event SimWideDeletesDelegate OnSimWideDeletes; 420 public event SimWideDeletesDelegate OnSimWideDeletes;
421 public event SendPostcard OnSendPostcard; 421 public event SendPostcard OnSendPostcard;
422 public event ChangeInventoryItemFlags OnChangeInventoryItemFlags;
422 public event MuteListEntryUpdate OnUpdateMuteListEntry; 423 public event MuteListEntryUpdate OnUpdateMuteListEntry;
423 public event MuteListEntryRemove OnRemoveMuteListEntry; 424 public event MuteListEntryRemove OnRemoveMuteListEntry;
424 public event GodlikeMessage onGodlikeMessage; 425 public event GodlikeMessage onGodlikeMessage;
@@ -446,6 +447,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
446 public virtual UUID AgentId 447 public virtual UUID AgentId
447 { 448 {
448 get { return m_uuid; } 449 get { return m_uuid; }
450 set { m_uuid = value; }
449 } 451 }
450 452
451 public UUID SessionId 453 public UUID SessionId
@@ -854,8 +856,11 @@ namespace OpenSim.Region.OptionalModules.World.NPC
854 856
855 public void Close() 857 public void Close()
856 { 858 {
857 // Remove ourselves from the scene 859 Close(true);
858 m_scene.RemoveClient(AgentId, false); 860 }
861
862 public void Close(bool sendStop)
863 {
859 } 864 }
860 865
861 public void Start() 866 public void Start()
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index 2b8379d..68f21c8 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -144,29 +144,38 @@ namespace OpenSim.Region.OptionalModules.World.NPC
144// acd.AgentID, i, acd.Appearance.Texture.FaceTextures[i]); 144// acd.AgentID, i, acd.Appearance.Texture.FaceTextures[i]);
145// } 145// }
146 146
147 lock (m_avatars) 147 ManualResetEvent ev = new ManualResetEvent(false);
148 {
149 scene.AuthenticateHandler.AddNewCircuit(npcAvatar.CircuitCode, acd);
150 scene.AddNewClient(npcAvatar, PresenceType.Npc);
151 148
152 ScenePresence sp; 149 Util.FireAndForget(delegate(object x) {
153 if (scene.TryGetScenePresence(npcAvatar.AgentId, out sp)) 150 lock (m_avatars)
154 { 151 {
155// m_log.DebugFormat( 152 scene.AuthenticateHandler.AddNewCircuit(npcAvatar.CircuitCode, acd);
156// "[NPC MODULE]: Successfully retrieved scene presence for NPC {0} {1}", sp.Name, sp.UUID); 153 scene.AddNewClient(npcAvatar, PresenceType.Npc);
157 154
158 sp.CompleteMovement(npcAvatar, false); 155 ScenePresence sp;
159 m_avatars.Add(npcAvatar.AgentId, npcAvatar); 156 if (scene.TryGetScenePresence(npcAvatar.AgentId, out sp))
160 m_log.DebugFormat("[NPC MODULE]: Created NPC with id {0}", npcAvatar.AgentId); 157 {
158 m_log.DebugFormat(
159 "[NPC MODULE]: Successfully retrieved scene presence for NPC {0} {1}", sp.Name, sp.UUID);
160
161 sp.CompleteMovement(npcAvatar, false);
162 m_avatars.Add(npcAvatar.AgentId, npcAvatar);
163 }
164 else
165 {
166 m_log.WarnFormat("[NPC MODULE]: Could not find scene presence for NPC {0} {1}", sp.Name, sp.UUID);
167 npcAvatar.AgentId = UUID.Zero;
168 }
161 169
162 return npcAvatar.AgentId;
163 }
164 else
165 {
166 m_log.WarnFormat("[NPC MODULE]: Could not find scene presence for NPC {0} {1}", sp.Name, sp.UUID);
167 return UUID.Zero;
168 } 170 }
169 } 171 ev.Set();
172 });
173
174 ev.WaitOne();
175
176// m_log.DebugFormat("[NPC MODULE]: Created NPC with id {0}", npcAvatar.AgentId);
177
178 return npcAvatar.AgentId;
170 } 179 }
171 180
172 public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget) 181 public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget)