From 5e4d6cab00cb29cd088ab7b62ab13aff103b64cb Mon Sep 17 00:00:00 2001 From: onefang Date: Sun, 19 May 2019 21:24:15 +1000 Subject: Dump OpenSim 0.9.0.1 into it's own branch. --- .../Interfaces/IAgentAssetTransactions.cs | 4 +- .../Framework/Interfaces/IAttachmentsModule.cs | 15 +++-- .../Framework/Interfaces/IBakedTextureModule.cs | 5 +- .../Region/Framework/Interfaces/IBuySellModule.cs | 2 +- .../Framework/Interfaces/ICapabilitiesModule.cs | 20 ++++--- .../Region/Framework/Interfaces/ICloudModule.cs | 2 +- OpenSim/Region/Framework/Interfaces/ICommander.cs | 4 +- .../Region/Framework/Interfaces/IDwellModule.cs | 1 + .../Framework/Interfaces/IDynamicFloaterModule.cs | 2 +- .../Framework/Interfaces/IDynamicMenuModule.cs | 1 + .../Framework/Interfaces/IDynamicTextureManager.cs | 26 ++++----- .../Region/Framework/Interfaces/IEntityCreator.cs | 2 +- .../Framework/Interfaces/IEntityInventory.cs | 27 +++++---- .../Framework/Interfaces/IEntityTransferModule.cs | 9 ++- .../Region/Framework/Interfaces/IEstateModule.cs | 2 + OpenSim/Region/Framework/Interfaces/IEtcdModule.cs | 37 +++++++++++++ OpenSim/Region/Framework/Interfaces/IEventQueue.cs | 22 ++++---- .../Framework/Interfaces/IExternalCapsModule.cs | 2 +- .../Region/Framework/Interfaces/IFriendsModule.cs | 2 + OpenSim/Region/Framework/Interfaces/IGodsModule.cs | 7 +-- .../Framework/Interfaces/IGroupsMessagingModule.cs | 12 ++-- .../Region/Framework/Interfaces/IGroupsModule.cs | 7 ++- .../Region/Framework/Interfaces/IHttpRequests.cs | 6 +- .../Framework/Interfaces/IInventoryAccessModule.cs | 17 +++++- .../Framework/Interfaces/IJsonStoreModule.cs | 6 +- .../Framework/Interfaces/IMapImageUploadModule.cs | 9 ++- .../Framework/Interfaces/IMessageTransferModule.cs | 2 +- OpenSim/Region/Framework/Interfaces/IMoapModule.cs | 8 +-- OpenSim/Region/Framework/Interfaces/INPCModule.cs | 21 ++++++- .../Framework/Interfaces/IPermissionsModule.cs | 2 +- .../Region/Framework/Interfaces/IPresenceModule.cs | 2 +- .../Framework/Interfaces/IRegionArchiverModule.cs | 28 +++++----- .../Framework/Interfaces/IRegionCombinerModule.cs | 64 ---------------------- .../Region/Framework/Interfaces/IRegionConsole.cs | 4 ++ .../Framework/Interfaces/IRegionModuleBase.cs | 2 +- .../Interfaces/IRegionSerialiserModule.cs | 4 +- .../Region/Framework/Interfaces/IRestartModule.cs | 1 + .../Region/Framework/Interfaces/ISearchModule.cs | 2 +- .../Framework/Interfaces/ISimulationDataService.cs | 12 +++- .../Framework/Interfaces/ISimulationDataStore.cs | 22 ++++++-- OpenSim/Region/Framework/Interfaces/ISnmpModule.cs | 47 ++++++++++++++++ .../Region/Framework/Interfaces/ISoundModule.cs | 2 +- .../Region/Framework/Interfaces/ITerrainChannel.cs | 8 +++ .../Region/Framework/Interfaces/ITerrainModule.cs | 12 ++-- OpenSim/Region/Framework/Interfaces/IUrlModule.cs | 7 ++- .../Interfaces/IUserAccountCacheModule.cs | 35 ++++++++++++ .../Region/Framework/Interfaces/IVoiceModule.cs | 2 +- .../Framework/Interfaces/IWindModelPlugin.cs | 2 +- OpenSim/Region/Framework/Interfaces/IWindModule.cs | 2 +- OpenSim/Region/Framework/Interfaces/IWorldComm.cs | 2 +- .../Region/Framework/Interfaces/IWorldMapModule.cs | 3 +- 51 files changed, 347 insertions(+), 198 deletions(-) create mode 100644 OpenSim/Region/Framework/Interfaces/IEtcdModule.cs delete mode 100644 OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs create mode 100644 OpenSim/Region/Framework/Interfaces/ISnmpModule.cs create mode 100644 OpenSim/Region/Framework/Interfaces/IUserAccountCacheModule.cs (limited to 'OpenSim/Region/Framework/Interfaces') diff --git a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs index 0cc8fb6..b8278d6 100644 --- a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs +++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs @@ -36,10 +36,10 @@ namespace OpenSim.Region.Framework.Interfaces void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID, InventoryItemBase item); - void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID, + bool HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask); - + void HandleTaskItemUpdateFromTransaction( IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item); diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index d9901bd..2f5ff9b 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs @@ -26,6 +26,7 @@ */ using System; +using System.Xml; using System.Collections.Generic; using OpenMetaverse; using OpenSim.Framework; @@ -89,7 +90,8 @@ namespace OpenSim.Region.Framework.Interfaces /// If true then add object to user inventory /// Append to attachment point rather than replace. /// true if the object was successfully attached, false otherwise - bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent, bool addToInventory, bool append); + bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent, + bool addToInventory, bool append); /// /// Rez an attachment from user inventory and change inventory status to match. @@ -98,7 +100,11 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// The scene object that was attached. Null if the scene object could not be found - SceneObjectGroup RezSingleAttachmentFromInventory(IScenePresence sp, UUID itemID, uint AttachmentPt); + ISceneEntity RezSingleAttachmentFromInventory(IScenePresence sp, UUID itemID, uint AttachmentPt); + + // Same as above, but also load script states from a separate doc + ISceneEntity RezSingleAttachmentFromInventory( + IScenePresence presence, UUID itemID, uint AttachmentPt, XmlDocument doc); /// /// Rez multiple attachments from a user's inventory @@ -106,7 +112,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void RezMultipleAttachmentsFromInventory(IScenePresence sp,List> rezlist); - + /// /// Detach the given item to the ground. /// @@ -129,8 +135,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /param> /// The attachment to detach. void DetachSingleAttachmentToInv(IScenePresence sp, SceneObjectGroup grp); - - /// + /// Update the position of an attachment. /// /// diff --git a/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs index b536a49..4d8409be 100644 --- a/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs @@ -35,6 +35,9 @@ namespace OpenSim.Services.Interfaces public interface IBakedTextureModule { WearableCacheItem[] Get(UUID id); - void Store(UUID id, WearableCacheItem[] data); + + void Store(UUID id); + void Store(UUID id, WearableCacheItem[] WearableCache); + void UpdateMeshAvatar(UUID id); } } diff --git a/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs b/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs index d1ce4c0..1bbf10e 100644 --- a/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs @@ -31,7 +31,7 @@ using OpenSim.Framework; namespace OpenSim.Region.Framework.Interfaces { public interface IBuySellModule - { + { /// /// Try to buy an object /// diff --git a/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs index 522c82d..761b1bb 100644 --- a/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs @@ -40,30 +40,32 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// - void CreateCaps(UUID agentId); - + void CreateCaps(UUID agentId, uint circuitCode); + /// /// Remove the caps handler for a given agent. /// /// - void RemoveCaps(UUID agentId); - + void RemoveCaps(UUID agentId, uint circuitCode); + /// /// Will return null if the agent doesn't have a caps handler registered /// /// - Caps GetCapsForUser(UUID agentId); + Caps GetCapsForUser(uint circuitCode); void SetAgentCapsSeeds(AgentCircuitData agent); - + Dictionary GetChildrenSeeds(UUID agentID); - + string GetChildSeed(UUID agentID, ulong handle); - + void SetChildrenSeed(UUID agentID, Dictionary seeds); - + void DropChildSeed(UUID agentID, ulong handle); string GetCapsPath(UUID agentId); + + void ActivateCaps(uint circuitCode); } } diff --git a/OpenSim/Region/Framework/Interfaces/ICloudModule.cs b/OpenSim/Region/Framework/Interfaces/ICloudModule.cs index 54172bd..a73b564 100644 --- a/OpenSim/Region/Framework/Interfaces/ICloudModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ICloudModule.cs @@ -27,7 +27,7 @@ namespace OpenSim.Region.Framework.Interfaces { - public interface ICloudModule + public interface ICloudModule { /// /// Retrieves the cloud density at the given region coordinates diff --git a/OpenSim/Region/Framework/Interfaces/ICommander.cs b/OpenSim/Region/Framework/Interfaces/ICommander.cs index 6b872c1..5d6428a 100644 --- a/OpenSim/Region/Framework/Interfaces/ICommander.cs +++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs @@ -40,12 +40,12 @@ namespace OpenSim.Region.Framework.Interfaces /// Provide general help information about this commander. /// string Help { get; } - + /// /// The commands available for this commander /// Dictionary Commands { get; } - + void ProcessConsoleCommand(string function, string[] args); void RegisterCommand(string commandName, ICommand command); void Run(string function, object[] args); diff --git a/OpenSim/Region/Framework/Interfaces/IDwellModule.cs b/OpenSim/Region/Framework/Interfaces/IDwellModule.cs index db50439..ebef5a4 100644 --- a/OpenSim/Region/Framework/Interfaces/IDwellModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IDwellModule.cs @@ -33,5 +33,6 @@ namespace OpenSim.Region.Framework.Interfaces public interface IDwellModule { int GetDwell(UUID parcelID); + int GetDwell(LandData land); } } diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs index 7684ce3..1ff8fd2 100644 --- a/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs @@ -36,7 +36,7 @@ namespace OpenSim.Region.Framework.Interfaces public abstract class FloaterData { - public abstract int Channel { get; } + public abstract int Channel { get; } public abstract string FloaterName { get; set; } public virtual string XmlName { get; set; } public virtual string XmlText { get; set; } diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs index 08b71e4..4d000b6 100644 --- a/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs @@ -43,6 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces public enum UserMode : int { Normal = 0, + RegionManager = 2, God = 3 } diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs index 6df5cc2..093ea9c 100644 --- a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs +++ b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs @@ -44,14 +44,13 @@ namespace OpenSim.Region.Framework.Interfaces /// void ReturnData(UUID id, IDynamicTexture texture); + UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams); UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, - int updateTimer); + bool SetBlending, byte AlphaValue); UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, - int updateTimer, bool SetBlending, byte AlphaValue); - UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, - int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face); - UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, - int updateTimer); + bool SetBlending, int disp, byte AlphaValue, int face); + + UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams); /// Apply a dynamically generated texture to all sides of the given prim. The texture is not persisted to the /// asset service. @@ -62,8 +61,6 @@ namespace OpenSim.Region.Framework.Interfaces /// based texture or "image" to create a texture from an image at a particular URL /// The data for the generator /// Parameters for the generator that don't form part of the main data. - /// If zero, the image is never updated after the first generation. If positive - /// the image is updated at the given interval. Not implemented for /// /// If true, the newly generated texture is blended with the appropriate existing ones on the prim /// @@ -76,7 +73,7 @@ namespace OpenSim.Region.Framework.Interfaces /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID /// UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, - int updateTimer, bool SetBlending, byte AlphaValue); + bool SetBlending, byte AlphaValue); /// /// Apply a dynamically generated texture to the given prim. @@ -87,8 +84,6 @@ namespace OpenSim.Region.Framework.Interfaces /// based texture or "image" to create a texture from an image at a particular URL /// The data for the generator /// Parameters for the generator that don't form part of the main data. - /// If zero, the image is never updated after the first generation. If positive - /// the image is updated at the given interval. Not implemented for /// /// If true, the newly generated texture is blended with the appropriate existing ones on the prim /// @@ -109,10 +104,9 @@ namespace OpenSim.Region.Framework.Interfaces /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID /// - UUID AddDynamicTextureData( - UUID simID, UUID primID, string contentType, string data, string extraParams, - int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face); - + UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, + bool SetBlending, int disp, byte AlphaValue, int face); + void GetDrawStringSize(string contentType, string text, string fontName, int fontSize, out double xSize, out double ySize); } @@ -140,7 +134,7 @@ namespace OpenSim.Region.Framework.Interfaces bool AsyncConvertUrl(UUID id, string url, string extraParams); bool AsyncConvertData(UUID id, string bodyData, string extraParams); - void GetDrawStringSize(string text, string fontName, int fontSize, + void GetDrawStringSize(string text, string fontName, int fontSize, out double xSize, out double ySize); } diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs index c39627c..1df6486 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs @@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// PCode[] CreationCapabilities { get; } - + /// /// Create an entity /// diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs index 9ffda51..e7c2428 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs @@ -36,8 +36,8 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Interface to an entity's (SceneObjectPart's) inventory /// - /// - /// This is not a finished 1.0 candidate interface + /// + /// This is not a finished 1.0 candidate interface public interface IEntityInventory { /// @@ -48,21 +48,21 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Reset UUIDs for all the items in the prim's inventory. /// - /// + /// /// This involves either generating /// new ones or setting existing UUIDs to the correct parent UUIDs. /// /// If this method is called and there are inventory items, then we regard the inventory as having changed. - /// + /// /// Link number for the part void ResetInventoryIDs(); /// /// Reset parent object UUID for all the items in the prim's inventory. /// - /// + /// /// If this method is called and there are inventory items, then we regard the inventory as having changed. - /// + /// /// Link number for the part void ResetObjectID(); @@ -87,7 +87,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Number of scripts started. int CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource); - + ArrayList GetScriptErrors(UUID itemID); void ResumeScripts(); @@ -133,6 +133,8 @@ namespace OpenSim.Region.Framework.Interfaces /// bool CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource); + ArrayList CreateScriptInstanceEr(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource); + /// /// Stop and remove a script which is in this prim's inventory from the scene. /// @@ -236,15 +238,15 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Get the scene object(s) referenced by an inventory item. /// - /// + /// /// This is returned in a 'rez ready' state. That is, name, description, permissions and other details have /// been adjusted to reflect the part and item from which it originates. - /// + /// /// Inventory item /// The scene objects /// Relative offsets for each object /// true = success, false = the scene object asset couldn't be found - bool GetRezReadySceneObjects(TaskInventoryItem item, out List objlist, out List veclist); + bool GetRezReadySceneObjects(TaskInventoryItem item, out List objlist, out List veclist, out Vector3 bbox, out float offsetHeight); /// /// Update an existing inventory item. @@ -276,6 +278,8 @@ namespace OpenSim.Region.Framework.Interfaces /// void ProcessInventoryBackup(ISimulationDataService datastore); + void AggregateInnerPerms(ref uint owner, ref uint group, ref uint everyone); + uint MaskEffectivePermissions(); void ApplyNextOwnerPermissions(); @@ -310,7 +314,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// List GetInventoryList(); - + /// /// Get the xml representing the saved states of scripts in this inventory. /// @@ -318,5 +322,6 @@ namespace OpenSim.Region.Framework.Interfaces /// A /// Dictionary GetScriptStates(); + Dictionary GetScriptStates(bool oldIDs); } } diff --git a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs index d07b15a..1b690ba 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs @@ -36,6 +36,7 @@ using OpenSim.Region.Framework.Scenes; namespace OpenSim.Region.Framework.Interfaces { public delegate ScenePresence CrossAgentToNewRegionDelegate(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, EntityTransferContext ctx); + public delegate ScenePresence CrossAsyncDelegate(ScenePresence agent, bool isFlying); public interface IEntityTransferModule { @@ -82,7 +83,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The agent ID /// true if the agent is in the process of being teleported, false otherwise. - bool IsInTransit(UUID id); + bool IsInTransit(UUID id); bool Cross(ScenePresence agent, bool isFlying); @@ -94,11 +95,15 @@ namespace OpenSim.Region.Framework.Interfaces GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos, EntityTransferContext ctx, out Vector3 newpos, out string reason); + GridRegion GetObjectDestination(SceneObjectGroup grp, Vector3 targetPosition, out Vector3 newpos); + bool checkAgentAccessToRegion(ScenePresence agent, GridRegion destiny, Vector3 position, EntityTransferContext ctx, out string reason); - void Cross(SceneObjectGroup sog, Vector3 position, bool silent); + bool CrossPrimGroupIntoNewRegion(GridRegion destination, Vector3 newPosition, SceneObjectGroup grp, bool silent, bool removeScripts); ScenePresence CrossAgentToNewRegionAsync(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, EntityTransferContext ctx); + bool CrossAgentCreateFarChild(ScenePresence agent, GridRegion neighbourRegion, Vector3 pos, EntityTransferContext ctx); + bool HandleIncomingSceneObject(SceneObjectGroup so, Vector3 newPosition); } diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs index 461c880..6b8b999 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs @@ -39,6 +39,8 @@ namespace OpenSim.Region.Framework.Interfaces event ChangeDelegate OnRegionInfoChange; event ChangeDelegate OnEstateInfoChange; event MessageDelegate OnEstateMessage; + event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; + event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest; uint GetRegionFlags(); bool IsManager(UUID avatarID); diff --git a/OpenSim/Region/Framework/Interfaces/IEtcdModule.cs b/OpenSim/Region/Framework/Interfaces/IEtcdModule.cs new file mode 100644 index 0000000..123cb67 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEtcdModule.cs @@ -0,0 +1,37 @@ +/* + * 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 OpenSimulator 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 System; + +public interface IEtcdModule +{ + bool Store(string k, string v); + bool Store(string k, string v, int ttl); + string Get(string k); + void Watch(string k, Action callback); + void Delete(string k); +} diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs index dfc269e..7edd75a 100644 --- a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs +++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs @@ -30,6 +30,7 @@ using OpenMetaverse; using OpenMetaverse.Packets; using OpenMetaverse.Messages.Linden; using OpenMetaverse.StructuredData; +using OpenSim.Framework; namespace OpenSim.Region.Framework.Interfaces { @@ -38,26 +39,27 @@ namespace OpenSim.Region.Framework.Interfaces bool Enqueue(OSD o, UUID avatarID); // These are required to decouple Scenes from EventQueueHelper - void DisableSimulator(ulong handle, UUID avatarID); +// void DisableSimulator(ulong handle, UUID avatarID); void EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY); - void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint, + void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint, string capsPath, ulong regionHandle, int regionSizeX, int regionSizeY); - void TeleportFinishEvent(ulong regionHandle, byte simAccess, + void TeleportFinishEvent(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, - uint locationID, uint flags, string capsURL, + uint locationID, uint flags, string capsURL, UUID agentID, int regionSizeX, int regionSizeY); void CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint, string capsURL, UUID avatarID, UUID sessionID, int regionSizeX, int regionSizeY); void ChatterboxInvitation(UUID sessionID, string sessionName, - UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, - uint timeStamp, bool offline, int parentEstateID, Vector3 position, - uint ttl, UUID transactionID, bool fromGroup, byte[] binaryBucket); - void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID anotherAgent, bool canVoiceChat, - bool isModerator, bool textMute); + UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, + uint timeStamp, bool offline, int parentEstateID, Vector3 position, + uint ttl, UUID transactionID, bool fromGroup, byte[] binaryBucket); + void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID anotherAgent, + bool canVoiceChat, bool isModerator, bool textMute, bool isEnterorLeave); + void ChatterBoxForceClose(UUID toAgent, UUID sessionID, string reason); void ParcelProperties(ParcelPropertiesMessage parcelPropertiesMessage, UUID avatarID); - void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID); + void GroupMembershipData(UUID receiverAgent, GroupMembershipData[] data); OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono); OSD BuildEvent(string eventName, OSD eventBody); void partPhysicsProperties(uint localID, byte physhapetype, float density, float friction, float bounce, float gravmod, UUID avatarID); diff --git a/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs index a730cfd..4ce150f 100644 --- a/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs @@ -37,7 +37,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// This function extends the simple URL configuration in the caps handlers /// to facilitate more interesting computation when an external handler is - /// sent to the viewer. + /// sent to the viewer. /// /// New user UUID /// Internal caps registry, where the external handler will be registered diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs index 7e87006..ec014f4 100644 --- a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs @@ -28,6 +28,7 @@ using System.Collections.Generic; using OpenMetaverse; using OpenSim.Framework; +using OpenSim.Region.Framework.Scenes; using FriendInfo = OpenSim.Services.Interfaces.FriendInfo; namespace OpenSim.Region.Framework.Interfaces @@ -93,6 +94,7 @@ namespace OpenSim.Region.Framework.Interfaces /// These come from the FriendRights enum. void GrantRights(IClientAPI remoteClient, UUID friendID, int perms); + void IsNowRoot(ScenePresence sp); bool SendFriendsOnlineIfNeeded(IClientAPI client); } } \ No newline at end of file diff --git a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs index 552ce01..52615e3 100644 --- a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs @@ -43,16 +43,15 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// - void RequestGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godLike, IClientAPI controllingClient); - + void RequestGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godLike); + /// /// Kicks User specified from the simulator. This logs them off of the grid. /// /// The person doing the kicking - /// The session of the person doing the kicking /// the person that is being kicked /// This isn't used apparently /// The message to send to the user after it's been turned into a field - void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason); + void KickUser(UUID godID, UUID agentID, uint kickflags, byte[] reason); } } diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs index 7dc1552..46d6863 100644 --- a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs @@ -34,9 +34,9 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Provide mechanisms for messaging groups. /// - /// + /// /// TODO: Provide a mechanism for receiving group messages as well as sending them - /// + /// public interface IGroupsMessagingModule { /// @@ -56,13 +56,13 @@ namespace OpenSim.Region.Framework.Interfaces /// True if the chat session was started successfully, false otherwise. /// bool StartGroupChatSession(UUID agentID, UUID groupID); - + /// /// Send a message to each member of a group whose chat session is active. /// /// /// The message itself. The fields that must be populated are - /// + /// /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical) /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog /// message - The message itself @@ -76,7 +76,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// The message itself. The fields that must be populated are - /// + /// /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical) /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog /// message - The message itself @@ -84,7 +84,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// - /// The requesting agent to use when querying the groups service. Sometimes this is different from + /// The requesting agent to use when querying the groups service. Sometimes this is different from /// im.fromAgentID, with group notices, for example. /// /// diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs index 9ae5e87..0d1f4f4 100644 --- a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs @@ -51,7 +51,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The UUID of the created group UUID CreateGroup( - IClientAPI remoteClient, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, + IClientAPI remoteClient, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish); /// @@ -67,7 +67,7 @@ namespace OpenSim.Region.Framework.Interfaces /// ID of the group /// The group's data. Null if there is no such group. GroupRecord GetGroupRecord(UUID GroupID); - + void ActivateGroup(IClientAPI remoteClient, UUID groupID); List GroupTitlesRequest(IClientAPI remoteClient, UUID groupID); List GroupMembersRequest(IClientAPI remoteClient, UUID groupID); @@ -76,13 +76,14 @@ namespace OpenSim.Region.Framework.Interfaces GroupProfileData GroupProfileRequest(IClientAPI remoteClient, UUID groupID); GroupMembershipData[] GetMembershipData(UUID UserID); GroupMembershipData GetMembershipData(UUID GroupID, UUID UserID); + GroupMembershipData GetActiveMembershipData(UUID UserID); void UpdateGroupInfo(IClientAPI remoteClient, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish); void SetGroupAcceptNotices(IClientAPI remoteClient, UUID groupID, bool acceptNotices, bool listInProfile); void GroupTitleUpdate(IClientAPI remoteClient, UUID GroupID, UUID TitleRoleID); - + GroupNoticeData[] GroupNoticesListRequest(IClientAPI remoteClient, UUID GroupID); string GetGroupTitle(UUID avatarID); void GroupRoleUpdate(IClientAPI remoteClient, UUID GroupID, UUID RoleID, string name, string description, string title, ulong powers, byte updateType); diff --git a/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs index 124504c..978c248 100644 --- a/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs +++ b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs @@ -58,7 +58,6 @@ namespace OpenSim.Region.Framework.Interfaces public interface IHttpRequestModule { UUID MakeHttpRequest(string url, string parameters, string body); - /// /// Starts the http request. /// @@ -78,15 +77,14 @@ namespace OpenSim.Region.Framework.Interfaces /// then returned via IServiceRequest when the response is asynchronously fetched. /// UUID StartHttpRequest( - uint localID, UUID itemID, string url, List parameters, Dictionary headers, string body, + uint localID, UUID itemID, string url, List parameters, Dictionary headers, string body, out HttpInitialRequestStatus status); /// /// Stop and remove all http requests for the given script. /// /// - void StopHttpRequestsForScript(UUID id); - + void StopHttpRequest(uint m_localID, UUID m_itemID); IServiceRequest GetNextCompletedRequest(); void RemoveCompletedRequest(UUID id); } diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs index 6bad018..292b0d6 100644 --- a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs @@ -70,6 +70,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// + /// /// /// /// @@ -81,6 +82,11 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The SceneObjectGroup rezzed or null if rez was unsuccessful. SceneObjectGroup RezObject( + IClientAPI remoteClient, UUID itemID, UUID rezGroupID, Vector3 RayEnd, Vector3 RayStart, + UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, + bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); + // compatibily do not use + SceneObjectGroup RezObject( IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); @@ -97,6 +103,7 @@ namespace OpenSim.Region.Framework.Interfaces /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed. /// /// The asset id for the object to rez. + /// The requested group id for the object to rez. /// /// /// @@ -107,8 +114,16 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// The SceneObjectGroup rezzed or null if rez was unsuccessful. + + SceneObjectGroup RezObject(IClientAPI remoteClient, InventoryItemBase item, UUID rezGroupID, + UUID assetID, Vector3 RayEnd, Vector3 RayStart, + UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, + bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); + + // compatibility do not use SceneObjectGroup RezObject( - IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, + IClientAPI remoteClient, InventoryItemBase item, + UUID assetID, Vector3 RayEnd, Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); diff --git a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs index 1a89721..86aca8e 100644 --- a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs @@ -1,5 +1,5 @@ /* - * Copyright (c) Contributors + * Copyright (c) Contributors * See CONTRIBUTORS.TXT for a full list of copyright holders. * * Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ namespace OpenSim.Region.Framework.Interfaces Array = 2, Value = 3 } - + public enum JsonStoreValueType { Undefined = 0, @@ -50,7 +50,7 @@ namespace OpenSim.Region.Framework.Interfaces String = 4, UUID = 5 } - + public struct JsonStoreStats { public int StoreCount; diff --git a/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs index 6a7d4a1..5151567 100644 --- a/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs @@ -25,13 +25,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -using System.Drawing; +using OpenMetaverse; using OpenSim.Framework; +using System.Drawing; namespace OpenSim.Region.Framework.Interfaces { public interface IMapImageUploadModule { + /// + /// Upload a new maptile + /// + void UploadMapTile(IScene scene); void UploadMapTile(IScene scene, Bitmap mapTile); } -} \ No newline at end of file +} diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs index 290b826..b06ff2b 100644 --- a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs @@ -31,7 +31,7 @@ namespace OpenSim.Region.Framework.Interfaces { public delegate void MessageResultNotification(bool success); public delegate void UndeliveredMessage(GridInstantMessage im); - + public interface IMessageTransferModule { event UndeliveredMessage OnUndeliveredMessage; diff --git a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs index 1d3d240..e8be70f 100644 --- a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs @@ -45,7 +45,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// MediaEntry GetMediaEntry(SceneObjectPart part, int face); - + /// /// Set the media entry for a given prim face. /// @@ -53,13 +53,13 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me); - + /// /// Clear the media entry for a given prim face. /// - /// + /// /// This is the equivalent of setting a media entry of null - /// + /// /// /// /param> void ClearMediaEntry(SceneObjectPart part, int face); diff --git a/OpenSim/Region/Framework/Interfaces/INPCModule.cs b/OpenSim/Region/Framework/Interfaces/INPCModule.cs index 478833e..df872f4 100644 --- a/OpenSim/Region/Framework/Interfaces/INPCModule.cs +++ b/OpenSim/Region/Framework/Interfaces/INPCModule.cs @@ -31,6 +31,17 @@ using OpenSim.Region.Framework.Scenes; namespace OpenSim.Region.Framework.Interfaces { + // option flags for NPCs + public enum NPCOptionsFlags : int + { + None = 0x00, // no flags (max restriction) + AllowNotOwned = 0x01, // allow NPCs to be created not Owned + AllowSenseAsAvatar = 0x02, // allow NPCs to set to be sensed as Avatars + AllowCloneOtherAvatars = 0x04, // allow NPCs to created cloning a avatar in region + NoNPCGroup = 0x08, // NPCs will have no group title, otherwise will have "- NPC -" + objectGroup = 0x10 // NPC will have host sog groupID + } + /// /// Temporary interface. More methods to come at some point to make NPCs /// more object oriented rather than controlling purely through module @@ -38,12 +49,18 @@ namespace OpenSim.Region.Framework.Interfaces /// public interface INPC { + /// /// Should this NPC be sensed by LSL sensors as an 'agent' /// (interpreted here to mean a normal user) rather than an OpenSim /// specific NPC extension? /// bool SenseAsAgent { get; } + UUID ActiveGroupId { get; set; } + UUID Owner { get; } + string profileAbout { get; set; } + UUID profileImage { get; set; } + string Born { get; set; } } public interface INPCModule @@ -94,7 +111,7 @@ namespace OpenSim.Region.Framework.Interfaces /// failure. /// UUID CreateNPC(string firstname, string lastname, - Vector3 position, UUID agentID, UUID owner, bool senseAsAgent, Scene scene, + Vector3 position, UUID agentID, UUID owner, string groupTitle, UUID groupID, bool senseAsAgent, Scene scene, AvatarAppearance appearance); /// @@ -284,5 +301,7 @@ namespace OpenSim.Region.Framework.Interfaces /// agent, the agent is unowned or the agent was not an NPC. /// UUID GetOwner(UUID agentID); + + NPCOptionsFlags NPCOptionFlags {get;} } } diff --git a/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs index 1ed978b..933ca14 100644 --- a/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs @@ -42,7 +42,7 @@ namespace OpenSim.Region.Framework.Interfaces public interface IPermissionsModule { - + /// /// Returns the type of permissions that the user has over an object. /// diff --git a/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs index d44c1e1..fb5933c 100644 --- a/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs @@ -33,7 +33,7 @@ namespace OpenSim.Region.Framework.Interfaces { public string UserID; public UUID RegionID; - + public PresenceInfo(string userID, UUID regionID) { UserID = userID; diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs index 99bc87d..9370ccd 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs @@ -40,17 +40,17 @@ namespace OpenSim.Region.Framework.Interfaces { void HandleLoadOarConsoleCommand(string module, string[] cmdparams); void HandleSaveOarConsoleCommand(string module, string[] cmdparams); - + /// /// Archive the region to the given path /// - /// + /// /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to /// the EventManager.OnOarFileSaved event. - /// + /// /// void ArchiveRegion(string savePath, Dictionary options); - + /// /// Archive the region to the given path /// @@ -94,35 +94,35 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void DearchiveRegion(string loadPath); - + /// /// Dearchive the given region archive. This replaces the existing scene. /// - /// + /// /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. - /// + /// /// /// If supplied, this request Id is later returned in the saved event /// /// Dictionary of options. /// void DearchiveRegion(string loadPath, Guid requestId, Dictionary options); - + /// - /// Dearchive a region from a stream. This replaces the existing scene. + /// Dearchive a region from a stream. This replaces the existing scene. /// - /// + /// /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. - /// + /// /// void DearchiveRegion(Stream loadStream); - + /// /// Dearchive a region from a stream. This replaces the existing scene. /// - /// + /// /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. - /// + /// /// /// If supplied, this request Id is later returned in the saved event /// diff --git a/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs deleted file mode 100644 index c6f531e..0000000 --- a/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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 OpenSimulator 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 System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using OpenSim.Region.Framework.Scenes; -using System.IO; -using OpenMetaverse; - -namespace OpenSim.Region.Framework.Interfaces -{ - public interface IRegionCombinerModule - { - /// - /// Does the given id belong to the root region of a megaregion? - /// - bool IsRootForMegaregion(UUID regionId); - - /// - /// Gets the size of megaregion. - /// - /// - /// Returns size in meters. - /// Do not rely on this method remaining the same - this area is actively under development. - /// - /// - /// The id of the root region for a megaregion. - /// This may change in the future to allow any region id that makes up a megaregion. - /// Currently, will throw an exception if this does not match a root region. - /// - Vector2 GetSizeOfMegaregion(UUID regionId); - - /// - /// Tests to see of position (relative to the region) is within the megaregion - /// - bool PositionIsInMegaregion(UUID currentRegion, int xx, int yy); - } -} \ No newline at end of file diff --git a/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs b/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs index 4d261d6..5d5ce34 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs @@ -30,8 +30,12 @@ using OpenSim.Framework; namespace OpenSim.Region.Framework.Interfaces { + public delegate void ConsoleMessage(UUID toAgentID, string message); + public interface IRegionConsole { + event ConsoleMessage OnConsoleMessage; + bool RunCommand(string command, UUID invokerID); void SendConsoleOutput(UUID agentID, string message); void AddCommand(string module, bool shared, string command, string help, string longhelp, CommandDelegate fn); diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs index 2089bce..5b8f0f0 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs @@ -92,7 +92,7 @@ namespace OpenSim.Region.Framework.Interfaces /// this will be multiple times in one instance, while a nonshared /// module instance will only be called once. /// This method is called after AddRegion has been called in all - /// modules for that scene, providing an opportunity to request + /// modules for that scene, providing an opportunity to request /// another module's interface, or hook an event from another module. /// /// diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs index c5b21a8..60586ff 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs @@ -102,9 +102,9 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void SavePrimListToXml2(EntityBase[] entityList, TextWriter stream, Vector3 min, Vector3 max); - + void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName); - + /// /// Deserializes a scene object from its xml2 representation. This does not load the object into the scene. /// diff --git a/OpenSim/Region/Framework/Interfaces/IRestartModule.cs b/OpenSim/Region/Framework/Interfaces/IRestartModule.cs index c68550f..9b25beb 100644 --- a/OpenSim/Region/Framework/Interfaces/IRestartModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRestartModule.cs @@ -35,5 +35,6 @@ namespace OpenSim.Region.Framework.Interfaces TimeSpan TimeUntilRestart { get; } void ScheduleRestart(UUID initiator, string message, int[] alerts, bool notice); void AbortRestart(string message); + void DelayRestart(int seconds, string message); } } diff --git a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs index 64bf72c..d56d188 100644 --- a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs @@ -31,6 +31,6 @@ namespace OpenSim.Framework { public interface ISearchModule { - + void Refresh(); } } diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs index 8948f04..f8a6b53 100644 --- a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs @@ -64,12 +64,19 @@ namespace OpenSim.Region.Framework.Interfaces List LoadObjects(UUID regionUUID); /// - /// Store a terrain revision in region storage + /// Store terrain in region storage /// /// HeightField data /// region UUID void StoreTerrain(TerrainData terrain, UUID regionID); + /// + /// Store baked terrain in region storage + /// + /// HeightField data + /// region UUID + void StoreBakedTerrain(TerrainData terrain, UUID regionID); + // Legacy version kept for downward compabibility void StoreTerrain(double[,] terrain, UUID regionID); @@ -82,6 +89,7 @@ namespace OpenSim.Region.Framework.Interfaces /// the Z dimension of the region being filled /// Heightfield data TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); + TerrainData LoadBakedTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); // Legacy version kept for downward compabibility double[,] LoadTerrain(UUID regionID); @@ -125,6 +133,8 @@ namespace OpenSim.Region.Framework.Interfaces /// the region UUID void RemoveRegionEnvironmentSettings(UUID regionUUID); + UUID[] GetObjectIDs(UUID regionID); + void SaveExtra(UUID regionID, string name, string value); void RemoveExtra(UUID regionID, string name); diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs index 917b5d1..19ba787 100644 --- a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs @@ -45,7 +45,7 @@ namespace OpenSim.Region.Framework.Interfaces /// Dispose the database /// void Dispose(); - + /// /// Stores all object's details apart from inventory /// @@ -75,17 +75,25 @@ namespace OpenSim.Region.Framework.Interfaces List LoadObjects(UUID regionUUID); /// - /// Store a terrain revision in region storage + /// Store a terrain in region storage /// /// HeightField data /// region UUID void StoreTerrain(TerrainData terrain, UUID regionID); + /// + /// Store baked terrain in region storage + /// + /// HeightField data + /// region UUID + void StoreBakedTerrain(TerrainData terrain, UUID regionID); + + // Legacy version kept for downward compabibility void StoreTerrain(double[,] terrain, UUID regionID); - + /// - /// Load the latest terrain revision from region storage + /// Load terrain from region storage /// /// the region UUID /// the X dimension of the terrain being filled @@ -93,12 +101,13 @@ namespace OpenSim.Region.Framework.Interfaces /// the Z dimension of the terrain being filled /// Heightfield data TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); + TerrainData LoadBakedTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); // Legacy version kept for downward compabibility double[,] LoadTerrain(UUID regionID); void StoreLandObject(ILandObject Parcel); - + /// /// /// delete from land where UUID=globalID @@ -107,7 +116,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void RemoveLandObject(UUID globalID); - + List LoadLandObjects(UUID regionUUID); void StoreRegionSettings(RegionSettings rs); @@ -115,6 +124,7 @@ namespace OpenSim.Region.Framework.Interfaces RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); void StoreRegionWindlightSettings(RegionLightShareData wl); void RemoveRegionWindlightSettings(UUID regionID); + UUID[] GetObjectIDs(UUID regionID); /// /// Load Environment settings from region storage diff --git a/OpenSim/Region/Framework/Interfaces/ISnmpModule.cs b/OpenSim/Region/Framework/Interfaces/ISnmpModule.cs new file mode 100644 index 0000000..10f421b --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISnmpModule.cs @@ -0,0 +1,47 @@ +/* + * 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 OpenSimulator 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 OpenSim.Region.Framework.Scenes; + +public interface ISnmpModule +{ + void Trap(int code, string Message, Scene scene); + void Critical(string Message, Scene scene); + void Warning(string Message, Scene scene); + void Major(string Message, Scene scene); + void ColdStart(int step , Scene scene); + void Shutdown(int step , Scene scene); + // + // Node Start/stop events + // + void LinkUp(Scene scene); + void LinkDown(Scene scene); + void BootInfo(string data, Scene scene); + void trapDebug(string Module,string data, Scene scene); + void trapXMRE(int data, string Message, Scene scene); + +} diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs index 8372ddd..f7c6513 100644 --- a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs @@ -95,7 +95,7 @@ namespace OpenSim.Region.Framework.Interfaces /// Sound radius /// Set object to sync master if true void LoopSound(UUID objectID, UUID soundID, double gain, - double radius, bool isMaster); + double radius, bool isMaster, bool isSlave); /// /// Trigger or play an attached sound in this part's inventory. diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs index f660b8d..78db02a 100644 --- a/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs +++ b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs @@ -59,5 +59,13 @@ namespace OpenSim.Region.Framework.Interfaces void LoadFromXmlString(string data); // Merge some terrain into this channel void Merge(ITerrainChannel newTerrain, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement); + + /// + /// + /// <x, y, z> + /// + /// <x, y> + /// <x, y> + void MergeWithBounding(ITerrainChannel newTerrain, Vector3 displacement, float rotationDegrees, Vector2 boundingOrigin, Vector2 boundingSize); } } diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs index 28f797a..3fc5ce7 100644 --- a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs @@ -24,10 +24,9 @@ * (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 System.IO; +using System.IO; using OpenSim.Framework; - using OpenMetaverse; namespace OpenSim.Region.Framework.Interfaces @@ -43,13 +42,13 @@ namespace OpenSim.Region.Framework.Interfaces /// Use this if you change terrain data outside of the terrain module (e.g. in osTerrainSetHeight) /// void TaintTerrain(); - + /// /// When a client initially connects, all the terrain must be pushed to the viewer. /// This call causes all the terrain patches to be sent to the client. /// void PushTerrain(IClientAPI pClient); - + /// /// Load a terrain from a stream. /// @@ -58,8 +57,11 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void LoadFromStream(string filename, Stream stream); - void LoadFromStream(string filename, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement, Stream stream); void LoadFromStream(string filename, System.Uri pathToTerrainHeightmap); + void LoadFromStream(string filename, Vector3 displacement, + float radianRotation, Vector2 rotationDisplacement, Stream stream); + void LoadFromStream(string filename, Vector3 displacement, + float rotationDegress, Vector2 boundingOrigin, Vector2 boundingSize, Stream stream); /// /// Save a terrain to a stream. /// diff --git a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs index 79e9f9d..3fc0c44 100644 --- a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System.Collections; using System.Collections.Generic; using OpenMetaverse; using OpenSim.Framework; @@ -35,12 +36,12 @@ namespace OpenSim.Region.Framework.Interfaces public interface IUrlModule { string ExternalHostNameForLSL { get; } - UUID RequestURL(IScriptModule engine, SceneObjectPart host, UUID itemID); - UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID); + UUID RequestURL(IScriptModule engine, SceneObjectPart host, UUID itemID, Hashtable options); + UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID, Hashtable options); void ReleaseURL(string url); void HttpResponse(UUID request, int status, string body); void HttpContentType(UUID request, string type); - + string GetHttpHeader(UUID request, string header); int GetFreeUrls(); diff --git a/OpenSim/Region/Framework/Interfaces/IUserAccountCacheModule.cs b/OpenSim/Region/Framework/Interfaces/IUserAccountCacheModule.cs new file mode 100644 index 0000000..027a7e2 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IUserAccountCacheModule.cs @@ -0,0 +1,35 @@ +/* + * 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 OpenSimulator 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 OpenSim.Region.Framework.Scenes; +using OpenMetaverse; + +public interface IUserAccountCacheModule +{ + void Remove(string name); + void Remove(UUID id); +} diff --git a/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs index 2e555fa..2fe7454 100644 --- a/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs @@ -40,6 +40,6 @@ namespace OpenSim.Region.Framework.Interfaces /// This is used by osSetParcelSIPAddress /// void setLandSIPAddress(string SIPAddress,UUID GlobalID); - + } } diff --git a/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs index 16b6024..b4bc15c 100644 --- a/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs +++ b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs @@ -53,7 +53,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Update wind. /// - void WindUpdate(uint frame); + bool WindUpdate(uint frame); /// /// Returns the wind vector at the given local region coordinates. diff --git a/OpenSim/Region/Framework/Interfaces/IWindModule.cs b/OpenSim/Region/Framework/Interfaces/IWindModule.cs index 4a26a71..424df87 100644 --- a/OpenSim/Region/Framework/Interfaces/IWindModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IWindModule.cs @@ -31,7 +31,7 @@ namespace OpenSim.Region.Framework.Interfaces { public interface IWindModule : INonSharedRegionModule { - + /// /// Retrieves the current wind speed at the given Region Coordinates /// diff --git a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs index d76a0d7..3da4130 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs @@ -140,7 +140,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// ListenerInfo with filter filled in IWorldCommListenerInfo GetNextMessage(); - + void ListenControl(UUID itemID, int handle, int active); void ListenRemove(UUID itemID, int handle); void DeleteListener(UUID itemID); diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs index 9c781e1..ee7c4ec 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs @@ -36,7 +36,6 @@ namespace OpenSim.Region.Framework.Interfaces /// Generate a map tile for the scene. a terrain texture for this scene /// void GenerateMaptile(); - List Map2BlockFromGridRegion(GridRegion r, uint flag); - MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag); + void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag); } } -- cgit v1.1