diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs index 5329933..8baf41a 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/LocalLandServiceConnector.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land | |||
62 | 62 | ||
63 | #region ISharedRegionModule | 63 | #region ISharedRegionModule |
64 | 64 | ||
65 | public Type ReplaceableInterface | 65 | public Type ReplaceableInterface |
66 | { | 66 | { |
67 | get { return null; } | 67 | get { return null; } |
68 | } | 68 | } |
@@ -121,15 +121,32 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land | |||
121 | public LandData GetLandData(UUID scopeID, ulong regionHandle, uint x, uint y, out byte regionAccess) | 121 | public LandData GetLandData(UUID scopeID, ulong regionHandle, uint x, uint y, out byte regionAccess) |
122 | { | 122 | { |
123 | regionAccess = 2; | 123 | regionAccess = 2; |
124 | m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}", | 124 | // m_log.DebugFormat("[LAND CONNECTOR]: request for land data in {0} at {1}, {2}", |
125 | regionHandle, x, y); | 125 | // regionHandle, x, y); |
126 | |||
127 | uint rx = 0, ry = 0; | ||
128 | Util.RegionHandleToWorldLoc(regionHandle, out rx, out ry); | ||
126 | 129 | ||
127 | foreach (Scene s in m_Scenes) | 130 | foreach (Scene s in m_Scenes) |
128 | { | 131 | { |
129 | if (s.RegionInfo.RegionHandle == regionHandle) | 132 | uint t = s.RegionInfo.WorldLocX; |
133 | if( rx < t) | ||
134 | continue; | ||
135 | t += s.RegionInfo.RegionSizeX; | ||
136 | if( rx >= t) | ||
137 | continue; | ||
138 | t = s.RegionInfo.WorldLocY; | ||
139 | if( ry < t) | ||
140 | continue; | ||
141 | t += s.RegionInfo.RegionSizeY; | ||
142 | if( ry < t) | ||
130 | { | 143 | { |
131 | LandData land = s.GetLandData(x, y); | 144 | LandData land = s.GetLandData(x, y); |
132 | regionAccess = s.RegionInfo.AccessLevel; | 145 | regionAccess = s.RegionInfo.AccessLevel; |
146 | IDwellModule dwellModule = s.RequestModuleInterface<IDwellModule>(); | ||
147 | if (dwellModule != null) | ||
148 | land.Dwell = dwellModule.GetDwell(land); | ||
149 | |||
133 | return land; | 150 | return land; |
134 | } | 151 | } |
135 | } | 152 | } |