From 71ca162821ac0e5aae5f91c433b91549ae6d5419 Mon Sep 17 00:00:00 2001 From: mingchen Date: Sat, 22 Mar 2008 23:10:22 +0000 Subject: *Moved LandManagement into its own region module (spiffy!) --- .../Region/Environment/Interfaces/ILandChannel.cs | 52 +++++++++++++++++++++ .../Region/Environment/Interfaces/ILandObject.cs | 54 ++++++++++++++++++++++ .../Environment/Interfaces/IRegionDataStore.cs | 3 +- 3 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 OpenSim/Region/Environment/Interfaces/ILandChannel.cs create mode 100644 OpenSim/Region/Environment/Interfaces/ILandObject.cs (limited to 'OpenSim/Region/Environment/Interfaces') diff --git a/OpenSim/Region/Environment/Interfaces/ILandChannel.cs b/OpenSim/Region/Environment/Interfaces/ILandChannel.cs new file mode 100644 index 0000000..1e0493f --- /dev/null +++ b/OpenSim/Region/Environment/Interfaces/ILandChannel.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using libsecondlife; +using libsecondlife.Packets; +using OpenSim.Region.Environment.Scenes; +using OpenSim.Framework; + +namespace OpenSim.Region.Environment.Interfaces +{ + public interface ILandChannel + { + bool allowedForcefulBans { get; set; } + void IncomingLandObjectsFromStorage(List data); + void IncomingLandObjectFromStorage(LandData data); + + void NoLandDataFromStorage(); + ILandObject getLandObject(int x, int y); + ILandObject getLandObject(float x, float y); + void setPrimsTainted(); + bool isLandPrimCountTainted(); + void sendLandUpdate(ScenePresence avatar, bool force); + void sendLandUpdate(ScenePresence avatar); + void resetAllLandPrimCounts(); + void addPrimToLandPrimCounts(SceneObjectGroup obj); + void removePrimFromLandPrimCounts(SceneObjectGroup obj); + void finalizeLandPrimCountUpdate(); + void updateLandPrimCounts(); + void performParcelPrimCountUpdate(); + void updateLandObject(int local_id, LandData newData); + + void sendParcelOverlay(IClientAPI remote_client); + void handleParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client); + void handleParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client); + void handleParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client); + void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client); + void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client); + void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client); + + void resetSimLandObjects(); + List parcelsNearPoint(LLVector3 position); + void sendYouAreBannedNotice(ScenePresence avatar); + void handleAvatarChangingParcel(ScenePresence avatar, int localLandID, LLUUID regionID); + void sendOutNearestBanLine(IClientAPI avatar); + void handleSignificantClientMovement(IClientAPI remote_client); + void handleAnyClientMovement(ScenePresence avatar); + void handleParcelAccessRequest(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, int landLocalID, IClientAPI remote_client); + void handleParcelAccessUpdateRequest(LLUUID agentID, LLUUID sessionID, uint flags, int landLocalID, List entries, IClientAPI remote_client); + + } +} diff --git a/OpenSim/Region/Environment/Interfaces/ILandObject.cs b/OpenSim/Region/Environment/Interfaces/ILandObject.cs new file mode 100644 index 0000000..f68fb82 --- /dev/null +++ b/OpenSim/Region/Environment/Interfaces/ILandObject.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using libsecondlife; +using libsecondlife.Packets; +using OpenSim.Region.Environment.Scenes; + +using OpenSim.Framework; + +namespace OpenSim.Region.Environment.Interfaces +{ + public interface ILandObject + { + + LandData landData { get; set; } + bool[,] landBitmap { get; set; } + LLUUID regionUUID { get; } + bool containsPoint(int x, int y); + ILandObject Copy(); + + + void sendLandUpdateToAvatarsOverMe(); + + void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); + void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client); + bool isEitherBannedOrRestricted(LLUUID avatar); + bool isBannedFromLand(LLUUID avatar); + bool isRestrictedFromLand(LLUUID avatar); + void sendLandUpdateToClient(IClientAPI remote_client); + ParcelAccessListReplyPacket.ListBlock[] createAccessListArrayByFlag(ParcelManager.AccessList flag); + void sendAccessList(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); + void updateAccessList(uint flags, List entries, IClientAPI remote_client); + void updateLandBitmapByteArray(); + void setLandBitmapFromByteArray(); + bool[,] getLandBitmap(); + void forceUpdateLandInfo(); + void setLandBitmap(bool[,] bitmap); + + bool[,] basicFullRegionLandBitmap(); + bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); + bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); + bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); + void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client); + void sendLandObjectOwners(IClientAPI remote_client); + void returnObject(SceneObjectGroup obj); + void returnLandObjects(int type, LLUUID owner); + void resetLandPrimCounts(); + void addPrimToCount(SceneObjectGroup obj); + void removePrimFromCount(SceneObjectGroup obj); + + + } +} diff --git a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs index 473897f..c757461 100644 --- a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs +++ b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs @@ -28,7 +28,6 @@ using System.Collections.Generic; using libsecondlife; using OpenSim.Framework; -using OpenSim.Region.Environment.LandManagement; using OpenSim.Region.Environment.Scenes; namespace OpenSim.Region.Environment.Interfaces @@ -69,7 +68,7 @@ namespace OpenSim.Region.Environment.Interfaces void StoreTerrain(double[,] terrain, LLUUID regionID); double[,] LoadTerrain(LLUUID regionID); - void StoreLandObject(Land Parcel, LLUUID regionUUID); + void StoreLandObject(ILandObject Parcel); void RemoveLandObject(LLUUID globalID); List LoadLandObjects(LLUUID regionUUID); -- cgit v1.1