diff options
author | Melanie Thielker | 2008-07-18 02:40:47 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-07-18 02:40:47 +0000 |
commit | 263633e274082135b21b8183b92280b768d18883 (patch) | |
tree | f6104eef3633a8b454a4e8ac09d15182970c6bae /OpenSim/Framework/EstateSettings.cs | |
parent | added region port number to output of "show regions" command (diff) | |
download | opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.zip opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.gz opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.bz2 opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.xz |
Patch #9151
Makes the estate dialog fully functional. Implements all client facing functionality. Moves estate data from estate_settings.xml, which is used to provide defaults, to the region data store. Creates one estate for each region, and places the region in it. Converts all region bans to estate bans.
Diffstat (limited to 'OpenSim/Framework/EstateSettings.cs')
-rw-r--r-- | OpenSim/Framework/EstateSettings.cs | 660 |
1 files changed, 325 insertions, 335 deletions
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs index 2865844..b48a1db 100644 --- a/OpenSim/Framework/EstateSettings.cs +++ b/OpenSim/Framework/EstateSettings.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | ||
31 | using libsecondlife; | 32 | using libsecondlife; |
32 | using log4net; | 33 | using log4net; |
33 | 34 | ||
@@ -38,451 +39,440 @@ namespace OpenSim.Framework | |||
38 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
39 | private ConfigurationMember configMember; | 40 | private ConfigurationMember configMember; |
40 | 41 | ||
41 | //Settings to this island | 42 | public delegate void SaveDelegate(EstateSettings rs); |
42 | private float m_billableFactor; | ||
43 | |||
44 | private uint m_estateID; | ||
45 | private LLUUID m_estateManager0; | ||
46 | private LLUUID m_estateManager1; | ||
47 | private LLUUID m_estateManager2; | ||
48 | private LLUUID m_estateManager3; | ||
49 | private LLUUID m_estateManager4; | ||
50 | private LLUUID m_estateManager5; | ||
51 | private LLUUID m_estateManager6; | ||
52 | private LLUUID m_estateManager7; | ||
53 | private LLUUID m_estateManager8; | ||
54 | private LLUUID m_estateManager9; | ||
55 | private string m_estateName; | ||
56 | |||
57 | private uint m_parentEstateID; | ||
58 | private int m_pricePerMeter; | ||
59 | private int m_redirectGridX; | ||
60 | private int m_redirectGridY; | ||
61 | 43 | ||
62 | public EstateSettings() | 44 | public event SaveDelegate OnSave; |
45 | |||
46 | // Only the client uses these | ||
47 | // | ||
48 | private uint m_EstateID = 100; | ||
49 | |||
50 | public uint EstateID | ||
63 | { | 51 | { |
64 | // Temporary hack to prevent multiple loadings. | 52 | get { return m_EstateID; } |
65 | if (configMember == null) | 53 | set { m_EstateID = value; } |
66 | { | ||
67 | configMember = | ||
68 | new ConfigurationMember(Path.Combine(Util.configDir(), "estate_settings.xml"), "ESTATE SETTINGS", | ||
69 | loadConfigurationOptions, handleIncomingConfiguration, true); | ||
70 | configMember.performConfigurationRetrieve(); | ||
71 | } | ||
72 | } | 54 | } |
73 | 55 | ||
74 | public float billableFactor | 56 | private string m_EstateName; |
57 | |||
58 | public string EstateName | ||
75 | { | 59 | { |
76 | get { return m_billableFactor; } | 60 | get { return m_EstateName; } |
77 | set | 61 | set { m_EstateName = value; } |
78 | { | ||
79 | m_billableFactor = value; | ||
80 | configMember.forceSetConfigurationOption("billable_factor", m_billableFactor.ToString()); | ||
81 | } | ||
82 | } | 62 | } |
83 | 63 | ||
84 | public uint estateID | 64 | private uint m_ParentEstateID = 100; |
65 | |||
66 | public uint ParentEstateID | ||
85 | { | 67 | { |
86 | get { return m_estateID; } | 68 | get { return m_ParentEstateID; } |
87 | set | 69 | set { m_ParentEstateID = value; } |
88 | { | ||
89 | m_estateID = value; | ||
90 | configMember.forceSetConfigurationOption("estate_id", m_estateID.ToString()); | ||
91 | } | ||
92 | } | 70 | } |
93 | 71 | ||
94 | public uint parentEstateID | 72 | private float m_BillableFactor; |
73 | |||
74 | public float BillableFactor | ||
95 | { | 75 | { |
96 | get { return m_parentEstateID; } | 76 | get { return m_BillableFactor; } |
97 | set | 77 | set { m_BillableFactor = value; } |
98 | { | ||
99 | m_parentEstateID = value; | ||
100 | configMember.forceSetConfigurationOption("parent_estate_id", m_parentEstateID.ToString()); | ||
101 | } | ||
102 | } | 78 | } |
103 | 79 | ||
104 | public int redirectGridX | 80 | private int m_PricePerMeter; |
81 | |||
82 | public int PricePerMeter | ||
105 | { | 83 | { |
106 | get { return m_redirectGridX; } | 84 | get { return m_PricePerMeter; } |
107 | set | 85 | set { m_PricePerMeter = value; } |
108 | { | ||
109 | m_redirectGridX = value; | ||
110 | configMember.forceSetConfigurationOption("redirect_grid_x", m_redirectGridX.ToString()); | ||
111 | } | ||
112 | } | 86 | } |
113 | 87 | ||
114 | public int redirectGridY | 88 | private int m_RedirectGridX; |
89 | |||
90 | public int RedirectGridX | ||
115 | { | 91 | { |
116 | get { return m_redirectGridY; } | 92 | get { return m_RedirectGridX; } |
117 | set | 93 | set { m_RedirectGridX = value; } |
118 | { | ||
119 | m_redirectGridY = value; | ||
120 | configMember.forceSetConfigurationOption("redirect_grid_y", m_redirectGridY.ToString()); | ||
121 | } | ||
122 | } | 94 | } |
123 | 95 | ||
124 | public int pricePerMeter | 96 | private int m_RedirectGridY; |
97 | |||
98 | public int RedirectGridY | ||
125 | { | 99 | { |
126 | get { return m_pricePerMeter; } | 100 | get { return m_RedirectGridY; } |
127 | set | 101 | set { m_RedirectGridY = value; } |
128 | { | ||
129 | m_pricePerMeter = value; | ||
130 | configMember.forceSetConfigurationOption("price_per_meter", m_pricePerMeter.ToString()); | ||
131 | } | ||
132 | } | 102 | } |
133 | 103 | ||
134 | // Estate name | 104 | // Used by the sim |
105 | // | ||
106 | private bool m_UseGlobalTime = true; | ||
135 | 107 | ||
136 | public string estateName | 108 | public bool UseGlobalTime |
137 | { | 109 | { |
138 | get { return m_estateName; } | 110 | get { return m_UseGlobalTime; } |
139 | set | 111 | set { m_UseGlobalTime = value; } |
140 | { | ||
141 | m_estateName = value; | ||
142 | configMember.forceSetConfigurationOption("estate_name", m_estateName.ToString()); | ||
143 | } | ||
144 | } | 112 | } |
145 | 113 | ||
146 | public LLUUID[] estateManagers | 114 | private bool m_FixedSun = false; |
115 | |||
116 | public bool FixedSun | ||
147 | { | 117 | { |
148 | get | 118 | get { return m_FixedSun; } |
149 | { | 119 | set { m_FixedSun = value; } |
150 | // returns a condensed array of LLUUIDs | ||
151 | return GetEstateManagers(); | ||
152 | } | ||
153 | set | ||
154 | { | ||
155 | // Sets a Condensed array of LLUUIDS | ||
156 | int i = 0; | ||
157 | for (i = 0; i < value.Length; i++) | ||
158 | { | ||
159 | switch (i) | ||
160 | { | ||
161 | case 0: | ||
162 | m_estateManager0 = value[i]; | ||
163 | break; | ||
164 | case 1: | ||
165 | m_estateManager1 = value[i]; | ||
166 | break; | ||
167 | case 2: | ||
168 | m_estateManager2 = value[i]; | ||
169 | break; | ||
170 | case 3: | ||
171 | m_estateManager3 = value[i]; | ||
172 | break; | ||
173 | case 4: | ||
174 | m_estateManager4 = value[i]; | ||
175 | break; | ||
176 | case 5: | ||
177 | m_estateManager5 = value[i]; | ||
178 | break; | ||
179 | case 6: | ||
180 | m_estateManager6 = value[i]; | ||
181 | break; | ||
182 | case 7: | ||
183 | m_estateManager7 = value[i]; | ||
184 | break; | ||
185 | case 8: | ||
186 | m_estateManager8 = value[i]; | ||
187 | break; | ||
188 | case 9: | ||
189 | m_estateManager9 = value[i]; | ||
190 | break; | ||
191 | } | ||
192 | } | ||
193 | |||
194 | // Clear the rest of them.. as they're no longer valid | ||
195 | for (int j = i; j < 10; j++) | ||
196 | { | ||
197 | switch (j) | ||
198 | { | ||
199 | case 0: | ||
200 | m_estateManager0 = LLUUID.Zero; | ||
201 | break; | ||
202 | case 1: | ||
203 | m_estateManager1 = LLUUID.Zero; | ||
204 | break; | ||
205 | case 2: | ||
206 | m_estateManager2 = LLUUID.Zero; | ||
207 | break; | ||
208 | case 3: | ||
209 | m_estateManager3 = LLUUID.Zero; | ||
210 | break; | ||
211 | case 4: | ||
212 | m_estateManager4 = LLUUID.Zero; | ||
213 | break; | ||
214 | case 5: | ||
215 | m_estateManager5 = LLUUID.Zero; | ||
216 | break; | ||
217 | case 6: | ||
218 | m_estateManager6 = LLUUID.Zero; | ||
219 | break; | ||
220 | case 7: | ||
221 | m_estateManager7 = LLUUID.Zero; | ||
222 | break; | ||
223 | case 8: | ||
224 | m_estateManager8 = LLUUID.Zero; | ||
225 | break; | ||
226 | case 9: | ||
227 | m_estateManager9 = LLUUID.Zero; | ||
228 | break; | ||
229 | } | ||
230 | } | ||
231 | |||
232 | for (i = 0; i < 10; i++) | ||
233 | { | ||
234 | // Writes out the Estate managers to the XML file. | ||
235 | configMember.forceSetConfigurationOption("estate_manager_" + i, (GetEstateManagerAtPos(i)).ToString()); | ||
236 | } | ||
237 | } | ||
238 | } | 120 | } |
239 | 121 | ||
240 | #region EstateManager Get Methods to sort out skipped spots in the XML (suser error) | 122 | private double m_SunPosition = 0.0; |
241 | 123 | ||
242 | private LLUUID GetEstateManagerAtPos(int pos) | 124 | public double SunPosition |
243 | { | 125 | { |
244 | // This is a helper for writing them out to the xml file | 126 | get { return m_SunPosition; } |
245 | switch (pos) | 127 | set { m_SunPosition = value; } |
246 | { | 128 | } |
247 | case 0: | ||
248 | return m_estateManager0; | ||
249 | 129 | ||
250 | case 1: | 130 | private bool m_AllowVoice = true; |
251 | return m_estateManager1; | ||
252 | 131 | ||
253 | case 2: | 132 | public bool AllowVoice |
254 | return m_estateManager2; | 133 | { |
134 | get { return m_AllowVoice; } | ||
135 | set { m_AllowVoice = value; } | ||
136 | } | ||
255 | 137 | ||
256 | case 3: | 138 | private bool m_AllowDirectTeleport = true; |
257 | return m_estateManager3; | ||
258 | 139 | ||
259 | case 4: | 140 | public bool AllowDirectTeleport |
260 | return m_estateManager4; | 141 | { |
142 | get { return m_AllowDirectTeleport; } | ||
143 | set { m_AllowDirectTeleport = value; } | ||
144 | } | ||
261 | 145 | ||
262 | case 5: | 146 | private bool m_DenyAnonymous = false; |
263 | return m_estateManager5; | ||
264 | 147 | ||
265 | case 6: | 148 | public bool DenyAnonymous |
266 | return m_estateManager6; | 149 | { |
150 | get { return m_DenyAnonymous; } | ||
151 | set { m_DenyAnonymous = value; } | ||
152 | } | ||
267 | 153 | ||
268 | case 7: | 154 | private bool m_DenyIdentified = false; |
269 | return m_estateManager7; | ||
270 | 155 | ||
271 | case 8: | 156 | public bool DenyIdentified |
272 | return m_estateManager8; | 157 | { |
158 | get { return m_DenyIdentified; } | ||
159 | set { m_DenyIdentified = value; } | ||
160 | } | ||
273 | 161 | ||
274 | case 9: | 162 | private bool m_DenyTransacted = false; |
275 | return m_estateManager9; | ||
276 | 163 | ||
277 | default: | 164 | public bool DenyTransacted |
278 | return LLUUID.Zero; | 165 | { |
279 | } | 166 | get { return m_DenyTransacted; } |
167 | set { m_DenyTransacted = value; } | ||
280 | } | 168 | } |
281 | 169 | ||
282 | private LLUUID[] GetEstateManagers() | 170 | private bool m_AbuseEmailToEstateOwner = false; |
171 | |||
172 | public bool AbuseEmailToEstateOwner | ||
283 | { | 173 | { |
284 | int numEstateManagers = GetNumberOfEstateManagers(); | 174 | get { return m_AbuseEmailToEstateOwner; } |
285 | LLUUID[] rEstateManagers = new LLUUID[numEstateManagers]; | 175 | set { m_AbuseEmailToEstateOwner = value; } |
176 | } | ||
286 | 177 | ||
287 | int pos = 0; | 178 | private bool m_BlockDwell = false; |
288 | 179 | ||
289 | for (int i = 0; i < numEstateManagers; i++) | 180 | public bool BlockDwell |
290 | { | 181 | { |
291 | pos = GetNextEstateManager(pos); | 182 | get { return m_BlockDwell; } |
292 | 183 | set { m_BlockDwell = value; } | |
293 | rEstateManagers[i] = GetEstateManagerAtPos(pos); | ||
294 | pos++; | ||
295 | } | ||
296 | return rEstateManagers; | ||
297 | } | 184 | } |
298 | 185 | ||
299 | private int GetNextEstateManager(int startpos) | 186 | private bool m_EstateSkipScripts = false; |
187 | |||
188 | public bool EstateSkipScripts | ||
300 | { | 189 | { |
301 | // This is a utility function that skips over estate managers set to LLUUID.Zero | 190 | get { return m_EstateSkipScripts; } |
302 | int i = startpos; | 191 | set { m_EstateSkipScripts = value; } |
303 | for (i = startpos; i < 10; i++) | ||
304 | { | ||
305 | if (GetEstateManagerAtPos(i) != LLUUID.Zero) return i; | ||
306 | } | ||
307 | return i; | ||
308 | } | 192 | } |
309 | 193 | ||
310 | private int GetNumberOfEstateManagers() | 194 | private bool m_ResetHomeOnTeleport = false; |
195 | |||
196 | public bool ResetHomeOnTeleport | ||
311 | { | 197 | { |
312 | // This function returns the number of estate managers set | 198 | get { return m_ResetHomeOnTeleport; } |
313 | // Regardless of whether there is a skipped spot | 199 | set { m_ResetHomeOnTeleport = value; } |
314 | int numEstateManagers = 0; | 200 | } |
315 | if (m_estateManager0 != LLUUID.Zero) numEstateManagers++; | ||
316 | if (m_estateManager1 != LLUUID.Zero) numEstateManagers++; | ||
317 | if (m_estateManager2 != LLUUID.Zero) numEstateManagers++; | ||
318 | if (m_estateManager3 != LLUUID.Zero) numEstateManagers++; | ||
319 | if (m_estateManager4 != LLUUID.Zero) numEstateManagers++; | ||
320 | if (m_estateManager5 != LLUUID.Zero) numEstateManagers++; | ||
321 | if (m_estateManager6 != LLUUID.Zero) numEstateManagers++; | ||
322 | if (m_estateManager7 != LLUUID.Zero) numEstateManagers++; | ||
323 | if (m_estateManager8 != LLUUID.Zero) numEstateManagers++; | ||
324 | if (m_estateManager9 != LLUUID.Zero) numEstateManagers++; | ||
325 | 201 | ||
326 | return numEstateManagers; | 202 | private bool m_TaxFree = false; |
203 | |||
204 | public bool TaxFree | ||
205 | { | ||
206 | get { return m_TaxFree; } | ||
207 | set { m_TaxFree = value; } | ||
327 | } | 208 | } |
328 | 209 | ||
329 | public void AddEstateManager(LLUUID avatarID) | 210 | private bool m_PublicAccess = true; |
211 | |||
212 | public bool PublicAccess | ||
330 | { | 213 | { |
331 | LLUUID[] testateManagers = GetEstateManagers(); | 214 | get { return m_PublicAccess; } |
332 | LLUUID[] nestateManagers = new LLUUID[testateManagers.Length + 1]; | 215 | set { m_PublicAccess = value; } |
216 | } | ||
333 | 217 | ||
334 | int i = 0; | 218 | // All those lists... |
335 | for (i = 0; i < testateManagers.Length; i++) | 219 | // |
336 | { | 220 | private List<LLUUID> l_EstateManagers = new List<LLUUID>(); |
337 | nestateManagers[i] = testateManagers[i]; | ||
338 | } | ||
339 | 221 | ||
340 | nestateManagers[i] = avatarID; | 222 | public LLUUID[] EstateManagers |
223 | { | ||
224 | get { return l_EstateManagers.ToArray(); } | ||
225 | set { l_EstateManagers = new List<LLUUID>(value); } | ||
226 | } | ||
341 | 227 | ||
342 | //Saves it to the estate settings file | 228 | private List<EstateBan> l_EstateBans = new List<EstateBan>(); |
343 | estateManagers = nestateManagers; | 229 | |
230 | public EstateBan[] EstateBans | ||
231 | { | ||
232 | get { return l_EstateBans.ToArray(); } | ||
233 | set { l_EstateBans = new List<EstateBan>(value); } | ||
344 | } | 234 | } |
345 | 235 | ||
346 | public void RemoveEstateManager(LLUUID avatarID) | 236 | private List<LLUUID> l_EstateAccess = new List<LLUUID>(); |
237 | |||
238 | public LLUUID[] EstateAccess | ||
347 | { | 239 | { |
348 | int notfoundparam = 11; // starting high so the condense routine (max ten) doesn't run if we don't find it. | 240 | get { return l_EstateAccess.ToArray(); } |
349 | LLUUID[] testateManagers = GetEstateManagers(); // temporary estate managers list | 241 | set { l_EstateAccess = new List<LLUUID>(value); } |
242 | } | ||
350 | 243 | ||
244 | private List<LLUUID> l_EstateGroups = new List<LLUUID>(); | ||
351 | 245 | ||
352 | int i = 0; | 246 | public LLUUID[] EstateGroups |
353 | int foundpos = notfoundparam; | 247 | { |
248 | get { return l_EstateGroups.ToArray(); } | ||
249 | set { l_EstateGroups = new List<LLUUID>(value); } | ||
250 | } | ||
354 | 251 | ||
355 | // search for estate manager. | 252 | public EstateSettings() |
356 | for (i = 0; i < testateManagers.Length; i++) | 253 | { |
254 | if (configMember == null) | ||
357 | { | 255 | { |
358 | if (testateManagers[i] == avatarID) | 256 | // Load legacy defaults |
359 | { | 257 | // |
360 | foundpos = i; | 258 | configMember = |
361 | break; | 259 | new ConfigurationMember(Path.Combine(Util.configDir(), |
362 | } | 260 | "estate_settings.xml"), "ESTATE SETTINGS", |
261 | loadConfigurationOptions, | ||
262 | handleIncomingConfiguration, true); | ||
263 | |||
264 | l_EstateManagers.Clear(); | ||
265 | configMember.performConfigurationRetrieve(); | ||
363 | } | 266 | } |
364 | if (foundpos < notfoundparam) | 267 | } |
365 | { | ||
366 | LLUUID[] restateManagers = new LLUUID[testateManagers.Length - 1]; | ||
367 | 268 | ||
368 | // fill new estate managers array up to the found spot | 269 | public void Save() |
369 | for (int j = 0; j < foundpos; j++) | 270 | { |
370 | restateManagers[j] = testateManagers[j]; | 271 | if(OnSave != null) |
272 | OnSave(this); | ||
273 | } | ||
371 | 274 | ||
372 | // skip over the estate manager we're removing and compress | 275 | public void AddEstateManager(LLUUID avatarID) |
373 | for (int j = foundpos + 1; j < testateManagers.Length; j++) | 276 | { |
374 | restateManagers[j - 1] = testateManagers[j]; | 277 | if(avatarID == null || avatarID == LLUUID.Zero) |
278 | return; | ||
279 | if(!l_EstateManagers.Contains(avatarID)) | ||
280 | l_EstateManagers.Add(avatarID); | ||
281 | } | ||
375 | 282 | ||
376 | estateManagers = restateManagers; | 283 | public void RemoveEstateManager(LLUUID avatarID) |
377 | } | 284 | { |
378 | else | 285 | if(l_EstateManagers.Contains(avatarID)) |
379 | { | 286 | l_EstateManagers.Remove(avatarID); |
380 | m_log.Error("[ESTATESETTINGS]: Unable to locate estate manager : " + avatarID.ToString() + " for removal"); | ||
381 | } | ||
382 | } | 287 | } |
383 | 288 | ||
384 | #endregion | 289 | public bool IsEstateManager(LLUUID avatarID) |
290 | { | ||
291 | return l_EstateManagers.Contains(avatarID); | ||
292 | } | ||
293 | |||
294 | public bool IsBanned(LLUUID avatarID) | ||
295 | { | ||
296 | foreach (EstateBan ban in l_EstateBans) | ||
297 | if(ban.bannedUUID == avatarID) | ||
298 | return true; | ||
299 | return false; | ||
300 | } | ||
301 | |||
302 | public void AddBan(EstateBan ban) | ||
303 | { | ||
304 | if(ban == null) | ||
305 | return; | ||
306 | if(!IsBanned(ban.bannedUUID)) | ||
307 | l_EstateBans.Add(ban); | ||
308 | } | ||
309 | |||
310 | public void ClearBans() | ||
311 | { | ||
312 | l_EstateBans.Clear(); | ||
313 | } | ||
314 | |||
315 | public void RemoveBan(LLUUID avatarID) | ||
316 | { | ||
317 | foreach (EstateBan ban in new List<EstateBan>(l_EstateBans)) | ||
318 | if(ban.bannedUUID == avatarID) | ||
319 | l_EstateBans.Remove(ban); | ||
320 | } | ||
385 | 321 | ||
386 | public void loadConfigurationOptions() | 322 | public void loadConfigurationOptions() |
387 | { | 323 | { |
388 | configMember.addConfigurationOption("billable_factor", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, String.Empty, | 324 | configMember.addConfigurationOption("billable_factor", |
389 | "0.0", true); | 325 | ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, |
390 | configMember.addConfigurationOption("estate_id", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, String.Empty, "100", | 326 | String.Empty, "0.0", true); |
391 | true); | 327 | |
392 | configMember.addConfigurationOption("parent_estate_id", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 328 | // configMember.addConfigurationOption("estate_id", |
393 | String.Empty, "1", true); | 329 | // ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
394 | configMember.addConfigurationOption("max_agents", ConfigurationOption.ConfigurationTypes.TYPE_BYTE, String.Empty, "40", | 330 | // String.Empty, "100", true); |
395 | true); | 331 | |
396 | 332 | // configMember.addConfigurationOption("parent_estate_id", | |
397 | configMember.addConfigurationOption("redirect_grid_x", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, | 333 | // ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
398 | "0", true); | 334 | // String.Empty, "1", true); |
399 | configMember.addConfigurationOption("redirect_grid_y", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, | 335 | |
400 | "0", true); | 336 | configMember.addConfigurationOption("redirect_grid_x", |
401 | configMember.addConfigurationOption("price_per_meter", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 337 | ConfigurationOption.ConfigurationTypes.TYPE_INT32, |
402 | String.Empty, "1", true); | 338 | String.Empty, "0", true); |
403 | 339 | ||
404 | configMember.addConfigurationOption("water_height", ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE, String.Empty, | 340 | configMember.addConfigurationOption("redirect_grid_y", |
405 | "20.0", true); | 341 | ConfigurationOption.ConfigurationTypes.TYPE_INT32, |
406 | 342 | String.Empty, "0", true); | |
407 | configMember.addConfigurationOption("estate_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | 343 | |
408 | String.Empty, "TestEstate", true); | 344 | configMember.addConfigurationOption("price_per_meter", |
409 | configMember.addConfigurationOption("estate_manager_0", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 345 | ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
410 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 346 | String.Empty, "1", true); |
411 | configMember.addConfigurationOption("estate_manager_1", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 347 | |
412 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 348 | configMember.addConfigurationOption("estate_name", |
413 | configMember.addConfigurationOption("estate_manager_2", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 349 | ConfigurationOption.ConfigurationTypes.TYPE_STRING, |
414 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 350 | String.Empty, "My Estate", true); |
415 | configMember.addConfigurationOption("estate_manager_3", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 351 | |
416 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 352 | configMember.addConfigurationOption("estate_manager_0", |
417 | configMember.addConfigurationOption("estate_manager_4", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 353 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
418 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 354 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
419 | configMember.addConfigurationOption("estate_manager_5", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 355 | |
420 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 356 | configMember.addConfigurationOption("estate_manager_1", |
421 | configMember.addConfigurationOption("estate_manager_6", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 357 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
422 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 358 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
423 | configMember.addConfigurationOption("estate_manager_7", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 359 | |
424 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 360 | configMember.addConfigurationOption("estate_manager_2", |
425 | configMember.addConfigurationOption("estate_manager_8", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 361 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
426 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 362 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
427 | configMember.addConfigurationOption("estate_manager_9", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 363 | |
428 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 364 | configMember.addConfigurationOption("estate_manager_3", |
365 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
366 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
367 | |||
368 | configMember.addConfigurationOption("estate_manager_4", | ||
369 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
370 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
371 | |||
372 | configMember.addConfigurationOption("estate_manager_5", | ||
373 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
374 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
375 | |||
376 | configMember.addConfigurationOption("estate_manager_6", | ||
377 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
378 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
379 | |||
380 | configMember.addConfigurationOption("estate_manager_7", | ||
381 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
382 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
383 | |||
384 | configMember.addConfigurationOption("estate_manager_8", | ||
385 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
386 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
387 | |||
388 | configMember.addConfigurationOption("estate_manager_9", | ||
389 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
390 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
391 | |||
392 | configMember.addConfigurationOption("region_flags", | ||
393 | ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
394 | String.Empty, "336723974", true); | ||
429 | } | 395 | } |
430 | 396 | ||
431 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) | 397 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) |
432 | { | 398 | { |
433 | switch (configuration_key) | 399 | switch (configuration_key) |
434 | { | 400 | { |
435 | case "billable_factor": | 401 | case "region_flags": |
436 | m_billableFactor = (float) configuration_result; | 402 | Simulator.RegionFlags flags = (Simulator.RegionFlags)(uint)configuration_result; |
403 | if((flags & (Simulator.RegionFlags)(1<<29)) != 0) | ||
404 | m_AllowVoice = true; | ||
405 | if((flags & Simulator.RegionFlags.AllowDirectTeleport) != 0) | ||
406 | m_AllowDirectTeleport = true; | ||
407 | if((flags & Simulator.RegionFlags.DenyAnonymous) != 0) | ||
408 | m_DenyAnonymous = true; | ||
409 | if((flags & Simulator.RegionFlags.DenyIdentified) != 0) | ||
410 | m_DenyIdentified = true; | ||
411 | if((flags & Simulator.RegionFlags.DenyTransacted) != 0) | ||
412 | m_DenyTransacted = true; | ||
413 | if((flags & Simulator.RegionFlags.AbuseEmailToEstateOwner) != 0) | ||
414 | m_AbuseEmailToEstateOwner = true; | ||
415 | if((flags & Simulator.RegionFlags.BlockDwell) != 0) | ||
416 | m_BlockDwell = true; | ||
417 | if((flags & Simulator.RegionFlags.EstateSkipScripts) != 0) | ||
418 | m_EstateSkipScripts = true; | ||
419 | if((flags & Simulator.RegionFlags.ResetHomeOnTeleport) != 0) | ||
420 | m_ResetHomeOnTeleport = true; | ||
421 | if((flags & Simulator.RegionFlags.TaxFree) != 0) | ||
422 | m_TaxFree = true; | ||
423 | if((flags & Simulator.RegionFlags.PublicAllowed) != 0) | ||
424 | m_PublicAccess = true; | ||
437 | break; | 425 | break; |
438 | case "estate_id": | 426 | case "billable_factor": |
439 | m_estateID = (uint) configuration_result; | 427 | m_BillableFactor = (float) configuration_result; |
440 | break; | ||
441 | case "parent_estate_id": | ||
442 | m_parentEstateID = (uint) configuration_result; | ||
443 | break; | 428 | break; |
429 | // case "estate_id": | ||
430 | // m_EstateID = (uint) configuration_result; | ||
431 | // break; | ||
432 | // case "parent_estate_id": | ||
433 | // m_ParentEstateID = (uint) configuration_result; | ||
434 | // break; | ||
444 | case "redirect_grid_x": | 435 | case "redirect_grid_x": |
445 | m_redirectGridX = (int) configuration_result; | 436 | m_RedirectGridX = (int) configuration_result; |
446 | break; | 437 | break; |
447 | case "redirect_grid_y": | 438 | case "redirect_grid_y": |
448 | m_redirectGridY = (int) configuration_result; | 439 | m_RedirectGridY = (int) configuration_result; |
449 | break; | 440 | break; |
450 | case "price_per_meter": | 441 | case "price_per_meter": |
451 | m_pricePerMeter = Convert.ToInt32(configuration_result); | 442 | m_PricePerMeter = Convert.ToInt32(configuration_result); |
452 | break; | 443 | break; |
453 | |||
454 | case "estate_name": | 444 | case "estate_name": |
455 | m_estateName = (string) configuration_result; | 445 | m_EstateName = (string) configuration_result; |
456 | break; | 446 | break; |
457 | case "estate_manager_0": | 447 | case "estate_manager_0": |
458 | m_estateManager0 = (LLUUID) configuration_result; | 448 | AddEstateManager((LLUUID)configuration_result); |
459 | break; | 449 | break; |
460 | case "estate_manager_1": | 450 | case "estate_manager_1": |
461 | m_estateManager1 = (LLUUID) configuration_result; | 451 | AddEstateManager((LLUUID)configuration_result); |
462 | break; | 452 | break; |
463 | case "estate_manager_2": | 453 | case "estate_manager_2": |
464 | m_estateManager2 = (LLUUID) configuration_result; | 454 | AddEstateManager((LLUUID)configuration_result); |
465 | break; | 455 | break; |
466 | case "estate_manager_3": | 456 | case "estate_manager_3": |
467 | m_estateManager3 = (LLUUID) configuration_result; | 457 | AddEstateManager((LLUUID)configuration_result); |
468 | break; | 458 | break; |
469 | case "estate_manager_4": | 459 | case "estate_manager_4": |
470 | m_estateManager4 = (LLUUID) configuration_result; | 460 | AddEstateManager((LLUUID)configuration_result); |
471 | break; | 461 | break; |
472 | case "estate_manager_5": | 462 | case "estate_manager_5": |
473 | m_estateManager5 = (LLUUID) configuration_result; | 463 | AddEstateManager((LLUUID)configuration_result); |
474 | break; | 464 | break; |
475 | case "estate_manager_6": | 465 | case "estate_manager_6": |
476 | m_estateManager6 = (LLUUID) configuration_result; | 466 | AddEstateManager((LLUUID)configuration_result); |
477 | break; | 467 | break; |
478 | case "estate_manager_7": | 468 | case "estate_manager_7": |
479 | m_estateManager7 = (LLUUID) configuration_result; | 469 | AddEstateManager((LLUUID)configuration_result); |
480 | break; | 470 | break; |
481 | case "estate_manager_8": | 471 | case "estate_manager_8": |
482 | m_estateManager8 = (LLUUID) configuration_result; | 472 | AddEstateManager((LLUUID)configuration_result); |
483 | break; | 473 | break; |
484 | case "estate_manager_9": | 474 | case "estate_manager_9": |
485 | m_estateManager9 = (LLUUID) configuration_result; | 475 | AddEstateManager((LLUUID)configuration_result); |
486 | break; | 476 | break; |
487 | } | 477 | } |
488 | 478 | ||