123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- /*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- using libsecondlife;
- using System;
- using OpenSim.Framework;
- using OpenSim.Region.Environment.Interfaces;
- using OpenSim.Region.Environment.LandManagement;
- namespace OpenSim.Region.Environment.Scenes
- {
- /// <summary>
- /// A class for triggering remote scene events.
- /// </summary>
- public class EventManager
- {
- public delegate void OnFrameDelegate();
- public event OnFrameDelegate OnFrame;
- public delegate void ClientMovement(ScenePresence client);
- public event ClientMovement OnClientMovement;
- public delegate void OnBackupDelegate(IRegionDataStore datastore);
- public event OnBackupDelegate OnBackup;
- public delegate void OnNewClientDelegate(IClientAPI client);
- public event OnNewClientDelegate OnNewClient;
- public delegate void OnNewPresenceDelegate(ScenePresence presence);
- public event OnNewPresenceDelegate OnNewPresence;
- public delegate void OnRemovePresenceDelegate(LLUUID agentId);
- public event OnRemovePresenceDelegate OnRemovePresence;
- public delegate void OnParcelPrimCountUpdateDelegate();
- public event OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate;
- public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj);
- public event OnParcelPrimCountAddDelegate OnParcelPrimCountAdd;
- public delegate void OnPluginConsoleDelegate(string[] args);
- public event OnPluginConsoleDelegate OnPluginConsole;
- public delegate void OnShutdownDelegate();
- public event OnShutdownDelegate OnShutdown;
- public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient);
- public delegate void OnPermissionErrorDelegate(LLUUID user, string reason);
- public event ObjectGrabDelegate OnObjectGrab;
- public event OnPermissionErrorDelegate OnPermissionError;
- public delegate void NewRezScript(uint localID, LLUUID itemID, string script);
- public event NewRezScript OnRezScript;
- public delegate void RemoveScript(uint localID, LLUUID itemID);
- public event RemoveScript OnRemoveScript;
- public delegate bool SceneGroupMoved(LLUUID groupID, LLVector3 delta);
- public event SceneGroupMoved OnSceneGroupMove;
- public delegate void SceneGroupGrabed(LLUUID groupID, LLVector3 offset, LLUUID userID);
- public event SceneGroupGrabed OnSceneGroupGrab;
- public delegate void LandObjectAdded(Land newParcel, LLUUID regionUUID);
- public event LandObjectAdded OnLandObjectAdded;
- public delegate void LandObjectRemoved(LLUUID globalID);
- public event LandObjectRemoved OnLandObjectRemoved;
- public delegate void AvatarEnteringNewParcel(ScenePresence avatar, int localLandID, LLUUID regionID);
- public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel;
- public delegate void NewGridInstantMessage(GridInstantMessage message);
- public event NewGridInstantMessage OnGridInstantMessageToIMModule;
- public event NewGridInstantMessage OnGridInstantMessageToFriendsModule;
- public event NewGridInstantMessage OnGridInstantMessageToGroupsModule;
- public delegate void ClientClosed(LLUUID clientID);
- public event ClientClosed OnClientClosed;
- public delegate void ScriptChangedEvent(uint localID, uint change);
-
- public event ScriptChangedEvent OnScriptChangedEvent;
- public class MoneyTransferArgs : System.EventArgs
- {
- public LLUUID sender;
- public LLUUID reciever;
- // Always false. The SL protocol sucks.
- public bool authenticated = false;
- public int amount;
- public int transactiontype;
- public string description;
- public MoneyTransferArgs(LLUUID asender, LLUUID areciever, int aamount, int atransactiontype, string adescription) {
- sender = asender;
- reciever = areciever;
- amount = aamount;
- transactiontype = atransactiontype;
- description = adescription;
- }
- }
- public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e);
- public event MoneyTransferEvent OnMoneyTransfer;
- public void TriggerOnScriptChangedEvent(uint localID, uint change)
- {
- if (OnScriptChangedEvent != null)
- OnScriptChangedEvent(localID,change);
- }
- public void TriggerOnClientMovement(ScenePresence avatar)
- {
- if (OnClientMovement != null)
- OnClientMovement(avatar);
- }
- public void TriggerPermissionError(LLUUID user, string reason)
- {
- if (OnPermissionError != null)
- OnPermissionError(user, reason);
- }
- public void TriggerOnPluginConsole(string[] args)
- {
- if (OnPluginConsole != null)
- OnPluginConsole(args);
- }
- public void TriggerOnFrame()
- {
- if (OnFrame != null)
- {
- OnFrame();
- }
- }
- public void TriggerOnNewClient(IClientAPI client)
- {
- if (OnNewClient != null)
- OnNewClient(client);
- }
- public void TriggerOnNewPresence(ScenePresence presence)
- {
- if (OnNewPresence != null)
- OnNewPresence(presence);
- }
- public void TriggerOnRemovePresence(LLUUID agentId)
- {
- if (OnRemovePresence != null)
- {
- OnRemovePresence(agentId);
- }
- }
- public void TriggerOnBackup(IRegionDataStore dstore)
- {
- if (OnBackup != null)
- {
- OnBackup(dstore);
- }
- }
- public void TriggerParcelPrimCountUpdate()
- {
- if (OnParcelPrimCountUpdate != null)
- {
- OnParcelPrimCountUpdate();
- }
- }
- public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs e)
- {
- if (OnMoneyTransfer != null)
- {
- OnMoneyTransfer(sender, e);
- }
- }
- public void TriggerParcelPrimCountAdd(SceneObjectGroup obj)
- {
- if (OnParcelPrimCountAdd != null)
- {
- OnParcelPrimCountAdd(obj);
- }
- }
- public void TriggerShutdown()
- {
- if (OnShutdown != null)
- OnShutdown();
- }
- public void TriggerObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
- {
- if (OnObjectGrab != null)
- {
- OnObjectGrab(localID, offsetPos, remoteClient);
- }
- }
- public void TriggerRezScript(uint localID, LLUUID itemID, string script)
- {
- if (OnRezScript != null)
- {
- OnRezScript(localID, itemID, script);
- }
- }
- public void TriggerRemoveScript(uint localID, LLUUID itemID)
- {
- if (OnRemoveScript != null)
- {
- OnRemoveScript(localID, itemID);
- }
- }
- public bool TriggerGroupMove(LLUUID groupID, LLVector3 delta)
- {
- if (OnSceneGroupMove != null)
- {
- return OnSceneGroupMove(groupID, delta);
- }
- return true;
- }
- public void TriggerGroupGrab(LLUUID groupID, LLVector3 offset, LLUUID userID)
- {
- if (OnSceneGroupGrab != null)
- {
- OnSceneGroupGrab(groupID, offset, userID);
- }
- }
- public void TriggerLandObjectAdded(Land newParcel, LLUUID regionID)
- {
- if (OnLandObjectAdded != null)
- {
- OnLandObjectAdded(newParcel, regionID);
- }
- }
- public void TriggerLandObjectRemoved(LLUUID globalID)
- {
- if (OnLandObjectRemoved != null)
- {
- OnLandObjectRemoved(globalID);
- }
- }
- public void TriggerLandObjectUpdated(uint localParcelID, Land newParcel)
- {
- //triggerLandObjectRemoved(localParcelID);
- TriggerLandObjectAdded(newParcel, newParcel.m_scene.RegionInfo.RegionID);
- }
- public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, LLUUID regionID)
- {
- if (OnAvatarEnteringNewParcel != null)
- {
- OnAvatarEnteringNewParcel(avatar, localLandID, regionID);
- }
- }
- ///<summary>Used to pass instnat messages around between the Scene, the Friends Module and the Instant Messsage Module</summary>
- ///<param name="message">Object containing the Instant Message Data</param>
- ///<param name="whichModule">A bit vector containing the modules to send the message to</param>
- public void TriggerGridInstantMessage(GridInstantMessage message, InstantMessageReceiver whichModule)
- {
- if ((whichModule & InstantMessageReceiver.IMModule) != 0)
- {
- if (OnGridInstantMessageToIMModule != null)
- {
- OnGridInstantMessageToIMModule(message);
- }
- }
- if ((whichModule & InstantMessageReceiver.FriendsModule) != 0)
- {
- if (OnGridInstantMessageToFriendsModule != null)
- {
- OnGridInstantMessageToFriendsModule(message);
- }
- }
- }
- public void TriggerClientClosed(LLUUID ClientID)
- {
- if (OnClientClosed != null)
- {
- OnClientClosed(ClientID);
- }
- }
-
- }
- }
|