diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs | 83 |
1 files changed, 52 insertions, 31 deletions
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs index b4abc1d..4bf2a82 100644 --- a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs +++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs | |||
@@ -27,6 +27,8 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | ||
31 | using log4net; | ||
30 | using OpenMetaverse; | 32 | using OpenMetaverse; |
31 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
32 | using OpenSim.Region.Framework.Interfaces; | 34 | using OpenSim.Region.Framework.Interfaces; |
@@ -34,10 +36,10 @@ using OpenSim.Region.CoreModules.World.Land; | |||
34 | 36 | ||
35 | namespace OpenSim.Region.RegionCombinerModule | 37 | namespace OpenSim.Region.RegionCombinerModule |
36 | { | 38 | { |
37 | public class RegionCombinerLargeLandChannel : ILandChannel | 39 | public class RegionCombinerLargeLandChannel : ILandChannel |
38 | { | 40 | { |
39 | // private static readonly ILog m_log = | 41 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
40 | // LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | |
41 | private RegionData RegData; | 43 | private RegionData RegData; |
42 | private ILandChannel RootRegionLandChannel; | 44 | private ILandChannel RootRegionLandChannel; |
43 | private readonly List<RegionData> RegionConnections; | 45 | private readonly List<RegionData> RegionConnections; |
@@ -75,40 +77,51 @@ public class RegionCombinerLargeLandChannel : ILandChannel | |||
75 | 77 | ||
76 | public ILandObject GetLandObject(int x, int y) | 78 | public ILandObject GetLandObject(int x, int y) |
77 | { | 79 | { |
78 | //m_log.DebugFormat("[BIGLANDTESTINT]: <{0},{1}>", x, y); | 80 | return GetLandObject((float)x, (float)y); |
79 | 81 | ||
80 | if (x > 0 && x <= (int)Constants.RegionSize && y > 0 && y <= (int)Constants.RegionSize) | 82 | // m_log.DebugFormat("[BIGLANDTESTINT]: <{0},{1}>", x, y); |
81 | { | 83 | // |
82 | return RootRegionLandChannel.GetLandObject(x, y); | 84 | // if (x > 0 && x <= (int)Constants.RegionSize && y > 0 && y <= (int)Constants.RegionSize) |
83 | } | 85 | // { |
84 | else | 86 | // return RootRegionLandChannel.GetLandObject(x, y); |
85 | { | 87 | // } |
86 | int offsetX = (x / (int)Constants.RegionSize); | 88 | // else |
87 | int offsetY = (y / (int)Constants.RegionSize); | 89 | // { |
88 | offsetX *= (int)Constants.RegionSize; | 90 | // int offsetX = (x / (int)Constants.RegionSize); |
89 | offsetY *= (int)Constants.RegionSize; | 91 | // int offsetY = (y / (int)Constants.RegionSize); |
90 | 92 | // offsetX *= (int)Constants.RegionSize; | |
91 | foreach (RegionData regionData in RegionConnections) | 93 | // offsetY *= (int)Constants.RegionSize; |
92 | { | 94 | // |
93 | if (regionData.Offset.X == offsetX && regionData.Offset.Y == offsetY) | 95 | // foreach (RegionData regionData in RegionConnections) |
94 | { | 96 | // { |
95 | return regionData.RegionScene.LandChannel.GetLandObject(x - offsetX, y - offsetY); | 97 | // if (regionData.Offset.X == offsetX && regionData.Offset.Y == offsetY) |
96 | } | 98 | // { |
97 | } | 99 | // m_log.DebugFormat( |
98 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); | 100 | // "[REGION COMBINER LARGE LAND CHANNEL]: Found region {0} at offset {1},{2}", |
99 | obj.LandData.Name = "NO LAND"; | 101 | // regionData.RegionScene.Name, offsetX, offsetY); |
100 | return obj; | 102 | // |
101 | } | 103 | // return regionData.RegionScene.LandChannel.GetLandObject(x - offsetX, y - offsetY); |
104 | // } | ||
105 | // } | ||
106 | // //ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); | ||
107 | // //obj.LandData.Name = "NO LAND"; | ||
108 | // //return obj; | ||
109 | // } | ||
110 | // | ||
111 | // m_log.DebugFormat("[REGION COMBINER LARGE LAND CHANNEL]: No region found at {0},{1}, returning null", x, y); | ||
112 | // | ||
113 | // return null; | ||
102 | } | 114 | } |
103 | 115 | ||
104 | public ILandObject GetLandObject(int localID) | 116 | public ILandObject GetLandObject(int localID) |
105 | { | 117 | { |
118 | // XXX: Possibly should be looking in every land channel, not just the root. | ||
106 | return RootRegionLandChannel.GetLandObject(localID); | 119 | return RootRegionLandChannel.GetLandObject(localID); |
107 | } | 120 | } |
108 | 121 | ||
109 | public ILandObject GetLandObject(float x, float y) | 122 | public ILandObject GetLandObject(float x, float y) |
110 | { | 123 | { |
111 | //m_log.DebugFormat("[BIGLANDTESTFLOAT]: <{0},{1}>", x, y); | 124 | // m_log.DebugFormat("[BIGLANDTESTFLOAT]: <{0},{1}>", x, y); |
112 | 125 | ||
113 | if (x > 0 && x <= (int)Constants.RegionSize && y > 0 && y <= (int)Constants.RegionSize) | 126 | if (x > 0 && x <= (int)Constants.RegionSize && y > 0 && y <= (int)Constants.RegionSize) |
114 | { | 127 | { |
@@ -125,14 +138,22 @@ public class RegionCombinerLargeLandChannel : ILandChannel | |||
125 | { | 138 | { |
126 | if (regionData.Offset.X == offsetX && regionData.Offset.Y == offsetY) | 139 | if (regionData.Offset.X == offsetX && regionData.Offset.Y == offsetY) |
127 | { | 140 | { |
141 | // m_log.DebugFormat( | ||
142 | // "[REGION COMBINER LARGE LAND CHANNEL]: Found region {0} at offset {1},{2}", | ||
143 | // regionData.RegionScene.Name, offsetX, offsetY); | ||
144 | |||
128 | return regionData.RegionScene.LandChannel.GetLandObject(x - offsetX, y - offsetY); | 145 | return regionData.RegionScene.LandChannel.GetLandObject(x - offsetX, y - offsetY); |
129 | } | 146 | } |
130 | } | 147 | } |
131 | 148 | ||
132 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); | 149 | // ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); |
133 | obj.LandData.Name = "NO LAND"; | 150 | // obj.LandData.Name = "NO LAND"; |
134 | return obj; | 151 | // return obj; |
135 | } | 152 | } |
153 | |||
154 | // m_log.DebugFormat("[REGION COMBINER LARGE LAND CHANNEL]: No region found at {0},{1}, returning null", x, y); | ||
155 | |||
156 | return null; | ||
136 | } | 157 | } |
137 | 158 | ||
138 | public bool IsForcefulBansAllowed() | 159 | public bool IsForcefulBansAllowed() |