diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/EventManager.cs | 981 |
1 files changed, 981 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs new file mode 100644 index 0000000..23e1278 --- /dev/null +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -0,0 +1,981 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Framework.Client; | ||
32 | using OpenSim.Region.Framework.Interfaces; | ||
33 | using OpenSim.Region.Framework.Scenes; | ||
34 | using Caps = OpenSim.Framework.Communications.Capabilities.Caps; | ||
35 | using System.Collections.Generic; | ||
36 | |||
37 | namespace OpenSim.Region.Framework.Scenes | ||
38 | { | ||
39 | /// <summary> | ||
40 | /// A class for triggering remote scene events. | ||
41 | /// </summary> | ||
42 | public class EventManager | ||
43 | { | ||
44 | public delegate void OnFrameDelegate(); | ||
45 | |||
46 | public event OnFrameDelegate OnFrame; | ||
47 | |||
48 | public delegate void ClientMovement(ScenePresence client); | ||
49 | |||
50 | public event ClientMovement OnClientMovement; | ||
51 | |||
52 | public delegate void OnTerrainTickDelegate(); | ||
53 | |||
54 | public event OnTerrainTickDelegate OnTerrainTick; | ||
55 | |||
56 | public delegate void OnBackupDelegate(IRegionDataStore datastore, bool forceBackup); | ||
57 | |||
58 | public event OnBackupDelegate OnBackup; | ||
59 | |||
60 | public delegate void OnClientConnectCoreDelegate(IClientCore client); | ||
61 | |||
62 | public event OnClientConnectCoreDelegate OnClientConnect; | ||
63 | |||
64 | public delegate void OnNewClientDelegate(IClientAPI client); | ||
65 | |||
66 | /// <summary> | ||
67 | /// Depreciated in favour of OnClientConnect. | ||
68 | /// Will be marked Obsolete after IClientCore has 100% of IClientAPI interfaces. | ||
69 | /// </summary> | ||
70 | public event OnNewClientDelegate OnNewClient; | ||
71 | |||
72 | public delegate void OnNewPresenceDelegate(ScenePresence presence); | ||
73 | |||
74 | public event OnNewPresenceDelegate OnNewPresence; | ||
75 | |||
76 | public delegate void OnRemovePresenceDelegate(UUID agentId); | ||
77 | |||
78 | public event OnRemovePresenceDelegate OnRemovePresence; | ||
79 | |||
80 | public delegate void OnParcelPrimCountUpdateDelegate(); | ||
81 | |||
82 | public event OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate; | ||
83 | |||
84 | public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj); | ||
85 | |||
86 | public event OnParcelPrimCountAddDelegate OnParcelPrimCountAdd; | ||
87 | |||
88 | public delegate void OnPluginConsoleDelegate(string[] args); | ||
89 | |||
90 | public event OnPluginConsoleDelegate OnPluginConsole; | ||
91 | |||
92 | public delegate void OnShutdownDelegate(); | ||
93 | |||
94 | public event OnShutdownDelegate OnShutdown; | ||
95 | |||
96 | public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); | ||
97 | public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient); | ||
98 | public delegate void ScriptResetDelegate(uint localID, UUID itemID); | ||
99 | |||
100 | public delegate void OnPermissionErrorDelegate(UUID user, string reason); | ||
101 | |||
102 | public delegate void OnSetRootAgentSceneDelegate(UUID agentID, Scene scene); | ||
103 | |||
104 | public event OnSetRootAgentSceneDelegate OnSetRootAgentScene; | ||
105 | |||
106 | public event ObjectGrabDelegate OnObjectGrab; | ||
107 | public event ObjectDeGrabDelegate OnObjectDeGrab; | ||
108 | public event ScriptResetDelegate OnScriptReset; | ||
109 | |||
110 | public event OnPermissionErrorDelegate OnPermissionError; | ||
111 | |||
112 | public delegate void NewRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource); | ||
113 | |||
114 | public event NewRezScript OnRezScript; | ||
115 | |||
116 | public delegate void RemoveScript(uint localID, UUID itemID); | ||
117 | |||
118 | public event RemoveScript OnRemoveScript; | ||
119 | |||
120 | public delegate void StartScript(uint localID, UUID itemID); | ||
121 | |||
122 | public event StartScript OnStartScript; | ||
123 | |||
124 | public delegate void StopScript(uint localID, UUID itemID); | ||
125 | |||
126 | public event StopScript OnStopScript; | ||
127 | |||
128 | public delegate bool SceneGroupMoved(UUID groupID, Vector3 delta); | ||
129 | |||
130 | public event SceneGroupMoved OnSceneGroupMove; | ||
131 | |||
132 | public delegate void SceneGroupGrabed(UUID groupID, Vector3 offset, UUID userID); | ||
133 | |||
134 | public event SceneGroupGrabed OnSceneGroupGrab; | ||
135 | |||
136 | public delegate void LandObjectAdded(ILandObject newParcel); | ||
137 | |||
138 | public event LandObjectAdded OnLandObjectAdded; | ||
139 | |||
140 | public delegate void LandObjectRemoved(UUID globalID); | ||
141 | |||
142 | public event LandObjectRemoved OnLandObjectRemoved; | ||
143 | |||
144 | public delegate void AvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID); | ||
145 | |||
146 | public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel; | ||
147 | |||
148 | public delegate void SignificantClientMovement(IClientAPI remote_client); | ||
149 | |||
150 | public event SignificantClientMovement OnSignificantClientMovement; | ||
151 | |||
152 | public delegate void IncomingInstantMessage(GridInstantMessage message); | ||
153 | |||
154 | public event IncomingInstantMessage OnIncomingInstantMessage; | ||
155 | |||
156 | public event IncomingInstantMessage OnUnhandledInstantMessage; | ||
157 | |||
158 | public delegate void ClientClosed(UUID clientID); | ||
159 | |||
160 | public event ClientClosed OnClientClosed; | ||
161 | |||
162 | public delegate void ScriptChangedEvent(uint localID, uint change); | ||
163 | |||
164 | public event ScriptChangedEvent OnScriptChangedEvent; | ||
165 | |||
166 | public delegate void ScriptControlEvent(uint localID, UUID item, UUID avatarID, uint held, uint changed); | ||
167 | |||
168 | public event ScriptControlEvent OnScriptControlEvent; | ||
169 | |||
170 | public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); | ||
171 | |||
172 | public event ScriptAtTargetEvent OnScriptAtTargetEvent; | ||
173 | |||
174 | public delegate void ScriptNotAtTargetEvent(uint localID); | ||
175 | |||
176 | public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; | ||
177 | |||
178 | public delegate void ScriptColliding(uint localID, ColliderArgs colliders); | ||
179 | |||
180 | public event ScriptColliding OnScriptColliderStart; | ||
181 | public event ScriptColliding OnScriptColliding; | ||
182 | public event ScriptColliding OnScriptCollidingEnd; | ||
183 | |||
184 | public delegate void OnMakeChildAgentDelegate(ScenePresence presence); | ||
185 | public event OnMakeChildAgentDelegate OnMakeChildAgent; | ||
186 | |||
187 | public delegate void OnMakeRootAgentDelegate(ScenePresence presence); | ||
188 | public event OnMakeRootAgentDelegate OnMakeRootAgent; | ||
189 | |||
190 | public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel); | ||
191 | |||
192 | public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; | ||
193 | |||
194 | public delegate void RequestChangeWaterHeight(float height); | ||
195 | |||
196 | public event RequestChangeWaterHeight OnRequestChangeWaterHeight; | ||
197 | |||
198 | public delegate void AvatarKillData(uint KillerLocalID, ScenePresence avatar); | ||
199 | |||
200 | public event AvatarKillData OnAvatarKilled; | ||
201 | |||
202 | public delegate void ScriptTimerEvent(uint localID, double timerinterval); | ||
203 | |||
204 | public event ScriptTimerEvent OnScriptTimerEvent; | ||
205 | |||
206 | public delegate void EstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool EstateSun, float LindenHour); | ||
207 | public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); | ||
208 | |||
209 | public event EstateToolsTimeUpdate OnEstateToolsTimeUpdate; | ||
210 | |||
211 | public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); | ||
212 | public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; | ||
213 | |||
214 | public delegate void NoticeNoLandDataFromStorage(); | ||
215 | public event NoticeNoLandDataFromStorage OnNoticeNoLandDataFromStorage; | ||
216 | |||
217 | public delegate void IncomingLandDataFromStorage(List<LandData> data); | ||
218 | public event IncomingLandDataFromStorage OnIncomingLandDataFromStorage; | ||
219 | |||
220 | public delegate void SetAllowForcefulBan(bool allow); | ||
221 | public event SetAllowForcefulBan OnSetAllowForcefulBan; | ||
222 | |||
223 | public delegate void RequestParcelPrimCountUpdate(); | ||
224 | public event RequestParcelPrimCountUpdate OnRequestParcelPrimCountUpdate; | ||
225 | |||
226 | public delegate void ParcelPrimCountTainted(); | ||
227 | public event ParcelPrimCountTainted OnParcelPrimCountTainted; | ||
228 | public event GetScriptRunning OnGetScriptRunning; | ||
229 | |||
230 | /// <summary> | ||
231 | /// RegisterCapsEvent is called by Scene after the Caps object | ||
232 | /// has been instantiated and before it is return to the | ||
233 | /// client and provides region modules to add their caps. | ||
234 | /// </summary> | ||
235 | public delegate void RegisterCapsEvent(UUID agentID, Caps caps); | ||
236 | public event RegisterCapsEvent OnRegisterCaps; | ||
237 | |||
238 | /// <summary> | ||
239 | /// DeregisterCapsEvent is called by Scene when the caps | ||
240 | /// handler for an agent are removed. | ||
241 | /// </summary> | ||
242 | public delegate void DeregisterCapsEvent(UUID agentID, Caps caps); | ||
243 | public event DeregisterCapsEvent OnDeregisterCaps; | ||
244 | |||
245 | /// <summary> | ||
246 | /// ChatFromWorldEvent is called via Scene when a chat message | ||
247 | /// from world comes in. | ||
248 | /// </summary> | ||
249 | public delegate void ChatFromWorldEvent(Object sender, OSChatMessage chat); | ||
250 | public event ChatFromWorldEvent OnChatFromWorld; | ||
251 | |||
252 | /// <summary> | ||
253 | /// ChatFromClientEvent is triggered via ChatModule (or | ||
254 | /// substitutes thereof) when a chat message | ||
255 | /// from the client comes in. | ||
256 | /// </summary> | ||
257 | public delegate void ChatFromClientEvent(Object sender, OSChatMessage chat); | ||
258 | public event ChatFromClientEvent OnChatFromClient; | ||
259 | |||
260 | /// <summary> | ||
261 | /// ChatBroadcastEvent is called via Scene when a broadcast chat message | ||
262 | /// from world comes in | ||
263 | /// </summary> | ||
264 | public delegate void ChatBroadcastEvent(Object sender, OSChatMessage chat); | ||
265 | public event ChatBroadcastEvent OnChatBroadcast; | ||
266 | |||
267 | public delegate float SunLindenHour(); | ||
268 | public event SunLindenHour OnGetSunLindenHour; | ||
269 | |||
270 | /// <summary> | ||
271 | /// Called when oar file has finished loading, although | ||
272 | /// the scripts may not have started yet | ||
273 | /// Message is non empty string if there were problems loading the oar file | ||
274 | /// </summary> | ||
275 | public delegate void OarFileLoaded(string message); | ||
276 | public event OarFileLoaded OnOarFileLoaded; | ||
277 | |||
278 | /// <summary> | ||
279 | /// Called when an oar file has finished saving | ||
280 | /// Message is non empty string if there were problems saving the oar file | ||
281 | /// </summary> | ||
282 | public delegate void OarFileSaved(string message); | ||
283 | public event OarFileSaved OnOarFileSaved; | ||
284 | |||
285 | /// <summary> | ||
286 | /// Called when the script compile queue becomes empty | ||
287 | /// Returns the number of scripts which failed to start | ||
288 | /// </summary> | ||
289 | public delegate void EmptyScriptCompileQueue(int numScriptsFailed, string message); | ||
290 | public event EmptyScriptCompileQueue OnEmptyScriptCompileQueue; | ||
291 | |||
292 | public class MoneyTransferArgs : EventArgs | ||
293 | { | ||
294 | public UUID sender; | ||
295 | public UUID receiver; | ||
296 | |||
297 | // Always false. The SL protocol sucks. | ||
298 | public bool authenticated = false; | ||
299 | |||
300 | public int amount; | ||
301 | public int transactiontype; | ||
302 | public string description; | ||
303 | |||
304 | public MoneyTransferArgs(UUID asender, UUID areceiver, int aamount, int atransactiontype, string adescription) | ||
305 | { | ||
306 | sender = asender; | ||
307 | receiver = areceiver; | ||
308 | amount = aamount; | ||
309 | transactiontype = atransactiontype; | ||
310 | description = adescription; | ||
311 | } | ||
312 | } | ||
313 | |||
314 | public class LandBuyArgs : EventArgs | ||
315 | { | ||
316 | public UUID agentId = UUID.Zero; | ||
317 | |||
318 | public UUID groupId = UUID.Zero; | ||
319 | |||
320 | public UUID parcelOwnerID = UUID.Zero; | ||
321 | |||
322 | public bool final = false; | ||
323 | public bool groupOwned = false; | ||
324 | public bool removeContribution = false; | ||
325 | public int parcelLocalID = 0; | ||
326 | public int parcelArea = 0; | ||
327 | public int parcelPrice = 0; | ||
328 | public bool authenticated = false; | ||
329 | public bool landValidated = false; | ||
330 | public bool economyValidated = false; | ||
331 | public int transactionID = 0; | ||
332 | public int amountDebited = 0; | ||
333 | |||
334 | public LandBuyArgs(UUID pagentId, UUID pgroupId, bool pfinal, bool pgroupOwned, | ||
335 | bool premoveContribution, int pparcelLocalID, int pparcelArea, int pparcelPrice, | ||
336 | bool pauthenticated) | ||
337 | { | ||
338 | agentId = pagentId; | ||
339 | groupId = pgroupId; | ||
340 | final = pfinal; | ||
341 | groupOwned = pgroupOwned; | ||
342 | removeContribution = premoveContribution; | ||
343 | parcelLocalID = pparcelLocalID; | ||
344 | parcelArea = pparcelArea; | ||
345 | parcelPrice = pparcelPrice; | ||
346 | authenticated = pauthenticated; | ||
347 | } | ||
348 | } | ||
349 | |||
350 | public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e); | ||
351 | |||
352 | public delegate void LandBuy(Object sender, LandBuyArgs e); | ||
353 | |||
354 | public event MoneyTransferEvent OnMoneyTransfer; | ||
355 | public event LandBuy OnLandBuy; | ||
356 | public event LandBuy OnValidateLandBuy; | ||
357 | |||
358 | /* Designated Event Deletage Instances */ | ||
359 | |||
360 | private ScriptChangedEvent handlerScriptChangedEvent = null; //OnScriptChangedEvent; | ||
361 | private ScriptAtTargetEvent handlerScriptAtTargetEvent = null; | ||
362 | private ScriptNotAtTargetEvent handlerScriptNotAtTargetEvent = null; | ||
363 | private ClientMovement handlerClientMovement = null; //OnClientMovement; | ||
364 | private OnPermissionErrorDelegate handlerPermissionError = null; //OnPermissionError; | ||
365 | private OnPluginConsoleDelegate handlerPluginConsole = null; //OnPluginConsole; | ||
366 | private OnFrameDelegate handlerFrame = null; //OnFrame; | ||
367 | private OnNewClientDelegate handlerNewClient = null; //OnNewClient; | ||
368 | private OnClientConnectCoreDelegate handlerClientConnect = null; //OnClientConnect | ||
369 | private OnNewPresenceDelegate handlerNewPresence = null; //OnNewPresence; | ||
370 | private OnRemovePresenceDelegate handlerRemovePresence = null; //OnRemovePresence; | ||
371 | private OnBackupDelegate handlerBackup = null; //OnBackup; | ||
372 | private OnParcelPrimCountUpdateDelegate handlerParcelPrimCountUpdate = null; //OnParcelPrimCountUpdate; | ||
373 | private MoneyTransferEvent handlerMoneyTransfer = null; //OnMoneyTransfer; | ||
374 | private OnParcelPrimCountAddDelegate handlerParcelPrimCountAdd = null; //OnParcelPrimCountAdd; | ||
375 | private OnShutdownDelegate handlerShutdown = null; //OnShutdown; | ||
376 | private ObjectGrabDelegate handlerObjectGrab = null; //OnObjectGrab; | ||
377 | private ObjectDeGrabDelegate handlerObjectDeGrab = null; //OnObjectDeGrab; | ||
378 | private ScriptResetDelegate handlerScriptReset = null; // OnScriptReset | ||
379 | private NewRezScript handlerRezScript = null; //OnRezScript; | ||
380 | private RemoveScript handlerRemoveScript = null; //OnRemoveScript; | ||
381 | private StartScript handlerStartScript = null; //OnStartScript; | ||
382 | private StopScript handlerStopScript = null; //OnStopScript; | ||
383 | private SceneGroupMoved handlerSceneGroupMove = null; //OnSceneGroupMove; | ||
384 | private SceneGroupGrabed handlerSceneGroupGrab = null; //OnSceneGroupGrab; | ||
385 | private LandObjectAdded handlerLandObjectAdded = null; //OnLandObjectAdded; | ||
386 | private LandObjectRemoved handlerLandObjectRemoved = null; //OnLandObjectRemoved; | ||
387 | private AvatarEnteringNewParcel handlerAvatarEnteringNewParcel = null; //OnAvatarEnteringNewParcel; | ||
388 | private IncomingInstantMessage handlerIncomingInstantMessage = null; //OnIncomingInstantMessage; | ||
389 | private IncomingInstantMessage handlerUnhandledInstantMessage = null; //OnUnhandledInstantMessage; | ||
390 | private ClientClosed handlerClientClosed = null; //OnClientClosed; | ||
391 | private OnMakeChildAgentDelegate handlerMakeChildAgent = null; //OnMakeChildAgent; | ||
392 | private OnMakeRootAgentDelegate handlerMakeRootAgent = null; //OnMakeRootAgent; | ||
393 | private OnTerrainTickDelegate handlerTerrainTick = null; // OnTerainTick; | ||
394 | private RegisterCapsEvent handlerRegisterCaps = null; // OnRegisterCaps; | ||
395 | private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps; | ||
396 | private ChatFromWorldEvent handlerChatFromWorld = null; // OnChatFromWorld; | ||
397 | private ChatFromClientEvent handlerChatFromClient = null; // OnChatFromClient; | ||
398 | private ChatBroadcastEvent handlerChatBroadcast = null; // OnChatBroadcast; | ||
399 | private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null; | ||
400 | private RequestChangeWaterHeight handlerRequestChangeWaterHeight = null; //OnRequestChangeWaterHeight | ||
401 | private ScriptControlEvent handlerScriptControlEvent = null; | ||
402 | private SignificantClientMovement handlerSignificantClientMovement = null; | ||
403 | |||
404 | private LandBuy handlerLandBuy = null; | ||
405 | private LandBuy handlerValidateLandBuy = null; | ||
406 | private AvatarKillData handlerAvatarKill = null; | ||
407 | |||
408 | private NoticeNoLandDataFromStorage handlerNoticeNoLandDataFromStorage = null; | ||
409 | private IncomingLandDataFromStorage handlerIncomingLandDataFromStorage = null; | ||
410 | private SetAllowForcefulBan handlerSetAllowForcefulBan = null; | ||
411 | private RequestParcelPrimCountUpdate handlerRequestParcelPrimCountUpdate = null; | ||
412 | private ParcelPrimCountTainted handlerParcelPrimCountTainted = null; | ||
413 | private ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = null; | ||
414 | private ScriptTimerEvent handlerScriptTimerEvent = null; | ||
415 | private EstateToolsTimeUpdate handlerEstateToolsTimeUpdate = null; | ||
416 | |||
417 | private ScriptColliding handlerCollidingStart = null; | ||
418 | private ScriptColliding handlerColliding = null; | ||
419 | private ScriptColliding handlerCollidingEnd = null; | ||
420 | private GetScriptRunning handlerGetScriptRunning = null; | ||
421 | |||
422 | private SunLindenHour handlerSunGetLindenHour = null; | ||
423 | private OnSetRootAgentSceneDelegate handlerSetRootAgentScene = null; | ||
424 | |||
425 | private OarFileLoaded handlerOarFileLoaded = null; | ||
426 | private OarFileSaved handlerOarFileSaved = null; | ||
427 | |||
428 | private EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = null; | ||
429 | |||
430 | public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID) | ||
431 | { | ||
432 | handlerGetScriptRunning = OnGetScriptRunning; | ||
433 | if (handlerGetScriptRunning != null) | ||
434 | handlerGetScriptRunning(controllingClient, objectID, itemID); | ||
435 | } | ||
436 | |||
437 | public void TriggerOnScriptChangedEvent(uint localID, uint change) | ||
438 | { | ||
439 | handlerScriptChangedEvent = OnScriptChangedEvent; | ||
440 | if (handlerScriptChangedEvent != null) | ||
441 | handlerScriptChangedEvent(localID, change); | ||
442 | } | ||
443 | |||
444 | public void TriggerOnClientMovement(ScenePresence avatar) | ||
445 | { | ||
446 | handlerClientMovement = OnClientMovement; | ||
447 | if (handlerClientMovement != null) | ||
448 | handlerClientMovement(avatar); | ||
449 | } | ||
450 | |||
451 | public void TriggerPermissionError(UUID user, string reason) | ||
452 | { | ||
453 | handlerPermissionError = OnPermissionError; | ||
454 | if (handlerPermissionError != null) | ||
455 | handlerPermissionError(user, reason); | ||
456 | } | ||
457 | |||
458 | public void TriggerOnPluginConsole(string[] args) | ||
459 | { | ||
460 | handlerPluginConsole = OnPluginConsole; | ||
461 | if (handlerPluginConsole != null) | ||
462 | handlerPluginConsole(args); | ||
463 | } | ||
464 | |||
465 | public void TriggerOnFrame() | ||
466 | { | ||
467 | handlerFrame = OnFrame; | ||
468 | if (handlerFrame != null) | ||
469 | { | ||
470 | handlerFrame(); | ||
471 | } | ||
472 | } | ||
473 | |||
474 | public void TriggerOnNewClient(IClientAPI client) | ||
475 | { | ||
476 | handlerNewClient = OnNewClient; | ||
477 | if (handlerNewClient != null) | ||
478 | handlerNewClient(client); | ||
479 | |||
480 | if (client is IClientCore) | ||
481 | { | ||
482 | handlerClientConnect = OnClientConnect; | ||
483 | handlerClientConnect((IClientCore) client); | ||
484 | } | ||
485 | } | ||
486 | |||
487 | public void TriggerOnNewPresence(ScenePresence presence) | ||
488 | { | ||
489 | handlerNewPresence = OnNewPresence; | ||
490 | if (handlerNewPresence != null) | ||
491 | handlerNewPresence(presence); | ||
492 | } | ||
493 | |||
494 | public void TriggerOnRemovePresence(UUID agentId) | ||
495 | { | ||
496 | handlerRemovePresence = OnRemovePresence; | ||
497 | if (handlerRemovePresence != null) | ||
498 | { | ||
499 | handlerRemovePresence(agentId); | ||
500 | } | ||
501 | } | ||
502 | |||
503 | public void TriggerOnBackup(IRegionDataStore dstore) | ||
504 | { | ||
505 | handlerBackup = OnBackup; | ||
506 | if (handlerBackup != null) | ||
507 | { | ||
508 | handlerBackup(dstore, false); | ||
509 | } | ||
510 | } | ||
511 | |||
512 | public void TriggerParcelPrimCountUpdate() | ||
513 | { | ||
514 | handlerParcelPrimCountUpdate = OnParcelPrimCountUpdate; | ||
515 | if (handlerParcelPrimCountUpdate != null) | ||
516 | { | ||
517 | handlerParcelPrimCountUpdate(); | ||
518 | } | ||
519 | } | ||
520 | |||
521 | public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs e) | ||
522 | { | ||
523 | handlerMoneyTransfer = OnMoneyTransfer; | ||
524 | if (handlerMoneyTransfer != null) | ||
525 | { | ||
526 | handlerMoneyTransfer(sender, e); | ||
527 | } | ||
528 | } | ||
529 | |||
530 | public void TriggerTerrainTick() | ||
531 | { | ||
532 | handlerTerrainTick = OnTerrainTick; | ||
533 | if (handlerTerrainTick != null) | ||
534 | { | ||
535 | handlerTerrainTick(); | ||
536 | } | ||
537 | } | ||
538 | |||
539 | public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) | ||
540 | { | ||
541 | handlerParcelPrimCountAdd = OnParcelPrimCountAdd; | ||
542 | if (handlerParcelPrimCountAdd != null) | ||
543 | { | ||
544 | handlerParcelPrimCountAdd(obj); | ||
545 | } | ||
546 | } | ||
547 | |||
548 | public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) | ||
549 | { | ||
550 | handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene; | ||
551 | if (handlerObjectBeingRemovedFromScene != null) | ||
552 | { | ||
553 | handlerObjectBeingRemovedFromScene(obj); | ||
554 | } | ||
555 | } | ||
556 | |||
557 | public void TriggerShutdown() | ||
558 | { | ||
559 | handlerShutdown = OnShutdown; | ||
560 | if (handlerShutdown != null) | ||
561 | handlerShutdown(); | ||
562 | } | ||
563 | |||
564 | public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) | ||
565 | { | ||
566 | handlerObjectGrab = OnObjectGrab; | ||
567 | if (handlerObjectGrab != null) | ||
568 | { | ||
569 | handlerObjectGrab(localID, originalID, offsetPos, remoteClient, surfaceArgs); | ||
570 | } | ||
571 | } | ||
572 | |||
573 | public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient) | ||
574 | { | ||
575 | handlerObjectDeGrab = OnObjectDeGrab; | ||
576 | if (handlerObjectDeGrab != null) | ||
577 | { | ||
578 | handlerObjectDeGrab(localID, originalID, remoteClient); | ||
579 | } | ||
580 | } | ||
581 | |||
582 | public void TriggerScriptReset(uint localID, UUID itemID) | ||
583 | { | ||
584 | handlerScriptReset = OnScriptReset; | ||
585 | if (handlerScriptReset != null) | ||
586 | { | ||
587 | handlerScriptReset(localID, itemID); | ||
588 | } | ||
589 | } | ||
590 | |||
591 | public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource) | ||
592 | { | ||
593 | handlerRezScript = OnRezScript; | ||
594 | if (handlerRezScript != null) | ||
595 | { | ||
596 | handlerRezScript(localID, itemID, script, startParam, | ||
597 | postOnRez, engine, stateSource); | ||
598 | } | ||
599 | } | ||
600 | |||
601 | public void TriggerStartScript(uint localID, UUID itemID) | ||
602 | { | ||
603 | handlerStartScript = OnStartScript; | ||
604 | if (handlerStartScript != null) | ||
605 | { | ||
606 | handlerStartScript(localID, itemID); | ||
607 | } | ||
608 | } | ||
609 | |||
610 | public void TriggerStopScript(uint localID, UUID itemID) | ||
611 | { | ||
612 | handlerStopScript = OnStopScript; | ||
613 | if (handlerStopScript != null) | ||
614 | { | ||
615 | handlerStopScript(localID, itemID); | ||
616 | } | ||
617 | } | ||
618 | |||
619 | public void TriggerRemoveScript(uint localID, UUID itemID) | ||
620 | { | ||
621 | handlerRemoveScript = OnRemoveScript; | ||
622 | if (handlerRemoveScript != null) | ||
623 | { | ||
624 | handlerRemoveScript(localID, itemID); | ||
625 | } | ||
626 | } | ||
627 | |||
628 | public bool TriggerGroupMove(UUID groupID, Vector3 delta) | ||
629 | { | ||
630 | handlerSceneGroupMove = OnSceneGroupMove; | ||
631 | |||
632 | if (handlerSceneGroupMove != null) | ||
633 | { | ||
634 | return handlerSceneGroupMove(groupID, delta); | ||
635 | } | ||
636 | return true; | ||
637 | } | ||
638 | |||
639 | public void TriggerGroupGrab(UUID groupID, Vector3 offset, UUID userID) | ||
640 | { | ||
641 | handlerSceneGroupGrab = OnSceneGroupGrab; | ||
642 | if (handlerSceneGroupGrab != null) | ||
643 | { | ||
644 | handlerSceneGroupGrab(groupID, offset, userID); | ||
645 | } | ||
646 | } | ||
647 | |||
648 | public void TriggerLandObjectAdded(ILandObject newParcel) | ||
649 | { | ||
650 | handlerLandObjectAdded = OnLandObjectAdded; | ||
651 | |||
652 | if (handlerLandObjectAdded != null) | ||
653 | { | ||
654 | handlerLandObjectAdded(newParcel); | ||
655 | } | ||
656 | } | ||
657 | |||
658 | public void TriggerLandObjectRemoved(UUID globalID) | ||
659 | { | ||
660 | handlerLandObjectRemoved = OnLandObjectRemoved; | ||
661 | if (handlerLandObjectRemoved != null) | ||
662 | { | ||
663 | handlerLandObjectRemoved(globalID); | ||
664 | } | ||
665 | } | ||
666 | |||
667 | public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel) | ||
668 | { | ||
669 | //triggerLandObjectRemoved(localParcelID); | ||
670 | |||
671 | TriggerLandObjectAdded(newParcel); | ||
672 | } | ||
673 | |||
674 | public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID) | ||
675 | { | ||
676 | handlerAvatarEnteringNewParcel = OnAvatarEnteringNewParcel; | ||
677 | |||
678 | if (handlerAvatarEnteringNewParcel != null) | ||
679 | { | ||
680 | handlerAvatarEnteringNewParcel(avatar, localLandID, regionID); | ||
681 | } | ||
682 | } | ||
683 | |||
684 | public void TriggerIncomingInstantMessage(GridInstantMessage message) | ||
685 | { | ||
686 | handlerIncomingInstantMessage = OnIncomingInstantMessage; | ||
687 | if (handlerIncomingInstantMessage != null) | ||
688 | { | ||
689 | handlerIncomingInstantMessage(message); | ||
690 | } | ||
691 | } | ||
692 | |||
693 | public void TriggerUnhandledInstantMessage(GridInstantMessage message) | ||
694 | { | ||
695 | handlerUnhandledInstantMessage = OnUnhandledInstantMessage; | ||
696 | if (handlerUnhandledInstantMessage != null) | ||
697 | { | ||
698 | handlerUnhandledInstantMessage(message); | ||
699 | } | ||
700 | } | ||
701 | |||
702 | public void TriggerClientClosed(UUID ClientID) | ||
703 | { | ||
704 | handlerClientClosed = OnClientClosed; | ||
705 | if (handlerClientClosed != null) | ||
706 | { | ||
707 | handlerClientClosed(ClientID); | ||
708 | } | ||
709 | } | ||
710 | |||
711 | public void TriggerOnMakeChildAgent(ScenePresence presence) | ||
712 | { | ||
713 | handlerMakeChildAgent = OnMakeChildAgent; | ||
714 | if (handlerMakeChildAgent != null) | ||
715 | { | ||
716 | handlerMakeChildAgent(presence); | ||
717 | } | ||
718 | } | ||
719 | |||
720 | public void TriggerOnMakeRootAgent(ScenePresence presence) | ||
721 | { | ||
722 | handlerMakeRootAgent = OnMakeRootAgent; | ||
723 | if (handlerMakeRootAgent != null) | ||
724 | { | ||
725 | handlerMakeRootAgent(presence); | ||
726 | } | ||
727 | } | ||
728 | |||
729 | public void TriggerOnRegisterCaps(UUID agentID, Caps caps) | ||
730 | { | ||
731 | handlerRegisterCaps = OnRegisterCaps; | ||
732 | if (handlerRegisterCaps != null) | ||
733 | { | ||
734 | handlerRegisterCaps(agentID, caps); | ||
735 | } | ||
736 | } | ||
737 | |||
738 | public void TriggerOnDeregisterCaps(UUID agentID, Caps caps) | ||
739 | { | ||
740 | handlerDeregisterCaps = OnDeregisterCaps; | ||
741 | if (handlerDeregisterCaps != null) | ||
742 | { | ||
743 | handlerDeregisterCaps(agentID, caps); | ||
744 | } | ||
745 | } | ||
746 | |||
747 | public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel) | ||
748 | { | ||
749 | handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete; | ||
750 | if (handlerNewInventoryItemUpdateComplete != null) | ||
751 | { | ||
752 | handlerNewInventoryItemUpdateComplete(agentID, AssetID, AssetName, userlevel); | ||
753 | } | ||
754 | } | ||
755 | |||
756 | public void TriggerLandBuy(Object sender, LandBuyArgs e) | ||
757 | { | ||
758 | handlerLandBuy = OnLandBuy; | ||
759 | if (handlerLandBuy != null) | ||
760 | { | ||
761 | handlerLandBuy(sender, e); | ||
762 | } | ||
763 | } | ||
764 | |||
765 | public void TriggerValidateLandBuy(Object sender, LandBuyArgs e) | ||
766 | { | ||
767 | handlerValidateLandBuy = OnValidateLandBuy; | ||
768 | if (handlerValidateLandBuy != null) | ||
769 | { | ||
770 | handlerValidateLandBuy(sender, e); | ||
771 | } | ||
772 | } | ||
773 | |||
774 | public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos) | ||
775 | { | ||
776 | handlerScriptAtTargetEvent = OnScriptAtTargetEvent; | ||
777 | if (handlerScriptAtTargetEvent != null) | ||
778 | { | ||
779 | handlerScriptAtTargetEvent(localID, handle, targetpos, currentpos); | ||
780 | } | ||
781 | } | ||
782 | |||
783 | public void TriggerNotAtTargetEvent(uint localID) | ||
784 | { | ||
785 | handlerScriptNotAtTargetEvent = OnScriptNotAtTargetEvent; | ||
786 | if (handlerScriptNotAtTargetEvent != null) | ||
787 | { | ||
788 | handlerScriptNotAtTargetEvent(localID); | ||
789 | } | ||
790 | } | ||
791 | |||
792 | public void TriggerRequestChangeWaterHeight(float height) | ||
793 | { | ||
794 | handlerRequestChangeWaterHeight = OnRequestChangeWaterHeight; | ||
795 | if (handlerRequestChangeWaterHeight != null) | ||
796 | { | ||
797 | handlerRequestChangeWaterHeight(height); | ||
798 | } | ||
799 | } | ||
800 | |||
801 | public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) | ||
802 | { | ||
803 | handlerAvatarKill = OnAvatarKilled; | ||
804 | if (handlerAvatarKill != null) | ||
805 | { | ||
806 | handlerAvatarKill(KillerObjectLocalID, DeadAvatar); | ||
807 | } | ||
808 | } | ||
809 | |||
810 | public void TriggerSignificantClientMovement(IClientAPI client) | ||
811 | { | ||
812 | handlerSignificantClientMovement = OnSignificantClientMovement; | ||
813 | if (handlerSignificantClientMovement != null) | ||
814 | { | ||
815 | handlerSignificantClientMovement(client); | ||
816 | } | ||
817 | } | ||
818 | |||
819 | public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) | ||
820 | { | ||
821 | handlerChatFromWorld = OnChatFromWorld; | ||
822 | if (handlerChatFromWorld != null) | ||
823 | { | ||
824 | handlerChatFromWorld(sender, chat); | ||
825 | } | ||
826 | } | ||
827 | |||
828 | public void TriggerOnChatFromClient(Object sender, OSChatMessage chat) | ||
829 | { | ||
830 | handlerChatFromClient = OnChatFromClient; | ||
831 | if (handlerChatFromClient != null) | ||
832 | { | ||
833 | handlerChatFromClient(sender, chat); | ||
834 | } | ||
835 | } | ||
836 | |||
837 | public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) | ||
838 | { | ||
839 | handlerChatBroadcast = OnChatBroadcast; | ||
840 | if (handlerChatBroadcast != null) | ||
841 | { | ||
842 | handlerChatBroadcast(sender, chat); | ||
843 | } | ||
844 | } | ||
845 | |||
846 | internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed) | ||
847 | { | ||
848 | handlerScriptControlEvent = OnScriptControlEvent; | ||
849 | if (handlerScriptControlEvent != null) | ||
850 | { | ||
851 | handlerScriptControlEvent(p, scriptUUID, avatarID, held, _changed); | ||
852 | } | ||
853 | } | ||
854 | |||
855 | public void TriggerNoticeNoLandDataFromStorage() | ||
856 | { | ||
857 | handlerNoticeNoLandDataFromStorage = OnNoticeNoLandDataFromStorage; | ||
858 | if (handlerNoticeNoLandDataFromStorage != null) | ||
859 | { | ||
860 | handlerNoticeNoLandDataFromStorage(); | ||
861 | |||
862 | } | ||
863 | } | ||
864 | |||
865 | public void TriggerIncomingLandDataFromStorage(List<LandData> landData) | ||
866 | { | ||
867 | handlerIncomingLandDataFromStorage = OnIncomingLandDataFromStorage; | ||
868 | if (handlerIncomingLandDataFromStorage != null) | ||
869 | { | ||
870 | handlerIncomingLandDataFromStorage(landData); | ||
871 | |||
872 | } | ||
873 | } | ||
874 | |||
875 | public void TriggerSetAllowForcefulBan(bool allow) | ||
876 | { | ||
877 | handlerSetAllowForcefulBan = OnSetAllowForcefulBan; | ||
878 | if (handlerSetAllowForcefulBan != null) | ||
879 | { | ||
880 | handlerSetAllowForcefulBan(allow); | ||
881 | |||
882 | } | ||
883 | } | ||
884 | |||
885 | public void TriggerRequestParcelPrimCountUpdate() | ||
886 | { | ||
887 | handlerRequestParcelPrimCountUpdate = OnRequestParcelPrimCountUpdate; | ||
888 | if (handlerRequestParcelPrimCountUpdate != null) | ||
889 | { | ||
890 | handlerRequestParcelPrimCountUpdate(); | ||
891 | } | ||
892 | } | ||
893 | |||
894 | public void TriggerParcelPrimCountTainted() | ||
895 | { | ||
896 | handlerParcelPrimCountTainted = OnParcelPrimCountTainted; | ||
897 | if (handlerParcelPrimCountTainted != null) | ||
898 | { | ||
899 | handlerParcelPrimCountTainted(); | ||
900 | } | ||
901 | } | ||
902 | |||
903 | // this lets us keep track of nasty script events like timer, etc. | ||
904 | public void TriggerTimerEvent(uint objLocalID, double Interval) | ||
905 | { | ||
906 | handlerScriptTimerEvent = OnScriptTimerEvent; | ||
907 | if (handlerScriptTimerEvent != null) | ||
908 | { | ||
909 | handlerScriptTimerEvent(objLocalID, Interval); | ||
910 | } | ||
911 | } | ||
912 | |||
913 | public void TriggerEstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float LindenHour) | ||
914 | { | ||
915 | handlerEstateToolsTimeUpdate = OnEstateToolsTimeUpdate; | ||
916 | if (handlerEstateToolsTimeUpdate != null) | ||
917 | { | ||
918 | handlerEstateToolsTimeUpdate(regionHandle, FixedTime, useEstateTime, LindenHour); | ||
919 | } | ||
920 | } | ||
921 | |||
922 | public float GetSunLindenHour() | ||
923 | { | ||
924 | handlerSunGetLindenHour = OnGetSunLindenHour; | ||
925 | if (handlerSunGetLindenHour != null) | ||
926 | { | ||
927 | return handlerSunGetLindenHour(); | ||
928 | } | ||
929 | return 6; | ||
930 | } | ||
931 | |||
932 | public void TriggerOarFileLoaded(string message) | ||
933 | { | ||
934 | handlerOarFileLoaded = OnOarFileLoaded; | ||
935 | if (handlerOarFileLoaded != null) | ||
936 | handlerOarFileLoaded(message); | ||
937 | } | ||
938 | |||
939 | public void TriggerOarFileSaved(string message) | ||
940 | { | ||
941 | handlerOarFileSaved = OnOarFileSaved; | ||
942 | if (handlerOarFileSaved != null) | ||
943 | handlerOarFileSaved(message); | ||
944 | } | ||
945 | |||
946 | public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) | ||
947 | { | ||
948 | handlerEmptyScriptCompileQueue = OnEmptyScriptCompileQueue; | ||
949 | if (handlerEmptyScriptCompileQueue != null) | ||
950 | handlerEmptyScriptCompileQueue(numScriptsFailed, message); | ||
951 | } | ||
952 | |||
953 | public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders) | ||
954 | { | ||
955 | handlerCollidingStart = OnScriptColliderStart; | ||
956 | if (handlerCollidingStart != null) | ||
957 | handlerCollidingStart(localId, colliders); | ||
958 | } | ||
959 | |||
960 | public void TriggerScriptColliding(uint localId, ColliderArgs colliders) | ||
961 | { | ||
962 | handlerColliding = OnScriptColliding; | ||
963 | if (handlerColliding != null) | ||
964 | handlerColliding(localId, colliders); | ||
965 | } | ||
966 | |||
967 | public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) | ||
968 | { | ||
969 | handlerCollidingEnd = OnScriptCollidingEnd; | ||
970 | if (handlerCollidingEnd != null) | ||
971 | handlerCollidingEnd(localId, colliders); | ||
972 | } | ||
973 | |||
974 | public void TriggerSetRootAgentScene(UUID agentID, Scene scene) | ||
975 | { | ||
976 | handlerSetRootAgentScene = OnSetRootAgentScene; | ||
977 | if (handlerSetRootAgentScene != null) | ||
978 | handlerSetRootAgentScene(agentID, scene); | ||
979 | } | ||
980 | } | ||
981 | } | ||