diff options
Diffstat (limited to 'OpenSim')
33 files changed, 647 insertions, 450 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index ef45f73..f4e1db4 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -658,9 +658,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
658 | 658 | ||
659 | foreach (ILandObject parcel in parcels) | 659 | foreach (ILandObject parcel in parcels) |
660 | { | 660 | { |
661 | parcel.landData.Flags |= (uint) ParcelFlags.AllowVoiceChat; | 661 | parcel.LandData.Flags |= (uint) ParcelFlags.AllowVoiceChat; |
662 | parcel.landData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan; | 662 | parcel.LandData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan; |
663 | ((Scene)newscene).LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData); | 663 | ((Scene)newscene).LandChannel.UpdateLandObject(parcel.LandData.LocalID, parcel.LandData); |
664 | } | 664 | } |
665 | } | 665 | } |
666 | 666 | ||
@@ -910,15 +910,15 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
910 | { | 910 | { |
911 | if (enableVoice) | 911 | if (enableVoice) |
912 | { | 912 | { |
913 | parcel.landData.Flags |= (uint)ParcelFlags.AllowVoiceChat; | 913 | parcel.LandData.Flags |= (uint)ParcelFlags.AllowVoiceChat; |
914 | parcel.landData.Flags |= (uint)ParcelFlags.UseEstateVoiceChan; | 914 | parcel.LandData.Flags |= (uint)ParcelFlags.UseEstateVoiceChan; |
915 | } | 915 | } |
916 | else | 916 | else |
917 | { | 917 | { |
918 | parcel.landData.Flags &= ~(uint)ParcelFlags.AllowVoiceChat; | 918 | parcel.LandData.Flags &= ~(uint)ParcelFlags.AllowVoiceChat; |
919 | parcel.landData.Flags &= ~(uint)ParcelFlags.UseEstateVoiceChan; | 919 | parcel.LandData.Flags &= ~(uint)ParcelFlags.UseEstateVoiceChan; |
920 | } | 920 | } |
921 | scene.LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData); | 921 | scene.LandChannel.UpdateLandObject(parcel.LandData.LocalID, parcel.LandData); |
922 | } | 922 | } |
923 | } | 923 | } |
924 | 924 | ||
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs index e26a830..6318c09 100644 --- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs +++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs | |||
@@ -624,7 +624,7 @@ ELSE | |||
624 | //As the delete landaccess is already in the mysql code | 624 | //As the delete landaccess is already in the mysql code |
625 | 625 | ||
626 | //Delete old values | 626 | //Delete old values |
627 | RemoveLandObject(parcel.landData.GlobalID); | 627 | RemoveLandObject(parcel.LandData.GlobalID); |
628 | 628 | ||
629 | //Insert new values | 629 | //Insert new values |
630 | string sql = @"INSERT INTO [land] | 630 | string sql = @"INSERT INTO [land] |
@@ -634,7 +634,7 @@ VALUES | |||
634 | 634 | ||
635 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) | 635 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) |
636 | { | 636 | { |
637 | cmd.Parameters.AddRange(CreateLandParameters(parcel.landData, parcel.regionUUID)); | 637 | cmd.Parameters.AddRange(CreateLandParameters(parcel.LandData, parcel.RegionUUID)); |
638 | 638 | ||
639 | cmd.ExecuteNonQuery(); | 639 | cmd.ExecuteNonQuery(); |
640 | } | 640 | } |
@@ -643,9 +643,9 @@ VALUES | |||
643 | 643 | ||
644 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) | 644 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) |
645 | { | 645 | { |
646 | foreach (ParcelManager.ParcelAccessEntry parcelAccessEntry in parcel.landData.ParcelAccessList) | 646 | foreach (ParcelManager.ParcelAccessEntry parcelAccessEntry in parcel.LandData.ParcelAccessList) |
647 | { | 647 | { |
648 | cmd.Parameters.AddRange(CreateLandAccessParameters(parcelAccessEntry, parcel.regionUUID)); | 648 | cmd.Parameters.AddRange(CreateLandAccessParameters(parcelAccessEntry, parcel.RegionUUID)); |
649 | 649 | ||
650 | cmd.ExecuteNonQuery(); | 650 | cmd.ExecuteNonQuery(); |
651 | cmd.Parameters.Clear(); | 651 | cmd.Parameters.Clear(); |
diff --git a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs index c2dd788..f25bfd7 100644 --- a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs | |||
@@ -685,7 +685,7 @@ namespace OpenSim.Data.MySQL | |||
685 | "?UserLookAtX, ?UserLookAtY, ?UserLookAtZ, " + | 685 | "?UserLookAtX, ?UserLookAtY, ?UserLookAtZ, " + |
686 | "?AuthbuyerID, ?OtherCleanTime, ?Dwell)"; | 686 | "?AuthbuyerID, ?OtherCleanTime, ?Dwell)"; |
687 | 687 | ||
688 | FillLandCommand(cmd, parcel.landData, parcel.regionUUID); | 688 | FillLandCommand(cmd, parcel.LandData, parcel.RegionUUID); |
689 | 689 | ||
690 | ExecuteNonQuery(cmd); | 690 | ExecuteNonQuery(cmd); |
691 | 691 | ||
@@ -700,9 +700,9 @@ namespace OpenSim.Data.MySQL | |||
700 | "?Flags)"; | 700 | "?Flags)"; |
701 | 701 | ||
702 | foreach (ParcelManager.ParcelAccessEntry entry in | 702 | foreach (ParcelManager.ParcelAccessEntry entry in |
703 | parcel.landData.ParcelAccessList) | 703 | parcel.LandData.ParcelAccessList) |
704 | { | 704 | { |
705 | FillLandAccessCommand(cmd, entry, parcel.landData.GlobalID); | 705 | FillLandAccessCommand(cmd, entry, parcel.LandData.GlobalID); |
706 | ExecuteNonQuery(cmd); | 706 | ExecuteNonQuery(cmd); |
707 | cmd.Parameters.Clear(); | 707 | cmd.Parameters.Clear(); |
708 | } | 708 | } |
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs index 673ca6f..f19fda1 100644 --- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs +++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs | |||
@@ -227,7 +227,7 @@ namespace OpenSim.Data.NHibernate | |||
227 | manager.Delete(p); | 227 | manager.Delete(p); |
228 | } | 228 | } |
229 | 229 | ||
230 | m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); | 230 | // m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); |
231 | 231 | ||
232 | } | 232 | } |
233 | 233 | ||
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 3831467..49275cb 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -124,7 +124,7 @@ namespace OpenSim.Data.SQLite | |||
124 | //m_log.Info("[ASSET DB]: Creating Asset " + asset.FullID.ToString()); | 124 | //m_log.Info("[ASSET DB]: Creating Asset " + asset.FullID.ToString()); |
125 | if (ExistsAsset(asset.FullID)) | 125 | if (ExistsAsset(asset.FullID)) |
126 | { | 126 | { |
127 | LogAssetLoad(asset); | 127 | //LogAssetLoad(asset); |
128 | 128 | ||
129 | lock (this) | 129 | lock (this) |
130 | { | 130 | { |
@@ -173,7 +173,7 @@ namespace OpenSim.Data.SQLite | |||
173 | 173 | ||
174 | int assetLength = (asset.Data != null) ? asset.Data.Length : 0; | 174 | int assetLength = (asset.Data != null) ? asset.Data.Length : 0; |
175 | 175 | ||
176 | m_log.Info("[ASSET DB]: " + | 176 | m_log.Debug("[ASSET DB]: " + |
177 | string.Format("Loaded {5} {4} Asset: [{0}][{3}] \"{1}\":{2} ({6} bytes)", | 177 | string.Format("Loaded {5} {4} Asset: [{0}][{3}] \"{1}\":{2} ({6} bytes)", |
178 | asset.FullID, asset.Name, asset.Description, asset.Type, | 178 | asset.FullID, asset.Name, asset.Description, asset.Type, |
179 | temporary, local, assetLength)); | 179 | temporary, local, assetLength)); |
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs index d22a3ec..1d17bb9 100644 --- a/OpenSim/Data/SQLite/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs | |||
@@ -336,7 +336,7 @@ namespace OpenSim.Data.SQLite | |||
336 | /// <param name="regionUUID">the region UUID</param> | 336 | /// <param name="regionUUID">the region UUID</param> |
337 | public void RemoveObject(UUID obj, UUID regionUUID) | 337 | public void RemoveObject(UUID obj, UUID regionUUID) |
338 | { | 338 | { |
339 | m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); | 339 | // m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); |
340 | 340 | ||
341 | DataTable prims = ds.Tables["prims"]; | 341 | DataTable prims = ds.Tables["prims"]; |
342 | DataTable shapes = ds.Tables["primshapes"]; | 342 | DataTable shapes = ds.Tables["primshapes"]; |
@@ -638,29 +638,29 @@ namespace OpenSim.Data.SQLite | |||
638 | DataTable land = ds.Tables["land"]; | 638 | DataTable land = ds.Tables["land"]; |
639 | DataTable landaccesslist = ds.Tables["landaccesslist"]; | 639 | DataTable landaccesslist = ds.Tables["landaccesslist"]; |
640 | 640 | ||
641 | DataRow landRow = land.Rows.Find(parcel.landData.GlobalID.ToString()); | 641 | DataRow landRow = land.Rows.Find(parcel.LandData.GlobalID.ToString()); |
642 | if (landRow == null) | 642 | if (landRow == null) |
643 | { | 643 | { |
644 | landRow = land.NewRow(); | 644 | landRow = land.NewRow(); |
645 | fillLandRow(landRow, parcel.landData, parcel.regionUUID); | 645 | fillLandRow(landRow, parcel.LandData, parcel.RegionUUID); |
646 | land.Rows.Add(landRow); | 646 | land.Rows.Add(landRow); |
647 | } | 647 | } |
648 | else | 648 | else |
649 | { | 649 | { |
650 | fillLandRow(landRow, parcel.landData, parcel.regionUUID); | 650 | fillLandRow(landRow, parcel.LandData, parcel.RegionUUID); |
651 | } | 651 | } |
652 | 652 | ||
653 | // I know this caused someone issues before, but OpenSim is unusable if we leave this stuff around | 653 | // I know this caused someone issues before, but OpenSim is unusable if we leave this stuff around |
654 | using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn)) | 654 | using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn)) |
655 | { | 655 | { |
656 | cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.landData.GlobalID.ToString())); | 656 | cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString())); |
657 | cmd.ExecuteNonQuery(); | 657 | cmd.ExecuteNonQuery(); |
658 | } | 658 | } |
659 | 659 | ||
660 | foreach (ParcelManager.ParcelAccessEntry entry in parcel.landData.ParcelAccessList) | 660 | foreach (ParcelManager.ParcelAccessEntry entry in parcel.LandData.ParcelAccessList) |
661 | { | 661 | { |
662 | DataRow newAccessRow = landaccesslist.NewRow(); | 662 | DataRow newAccessRow = landaccesslist.NewRow(); |
663 | fillLandAccessRow(newAccessRow, entry, parcel.landData.GlobalID); | 663 | fillLandAccessRow(newAccessRow, entry, parcel.LandData.GlobalID); |
664 | landaccesslist.Rows.Add(newAccessRow); | 664 | landaccesslist.Rows.Add(newAccessRow); |
665 | } | 665 | } |
666 | } | 666 | } |
diff --git a/OpenSim/Framework/Serialization/ArchiveConstants.cs b/OpenSim/Framework/Serialization/ArchiveConstants.cs index f6dedec..1cd80db 100644 --- a/OpenSim/Framework/Serialization/ArchiveConstants.cs +++ b/OpenSim/Framework/Serialization/ArchiveConstants.cs | |||
@@ -66,6 +66,11 @@ namespace OpenSim.Framework.Serialization | |||
66 | public const string SETTINGS_PATH = "settings/"; | 66 | public const string SETTINGS_PATH = "settings/"; |
67 | 67 | ||
68 | /// <value> | 68 | /// <value> |
69 | /// Path for region settings. | ||
70 | /// </value> | ||
71 | public const string LANDDATA_PATH = "landdata/"; | ||
72 | |||
73 | /// <value> | ||
69 | /// Path for user profiles | 74 | /// Path for user profiles |
70 | /// </value> | 75 | /// </value> |
71 | public const string USERS_PATH = "userprofiles/"; | 76 | public const string USERS_PATH = "userprofiles/"; |
diff --git a/OpenSim/Framework/Serialization/TarArchiveWriter.cs b/OpenSim/Framework/Serialization/TarArchiveWriter.cs index 7040870..20d0f7e 100644 --- a/OpenSim/Framework/Serialization/TarArchiveWriter.cs +++ b/OpenSim/Framework/Serialization/TarArchiveWriter.cs | |||
@@ -40,6 +40,7 @@ namespace OpenSim.Framework.Serialization | |||
40 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 40 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
41 | 41 | ||
42 | protected static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); | 42 | protected static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); |
43 | protected static UTF8Encoding m_utf8Encoding = new UTF8Encoding(); | ||
43 | 44 | ||
44 | /// <summary> | 45 | /// <summary> |
45 | /// Binary writer for the underlying stream | 46 | /// Binary writer for the underlying stream |
@@ -71,7 +72,7 @@ namespace OpenSim.Framework.Serialization | |||
71 | /// <param name="data"></param> | 72 | /// <param name="data"></param> |
72 | public void WriteFile(string filePath, string data) | 73 | public void WriteFile(string filePath, string data) |
73 | { | 74 | { |
74 | WriteFile(filePath, m_asciiEncoding.GetBytes(data)); | 75 | WriteFile(filePath, m_utf8Encoding.GetBytes(data)); |
75 | } | 76 | } |
76 | 77 | ||
77 | /// <summary> | 78 | /// <summary> |
diff --git a/OpenSim/Grid/MessagingServer.Modules/MessageService.cs b/OpenSim/Grid/MessagingServer.Modules/MessageService.cs index 6f2c1ba..df5eaab 100644 --- a/OpenSim/Grid/MessagingServer.Modules/MessageService.cs +++ b/OpenSim/Grid/MessagingServer.Modules/MessageService.cs | |||
@@ -324,44 +324,53 @@ namespace OpenSim.Grid.MessagingServer.Modules | |||
324 | /// <returns></returns> | 324 | /// <returns></returns> |
325 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request, IPEndPoint remoteClient) | 325 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request, IPEndPoint remoteClient) |
326 | { | 326 | { |
327 | Hashtable requestData = (Hashtable)request.Params[0]; | 327 | try |
328 | { | ||
329 | Hashtable requestData = (Hashtable)request.Params[0]; | ||
330 | |||
331 | AgentCircuitData agentData = new AgentCircuitData(); | ||
332 | agentData.SessionID = new UUID((string)requestData["sessionid"]); | ||
333 | agentData.SecureSessionID = new UUID((string)requestData["secure_session_id"]); | ||
334 | agentData.firstname = (string)requestData["firstname"]; | ||
335 | agentData.lastname = (string)requestData["lastname"]; | ||
336 | agentData.AgentID = new UUID((string)requestData["agentid"]); | ||
337 | agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); | ||
338 | agentData.CapsPath = (string)requestData["caps_path"]; | ||
339 | |||
340 | if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1")) | ||
341 | { | ||
342 | agentData.child = true; | ||
343 | } | ||
344 | else | ||
345 | { | ||
346 | agentData.startpos = | ||
347 | new Vector3(Convert.ToSingle(requestData["positionx"]), | ||
348 | Convert.ToSingle(requestData["positiony"]), | ||
349 | Convert.ToSingle(requestData["positionz"])); | ||
350 | agentData.child = false; | ||
351 | } | ||
328 | 352 | ||
329 | AgentCircuitData agentData = new AgentCircuitData(); | 353 | ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); |
330 | agentData.SessionID = new UUID((string)requestData["sessionid"]); | 354 | |
331 | agentData.SecureSessionID = new UUID((string)requestData["secure_session_id"]); | 355 | m_log.InfoFormat("[LOGON]: User {0} {1} logged into region {2} as {3} agent, building indexes for user", |
332 | agentData.firstname = (string)requestData["firstname"]; | 356 | agentData.firstname, agentData.lastname, regionHandle, agentData.child ? "child" : "root"); |
333 | agentData.lastname = (string)requestData["lastname"]; | 357 | |
334 | agentData.AgentID = new UUID((string)requestData["agentid"]); | 358 | UserPresenceData up = new UserPresenceData(); |
335 | agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); | 359 | up.agentData = agentData; |
336 | agentData.CapsPath = (string)requestData["caps_path"]; | 360 | up.friendData = GetUserFriendList(agentData.AgentID); |
361 | up.regionData = m_regionModule.GetRegionInfo(regionHandle); | ||
362 | up.OnlineYN = true; | ||
363 | up.lookupUserRegionYN = false; | ||
364 | ProcessFriendListSubscriptions(up); | ||
337 | 365 | ||
338 | if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1")) | ||
339 | { | ||
340 | agentData.child = true; | ||
341 | } | 366 | } |
342 | else | 367 | catch (Exception e) |
343 | { | 368 | { |
344 | agentData.startpos = | 369 | m_log.WarnFormat("[LOGIN]: Exception on UserLoggedOn: {0}", e); |
345 | new Vector3(Convert.ToSingle(requestData["positionx"]), | ||
346 | Convert.ToSingle(requestData["positiony"]), | ||
347 | Convert.ToSingle(requestData["positionz"])); | ||
348 | agentData.child = false; | ||
349 | } | 370 | } |
350 | 371 | ||
351 | ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); | ||
352 | |||
353 | m_log.InfoFormat("[LOGON]: User {0} {1} logged into region {2} as {3} agent, building indexes for user", | ||
354 | agentData.firstname, agentData.lastname, regionHandle, agentData.child ? "child" : "root"); | ||
355 | |||
356 | UserPresenceData up = new UserPresenceData(); | ||
357 | up.agentData = agentData; | ||
358 | up.friendData = GetUserFriendList(agentData.AgentID); | ||
359 | up.regionData = m_regionModule.GetRegionInfo(regionHandle); | ||
360 | up.OnlineYN = true; | ||
361 | up.lookupUserRegionYN = false; | ||
362 | ProcessFriendListSubscriptions(up); | ||
363 | |||
364 | return new XmlRpcResponse(); | 372 | return new XmlRpcResponse(); |
373 | |||
365 | } | 374 | } |
366 | 375 | ||
367 | /// <summary> | 376 | /// <summary> |
@@ -372,11 +381,18 @@ namespace OpenSim.Grid.MessagingServer.Modules | |||
372 | /// <returns></returns> | 381 | /// <returns></returns> |
373 | public XmlRpcResponse UserLoggedOff(XmlRpcRequest request, IPEndPoint remoteClient) | 382 | public XmlRpcResponse UserLoggedOff(XmlRpcRequest request, IPEndPoint remoteClient) |
374 | { | 383 | { |
375 | m_log.Info("[USERLOGOFF]: User logged off called"); | 384 | try |
376 | Hashtable requestData = (Hashtable)request.Params[0]; | 385 | { |
386 | m_log.Info("[USERLOGOFF]: User logged off called"); | ||
387 | Hashtable requestData = (Hashtable)request.Params[0]; | ||
377 | 388 | ||
378 | UUID AgentID = new UUID((string)requestData["agentid"]); | 389 | UUID AgentID = new UUID((string)requestData["agentid"]); |
379 | ProcessLogOff(AgentID); | 390 | ProcessLogOff(AgentID); |
391 | } | ||
392 | catch (Exception e) | ||
393 | { | ||
394 | m_log.WarnFormat("[USERLOGOFF]: Exception on UserLoggedOff: {0}", e); | ||
395 | } | ||
380 | 396 | ||
381 | return new XmlRpcResponse(); | 397 | return new XmlRpcResponse(); |
382 | } | 398 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs b/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs index 87f137e..9387bce 100644 --- a/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs | |||
@@ -146,7 +146,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule | |||
146 | private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID) | 146 | private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID) |
147 | { | 147 | { |
148 | ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); | 148 | ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); |
149 | if ((obj.landData.Flags & (uint)ParcelFlags.AllowDamage) != 0) | 149 | if ((obj.LandData.Flags & (uint)ParcelFlags.AllowDamage) != 0) |
150 | { | 150 | { |
151 | avatar.Invulnerable = false; | 151 | avatar.Invulnerable = false; |
152 | } | 152 | } |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 65f83fd..54acbc4 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -53,6 +53,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
53 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 53 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
54 | 54 | ||
55 | private static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); | 55 | private static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); |
56 | private static UTF8Encoding m_utf8Encoding = new UTF8Encoding(); | ||
56 | 57 | ||
57 | private Scene m_scene; | 58 | private Scene m_scene; |
58 | private Stream m_loadStream; | 59 | private Stream m_loadStream; |
@@ -100,6 +101,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
100 | int successfulAssetRestores = 0; | 101 | int successfulAssetRestores = 0; |
101 | int failedAssetRestores = 0; | 102 | int failedAssetRestores = 0; |
102 | List<string> serialisedSceneObjects = new List<string>(); | 103 | List<string> serialisedSceneObjects = new List<string>(); |
104 | List<string> serialisedParcels = new List<string>(); | ||
103 | string filePath = "NONE"; | 105 | string filePath = "NONE"; |
104 | 106 | ||
105 | try | 107 | try |
@@ -119,7 +121,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
119 | 121 | ||
120 | if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) | 122 | if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) |
121 | { | 123 | { |
122 | serialisedSceneObjects.Add(m_asciiEncoding.GetString(data)); | 124 | serialisedSceneObjects.Add(m_utf8Encoding.GetString(data)); |
123 | } | 125 | } |
124 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) | 126 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) |
125 | { | 127 | { |
@@ -136,6 +138,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
136 | { | 138 | { |
137 | LoadRegionSettings(filePath, data); | 139 | LoadRegionSettings(filePath, data); |
138 | } | 140 | } |
141 | else if (!m_merge && filePath.StartsWith(ArchiveConstants.LANDDATA_PATH)) | ||
142 | { | ||
143 | serialisedParcels.Add(m_utf8Encoding.GetString(data)); | ||
144 | } | ||
139 | else if (filePath == ArchiveConstants.CONTROL_FILE_PATH) | 145 | else if (filePath == ArchiveConstants.CONTROL_FILE_PATH) |
140 | { | 146 | { |
141 | LoadControlFile(filePath, data); | 147 | LoadControlFile(filePath, data); |
@@ -169,6 +175,26 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
169 | m_scene.DeleteAllSceneObjects(); | 175 | m_scene.DeleteAllSceneObjects(); |
170 | } | 176 | } |
171 | 177 | ||
178 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | ||
179 | // otherwise, use the master avatar uuid instead | ||
180 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
181 | |||
182 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | ||
183 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
184 | |||
185 | // Reload serialized parcels | ||
186 | m_log.InfoFormat("[ARCHIVER]: Loading {0} parcels. Please wait.", serialisedParcels.Count); | ||
187 | List<LandData> landData = new List<LandData>(); | ||
188 | foreach (string serialisedParcel in serialisedParcels) | ||
189 | { | ||
190 | LandData parcel = LandDataSerializer.Deserialize(serialisedParcel); | ||
191 | if (!ResolveUserUuid(parcel.OwnerID)) | ||
192 | parcel.OwnerID = masterAvatarId; | ||
193 | landData.Add(parcel); | ||
194 | } | ||
195 | m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData); | ||
196 | m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count); | ||
197 | |||
172 | // Reload serialized prims | 198 | // Reload serialized prims |
173 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); | 199 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); |
174 | 200 | ||
@@ -198,12 +224,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
198 | // to the same scene (when this is possible). | 224 | // to the same scene (when this is possible). |
199 | sceneObject.ResetIDs(); | 225 | sceneObject.ResetIDs(); |
200 | 226 | ||
201 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | ||
202 | // otherwise, use the master avatar uuid instead | ||
203 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
204 | |||
205 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | ||
206 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
207 | 227 | ||
208 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 228 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
209 | { | 229 | { |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs index a62c5b3..f039be8 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs | |||
@@ -102,6 +102,17 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
102 | 102 | ||
103 | m_log.InfoFormat("[ARCHIVER]: Added region settings to archive."); | 103 | m_log.InfoFormat("[ARCHIVER]: Added region settings to archive."); |
104 | 104 | ||
105 | // Write out land data (aka parcel) settings | ||
106 | List<ILandObject>landObjects = m_scene.LandChannel.AllParcels(); | ||
107 | foreach (ILandObject lo in landObjects) | ||
108 | { | ||
109 | LandData landData = lo.LandData; | ||
110 | string landDataPath = String.Format("{0}{1}.xml", ArchiveConstants.LANDDATA_PATH, | ||
111 | landData.GlobalID.ToString()); | ||
112 | m_archiveWriter.WriteFile(landDataPath, LandDataSerializer.Serialize(landData)); | ||
113 | } | ||
114 | m_log.InfoFormat("[ARCHIVER]: Added parcel settings to archive."); | ||
115 | |||
105 | // Write out terrain | 116 | // Write out terrain |
106 | string terrainPath | 117 | string terrainPath |
107 | = String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_scene.RegionInfo.RegionName); | 118 | = String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_scene.RegionInfo.RegionName); |
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 0d51cf4..4896edf 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -858,8 +858,30 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
858 | { | 858 | { |
859 | if (y == -1 || m_scene.RegionInfo.RegionLocY == y) | 859 | if (y == -1 || m_scene.RegionInfo.RegionLocY == y) |
860 | { | 860 | { |
861 | m_log.Debug("[ESTATEMODULE] Setting terrain textures for " + m_scene.RegionInfo.RegionName); | 861 | int corner = int.Parse(num); |
862 | setEstateTerrainBaseTexture(null, int.Parse(num), UUID.Parse(uuid)); | 862 | UUID texture = UUID.Parse(uuid); |
863 | |||
864 | m_log.Debug("[ESTATEMODULE] Setting terrain textures for " + m_scene.RegionInfo.RegionName + | ||
865 | string.Format(" (C#{0} = {1})", corner, texture)); | ||
866 | |||
867 | switch (corner) | ||
868 | { | ||
869 | case 0: | ||
870 | m_scene.RegionInfo.RegionSettings.TerrainTexture1 = texture; | ||
871 | break; | ||
872 | case 1: | ||
873 | m_scene.RegionInfo.RegionSettings.TerrainTexture2 = texture; | ||
874 | break; | ||
875 | case 2: | ||
876 | m_scene.RegionInfo.RegionSettings.TerrainTexture3 = texture; | ||
877 | break; | ||
878 | case 3: | ||
879 | m_scene.RegionInfo.RegionSettings.TerrainTexture4 = texture; | ||
880 | break; | ||
881 | } | ||
882 | m_scene.RegionInfo.RegionSettings.Save(); | ||
883 | sendRegionInfoPacketToAll(); | ||
884 | |||
863 | } | 885 | } |
864 | } | 886 | } |
865 | } | 887 | } |
@@ -876,8 +898,34 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
876 | { | 898 | { |
877 | if (y == -1 || m_scene.RegionInfo.RegionLocY == y) | 899 | if (y == -1 || m_scene.RegionInfo.RegionLocY == y) |
878 | { | 900 | { |
879 | m_log.Debug("[ESTATEMODULE] Setting terrain heights " + m_scene.RegionInfo.RegionName); | 901 | int corner = int.Parse(num); |
880 | setEstateTerrainTextureHeights(null, int.Parse(num), float.Parse(min), float.Parse(max)); | 902 | float lowValue = float.Parse(min); |
903 | float highValue = float.Parse(max); | ||
904 | |||
905 | m_log.Debug("[ESTATEMODULE] Setting terrain heights " + m_scene.RegionInfo.RegionName + | ||
906 | string.Format(" (C{0}, {1}-{2}", corner, lowValue, highValue)); | ||
907 | |||
908 | switch (corner) | ||
909 | { | ||
910 | case 0: | ||
911 | m_scene.RegionInfo.RegionSettings.Elevation1SW = lowValue; | ||
912 | m_scene.RegionInfo.RegionSettings.Elevation2SW = highValue; | ||
913 | break; | ||
914 | case 1: | ||
915 | m_scene.RegionInfo.RegionSettings.Elevation1NW = lowValue; | ||
916 | m_scene.RegionInfo.RegionSettings.Elevation2NW = highValue; | ||
917 | break; | ||
918 | case 2: | ||
919 | m_scene.RegionInfo.RegionSettings.Elevation1SE = lowValue; | ||
920 | m_scene.RegionInfo.RegionSettings.Elevation2SE = highValue; | ||
921 | break; | ||
922 | case 3: | ||
923 | m_scene.RegionInfo.RegionSettings.Elevation1NE = lowValue; | ||
924 | m_scene.RegionInfo.RegionSettings.Elevation2NE = highValue; | ||
925 | break; | ||
926 | } | ||
927 | m_scene.RegionInfo.RegionSettings.Save(); | ||
928 | sendRegionHandshakeToAll(); | ||
881 | } | 929 | } |
882 | } | 930 | } |
883 | } | 931 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs index 8767332..4ed23bb 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs | |||
@@ -82,7 +82,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
82 | } | 82 | } |
83 | 83 | ||
84 | ILandObject obj = new LandObject(UUID.Zero, false, m_scene); | 84 | ILandObject obj = new LandObject(UUID.Zero, false, m_scene); |
85 | obj.landData.Name = "NO LAND"; | 85 | obj.LandData.Name = "NO LAND"; |
86 | return obj; | 86 | return obj; |
87 | } | 87 | } |
88 | 88 | ||
@@ -103,7 +103,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
103 | } | 103 | } |
104 | 104 | ||
105 | ILandObject obj = new LandObject(UUID.Zero, false, m_scene); | 105 | ILandObject obj = new LandObject(UUID.Zero, false, m_scene); |
106 | obj.landData.Name = "NO LAND"; | 106 | obj.LandData.Name = "NO LAND"; |
107 | return obj; | 107 | return obj; |
108 | } | 108 | } |
109 | 109 | ||
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index fdff61e..d2b5cb1 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -47,9 +47,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
47 | { | 47 | { |
48 | // used for caching | 48 | // used for caching |
49 | internal class ExtendedLandData { | 49 | internal class ExtendedLandData { |
50 | public LandData landData; | 50 | public LandData LandData; |
51 | public ulong regionHandle; | 51 | public ulong RegionHandle; |
52 | public uint x, y; | 52 | public uint X, Y; |
53 | } | 53 | } |
54 | 54 | ||
55 | public class LandManagementModule : INonSharedRegionModule | 55 | public class LandManagementModule : INonSharedRegionModule |
@@ -191,7 +191,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
191 | { | 191 | { |
192 | if (m_landList.ContainsKey(local_id)) | 192 | if (m_landList.ContainsKey(local_id)) |
193 | { | 193 | { |
194 | m_landList[local_id].landData = newData; | 194 | m_landList[local_id].LandData = newData; |
195 | m_scene.EventManager.TriggerLandObjectUpdated((uint)local_id, m_landList[local_id]); | 195 | m_scene.EventManager.TriggerLandObjectUpdated((uint)local_id, m_landList[local_id]); |
196 | } | 196 | } |
197 | } | 197 | } |
@@ -218,12 +218,12 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
218 | 218 | ||
219 | ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene); | 219 | ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene); |
220 | 220 | ||
221 | fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); | 221 | fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); |
222 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 222 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
223 | fullSimParcel.landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | 223 | fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
224 | else | 224 | else |
225 | fullSimParcel.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 225 | fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
226 | fullSimParcel.landData.ClaimDate = Util.UnixTimeSinceEpoch(); | 226 | fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch(); |
227 | AddLandObject(fullSimParcel); | 227 | AddLandObject(fullSimParcel); |
228 | } | 228 | } |
229 | 229 | ||
@@ -289,11 +289,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
289 | { | 289 | { |
290 | if (avatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT) | 290 | if (avatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT) |
291 | { | 291 | { |
292 | if (parcelAvatarIsEntering.isBannedFromLand(avatar.UUID)) | 292 | if (parcelAvatarIsEntering.IsBannedFromLand(avatar.UUID)) |
293 | { | 293 | { |
294 | SendYouAreBannedNotice(avatar); | 294 | SendYouAreBannedNotice(avatar); |
295 | } | 295 | } |
296 | else if (parcelAvatarIsEntering.isRestrictedFromLand(avatar.UUID)) | 296 | else if (parcelAvatarIsEntering.IsRestrictedFromLand(avatar.UUID)) |
297 | { | 297 | { |
298 | avatar.ControllingClient.SendAlertMessage( | 298 | avatar.ControllingClient.SendAlertMessage( |
299 | "You are not allowed on this parcel because the land owner has restricted access. For now, you can enter, but please respect the land owner's decisions (or he can ban you!)."); | 299 | "You are not allowed on this parcel because the land owner has restricted access. For now, you can enter, but please respect the land owner's decisions (or he can ban you!)."); |
@@ -321,14 +321,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
321 | List<ILandObject> checkLandParcels = ParcelsNearPoint(presence.AbsolutePosition); | 321 | List<ILandObject> checkLandParcels = ParcelsNearPoint(presence.AbsolutePosition); |
322 | foreach (ILandObject checkBan in checkLandParcels) | 322 | foreach (ILandObject checkBan in checkLandParcels) |
323 | { | 323 | { |
324 | if (checkBan.isBannedFromLand(avatar.AgentId)) | 324 | if (checkBan.IsBannedFromLand(avatar.AgentId)) |
325 | { | 325 | { |
326 | checkBan.sendLandProperties((int)ParcelPropertiesStatus.CollisionBanned, false, (int)ParcelResult.Single, avatar); | 326 | checkBan.SendLandProperties((int)ParcelPropertiesStatus.CollisionBanned, false, (int)ParcelResult.Single, avatar); |
327 | return; //Only send one | 327 | return; //Only send one |
328 | } | 328 | } |
329 | if (checkBan.isRestrictedFromLand(avatar.AgentId)) | 329 | if (checkBan.IsRestrictedFromLand(avatar.AgentId)) |
330 | { | 330 | { |
331 | checkBan.sendLandProperties((int)ParcelPropertiesStatus.CollisionNotOnAccessList, false, (int)ParcelResult.Single, avatar); | 331 | checkBan.SendLandProperties((int)ParcelPropertiesStatus.CollisionNotOnAccessList, false, (int)ParcelResult.Single, avatar); |
332 | return; //Only send one | 332 | return; //Only send one |
333 | } | 333 | } |
334 | } | 334 | } |
@@ -348,19 +348,19 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
348 | { | 348 | { |
349 | if (!avatar.IsChildAgent) | 349 | if (!avatar.IsChildAgent) |
350 | { | 350 | { |
351 | over.sendLandUpdateToClient(avatar.ControllingClient); | 351 | over.SendLandUpdateToClient(avatar.ControllingClient); |
352 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.LocalID, | 352 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.LandData.LocalID, |
353 | m_scene.RegionInfo.RegionID); | 353 | m_scene.RegionInfo.RegionID); |
354 | } | 354 | } |
355 | } | 355 | } |
356 | 356 | ||
357 | if (avatar.currentParcelUUID != over.landData.GlobalID) | 357 | if (avatar.currentParcelUUID != over.LandData.GlobalID) |
358 | { | 358 | { |
359 | if (!avatar.IsChildAgent) | 359 | if (!avatar.IsChildAgent) |
360 | { | 360 | { |
361 | over.sendLandUpdateToClient(avatar.ControllingClient); | 361 | over.SendLandUpdateToClient(avatar.ControllingClient); |
362 | avatar.currentParcelUUID = over.landData.GlobalID; | 362 | avatar.currentParcelUUID = over.LandData.GlobalID; |
363 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.LocalID, | 363 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.LandData.LocalID, |
364 | m_scene.RegionInfo.RegionID); | 364 | m_scene.RegionInfo.RegionID); |
365 | } | 365 | } |
366 | } | 366 | } |
@@ -386,16 +386,16 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
386 | if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && | 386 | if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && |
387 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) | 387 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) |
388 | { | 388 | { |
389 | EventManagerOnAvatarEnteringNewParcel(clientAvatar, parcel.landData.LocalID, | 389 | EventManagerOnAvatarEnteringNewParcel(clientAvatar, parcel.LandData.LocalID, |
390 | m_scene.RegionInfo.RegionID); | 390 | m_scene.RegionInfo.RegionID); |
391 | //They are going under the safety line! | 391 | //They are going under the safety line! |
392 | if (!parcel.isBannedFromLand(clientAvatar.UUID)) | 392 | if (!parcel.IsBannedFromLand(clientAvatar.UUID)) |
393 | { | 393 | { |
394 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; | 394 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; |
395 | } | 395 | } |
396 | } | 396 | } |
397 | else if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && | 397 | else if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && |
398 | parcel.isBannedFromLand(clientAvatar.UUID)) | 398 | parcel.IsBannedFromLand(clientAvatar.UUID)) |
399 | { | 399 | { |
400 | SendYouAreBannedNotice(clientAvatar); | 400 | SendYouAreBannedNotice(clientAvatar); |
401 | } | 401 | } |
@@ -409,7 +409,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
409 | ILandObject over = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); | 409 | ILandObject over = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); |
410 | if (over != null) | 410 | if (over != null) |
411 | { | 411 | { |
412 | if (!over.isBannedFromLand(avatar.UUID) || avatar.AbsolutePosition.Z >= LandChannel.BAN_LINE_SAFETY_HIEGHT) | 412 | if (!over.IsBannedFromLand(avatar.UUID) || avatar.AbsolutePosition.Z >= LandChannel.BAN_LINE_SAFETY_HIEGHT) |
413 | { | 413 | { |
414 | avatar.lastKnownAllowedPosition = | 414 | avatar.lastKnownAllowedPosition = |
415 | new Vector3(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y, avatar.AbsolutePosition.Z); | 415 | new Vector3(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y, avatar.AbsolutePosition.Z); |
@@ -429,7 +429,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
429 | 429 | ||
430 | if (land != null) | 430 | if (land != null) |
431 | { | 431 | { |
432 | m_landList[landLocalID].sendAccessList(agentID, sessionID, flags, sequenceID, remote_client); | 432 | m_landList[landLocalID].SendAccessList(agentID, sessionID, flags, sequenceID, remote_client); |
433 | } | 433 | } |
434 | } | 434 | } |
435 | 435 | ||
@@ -445,9 +445,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
445 | 445 | ||
446 | if (land != null) | 446 | if (land != null) |
447 | { | 447 | { |
448 | if (agentID == land.landData.OwnerID) | 448 | if (agentID == land.LandData.OwnerID) |
449 | { | 449 | { |
450 | land.updateAccessList(flags, entries, remote_client); | 450 | land.UpdateAccessList(flags, entries, remote_client); |
451 | } | 451 | } |
452 | } | 452 | } |
453 | else | 453 | else |
@@ -476,9 +476,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
476 | lock (m_landList) | 476 | lock (m_landList) |
477 | { | 477 | { |
478 | int newLandLocalID = ++m_lastLandLocalID; | 478 | int newLandLocalID = ++m_lastLandLocalID; |
479 | new_land.landData.LocalID = newLandLocalID; | 479 | new_land.LandData.LocalID = newLandLocalID; |
480 | 480 | ||
481 | bool[,] landBitmap = new_land.getLandBitmap(); | 481 | bool[,] landBitmap = new_land.GetLandBitmap(); |
482 | for (int x = 0; x < landArrayMax; x++) | 482 | for (int x = 0; x < landArrayMax; x++) |
483 | { | 483 | { |
484 | for (int y = 0; y < landArrayMax; y++) | 484 | for (int y = 0; y < landArrayMax; y++) |
@@ -493,7 +493,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
493 | m_landList.Add(newLandLocalID, new_land); | 493 | m_landList.Add(newLandLocalID, new_land); |
494 | } | 494 | } |
495 | 495 | ||
496 | new_land.forceUpdateLandInfo(); | 496 | new_land.ForceUpdateLandInfo(); |
497 | m_scene.EventManager.TriggerLandObjectAdded(new_land); | 497 | m_scene.EventManager.TriggerLandObjectAdded(new_land); |
498 | return new_land; | 498 | return new_land; |
499 | } | 499 | } |
@@ -520,14 +520,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
520 | } | 520 | } |
521 | } | 521 | } |
522 | 522 | ||
523 | m_scene.EventManager.TriggerLandObjectRemoved(m_landList[local_id].landData.GlobalID); | 523 | m_scene.EventManager.TriggerLandObjectRemoved(m_landList[local_id].LandData.GlobalID); |
524 | m_landList.Remove(local_id); | 524 | m_landList.Remove(local_id); |
525 | } | 525 | } |
526 | } | 526 | } |
527 | 527 | ||
528 | private void performFinalLandJoin(ILandObject master, ILandObject slave) | 528 | private void performFinalLandJoin(ILandObject master, ILandObject slave) |
529 | { | 529 | { |
530 | bool[,] landBitmapSlave = slave.getLandBitmap(); | 530 | bool[,] landBitmapSlave = slave.GetLandBitmap(); |
531 | lock (m_landList) | 531 | lock (m_landList) |
532 | { | 532 | { |
533 | for (int x = 0; x < 64; x++) | 533 | for (int x = 0; x < 64; x++) |
@@ -536,14 +536,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
536 | { | 536 | { |
537 | if (landBitmapSlave[x, y]) | 537 | if (landBitmapSlave[x, y]) |
538 | { | 538 | { |
539 | m_landIDList[x, y] = master.landData.LocalID; | 539 | m_landIDList[x, y] = master.LandData.LocalID; |
540 | } | 540 | } |
541 | } | 541 | } |
542 | } | 542 | } |
543 | } | 543 | } |
544 | 544 | ||
545 | removeLandObject(slave.landData.LocalID); | 545 | removeLandObject(slave.LandData.LocalID); |
546 | UpdateLandObject(master.landData.LocalID, master.landData); | 546 | UpdateLandObject(master.LandData.LocalID, master.LandData); |
547 | } | 547 | } |
548 | 548 | ||
549 | public ILandObject GetLandObject(int parcelLocalID) | 549 | public ILandObject GetLandObject(int parcelLocalID) |
@@ -630,7 +630,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
630 | { | 630 | { |
631 | foreach (LandObject p in m_landList.Values) | 631 | foreach (LandObject p in m_landList.Values) |
632 | { | 632 | { |
633 | p.resetLandPrimCounts(); | 633 | p.ResetLandPrimCounts(); |
634 | } | 634 | } |
635 | } | 635 | } |
636 | } | 636 | } |
@@ -651,7 +651,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
651 | ILandObject landUnderPrim = GetLandObject(position.X, position.Y); | 651 | ILandObject landUnderPrim = GetLandObject(position.X, position.Y); |
652 | if (landUnderPrim != null) | 652 | if (landUnderPrim != null) |
653 | { | 653 | { |
654 | landUnderPrim.addPrimToCount(obj); | 654 | landUnderPrim.AddPrimToCount(obj); |
655 | } | 655 | } |
656 | } | 656 | } |
657 | 657 | ||
@@ -662,7 +662,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
662 | { | 662 | { |
663 | foreach (LandObject p in m_landList.Values) | 663 | foreach (LandObject p in m_landList.Values) |
664 | { | 664 | { |
665 | p.removePrimFromCount(obj); | 665 | p.RemovePrimFromCount(obj); |
666 | } | 666 | } |
667 | } | 667 | } |
668 | } | 668 | } |
@@ -675,15 +675,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
675 | { | 675 | { |
676 | foreach (LandObject p in m_landList.Values) | 676 | foreach (LandObject p in m_landList.Values) |
677 | { | 677 | { |
678 | if (!landOwnersAndParcels.ContainsKey(p.landData.OwnerID)) | 678 | if (!landOwnersAndParcels.ContainsKey(p.LandData.OwnerID)) |
679 | { | 679 | { |
680 | List<LandObject> tempList = new List<LandObject>(); | 680 | List<LandObject> tempList = new List<LandObject>(); |
681 | tempList.Add(p); | 681 | tempList.Add(p); |
682 | landOwnersAndParcels.Add(p.landData.OwnerID, tempList); | 682 | landOwnersAndParcels.Add(p.LandData.OwnerID, tempList); |
683 | } | 683 | } |
684 | else | 684 | else |
685 | { | 685 | { |
686 | landOwnersAndParcels[p.landData.OwnerID].Add(p); | 686 | landOwnersAndParcels[p.LandData.OwnerID].Add(p); |
687 | } | 687 | } |
688 | } | 688 | } |
689 | } | 689 | } |
@@ -694,15 +694,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
694 | int simPrims = 0; | 694 | int simPrims = 0; |
695 | foreach (LandObject p in landOwnersAndParcels[owner]) | 695 | foreach (LandObject p in landOwnersAndParcels[owner]) |
696 | { | 696 | { |
697 | simArea += p.landData.Area; | 697 | simArea += p.LandData.Area; |
698 | simPrims += p.landData.OwnerPrims + p.landData.OtherPrims + p.landData.GroupPrims + | 698 | simPrims += p.LandData.OwnerPrims + p.LandData.OtherPrims + p.LandData.GroupPrims + |
699 | p.landData.SelectedPrims; | 699 | p.LandData.SelectedPrims; |
700 | } | 700 | } |
701 | 701 | ||
702 | foreach (LandObject p in landOwnersAndParcels[owner]) | 702 | foreach (LandObject p in landOwnersAndParcels[owner]) |
703 | { | 703 | { |
704 | p.landData.SimwideArea = simArea; | 704 | p.LandData.SimwideArea = simArea; |
705 | p.landData.SimwidePrims = simPrims; | 705 | p.LandData.SimwidePrims = simPrims; |
706 | } | 706 | } |
707 | } | 707 | } |
708 | } | 708 | } |
@@ -779,26 +779,26 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
779 | 779 | ||
780 | //Lets create a new land object with bitmap activated at that point (keeping the old land objects info) | 780 | //Lets create a new land object with bitmap activated at that point (keeping the old land objects info) |
781 | ILandObject newLand = startLandObject.Copy(); | 781 | ILandObject newLand = startLandObject.Copy(); |
782 | newLand.landData.Name = newLand.landData.Name; | 782 | newLand.LandData.Name = newLand.LandData.Name; |
783 | newLand.landData.GlobalID = UUID.Random(); | 783 | newLand.LandData.GlobalID = UUID.Random(); |
784 | 784 | ||
785 | newLand.setLandBitmap(newLand.getSquareLandBitmap(start_x, start_y, end_x, end_y)); | 785 | newLand.SetLandBitmap(newLand.GetSquareLandBitmap(start_x, start_y, end_x, end_y)); |
786 | 786 | ||
787 | //Now, lets set the subdivision area of the original to false | 787 | //Now, lets set the subdivision area of the original to false |
788 | int startLandObjectIndex = startLandObject.landData.LocalID; | 788 | int startLandObjectIndex = startLandObject.LandData.LocalID; |
789 | lock (m_landList) | 789 | lock (m_landList) |
790 | { | 790 | { |
791 | m_landList[startLandObjectIndex].setLandBitmap( | 791 | m_landList[startLandObjectIndex].SetLandBitmap( |
792 | newLand.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false)); | 792 | newLand.ModifyLandBitmapSquare(startLandObject.GetLandBitmap(), start_x, start_y, end_x, end_y, false)); |
793 | m_landList[startLandObjectIndex].forceUpdateLandInfo(); | 793 | m_landList[startLandObjectIndex].ForceUpdateLandInfo(); |
794 | } | 794 | } |
795 | 795 | ||
796 | EventManagerOnParcelPrimCountTainted(); | 796 | EventManagerOnParcelPrimCountTainted(); |
797 | 797 | ||
798 | //Now add the new land object | 798 | //Now add the new land object |
799 | ILandObject result = AddLandObject(newLand); | 799 | ILandObject result = AddLandObject(newLand); |
800 | UpdateLandObject(startLandObject.landData.LocalID, startLandObject.landData); | 800 | UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData); |
801 | result.sendLandUpdateToAvatarsOverMe(); | 801 | result.SendLandUpdateToAvatarsOverMe(); |
802 | } | 802 | } |
803 | 803 | ||
804 | /// <summary> | 804 | /// <summary> |
@@ -846,7 +846,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
846 | } | 846 | } |
847 | foreach (ILandObject p in selectedLandObjects) | 847 | foreach (ILandObject p in selectedLandObjects) |
848 | { | 848 | { |
849 | if (p.landData.OwnerID != masterLandObject.landData.OwnerID) | 849 | if (p.LandData.OwnerID != masterLandObject.LandData.OwnerID) |
850 | { | 850 | { |
851 | return; | 851 | return; |
852 | } | 852 | } |
@@ -856,14 +856,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
856 | { | 856 | { |
857 | foreach (ILandObject slaveLandObject in selectedLandObjects) | 857 | foreach (ILandObject slaveLandObject in selectedLandObjects) |
858 | { | 858 | { |
859 | m_landList[masterLandObject.landData.LocalID].setLandBitmap( | 859 | m_landList[masterLandObject.LandData.LocalID].SetLandBitmap( |
860 | slaveLandObject.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap())); | 860 | slaveLandObject.MergeLandBitmaps(masterLandObject.GetLandBitmap(), slaveLandObject.GetLandBitmap())); |
861 | performFinalLandJoin(masterLandObject, slaveLandObject); | 861 | performFinalLandJoin(masterLandObject, slaveLandObject); |
862 | } | 862 | } |
863 | } | 863 | } |
864 | EventManagerOnParcelPrimCountTainted(); | 864 | EventManagerOnParcelPrimCountTainted(); |
865 | 865 | ||
866 | masterLandObject.sendLandUpdateToAvatarsOverMe(); | 866 | masterLandObject.SendLandUpdateToAvatarsOverMe(); |
867 | } | 867 | } |
868 | 868 | ||
869 | #endregion | 869 | #endregion |
@@ -894,19 +894,19 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
894 | 894 | ||
895 | if (currentParcelBlock != null) | 895 | if (currentParcelBlock != null) |
896 | { | 896 | { |
897 | if (currentParcelBlock.landData.OwnerID == remote_client.AgentId) | 897 | if (currentParcelBlock.LandData.OwnerID == remote_client.AgentId) |
898 | { | 898 | { |
899 | //Owner Flag | 899 | //Owner Flag |
900 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER); | 900 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER); |
901 | } | 901 | } |
902 | else if (currentParcelBlock.landData.SalePrice > 0 && | 902 | else if (currentParcelBlock.LandData.SalePrice > 0 && |
903 | (currentParcelBlock.landData.AuthBuyerID == UUID.Zero || | 903 | (currentParcelBlock.LandData.AuthBuyerID == UUID.Zero || |
904 | currentParcelBlock.landData.AuthBuyerID == remote_client.AgentId)) | 904 | currentParcelBlock.LandData.AuthBuyerID == remote_client.AgentId)) |
905 | { | 905 | { |
906 | //Sale Flag | 906 | //Sale Flag |
907 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_IS_FOR_SALE); | 907 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_IS_FOR_SALE); |
908 | } | 908 | } |
909 | else if (currentParcelBlock.landData.OwnerID == UUID.Zero) | 909 | else if (currentParcelBlock.LandData.OwnerID == UUID.Zero) |
910 | { | 910 | { |
911 | //Public Flag | 911 | //Public Flag |
912 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_PUBLIC); | 912 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_PUBLIC); |
@@ -980,7 +980,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
980 | { | 980 | { |
981 | if (!temp.Contains(currentParcel)) | 981 | if (!temp.Contains(currentParcel)) |
982 | { | 982 | { |
983 | currentParcel.forceUpdateLandInfo(); | 983 | currentParcel.ForceUpdateLandInfo(); |
984 | temp.Add(currentParcel); | 984 | temp.Add(currentParcel); |
985 | } | 985 | } |
986 | } | 986 | } |
@@ -996,7 +996,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
996 | 996 | ||
997 | for (int i = 0; i < temp.Count; i++) | 997 | for (int i = 0; i < temp.Count; i++) |
998 | { | 998 | { |
999 | temp[i].sendLandProperties(sequence_id, snap_selection, requestResult, remote_client); | 999 | temp[i].SendLandProperties(sequence_id, snap_selection, requestResult, remote_client); |
1000 | } | 1000 | } |
1001 | 1001 | ||
1002 | SendParcelOverlay(remote_client); | 1002 | SendParcelOverlay(remote_client); |
@@ -1010,7 +1010,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1010 | m_landList.TryGetValue(localID, out land); | 1010 | m_landList.TryGetValue(localID, out land); |
1011 | } | 1011 | } |
1012 | 1012 | ||
1013 | if (land != null) land.updateLandProperties(args, remote_client); | 1013 | if (land != null) land.UpdateLandProperties(args, remote_client); |
1014 | } | 1014 | } |
1015 | 1015 | ||
1016 | public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) | 1016 | public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) |
@@ -1026,7 +1026,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1026 | public void ClientOnParcelSelectObjects(int local_id, int request_type, | 1026 | public void ClientOnParcelSelectObjects(int local_id, int request_type, |
1027 | List<UUID> returnIDs, IClientAPI remote_client) | 1027 | List<UUID> returnIDs, IClientAPI remote_client) |
1028 | { | 1028 | { |
1029 | m_landList[local_id].sendForceObjectSelect(local_id, request_type, returnIDs, remote_client); | 1029 | m_landList[local_id].SendForceObjectSelect(local_id, request_type, returnIDs, remote_client); |
1030 | } | 1030 | } |
1031 | 1031 | ||
1032 | public void ClientOnParcelObjectOwnerRequest(int local_id, IClientAPI remote_client) | 1032 | public void ClientOnParcelObjectOwnerRequest(int local_id, IClientAPI remote_client) |
@@ -1039,7 +1039,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1039 | 1039 | ||
1040 | if (land != null) | 1040 | if (land != null) |
1041 | { | 1041 | { |
1042 | m_landList[local_id].sendLandObjectOwners(remote_client); | 1042 | m_landList[local_id].SendLandObjectOwners(remote_client); |
1043 | } | 1043 | } |
1044 | else | 1044 | else |
1045 | { | 1045 | { |
@@ -1059,10 +1059,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1059 | { | 1059 | { |
1060 | if (m_scene.Permissions.IsGod(remote_client.AgentId)) | 1060 | if (m_scene.Permissions.IsGod(remote_client.AgentId)) |
1061 | { | 1061 | { |
1062 | land.landData.OwnerID = ownerID; | 1062 | land.LandData.OwnerID = ownerID; |
1063 | 1063 | ||
1064 | m_scene.Broadcast(SendParcelOverlay); | 1064 | m_scene.Broadcast(SendParcelOverlay); |
1065 | land.sendLandUpdateToClient(remote_client); | 1065 | land.SendLandUpdateToClient(remote_client); |
1066 | } | 1066 | } |
1067 | } | 1067 | } |
1068 | } | 1068 | } |
@@ -1080,11 +1080,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1080 | if (m_scene.Permissions.CanAbandonParcel(remote_client.AgentId, land)) | 1080 | if (m_scene.Permissions.CanAbandonParcel(remote_client.AgentId, land)) |
1081 | { | 1081 | { |
1082 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 1082 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
1083 | land.landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | 1083 | land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
1084 | else | 1084 | else |
1085 | land.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 1085 | land.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
1086 | m_scene.Broadcast(SendParcelOverlay); | 1086 | m_scene.Broadcast(SendParcelOverlay); |
1087 | land.sendLandUpdateToClient(remote_client); | 1087 | land.SendLandUpdateToClient(remote_client); |
1088 | } | 1088 | } |
1089 | } | 1089 | } |
1090 | } | 1090 | } |
@@ -1102,13 +1102,13 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1102 | if (m_scene.Permissions.CanReclaimParcel(remote_client.AgentId, land)) | 1102 | if (m_scene.Permissions.CanReclaimParcel(remote_client.AgentId, land)) |
1103 | { | 1103 | { |
1104 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 1104 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
1105 | land.landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | 1105 | land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
1106 | else | 1106 | else |
1107 | land.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 1107 | land.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
1108 | land.landData.ClaimDate = Util.UnixTimeSinceEpoch(); | 1108 | land.LandData.ClaimDate = Util.UnixTimeSinceEpoch(); |
1109 | land.landData.IsGroupOwned = false; | 1109 | land.LandData.IsGroupOwned = false; |
1110 | m_scene.Broadcast(SendParcelOverlay); | 1110 | m_scene.Broadcast(SendParcelOverlay); |
1111 | land.sendLandUpdateToClient(remote_client); | 1111 | land.SendLandUpdateToClient(remote_client); |
1112 | } | 1112 | } |
1113 | } | 1113 | } |
1114 | } | 1114 | } |
@@ -1130,7 +1130,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1130 | 1130 | ||
1131 | if (land != null) | 1131 | if (land != null) |
1132 | { | 1132 | { |
1133 | land.updateLandSold(e.agentId, e.groupId, e.groupOwned, (uint)e.transactionID, e.parcelPrice, e.parcelArea); | 1133 | land.UpdateLandSold(e.agentId, e.groupId, e.groupOwned, (uint)e.transactionID, e.parcelPrice, e.parcelArea); |
1134 | } | 1134 | } |
1135 | } | 1135 | } |
1136 | } | 1136 | } |
@@ -1151,11 +1151,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1151 | 1151 | ||
1152 | if (lob != null) | 1152 | if (lob != null) |
1153 | { | 1153 | { |
1154 | UUID AuthorizedID = lob.landData.AuthBuyerID; | 1154 | UUID AuthorizedID = lob.LandData.AuthBuyerID; |
1155 | int saleprice = lob.landData.SalePrice; | 1155 | int saleprice = lob.LandData.SalePrice; |
1156 | UUID pOwnerID = lob.landData.OwnerID; | 1156 | UUID pOwnerID = lob.LandData.OwnerID; |
1157 | 1157 | ||
1158 | bool landforsale = ((lob.landData.Flags & | 1158 | bool landforsale = ((lob.LandData.Flags & |
1159 | (uint)(ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects)) != 0); | 1159 | (uint)(ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects)) != 0); |
1160 | if ((AuthorizedID == UUID.Zero || AuthorizedID == e.agentId) && e.parcelPrice >= saleprice && landforsale) | 1160 | if ((AuthorizedID == UUID.Zero || AuthorizedID == e.agentId) && e.parcelPrice >= saleprice && landforsale) |
1161 | { | 1161 | { |
@@ -1184,7 +1184,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1184 | 1184 | ||
1185 | if (land != null) | 1185 | if (land != null) |
1186 | { | 1186 | { |
1187 | land.deedToGroup(groupID); | 1187 | land.DeedToGroup(groupID); |
1188 | } | 1188 | } |
1189 | 1189 | ||
1190 | } | 1190 | } |
@@ -1203,8 +1203,8 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1203 | public void IncomingLandObjectFromStorage(LandData data) | 1203 | public void IncomingLandObjectFromStorage(LandData data) |
1204 | { | 1204 | { |
1205 | ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene); | 1205 | ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene); |
1206 | new_land.landData = data.Copy(); | 1206 | new_land.LandData = data.Copy(); |
1207 | new_land.setLandBitmapFromByteArray(); | 1207 | new_land.SetLandBitmapFromByteArray(); |
1208 | AddLandObject(new_land); | 1208 | AddLandObject(new_land); |
1209 | } | 1209 | } |
1210 | 1210 | ||
@@ -1218,7 +1218,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1218 | 1218 | ||
1219 | if (selectedParcel == null) return; | 1219 | if (selectedParcel == null) return; |
1220 | 1220 | ||
1221 | selectedParcel.returnLandObjects(returnType, agentIDs, taskIDs, remoteClient); | 1221 | selectedParcel.ReturnLandObjects(returnType, agentIDs, taskIDs, remoteClient); |
1222 | } | 1222 | } |
1223 | 1223 | ||
1224 | public void EventManagerOnNoLandDataFromStorage() | 1224 | public void EventManagerOnNoLandDataFromStorage() |
@@ -1234,7 +1234,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1234 | { | 1234 | { |
1235 | foreach (LandObject obj in m_landList.Values) | 1235 | foreach (LandObject obj in m_landList.Values) |
1236 | { | 1236 | { |
1237 | obj.setParcelObjectMaxOverride(overrideDel); | 1237 | obj.SetParcelObjectMaxOverride(overrideDel); |
1238 | } | 1238 | } |
1239 | } | 1239 | } |
1240 | } | 1240 | } |
@@ -1337,7 +1337,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1337 | return; | 1337 | return; |
1338 | } | 1338 | } |
1339 | 1339 | ||
1340 | remoteClient.SendParcelDwellReply(localID, selectedParcel.landData.GlobalID, selectedParcel.landData.Dwell); | 1340 | remoteClient.SendParcelDwellReply(localID, selectedParcel.LandData.GlobalID, selectedParcel.LandData.Dwell); |
1341 | } | 1341 | } |
1342 | 1342 | ||
1343 | private void ClientOnParcelInfoRequest(IClientAPI remoteClient, UUID parcelID) | 1343 | private void ClientOnParcelInfoRequest(IClientAPI remoteClient, UUID parcelID) |
@@ -1345,39 +1345,43 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1345 | if (parcelID == UUID.Zero) | 1345 | if (parcelID == UUID.Zero) |
1346 | return; | 1346 | return; |
1347 | 1347 | ||
1348 | ExtendedLandData data = (ExtendedLandData)parcelInfoCache.Get(parcelID.ToString(), delegate(string id) { | 1348 | ExtendedLandData data = |
1349 | UUID parcel = UUID.Zero; | 1349 | (ExtendedLandData)parcelInfoCache.Get(parcelID.ToString(), |
1350 | UUID.TryParse(id, out parcel); | 1350 | delegate(string id) |
1351 | // assume we've got the parcelID we just computed in RemoteParcelRequest | 1351 | { |
1352 | ExtendedLandData extLandData = new ExtendedLandData(); | 1352 | UUID parcel = UUID.Zero; |
1353 | Util.ParseFakeParcelID(parcel, out extLandData.regionHandle, out extLandData.x, out extLandData.y); | 1353 | UUID.TryParse(id, out parcel); |
1354 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", | 1354 | // assume we've got the parcelID we just computed in RemoteParcelRequest |
1355 | extLandData.regionHandle, extLandData.x, extLandData.y); | 1355 | ExtendedLandData extLandData = new ExtendedLandData(); |
1356 | 1356 | Util.ParseFakeParcelID(parcel, out extLandData.RegionHandle, | |
1357 | // for this region or for somewhere else? | 1357 | out extLandData.X, out extLandData.Y); |
1358 | if (extLandData.regionHandle == m_scene.RegionInfo.RegionHandle) | 1358 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", |
1359 | { | 1359 | extLandData.RegionHandle, extLandData.X, extLandData.Y); |
1360 | extLandData.landData = this.GetLandObject(extLandData.x, extLandData.y).landData; | 1360 | |
1361 | } | 1361 | // for this region or for somewhere else? |
1362 | else | 1362 | if (extLandData.RegionHandle == m_scene.RegionInfo.RegionHandle) |
1363 | { | 1363 | { |
1364 | ILandService landService = m_scene.RequestModuleInterface<ILandService>(); | 1364 | extLandData.LandData = this.GetLandObject(extLandData.X, extLandData.Y).LandData; |
1365 | extLandData.landData = landService.GetLandData(extLandData.regionHandle, | 1365 | } |
1366 | extLandData.x, | 1366 | else |
1367 | extLandData.y); | 1367 | { |
1368 | if (extLandData.landData == null) | 1368 | ILandService landService = m_scene.RequestModuleInterface<ILandService>(); |
1369 | { | 1369 | extLandData.LandData = landService.GetLandData(extLandData.RegionHandle, |
1370 | // we didn't find the region/land => don't cache | 1370 | extLandData.X, |
1371 | return null; | 1371 | extLandData.Y); |
1372 | } | 1372 | if (extLandData.LandData == null) |
1373 | } | 1373 | { |
1374 | return extLandData; | 1374 | // we didn't find the region/land => don't cache |
1375 | }); | 1375 | return null; |
1376 | } | ||
1377 | } | ||
1378 | return extLandData; | ||
1379 | }); | ||
1376 | 1380 | ||
1377 | if (data != null) // if we found some data, send it | 1381 | if (data != null) // if we found some data, send it |
1378 | { | 1382 | { |
1379 | GridRegion info; | 1383 | GridRegion info; |
1380 | if (data.regionHandle == m_scene.RegionInfo.RegionHandle) | 1384 | if (data.RegionHandle == m_scene.RegionInfo.RegionHandle) |
1381 | { | 1385 | { |
1382 | info = new GridRegion(m_scene.RegionInfo); | 1386 | info = new GridRegion(m_scene.RegionInfo); |
1383 | } | 1387 | } |
@@ -1385,18 +1389,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1385 | { | 1389 | { |
1386 | // most likely still cached from building the extLandData entry | 1390 | // most likely still cached from building the extLandData entry |
1387 | uint x = 0, y = 0; | 1391 | uint x = 0, y = 0; |
1388 | Utils.LongToUInts(data.regionHandle, out x, out y); | 1392 | Utils.LongToUInts(data.RegionHandle, out x, out y); |
1389 | info = m_scene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y); | 1393 | info = m_scene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y); |
1390 | } | 1394 | } |
1391 | // we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark. | 1395 | // we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark. |
1392 | m_log.DebugFormat("[LAND] got parcelinfo for parcel {0} in region {1}; sending...", | 1396 | m_log.DebugFormat("[LAND] got parcelinfo for parcel {0} in region {1}; sending...", |
1393 | data.landData.Name, data.regionHandle); | 1397 | data.LandData.Name, data.RegionHandle); |
1394 | // HACK for now | 1398 | // HACK for now |
1395 | RegionInfo r = new RegionInfo(); | 1399 | RegionInfo r = new RegionInfo(); |
1396 | r.RegionName = info.RegionName; | 1400 | r.RegionName = info.RegionName; |
1397 | r.RegionLocX = (uint)info.RegionLocX; | 1401 | r.RegionLocX = (uint)info.RegionLocX; |
1398 | r.RegionLocY = (uint)info.RegionLocY; | 1402 | r.RegionLocY = (uint)info.RegionLocY; |
1399 | remoteClient.SendParcelInfo(r, data.landData, parcelID, data.x, data.y); | 1403 | remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y); |
1400 | } | 1404 | } |
1401 | else | 1405 | else |
1402 | m_log.Debug("[LAND] got no parcelinfo; not sending"); | 1406 | m_log.Debug("[LAND] got no parcelinfo; not sending"); |
@@ -1415,9 +1419,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1415 | if (!m_scene.Permissions.CanEditParcel(remoteClient.AgentId, land)) | 1419 | if (!m_scene.Permissions.CanEditParcel(remoteClient.AgentId, land)) |
1416 | return; | 1420 | return; |
1417 | 1421 | ||
1418 | land.landData.OtherCleanTime = otherCleanTime; | 1422 | land.LandData.OtherCleanTime = otherCleanTime; |
1419 | 1423 | ||
1420 | UpdateLandObject(localID, land.landData); | 1424 | UpdateLandObject(localID, land.LandData); |
1421 | } | 1425 | } |
1422 | } | 1426 | } |
1423 | } | 1427 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 3be5f45..b9b7da5 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs | |||
@@ -53,7 +53,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
53 | protected Scene m_scene; | 53 | protected Scene m_scene; |
54 | protected List<SceneObjectGroup> primsOverMe = new List<SceneObjectGroup>(); | 54 | protected List<SceneObjectGroup> primsOverMe = new List<SceneObjectGroup>(); |
55 | 55 | ||
56 | public bool[,] landBitmap | 56 | public bool[,] LandBitmap |
57 | { | 57 | { |
58 | get { return m_landBitmap; } | 58 | get { return m_landBitmap; } |
59 | set { m_landBitmap = value; } | 59 | set { m_landBitmap = value; } |
@@ -63,14 +63,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
63 | 63 | ||
64 | #region ILandObject Members | 64 | #region ILandObject Members |
65 | 65 | ||
66 | public LandData landData | 66 | public LandData LandData |
67 | { | 67 | { |
68 | get { return m_landData; } | 68 | get { return m_landData; } |
69 | 69 | ||
70 | set { m_landData = value; } | 70 | set { m_landData = value; } |
71 | } | 71 | } |
72 | 72 | ||
73 | public UUID regionUUID | 73 | public UUID RegionUUID |
74 | { | 74 | { |
75 | get { return m_scene.RegionInfo.RegionID; } | 75 | get { return m_scene.RegionInfo.RegionID; } |
76 | } | 76 | } |
@@ -80,8 +80,8 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
80 | public LandObject(UUID owner_id, bool is_group_owned, Scene scene) | 80 | public LandObject(UUID owner_id, bool is_group_owned, Scene scene) |
81 | { | 81 | { |
82 | m_scene = scene; | 82 | m_scene = scene; |
83 | landData.OwnerID = owner_id; | 83 | LandData.OwnerID = owner_id; |
84 | landData.IsGroupOwned = is_group_owned; | 84 | LandData.IsGroupOwned = is_group_owned; |
85 | } | 85 | } |
86 | 86 | ||
87 | #endregion | 87 | #endregion |
@@ -96,11 +96,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
96 | /// <param name="x"></param> | 96 | /// <param name="x"></param> |
97 | /// <param name="y"></param> | 97 | /// <param name="y"></param> |
98 | /// <returns>Returns true if the piece of land contains the specified point</returns> | 98 | /// <returns>Returns true if the piece of land contains the specified point</returns> |
99 | public bool containsPoint(int x, int y) | 99 | public bool ContainsPoint(int x, int y) |
100 | { | 100 | { |
101 | if (x >= 0 && y >= 0 && x <= Constants.RegionSize && x <= Constants.RegionSize) | 101 | if (x >= 0 && y >= 0 && x <= Constants.RegionSize && x <= Constants.RegionSize) |
102 | { | 102 | { |
103 | return (landBitmap[x / 4, y / 4] == true); | 103 | return (LandBitmap[x / 4, y / 4] == true); |
104 | } | 104 | } |
105 | else | 105 | else |
106 | { | 106 | { |
@@ -110,11 +110,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
110 | 110 | ||
111 | public ILandObject Copy() | 111 | public ILandObject Copy() |
112 | { | 112 | { |
113 | ILandObject newLand = new LandObject(landData.OwnerID, landData.IsGroupOwned, m_scene); | 113 | ILandObject newLand = new LandObject(LandData.OwnerID, LandData.IsGroupOwned, m_scene); |
114 | 114 | ||
115 | //Place all new variables here! | 115 | //Place all new variables here! |
116 | newLand.landBitmap = (bool[,]) (landBitmap.Clone()); | 116 | newLand.LandBitmap = (bool[,]) (LandBitmap.Clone()); |
117 | newLand.landData = landData.Copy(); | 117 | newLand.LandData = LandData.Copy(); |
118 | 118 | ||
119 | return newLand; | 119 | return newLand; |
120 | } | 120 | } |
@@ -122,16 +122,16 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
122 | static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; | 122 | static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; |
123 | static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; | 123 | static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; |
124 | 124 | ||
125 | public void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel) | 125 | public void SetParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel) |
126 | { | 126 | { |
127 | overrideParcelMaxPrimCount = overrideDel; | 127 | overrideParcelMaxPrimCount = overrideDel; |
128 | } | 128 | } |
129 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) | 129 | public void SetSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) |
130 | { | 130 | { |
131 | overrideSimulatorMaxPrimCount = overrideDel; | 131 | overrideSimulatorMaxPrimCount = overrideDel; |
132 | } | 132 | } |
133 | 133 | ||
134 | public int getParcelMaxPrimCount(ILandObject thisObject) | 134 | public int GetParcelMaxPrimCount(ILandObject thisObject) |
135 | { | 135 | { |
136 | if (overrideParcelMaxPrimCount != null) | 136 | if (overrideParcelMaxPrimCount != null) |
137 | { | 137 | { |
@@ -141,11 +141,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
141 | { | 141 | { |
142 | //Normal Calculations | 142 | //Normal Calculations |
143 | return Convert.ToInt32( | 143 | return Convert.ToInt32( |
144 | Math.Round((Convert.ToDecimal(landData.Area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * | 144 | Math.Round((Convert.ToDecimal(LandData.Area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * |
145 | Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ; | 145 | Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ; |
146 | } | 146 | } |
147 | } | 147 | } |
148 | public int getSimulatorMaxPrimCount(ILandObject thisObject) | 148 | public int GetSimulatorMaxPrimCount(ILandObject thisObject) |
149 | { | 149 | { |
150 | if (overrideSimulatorMaxPrimCount != null) | 150 | if (overrideSimulatorMaxPrimCount != null) |
151 | { | 151 | { |
@@ -161,7 +161,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
161 | 161 | ||
162 | #region Packet Request Handling | 162 | #region Packet Request Handling |
163 | 163 | ||
164 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) | 164 | public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) |
165 | { | 165 | { |
166 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); | 166 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); |
167 | uint regionFlags = 336723974 & ~((uint)(RegionFlags.AllowLandmark | RegionFlags.AllowSetHome)); | 167 | uint regionFlags = 336723974 & ~((uint)(RegionFlags.AllowLandmark | RegionFlags.AllowSetHome)); |
@@ -175,18 +175,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
175 | // if (landData.OwnerID == remote_client.AgentId) | 175 | // if (landData.OwnerID == remote_client.AgentId) |
176 | // regionFlags |= (uint)RegionFlags.AllowSetHome; | 176 | // regionFlags |= (uint)RegionFlags.AllowSetHome; |
177 | remote_client.SendLandProperties(sequence_id, | 177 | remote_client.SendLandProperties(sequence_id, |
178 | snap_selection, request_result, landData, | 178 | snap_selection, request_result, LandData, |
179 | (float)m_scene.RegionInfo.RegionSettings.ObjectBonus, | 179 | (float)m_scene.RegionInfo.RegionSettings.ObjectBonus, |
180 | getParcelMaxPrimCount(this), | 180 | GetParcelMaxPrimCount(this), |
181 | getSimulatorMaxPrimCount(this), regionFlags); | 181 | GetSimulatorMaxPrimCount(this), regionFlags); |
182 | } | 182 | } |
183 | 183 | ||
184 | public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client) | 184 | public void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client) |
185 | { | 185 | { |
186 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId,this)) | 186 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId,this)) |
187 | { | 187 | { |
188 | //Needs later group support | 188 | //Needs later group support |
189 | LandData newData = landData.Copy(); | 189 | LandData newData = LandData.Copy(); |
190 | 190 | ||
191 | if (args.AuthBuyerID != newData.AuthBuyerID || args.SalePrice != newData.SalePrice) | 191 | if (args.AuthBuyerID != newData.AuthBuyerID || args.SalePrice != newData.SalePrice) |
192 | { | 192 | { |
@@ -212,15 +212,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
212 | newData.UserLocation = args.UserLocation; | 212 | newData.UserLocation = args.UserLocation; |
213 | newData.UserLookAt = args.UserLookAt; | 213 | newData.UserLookAt = args.UserLookAt; |
214 | 214 | ||
215 | m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData); | 215 | m_scene.LandChannel.UpdateLandObject(LandData.LocalID, newData); |
216 | 216 | ||
217 | sendLandUpdateToAvatarsOverMe(); | 217 | SendLandUpdateToAvatarsOverMe(); |
218 | } | 218 | } |
219 | } | 219 | } |
220 | 220 | ||
221 | public void updateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area) | 221 | public void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area) |
222 | { | 222 | { |
223 | LandData newData = landData.Copy(); | 223 | LandData newData = LandData.Copy(); |
224 | newData.OwnerID = avatarID; | 224 | newData.OwnerID = avatarID; |
225 | newData.GroupID = groupID; | 225 | newData.GroupID = groupID; |
226 | newData.IsGroupOwned = groupOwned; | 226 | newData.IsGroupOwned = groupOwned; |
@@ -230,45 +230,45 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
230 | newData.SalePrice = 0; | 230 | newData.SalePrice = 0; |
231 | newData.AuthBuyerID = UUID.Zero; | 231 | newData.AuthBuyerID = UUID.Zero; |
232 | newData.Flags &= ~(uint) (ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects); | 232 | newData.Flags &= ~(uint) (ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects); |
233 | m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData); | 233 | m_scene.LandChannel.UpdateLandObject(LandData.LocalID, newData); |
234 | 234 | ||
235 | sendLandUpdateToAvatarsOverMe(); | 235 | SendLandUpdateToAvatarsOverMe(); |
236 | } | 236 | } |
237 | 237 | ||
238 | public void deedToGroup(UUID groupID) | 238 | public void DeedToGroup(UUID groupID) |
239 | { | 239 | { |
240 | LandData newData = landData.Copy(); | 240 | LandData newData = LandData.Copy(); |
241 | newData.OwnerID = groupID; | 241 | newData.OwnerID = groupID; |
242 | newData.GroupID = groupID; | 242 | newData.GroupID = groupID; |
243 | newData.IsGroupOwned = true; | 243 | newData.IsGroupOwned = true; |
244 | 244 | ||
245 | m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData); | 245 | m_scene.LandChannel.UpdateLandObject(LandData.LocalID, newData); |
246 | 246 | ||
247 | sendLandUpdateToAvatarsOverMe(); | 247 | SendLandUpdateToAvatarsOverMe(); |
248 | } | 248 | } |
249 | 249 | ||
250 | public bool isEitherBannedOrRestricted(UUID avatar) | 250 | public bool IsEitherBannedOrRestricted(UUID avatar) |
251 | { | 251 | { |
252 | if (isBannedFromLand(avatar)) | 252 | if (IsBannedFromLand(avatar)) |
253 | { | 253 | { |
254 | return true; | 254 | return true; |
255 | } | 255 | } |
256 | else if (isRestrictedFromLand(avatar)) | 256 | else if (IsRestrictedFromLand(avatar)) |
257 | { | 257 | { |
258 | return true; | 258 | return true; |
259 | } | 259 | } |
260 | return false; | 260 | return false; |
261 | } | 261 | } |
262 | 262 | ||
263 | public bool isBannedFromLand(UUID avatar) | 263 | public bool IsBannedFromLand(UUID avatar) |
264 | { | 264 | { |
265 | if ((landData.Flags & (uint) ParcelFlags.UseBanList) > 0) | 265 | if ((LandData.Flags & (uint) ParcelFlags.UseBanList) > 0) |
266 | { | 266 | { |
267 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 267 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
268 | entry.AgentID = avatar; | 268 | entry.AgentID = avatar; |
269 | entry.Flags = AccessList.Ban; | 269 | entry.Flags = AccessList.Ban; |
270 | entry.Time = new DateTime(); | 270 | entry.Time = new DateTime(); |
271 | if (landData.ParcelAccessList.Contains(entry)) | 271 | if (LandData.ParcelAccessList.Contains(entry)) |
272 | { | 272 | { |
273 | //They are banned, so lets send them a notice about this parcel | 273 | //They are banned, so lets send them a notice about this parcel |
274 | return true; | 274 | return true; |
@@ -277,15 +277,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
277 | return false; | 277 | return false; |
278 | } | 278 | } |
279 | 279 | ||
280 | public bool isRestrictedFromLand(UUID avatar) | 280 | public bool IsRestrictedFromLand(UUID avatar) |
281 | { | 281 | { |
282 | if ((landData.Flags & (uint) ParcelFlags.UseAccessList) > 0) | 282 | if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) > 0) |
283 | { | 283 | { |
284 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 284 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
285 | entry.AgentID = avatar; | 285 | entry.AgentID = avatar; |
286 | entry.Flags = AccessList.Access; | 286 | entry.Flags = AccessList.Access; |
287 | entry.Time = new DateTime(); | 287 | entry.Time = new DateTime(); |
288 | if (!landData.ParcelAccessList.Contains(entry)) | 288 | if (!LandData.ParcelAccessList.Contains(entry)) |
289 | { | 289 | { |
290 | //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel | 290 | //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel |
291 | return true; | 291 | return true; |
@@ -294,12 +294,12 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
294 | return false; | 294 | return false; |
295 | } | 295 | } |
296 | 296 | ||
297 | public void sendLandUpdateToClient(IClientAPI remote_client) | 297 | public void SendLandUpdateToClient(IClientAPI remote_client) |
298 | { | 298 | { |
299 | sendLandProperties(0, false, 0, remote_client); | 299 | SendLandProperties(0, false, 0, remote_client); |
300 | } | 300 | } |
301 | 301 | ||
302 | public void sendLandUpdateToAvatarsOverMe() | 302 | public void SendLandUpdateToAvatarsOverMe() |
303 | { | 303 | { |
304 | List<ScenePresence> avatars = m_scene.GetAvatars(); | 304 | List<ScenePresence> avatars = m_scene.GetAvatars(); |
305 | ILandObject over = null; | 305 | ILandObject over = null; |
@@ -319,14 +319,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
319 | 319 | ||
320 | if (over != null) | 320 | if (over != null) |
321 | { | 321 | { |
322 | if (over.landData.LocalID == landData.LocalID) | 322 | if (over.LandData.LocalID == LandData.LocalID) |
323 | { | 323 | { |
324 | if (((over.landData.Flags & (uint)ParcelFlags.AllowDamage) != 0) && m_scene.RegionInfo.RegionSettings.AllowDamage) | 324 | if (((over.LandData.Flags & (uint)ParcelFlags.AllowDamage) != 0) && |
325 | m_scene.RegionInfo.RegionSettings.AllowDamage) | ||
325 | avatars[i].Invulnerable = false; | 326 | avatars[i].Invulnerable = false; |
326 | else | 327 | else |
327 | avatars[i].Invulnerable = true; | 328 | avatars[i].Invulnerable = true; |
328 | 329 | ||
329 | sendLandUpdateToClient(avatars[i].ControllingClient); | 330 | SendLandUpdateToClient(avatars[i].ControllingClient); |
330 | } | 331 | } |
331 | } | 332 | } |
332 | } | 333 | } |
@@ -336,10 +337,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
336 | 337 | ||
337 | #region AccessList Functions | 338 | #region AccessList Functions |
338 | 339 | ||
339 | public List<UUID> createAccessListArrayByFlag(AccessList flag) | 340 | public List<UUID> CreateAccessListArrayByFlag(AccessList flag) |
340 | { | 341 | { |
341 | List<UUID> list = new List<UUID>(); | 342 | List<UUID> list = new List<UUID>(); |
342 | foreach (ParcelManager.ParcelAccessEntry entry in landData.ParcelAccessList) | 343 | foreach (ParcelManager.ParcelAccessEntry entry in LandData.ParcelAccessList) |
343 | { | 344 | { |
344 | if (entry.Flags == flag) | 345 | if (entry.Flags == flag) |
345 | { | 346 | { |
@@ -354,26 +355,26 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
354 | return list; | 355 | return list; |
355 | } | 356 | } |
356 | 357 | ||
357 | public void sendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, | 358 | public void SendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, |
358 | IClientAPI remote_client) | 359 | IClientAPI remote_client) |
359 | { | 360 | { |
360 | 361 | ||
361 | if (flags == (uint) AccessList.Access || flags == (uint) AccessList.Both) | 362 | if (flags == (uint) AccessList.Access || flags == (uint) AccessList.Both) |
362 | { | 363 | { |
363 | List<UUID> avatars = createAccessListArrayByFlag(AccessList.Access); | 364 | List<UUID> avatars = CreateAccessListArrayByFlag(AccessList.Access); |
364 | remote_client.SendLandAccessListData(avatars,(uint) AccessList.Access,landData.LocalID); | 365 | remote_client.SendLandAccessListData(avatars,(uint) AccessList.Access,LandData.LocalID); |
365 | } | 366 | } |
366 | 367 | ||
367 | if (flags == (uint) AccessList.Ban || flags == (uint) AccessList.Both) | 368 | if (flags == (uint) AccessList.Ban || flags == (uint) AccessList.Both) |
368 | { | 369 | { |
369 | List<UUID> avatars = createAccessListArrayByFlag(AccessList.Ban); | 370 | List<UUID> avatars = CreateAccessListArrayByFlag(AccessList.Ban); |
370 | remote_client.SendLandAccessListData(avatars, (uint)AccessList.Ban, landData.LocalID); | 371 | remote_client.SendLandAccessListData(avatars, (uint)AccessList.Ban, LandData.LocalID); |
371 | } | 372 | } |
372 | } | 373 | } |
373 | 374 | ||
374 | public void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client) | 375 | public void UpdateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client) |
375 | { | 376 | { |
376 | LandData newData = landData.Copy(); | 377 | LandData newData = LandData.Copy(); |
377 | 378 | ||
378 | if (entries.Count == 1 && entries[0].AgentID == UUID.Zero) | 379 | if (entries.Count == 1 && entries[0].AgentID == UUID.Zero) |
379 | { | 380 | { |
@@ -406,36 +407,36 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
406 | } | 407 | } |
407 | } | 408 | } |
408 | 409 | ||
409 | m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData); | 410 | m_scene.LandChannel.UpdateLandObject(LandData.LocalID, newData); |
410 | } | 411 | } |
411 | 412 | ||
412 | #endregion | 413 | #endregion |
413 | 414 | ||
414 | #region Update Functions | 415 | #region Update Functions |
415 | 416 | ||
416 | public void updateLandBitmapByteArray() | 417 | public void UpdateLandBitmapByteArray() |
417 | { | 418 | { |
418 | landData.Bitmap = convertLandBitmapToBytes(); | 419 | LandData.Bitmap = ConvertLandBitmapToBytes(); |
419 | } | 420 | } |
420 | 421 | ||
421 | /// <summary> | 422 | /// <summary> |
422 | /// Update all settings in land such as area, bitmap byte array, etc | 423 | /// Update all settings in land such as area, bitmap byte array, etc |
423 | /// </summary> | 424 | /// </summary> |
424 | public void forceUpdateLandInfo() | 425 | public void ForceUpdateLandInfo() |
425 | { | 426 | { |
426 | updateAABBAndAreaValues(); | 427 | UpdateAABBAndAreaValues(); |
427 | updateLandBitmapByteArray(); | 428 | UpdateLandBitmapByteArray(); |
428 | } | 429 | } |
429 | 430 | ||
430 | public void setLandBitmapFromByteArray() | 431 | public void SetLandBitmapFromByteArray() |
431 | { | 432 | { |
432 | landBitmap = convertBytesToLandBitmap(); | 433 | LandBitmap = ConvertBytesToLandBitmap(); |
433 | } | 434 | } |
434 | 435 | ||
435 | /// <summary> | 436 | /// <summary> |
436 | /// Updates the AABBMin and AABBMax values after area/shape modification of the land object | 437 | /// Updates the AABBMin and AABBMax values after area/shape modification of the land object |
437 | /// </summary> | 438 | /// </summary> |
438 | private void updateAABBAndAreaValues() | 439 | private void UpdateAABBAndAreaValues() |
439 | { | 440 | { |
440 | int min_x = 64; | 441 | int min_x = 64; |
441 | int min_y = 64; | 442 | int min_y = 64; |
@@ -447,7 +448,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
447 | { | 448 | { |
448 | for (y = 0; y < 64; y++) | 449 | for (y = 0; y < 64; y++) |
449 | { | 450 | { |
450 | if (landBitmap[x, y] == true) | 451 | if (LandBitmap[x, y] == true) |
451 | { | 452 | { |
452 | if (min_x > x) min_x = x; | 453 | if (min_x > x) min_x = x; |
453 | if (min_y > y) min_y = y; | 454 | if (min_y > y) min_y = y; |
@@ -463,7 +464,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
463 | int ty = min_y * 4; | 464 | int ty = min_y * 4; |
464 | if (ty > ((int)Constants.RegionSize - 1)) | 465 | if (ty > ((int)Constants.RegionSize - 1)) |
465 | ty = ((int)Constants.RegionSize - 1); | 466 | ty = ((int)Constants.RegionSize - 1); |
466 | landData.AABBMin = | 467 | LandData.AABBMin = |
467 | new Vector3((float) (min_x * 4), (float) (min_y * 4), | 468 | new Vector3((float) (min_x * 4), (float) (min_y * 4), |
468 | (float) m_scene.Heightmap[tx, ty]); | 469 | (float) m_scene.Heightmap[tx, ty]); |
469 | 470 | ||
@@ -473,10 +474,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
473 | ty = max_y * 4; | 474 | ty = max_y * 4; |
474 | if (ty > ((int)Constants.RegionSize - 1)) | 475 | if (ty > ((int)Constants.RegionSize - 1)) |
475 | ty = ((int)Constants.RegionSize - 1); | 476 | ty = ((int)Constants.RegionSize - 1); |
476 | landData.AABBMax = | 477 | LandData.AABBMax = |
477 | new Vector3((float) (max_x * 4), (float) (max_y * 4), | 478 | new Vector3((float) (max_x * 4), (float) (max_y * 4), |
478 | (float) m_scene.Heightmap[tx, ty]); | 479 | (float) m_scene.Heightmap[tx, ty]); |
479 | landData.Area = tempArea; | 480 | LandData.Area = tempArea; |
480 | } | 481 | } |
481 | 482 | ||
482 | #endregion | 483 | #endregion |
@@ -487,7 +488,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
487 | /// Sets the land's bitmap manually | 488 | /// Sets the land's bitmap manually |
488 | /// </summary> | 489 | /// </summary> |
489 | /// <param name="bitmap">64x64 block representing where this land is on a map</param> | 490 | /// <param name="bitmap">64x64 block representing where this land is on a map</param> |
490 | public void setLandBitmap(bool[,] bitmap) | 491 | public void SetLandBitmap(bool[,] bitmap) |
491 | { | 492 | { |
492 | if (bitmap.GetLength(0) != 64 || bitmap.GetLength(1) != 64 || bitmap.Rank != 2) | 493 | if (bitmap.GetLength(0) != 64 || bitmap.GetLength(1) != 64 || bitmap.Rank != 2) |
493 | { | 494 | { |
@@ -497,8 +498,8 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
497 | else | 498 | else |
498 | { | 499 | { |
499 | //Valid: Lets set it | 500 | //Valid: Lets set it |
500 | landBitmap = bitmap; | 501 | LandBitmap = bitmap; |
501 | forceUpdateLandInfo(); | 502 | ForceUpdateLandInfo(); |
502 | } | 503 | } |
503 | } | 504 | } |
504 | 505 | ||
@@ -506,18 +507,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
506 | /// Gets the land's bitmap manually | 507 | /// Gets the land's bitmap manually |
507 | /// </summary> | 508 | /// </summary> |
508 | /// <returns></returns> | 509 | /// <returns></returns> |
509 | public bool[,] getLandBitmap() | 510 | public bool[,] GetLandBitmap() |
510 | { | 511 | { |
511 | return landBitmap; | 512 | return LandBitmap; |
512 | } | 513 | } |
513 | 514 | ||
514 | /// <summary> | 515 | /// <summary> |
515 | /// Full sim land object creation | 516 | /// Full sim land object creation |
516 | /// </summary> | 517 | /// </summary> |
517 | /// <returns></returns> | 518 | /// <returns></returns> |
518 | public bool[,] basicFullRegionLandBitmap() | 519 | public bool[,] BasicFullRegionLandBitmap() |
519 | { | 520 | { |
520 | return getSquareLandBitmap(0, 0, (int) Constants.RegionSize, (int) Constants.RegionSize); | 521 | return GetSquareLandBitmap(0, 0, (int) Constants.RegionSize, (int) Constants.RegionSize); |
521 | } | 522 | } |
522 | 523 | ||
523 | /// <summary> | 524 | /// <summary> |
@@ -528,12 +529,12 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
528 | /// <param name="end_x"></param> | 529 | /// <param name="end_x"></param> |
529 | /// <param name="end_y"></param> | 530 | /// <param name="end_y"></param> |
530 | /// <returns></returns> | 531 | /// <returns></returns> |
531 | public bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y) | 532 | public bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y) |
532 | { | 533 | { |
533 | bool[,] tempBitmap = new bool[64,64]; | 534 | bool[,] tempBitmap = new bool[64,64]; |
534 | tempBitmap.Initialize(); | 535 | tempBitmap.Initialize(); |
535 | 536 | ||
536 | tempBitmap = modifyLandBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true); | 537 | tempBitmap = ModifyLandBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true); |
537 | return tempBitmap; | 538 | return tempBitmap; |
538 | } | 539 | } |
539 | 540 | ||
@@ -547,7 +548,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
547 | /// <param name="end_y"></param> | 548 | /// <param name="end_y"></param> |
548 | /// <param name="set_value"></param> | 549 | /// <param name="set_value"></param> |
549 | /// <returns></returns> | 550 | /// <returns></returns> |
550 | public bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, | 551 | public bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, |
551 | bool set_value) | 552 | bool set_value) |
552 | { | 553 | { |
553 | if (land_bitmap.GetLength(0) != 64 || land_bitmap.GetLength(1) != 64 || land_bitmap.Rank != 2) | 554 | if (land_bitmap.GetLength(0) != 64 || land_bitmap.GetLength(1) != 64 || land_bitmap.Rank != 2) |
@@ -577,7 +578,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
577 | /// <param name="bitmap_base"></param> | 578 | /// <param name="bitmap_base"></param> |
578 | /// <param name="bitmap_add"></param> | 579 | /// <param name="bitmap_add"></param> |
579 | /// <returns></returns> | 580 | /// <returns></returns> |
580 | public bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add) | 581 | public bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add) |
581 | { | 582 | { |
582 | if (bitmap_base.GetLength(0) != 64 || bitmap_base.GetLength(1) != 64 || bitmap_base.Rank != 2) | 583 | if (bitmap_base.GetLength(0) != 64 || bitmap_base.GetLength(1) != 64 || bitmap_base.Rank != 2) |
583 | { | 584 | { |
@@ -608,7 +609,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
608 | /// Converts the land bitmap to a packet friendly byte array | 609 | /// Converts the land bitmap to a packet friendly byte array |
609 | /// </summary> | 610 | /// </summary> |
610 | /// <returns></returns> | 611 | /// <returns></returns> |
611 | private byte[] convertLandBitmapToBytes() | 612 | private byte[] ConvertLandBitmapToBytes() |
612 | { | 613 | { |
613 | byte[] tempConvertArr = new byte[512]; | 614 | byte[] tempConvertArr = new byte[512]; |
614 | byte tempByte = 0; | 615 | byte tempByte = 0; |
@@ -618,7 +619,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
618 | { | 619 | { |
619 | for (x = 0; x < 64; x++) | 620 | for (x = 0; x < 64; x++) |
620 | { | 621 | { |
621 | tempByte = Convert.ToByte(tempByte | Convert.ToByte(landBitmap[x, y]) << (i++ % 8)); | 622 | tempByte = Convert.ToByte(tempByte | Convert.ToByte(LandBitmap[x, y]) << (i++ % 8)); |
622 | if (i % 8 == 0) | 623 | if (i % 8 == 0) |
623 | { | 624 | { |
624 | tempConvertArr[byteNum] = tempByte; | 625 | tempConvertArr[byteNum] = tempByte; |
@@ -631,7 +632,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
631 | return tempConvertArr; | 632 | return tempConvertArr; |
632 | } | 633 | } |
633 | 634 | ||
634 | private bool[,] convertBytesToLandBitmap() | 635 | private bool[,] ConvertBytesToLandBitmap() |
635 | { | 636 | { |
636 | bool[,] tempConvertMap = new bool[landArrayMax, landArrayMax]; | 637 | bool[,] tempConvertMap = new bool[landArrayMax, landArrayMax]; |
637 | tempConvertMap.Initialize(); | 638 | tempConvertMap.Initialize(); |
@@ -639,7 +640,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
639 | int x = 0, y = 0, i = 0, bitNum = 0; | 640 | int x = 0, y = 0, i = 0, bitNum = 0; |
640 | for (i = 0; i < 512; i++) | 641 | for (i = 0; i < 512; i++) |
641 | { | 642 | { |
642 | tempByte = landData.Bitmap[i]; | 643 | tempByte = LandData.Bitmap[i]; |
643 | for (bitNum = 0; bitNum < 8; bitNum++) | 644 | for (bitNum = 0; bitNum < 8; bitNum++) |
644 | { | 645 | { |
645 | bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1); | 646 | bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1); |
@@ -659,7 +660,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
659 | 660 | ||
660 | #region Object Select and Object Owner Listing | 661 | #region Object Select and Object Owner Listing |
661 | 662 | ||
662 | public void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client) | 663 | public void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client) |
663 | { | 664 | { |
664 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this)) | 665 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this)) |
665 | { | 666 | { |
@@ -672,11 +673,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
672 | { | 673 | { |
673 | if (obj.LocalId > 0) | 674 | if (obj.LocalId > 0) |
674 | { | 675 | { |
675 | if (request_type == LandChannel.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == landData.OwnerID) | 676 | if (request_type == LandChannel.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == LandData.OwnerID) |
676 | { | 677 | { |
677 | resultLocalIDs.Add(obj.LocalId); | 678 | resultLocalIDs.Add(obj.LocalId); |
678 | } | 679 | } |
679 | else if (request_type == LandChannel.LAND_SELECT_OBJECTS_GROUP && obj.GroupID == landData.GroupID && landData.GroupID != UUID.Zero) | 680 | else if (request_type == LandChannel.LAND_SELECT_OBJECTS_GROUP && obj.GroupID == LandData.GroupID && LandData.GroupID != UUID.Zero) |
680 | { | 681 | { |
681 | resultLocalIDs.Add(obj.LocalId); | 682 | resultLocalIDs.Add(obj.LocalId); |
682 | } | 683 | } |
@@ -709,7 +710,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
709 | /// <param name="remote_client"> | 710 | /// <param name="remote_client"> |
710 | /// A <see cref="IClientAPI"/> | 711 | /// A <see cref="IClientAPI"/> |
711 | /// </param> | 712 | /// </param> |
712 | public void sendLandObjectOwners(IClientAPI remote_client) | 713 | public void SendLandObjectOwners(IClientAPI remote_client) |
713 | { | 714 | { |
714 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this)) | 715 | if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this)) |
715 | { | 716 | { |
@@ -752,11 +753,11 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
752 | } | 753 | } |
753 | } | 754 | } |
754 | 755 | ||
755 | remote_client.SendLandObjectOwners(landData, groups, primCount); | 756 | remote_client.SendLandObjectOwners(LandData, groups, primCount); |
756 | } | 757 | } |
757 | } | 758 | } |
758 | 759 | ||
759 | public Dictionary<UUID, int> getLandObjectOwners() | 760 | public Dictionary<UUID, int> GetLandObjectOwners() |
760 | { | 761 | { |
761 | Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>(); | 762 | Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>(); |
762 | lock (primsOverMe) | 763 | lock (primsOverMe) |
@@ -786,14 +787,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
786 | 787 | ||
787 | #region Object Returning | 788 | #region Object Returning |
788 | 789 | ||
789 | public void returnObject(SceneObjectGroup obj) | 790 | public void ReturnObject(SceneObjectGroup obj) |
790 | { | 791 | { |
791 | SceneObjectGroup[] objs = new SceneObjectGroup[1]; | 792 | SceneObjectGroup[] objs = new SceneObjectGroup[1]; |
792 | objs[0] = obj; | 793 | objs[0] = obj; |
793 | m_scene.returnObjects(objs, obj.OwnerID); | 794 | m_scene.returnObjects(objs, obj.OwnerID); |
794 | } | 795 | } |
795 | 796 | ||
796 | public void returnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client) | 797 | public void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client) |
797 | { | 798 | { |
798 | Dictionary<UUID,List<SceneObjectGroup>> returns = | 799 | Dictionary<UUID,List<SceneObjectGroup>> returns = |
799 | new Dictionary<UUID,List<SceneObjectGroup>>(); | 800 | new Dictionary<UUID,List<SceneObjectGroup>>(); |
@@ -869,19 +870,19 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
869 | 870 | ||
870 | #region Object Adding/Removing from Parcel | 871 | #region Object Adding/Removing from Parcel |
871 | 872 | ||
872 | public void resetLandPrimCounts() | 873 | public void ResetLandPrimCounts() |
873 | { | 874 | { |
874 | landData.GroupPrims = 0; | 875 | LandData.GroupPrims = 0; |
875 | landData.OwnerPrims = 0; | 876 | LandData.OwnerPrims = 0; |
876 | landData.OtherPrims = 0; | 877 | LandData.OtherPrims = 0; |
877 | landData.SelectedPrims = 0; | 878 | LandData.SelectedPrims = 0; |
878 | 879 | ||
879 | 880 | ||
880 | lock (primsOverMe) | 881 | lock (primsOverMe) |
881 | primsOverMe.Clear(); | 882 | primsOverMe.Clear(); |
882 | } | 883 | } |
883 | 884 | ||
884 | public void addPrimToCount(SceneObjectGroup obj) | 885 | public void AddPrimToCount(SceneObjectGroup obj) |
885 | { | 886 | { |
886 | 887 | ||
887 | UUID prim_owner = obj.OwnerID; | 888 | UUID prim_owner = obj.OwnerID; |
@@ -889,23 +890,23 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
889 | 890 | ||
890 | if (obj.IsSelected) | 891 | if (obj.IsSelected) |
891 | { | 892 | { |
892 | landData.SelectedPrims += prim_count; | 893 | LandData.SelectedPrims += prim_count; |
893 | } | 894 | } |
894 | else | 895 | else |
895 | { | 896 | { |
896 | if (prim_owner == landData.OwnerID) | 897 | if (prim_owner == LandData.OwnerID) |
897 | { | 898 | { |
898 | landData.OwnerPrims += prim_count; | 899 | LandData.OwnerPrims += prim_count; |
899 | } | 900 | } |
900 | else if ((obj.GroupID == landData.GroupID || | 901 | else if ((obj.GroupID == LandData.GroupID || |
901 | prim_owner == landData.GroupID) && | 902 | prim_owner == LandData.GroupID) && |
902 | landData.GroupID != UUID.Zero) | 903 | LandData.GroupID != UUID.Zero) |
903 | { | 904 | { |
904 | landData.GroupPrims += prim_count; | 905 | LandData.GroupPrims += prim_count; |
905 | } | 906 | } |
906 | else | 907 | else |
907 | { | 908 | { |
908 | landData.OtherPrims += prim_count; | 909 | LandData.OtherPrims += prim_count; |
909 | } | 910 | } |
910 | } | 911 | } |
911 | 912 | ||
@@ -913,7 +914,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
913 | primsOverMe.Add(obj); | 914 | primsOverMe.Add(obj); |
914 | } | 915 | } |
915 | 916 | ||
916 | public void removePrimFromCount(SceneObjectGroup obj) | 917 | public void RemovePrimFromCount(SceneObjectGroup obj) |
917 | { | 918 | { |
918 | lock (primsOverMe) | 919 | lock (primsOverMe) |
919 | { | 920 | { |
@@ -922,18 +923,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
922 | UUID prim_owner = obj.OwnerID; | 923 | UUID prim_owner = obj.OwnerID; |
923 | int prim_count = obj.PrimCount; | 924 | int prim_count = obj.PrimCount; |
924 | 925 | ||
925 | if (prim_owner == landData.OwnerID) | 926 | if (prim_owner == LandData.OwnerID) |
926 | { | 927 | { |
927 | landData.OwnerPrims -= prim_count; | 928 | LandData.OwnerPrims -= prim_count; |
928 | } | 929 | } |
929 | else if (obj.GroupID == landData.GroupID || | 930 | else if (obj.GroupID == LandData.GroupID || |
930 | prim_owner == landData.GroupID) | 931 | prim_owner == LandData.GroupID) |
931 | { | 932 | { |
932 | landData.GroupPrims -= prim_count; | 933 | LandData.GroupPrims -= prim_count; |
933 | } | 934 | } |
934 | else | 935 | else |
935 | { | 936 | { |
936 | landData.OtherPrims -= prim_count; | 937 | LandData.OtherPrims -= prim_count; |
937 | } | 938 | } |
938 | 939 | ||
939 | primsOverMe.Remove(obj); | 940 | primsOverMe.Remove(obj); |
@@ -953,8 +954,8 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
953 | /// <param name="url"></param> | 954 | /// <param name="url"></param> |
954 | public void SetMediaUrl(string url) | 955 | public void SetMediaUrl(string url) |
955 | { | 956 | { |
956 | landData.MediaURL = url; | 957 | LandData.MediaURL = url; |
957 | sendLandUpdateToAvatarsOverMe(); | 958 | SendLandUpdateToAvatarsOverMe(); |
958 | } | 959 | } |
959 | 960 | ||
960 | /// <summary> | 961 | /// <summary> |
@@ -963,8 +964,8 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
963 | /// <param name="url"></param> | 964 | /// <param name="url"></param> |
964 | public void SetMusicUrl(string url) | 965 | public void SetMusicUrl(string url) |
965 | { | 966 | { |
966 | landData.MusicURL = url; | 967 | LandData.MusicURL = url; |
967 | sendLandUpdateToAvatarsOverMe(); | 968 | SendLandUpdateToAvatarsOverMe(); |
968 | } | 969 | } |
969 | } | 970 | } |
970 | } | 971 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/RegionCombinerLargeLandChannel.cs b/OpenSim/Region/CoreModules/World/Land/RegionCombinerLargeLandChannel.cs index 9e46b94..7df836c 100644 --- a/OpenSim/Region/CoreModules/World/Land/RegionCombinerLargeLandChannel.cs +++ b/OpenSim/Region/CoreModules/World/Land/RegionCombinerLargeLandChannel.cs | |||
@@ -85,7 +85,7 @@ public class RegionCombinerLargeLandChannel : ILandChannel | |||
85 | } | 85 | } |
86 | } | 86 | } |
87 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); | 87 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); |
88 | obj.landData.Name = "NO LAND"; | 88 | obj.LandData.Name = "NO LAND"; |
89 | return obj; | 89 | return obj; |
90 | } | 90 | } |
91 | } | 91 | } |
@@ -118,7 +118,7 @@ public class RegionCombinerLargeLandChannel : ILandChannel | |||
118 | } | 118 | } |
119 | } | 119 | } |
120 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); | 120 | ILandObject obj = new LandObject(UUID.Zero, false, RegData.RegionScene); |
121 | obj.landData.Name = "NO LAND"; | 121 | obj.LandData.Name = "NO LAND"; |
122 | return obj; | 122 | return obj; |
123 | } | 123 | } |
124 | } | 124 | } |
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index a9e0b7f..040d0a3 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -569,7 +569,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
569 | 569 | ||
570 | // Users should be able to edit what is over their land. | 570 | // Users should be able to edit what is over their land. |
571 | ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); | 571 | ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); |
572 | if (parcel != null && parcel.landData.OwnerID == user && m_ParcelOwnerIsGod) | 572 | if (parcel != null && parcel.LandData.OwnerID == user && m_ParcelOwnerIsGod) |
573 | { | 573 | { |
574 | // Admin objects should not be editable by the above | 574 | // Admin objects should not be editable by the above |
575 | if (!IsAdministrator(objectOwner)) | 575 | if (!IsAdministrator(objectOwner)) |
@@ -672,7 +672,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
672 | 672 | ||
673 | // Users should be able to edit what is over their land. | 673 | // Users should be able to edit what is over their land. |
674 | ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); | 674 | ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); |
675 | if ((parcel != null) && (parcel.landData.OwnerID == currentUser)) | 675 | if ((parcel != null) && (parcel.LandData.OwnerID == currentUser)) |
676 | { | 676 | { |
677 | permission = true; | 677 | permission = true; |
678 | } | 678 | } |
@@ -740,12 +740,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
740 | { | 740 | { |
741 | bool permission = false; | 741 | bool permission = false; |
742 | 742 | ||
743 | if (parcel.landData.OwnerID == user) | 743 | if (parcel.LandData.OwnerID == user) |
744 | { | 744 | { |
745 | permission = true; | 745 | permission = true; |
746 | } | 746 | } |
747 | 747 | ||
748 | if ((parcel.landData.GroupID != UUID.Zero) && IsGroupMember(parcel.landData.GroupID, user, groupPowers)) | 748 | if ((parcel.LandData.GroupID != UUID.Zero) && IsGroupMember(parcel.LandData.GroupID, user, groupPowers)) |
749 | { | 749 | { |
750 | permission = true; | 750 | permission = true; |
751 | } | 751 | } |
@@ -767,12 +767,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
767 | { | 767 | { |
768 | bool permission = false; | 768 | bool permission = false; |
769 | 769 | ||
770 | if (parcel.landData.OwnerID == user) | 770 | if (parcel.LandData.OwnerID == user) |
771 | { | 771 | { |
772 | permission = true; | 772 | permission = true; |
773 | } | 773 | } |
774 | 774 | ||
775 | if (parcel.landData.IsGroupOwned && IsGroupMember(parcel.landData.GroupID, user, groupPowers)) | 775 | if (parcel.LandData.IsGroupOwned && IsGroupMember(parcel.LandData.GroupID, user, groupPowers)) |
776 | { | 776 | { |
777 | permission = true; | 777 | permission = true; |
778 | } | 778 | } |
@@ -820,13 +820,13 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
820 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 820 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
821 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 821 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
822 | 822 | ||
823 | if (parcel.landData.OwnerID != user) // Only the owner can deed! | 823 | if (parcel.LandData.OwnerID != user) // Only the owner can deed! |
824 | return false; | 824 | return false; |
825 | 825 | ||
826 | ScenePresence sp = scene.GetScenePresence(user); | 826 | ScenePresence sp = scene.GetScenePresence(user); |
827 | IClientAPI client = sp.ControllingClient; | 827 | IClientAPI client = sp.ControllingClient; |
828 | 828 | ||
829 | if ((client.GetGroupPowers(parcel.landData.GroupID) & (ulong)GroupPowers.LandDeed) == 0) | 829 | if ((client.GetGroupPowers(parcel.LandData.GroupID) & (ulong)GroupPowers.LandDeed) == 0) |
830 | return false; | 830 | return false; |
831 | 831 | ||
832 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed); | 832 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed); |
@@ -1189,7 +1189,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1189 | return false; | 1189 | return false; |
1190 | } | 1190 | } |
1191 | 1191 | ||
1192 | if ((land.landData.Flags & ((int)ParcelFlags.AllowAPrimitiveEntry)) != 0) | 1192 | if ((land.LandData.Flags & ((int)ParcelFlags.AllowAPrimitiveEntry)) != 0) |
1193 | { | 1193 | { |
1194 | return true; | 1194 | return true; |
1195 | } | 1195 | } |
@@ -1233,7 +1233,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1233 | ILandObject land = m_scene.LandChannel.GetLandObject(objectPosition.X, objectPosition.Y); | 1233 | ILandObject land = m_scene.LandChannel.GetLandObject(objectPosition.X, objectPosition.Y); |
1234 | if (land == null) return false; | 1234 | if (land == null) return false; |
1235 | 1235 | ||
1236 | if ((land.landData.Flags & ((int)ParcelFlags.CreateObjects)) == | 1236 | if ((land.LandData.Flags & ((int)ParcelFlags.CreateObjects)) == |
1237 | (int)ParcelFlags.CreateObjects) | 1237 | (int)ParcelFlags.CreateObjects) |
1238 | permission = true; | 1238 | permission = true; |
1239 | 1239 | ||
@@ -1360,7 +1360,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1360 | return false; | 1360 | return false; |
1361 | 1361 | ||
1362 | // Others allowed to terraform? | 1362 | // Others allowed to terraform? |
1363 | if ((parcel.landData.Flags & ((int)ParcelFlags.AllowTerraform)) != 0) | 1363 | if ((parcel.LandData.Flags & ((int)ParcelFlags.AllowTerraform)) != 0) |
1364 | return true; | 1364 | return true; |
1365 | 1365 | ||
1366 | // Land owner can terraform too | 1366 | // Land owner can terraform too |
@@ -1693,27 +1693,27 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1693 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 1693 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
1694 | 1694 | ||
1695 | long powers = 0; | 1695 | long powers = 0; |
1696 | if (parcel.landData.GroupID != UUID.Zero) | 1696 | if (parcel.LandData.GroupID != UUID.Zero) |
1697 | client.GetGroupPowers(parcel.landData.GroupID); | 1697 | client.GetGroupPowers(parcel.LandData.GroupID); |
1698 | 1698 | ||
1699 | switch (type) | 1699 | switch (type) |
1700 | { | 1700 | { |
1701 | case (uint)ObjectReturnType.Owner: | 1701 | case (uint)ObjectReturnType.Owner: |
1702 | // Don't let group members return owner's objects, ever | 1702 | // Don't let group members return owner's objects, ever |
1703 | // | 1703 | // |
1704 | if (parcel.landData.IsGroupOwned) | 1704 | if (parcel.LandData.IsGroupOwned) |
1705 | { | 1705 | { |
1706 | if ((powers & (long)GroupPowers.ReturnGroupOwned) != 0) | 1706 | if ((powers & (long)GroupPowers.ReturnGroupOwned) != 0) |
1707 | return true; | 1707 | return true; |
1708 | } | 1708 | } |
1709 | else | 1709 | else |
1710 | { | 1710 | { |
1711 | if (parcel.landData.OwnerID != client.AgentId) | 1711 | if (parcel.LandData.OwnerID != client.AgentId) |
1712 | return false; | 1712 | return false; |
1713 | } | 1713 | } |
1714 | return GenericParcelOwnerPermission(client.AgentId, parcel, (ulong)GroupPowers.ReturnGroupOwned); | 1714 | return GenericParcelOwnerPermission(client.AgentId, parcel, (ulong)GroupPowers.ReturnGroupOwned); |
1715 | case (uint)ObjectReturnType.Group: | 1715 | case (uint)ObjectReturnType.Group: |
1716 | if (parcel.landData.OwnerID != client.AgentId) | 1716 | if (parcel.LandData.OwnerID != client.AgentId) |
1717 | { | 1717 | { |
1718 | // If permissionis granted through a group... | 1718 | // If permissionis granted through a group... |
1719 | // | 1719 | // |
diff --git a/OpenSim/Region/DataSnapshot/LandSnapshot.cs b/OpenSim/Region/DataSnapshot/LandSnapshot.cs index 005659f..51eacef 100644 --- a/OpenSim/Region/DataSnapshot/LandSnapshot.cs +++ b/OpenSim/Region/DataSnapshot/LandSnapshot.cs | |||
@@ -87,7 +87,7 @@ namespace OpenSim.Region.DataSnapshot.Providers | |||
87 | //Index sim land | 87 | //Index sim land |
88 | foreach (KeyValuePair<int, Land> curLand in m_scene.LandManager.landList) | 88 | foreach (KeyValuePair<int, Land> curLand in m_scene.LandManager.landList) |
89 | { | 89 | { |
90 | //if ((curLand.Value.landData.landFlags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory) | 90 | //if ((curLand.Value.LandData.landFlags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory) |
91 | //{ | 91 | //{ |
92 | m_landIndexed.Add(curLand.Key, curLand.Value.Copy()); | 92 | m_landIndexed.Add(curLand.Key, curLand.Value.Copy()); |
93 | //} | 93 | //} |
@@ -135,7 +135,7 @@ namespace OpenSim.Region.DataSnapshot.Providers | |||
135 | 135 | ||
136 | LandObject land = (LandObject)parcel_interface; | 136 | LandObject land = (LandObject)parcel_interface; |
137 | 137 | ||
138 | LandData parcel = land.landData; | 138 | LandData parcel = land.LandData; |
139 | if (m_parent.ExposureLevel.Equals("all") || | 139 | if (m_parent.ExposureLevel.Equals("all") || |
140 | (m_parent.ExposureLevel.Equals("minimum") && | 140 | (m_parent.ExposureLevel.Equals("minimum") && |
141 | (parcel.Flags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory)) | 141 | (parcel.Flags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory)) |
@@ -393,26 +393,26 @@ namespace OpenSim.Region.DataSnapshot.Providers | |||
393 | { | 393 | { |
394 | m_log.DebugFormat("[DATASNAPSHOT] trying {0}, {1}", refX, refY); | 394 | m_log.DebugFormat("[DATASNAPSHOT] trying {0}, {1}", refX, refY); |
395 | // the point we started with already is in the parcel | 395 | // the point we started with already is in the parcel |
396 | if (land.containsPoint((int)refX, (int)refY)) return; | 396 | if (land.ContainsPoint((int)refX, (int)refY)) return; |
397 | 397 | ||
398 | // ... otherwise, we have to search for a point within the parcel | 398 | // ... otherwise, we have to search for a point within the parcel |
399 | uint startX = (uint)land.landData.AABBMin.X; | 399 | uint startX = (uint)land.LandData.AABBMin.X; |
400 | uint startY = (uint)land.landData.AABBMin.Y; | 400 | uint startY = (uint)land.LandData.AABBMin.Y; |
401 | uint endX = (uint)land.landData.AABBMax.X; | 401 | uint endX = (uint)land.LandData.AABBMax.X; |
402 | uint endY = (uint)land.landData.AABBMax.Y; | 402 | uint endY = (uint)land.LandData.AABBMax.Y; |
403 | 403 | ||
404 | // default: center of the parcel | 404 | // default: center of the parcel |
405 | refX = (startX + endX) / 2; | 405 | refX = (startX + endX) / 2; |
406 | refY = (startY + endY) / 2; | 406 | refY = (startY + endY) / 2; |
407 | // If the center point is within the parcel, take that one | 407 | // If the center point is within the parcel, take that one |
408 | if (land.containsPoint((int)refX, (int)refY)) return; | 408 | if (land.ContainsPoint((int)refX, (int)refY)) return; |
409 | 409 | ||
410 | // otherwise, go the long way. | 410 | // otherwise, go the long way. |
411 | for (uint y = startY; y <= endY; ++y) | 411 | for (uint y = startY; y <= endY; ++y) |
412 | { | 412 | { |
413 | for (uint x = startX; x <= endX; ++x) | 413 | for (uint x = startX; x <= endX; ++x) |
414 | { | 414 | { |
415 | if (land.containsPoint((int)x, (int)y)) | 415 | if (land.ContainsPoint((int)x, (int)y)) |
416 | { | 416 | { |
417 | // found a point | 417 | // found a point |
418 | refX = x; | 418 | refX = x; |
diff --git a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs index afd70bb..9639095 100644 --- a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs +++ b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs | |||
@@ -139,7 +139,7 @@ namespace OpenSim.Region.DataSnapshot.Providers | |||
139 | xmlobject.AppendChild(node); | 139 | xmlobject.AppendChild(node); |
140 | 140 | ||
141 | node = nodeFactory.CreateNode(XmlNodeType.Element, "parceluuid", ""); | 141 | node = nodeFactory.CreateNode(XmlNodeType.Element, "parceluuid", ""); |
142 | node.InnerText = land.landData.GlobalID.ToString(); | 142 | node.InnerText = land.LandData.GlobalID.ToString(); |
143 | xmlobject.AppendChild(node); | 143 | xmlobject.AppendChild(node); |
144 | 144 | ||
145 | parent.AppendChild(xmlobject); | 145 | parent.AppendChild(xmlobject); |
diff --git a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs index 5e87b32..f9c3fa6 100644 --- a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs | |||
@@ -68,7 +68,8 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
68 | 68 | ||
69 | public override void UpdateMovement() | 69 | public override void UpdateMovement() |
70 | { | 70 | { |
71 | UpdateGroupRotationR(m_rootPart.RotationOffset * m_rotationDirection); | 71 | UpdateGroupRotation(GroupRotation * m_rotationDirection); |
72 | |||
72 | base.UpdateMovement(); | 73 | base.UpdateMovement(); |
73 | } | 74 | } |
74 | 75 | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ILandObject.cs b/OpenSim/Region/Framework/Interfaces/ILandObject.cs index a4e90d2..c2b1292 100644 --- a/OpenSim/Region/Framework/Interfaces/ILandObject.cs +++ b/OpenSim/Region/Framework/Interfaces/ILandObject.cs | |||
@@ -37,49 +37,49 @@ namespace OpenSim.Region.Framework.Interfaces | |||
37 | 37 | ||
38 | public interface ILandObject | 38 | public interface ILandObject |
39 | { | 39 | { |
40 | int getParcelMaxPrimCount(ILandObject thisObject); | 40 | int GetParcelMaxPrimCount(ILandObject thisObject); |
41 | int getSimulatorMaxPrimCount(ILandObject thisObject); | 41 | int GetSimulatorMaxPrimCount(ILandObject thisObject); |
42 | 42 | ||
43 | LandData landData { get; set; } | 43 | LandData LandData { get; set; } |
44 | bool[,] landBitmap { get; set; } | 44 | bool[,] LandBitmap { get; set; } |
45 | UUID regionUUID { get; } | 45 | UUID RegionUUID { get; } |
46 | bool containsPoint(int x, int y); | 46 | bool ContainsPoint(int x, int y); |
47 | ILandObject Copy(); | 47 | ILandObject Copy(); |
48 | 48 | ||
49 | void sendLandUpdateToAvatarsOverMe(); | 49 | void SendLandUpdateToAvatarsOverMe(); |
50 | 50 | ||
51 | void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); | 51 | void SendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); |
52 | void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client); | 52 | void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client); |
53 | bool isEitherBannedOrRestricted(UUID avatar); | 53 | bool IsEitherBannedOrRestricted(UUID avatar); |
54 | bool isBannedFromLand(UUID avatar); | 54 | bool IsBannedFromLand(UUID avatar); |
55 | bool isRestrictedFromLand(UUID avatar); | 55 | bool IsRestrictedFromLand(UUID avatar); |
56 | void sendLandUpdateToClient(IClientAPI remote_client); | 56 | void SendLandUpdateToClient(IClientAPI remote_client); |
57 | List<UUID> createAccessListArrayByFlag(AccessList flag); | 57 | List<UUID> CreateAccessListArrayByFlag(AccessList flag); |
58 | void sendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); | 58 | void SendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); |
59 | void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client); | 59 | void UpdateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client); |
60 | void updateLandBitmapByteArray(); | 60 | void UpdateLandBitmapByteArray(); |
61 | void setLandBitmapFromByteArray(); | 61 | void SetLandBitmapFromByteArray(); |
62 | bool[,] getLandBitmap(); | 62 | bool[,] GetLandBitmap(); |
63 | void forceUpdateLandInfo(); | 63 | void ForceUpdateLandInfo(); |
64 | void setLandBitmap(bool[,] bitmap); | 64 | void SetLandBitmap(bool[,] bitmap); |
65 | 65 | ||
66 | bool[,] basicFullRegionLandBitmap(); | 66 | bool[,] BasicFullRegionLandBitmap(); |
67 | bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); | 67 | bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); |
68 | bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); | 68 | bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); |
69 | bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); | 69 | bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); |
70 | void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); | 70 | void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); |
71 | void sendLandObjectOwners(IClientAPI remote_client); | 71 | void SendLandObjectOwners(IClientAPI remote_client); |
72 | void returnObject(SceneObjectGroup obj); | 72 | void ReturnObject(SceneObjectGroup obj); |
73 | void returnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); | 73 | void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); |
74 | void resetLandPrimCounts(); | 74 | void ResetLandPrimCounts(); |
75 | void addPrimToCount(SceneObjectGroup obj); | 75 | void AddPrimToCount(SceneObjectGroup obj); |
76 | void removePrimFromCount(SceneObjectGroup obj); | 76 | void RemovePrimFromCount(SceneObjectGroup obj); |
77 | void updateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); | 77 | void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); |
78 | 78 | ||
79 | void deedToGroup(UUID groupID); | 79 | void DeedToGroup(UUID groupID); |
80 | 80 | ||
81 | void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); | 81 | void SetParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); |
82 | void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); | 82 | void SetSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); |
83 | 83 | ||
84 | /// <summary> | 84 | /// <summary> |
85 | /// Set the media url for this land parcel | 85 | /// Set the media url for this land parcel |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9db2240..c06a58f 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3206,9 +3206,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3206 | ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y); | 3206 | ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y); |
3207 | if (land != null) | 3207 | if (land != null) |
3208 | { | 3208 | { |
3209 | if (land.landData.LandingType == (byte)1 && land.landData.UserLocation != Vector3.Zero) | 3209 | if (land.LandData.LandingType == (byte)1 && land.LandData.UserLocation != Vector3.Zero) |
3210 | { | 3210 | { |
3211 | agent.startpos = land.landData.UserLocation; | 3211 | agent.startpos = land.LandData.UserLocation; |
3212 | } | 3212 | } |
3213 | } | 3213 | } |
3214 | } | 3214 | } |
@@ -3846,13 +3846,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3846 | 3846 | ||
3847 | public LandData GetLandData(float x, float y) | 3847 | public LandData GetLandData(float x, float y) |
3848 | { | 3848 | { |
3849 | return LandChannel.GetLandObject(x, y).landData; | 3849 | return LandChannel.GetLandObject(x, y).LandData; |
3850 | } | 3850 | } |
3851 | 3851 | ||
3852 | public LandData GetLandData(uint x, uint y) | 3852 | public LandData GetLandData(uint x, uint y) |
3853 | { | 3853 | { |
3854 | m_log.DebugFormat("[SCENE]: returning land for {0},{1}", x, y); | 3854 | m_log.DebugFormat("[SCENE]: returning land for {0},{1}", x, y); |
3855 | return LandChannel.GetLandObject((int)x, (int)y).landData; | 3855 | return LandChannel.GetLandObject((int)x, (int)y).LandData; |
3856 | } | 3856 | } |
3857 | 3857 | ||
3858 | 3858 | ||
@@ -3880,14 +3880,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
3880 | { | 3880 | { |
3881 | if (parcel != null) | 3881 | if (parcel != null) |
3882 | { | 3882 | { |
3883 | if ((parcel.landData.Flags & (uint)ParcelFlags.AllowOtherScripts) != 0) | 3883 | if ((parcel.LandData.Flags & (uint)ParcelFlags.AllowOtherScripts) != 0) |
3884 | { | 3884 | { |
3885 | return true; | 3885 | return true; |
3886 | } | 3886 | } |
3887 | else if ((parcel.landData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0) | 3887 | else if ((parcel.LandData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0) |
3888 | { | 3888 | { |
3889 | if (part.OwnerID == parcel.landData.OwnerID | 3889 | if (part.OwnerID == parcel.LandData.OwnerID |
3890 | || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID) | 3890 | || (parcel.LandData.IsGroupOwned && part.GroupID == parcel.LandData.GroupID) |
3891 | || Permissions.IsGod(part.OwnerID)) | 3891 | || Permissions.IsGod(part.OwnerID)) |
3892 | { | 3892 | { |
3893 | return true; | 3893 | return true; |
@@ -3899,7 +3899,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3899 | } | 3899 | } |
3900 | else | 3900 | else |
3901 | { | 3901 | { |
3902 | if (part.OwnerID == parcel.landData.OwnerID) | 3902 | if (part.OwnerID == parcel.LandData.OwnerID) |
3903 | { | 3903 | { |
3904 | return true; | 3904 | return true; |
3905 | } | 3905 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9f44f92..be8a6c9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1327,15 +1327,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
1327 | ILandObject parcel = m_scene.LandChannel.GetLandObject( | 1327 | ILandObject parcel = m_scene.LandChannel.GetLandObject( |
1328 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); | 1328 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); |
1329 | 1329 | ||
1330 | if (parcel != null && parcel.landData != null && | 1330 | if (parcel != null && parcel.LandData != null && |
1331 | parcel.landData.OtherCleanTime != 0) | 1331 | parcel.LandData.OtherCleanTime != 0) |
1332 | { | 1332 | { |
1333 | if (parcel.landData.OwnerID != OwnerID && | 1333 | if (parcel.LandData.OwnerID != OwnerID && |
1334 | (parcel.landData.GroupID != GroupID || | 1334 | (parcel.LandData.GroupID != GroupID || |
1335 | parcel.landData.GroupID == UUID.Zero)) | 1335 | parcel.LandData.GroupID == UUID.Zero)) |
1336 | { | 1336 | { |
1337 | if ((DateTime.Now - RootPart.Rezzed).TotalMinutes > | 1337 | if ((DateTime.Now - RootPart.Rezzed).TotalMinutes > |
1338 | parcel.landData.OtherCleanTime) | 1338 | parcel.LandData.OtherCleanTime) |
1339 | { | 1339 | { |
1340 | DetachFromBackup(); | 1340 | DetachFromBackup(); |
1341 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); | 1341 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index b3d10df..709cca2 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs | |||
@@ -94,10 +94,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
94 | } | 94 | } |
95 | 95 | ||
96 | // root part should have no offset position or rotation | 96 | // root part should have no offset position or rotation |
97 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); | 97 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, |
98 | "root part should have no offset position or rotation"); | ||
98 | 99 | ||
99 | // offset position should be root part position - part2.absolute position. | 100 | // offset position should be root part position - part2.absolute position. |
100 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); | 101 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), |
102 | "offset position should be root part position - part2.absolute position."); | ||
101 | 103 | ||
102 | float roll = 0; | 104 | float roll = 0; |
103 | float pitch = 0; | 105 | float pitch = 0; |
@@ -116,7 +118,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
116 | if (debugtest) | 118 | if (debugtest) |
117 | m_log.Debug(rotEuler2); | 119 | m_log.Debug(rotEuler2); |
118 | 120 | ||
119 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); | 121 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), |
122 | "Not exactly sure what this is asserting..."); | ||
120 | 123 | ||
121 | // Delink part 2 | 124 | // Delink part 2 |
122 | grp1.DelinkFromGroup(part2.LocalId); | 125 | grp1.DelinkFromGroup(part2.LocalId); |
@@ -125,7 +128,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
125 | m_log.Debug("Group2: Prim2: OffsetPosition:" + part2.AbsolutePosition + ", OffsetRotation:" + part2.RotationOffset); | 128 | m_log.Debug("Group2: Prim2: OffsetPosition:" + part2.AbsolutePosition + ", OffsetRotation:" + part2.RotationOffset); |
126 | 129 | ||
127 | Assert.That(grp1.Children.Count, Is.EqualTo(1), "Group 1 still contained part2 after delink."); | 130 | Assert.That(grp1.Children.Count, Is.EqualTo(1), "Group 1 still contained part2 after delink."); |
128 | Assert.That(part2.AbsolutePosition == Vector3.Zero); | 131 | Assert.That(part2.AbsolutePosition == Vector3.Zero, "The absolute position should be zero"); |
129 | } | 132 | } |
130 | 133 | ||
131 | [Test] | 134 | [Test] |
@@ -175,10 +178,10 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
175 | grp3.LinkToGroup(grp4); | 178 | grp3.LinkToGroup(grp4); |
176 | 179 | ||
177 | // At this point we should have 4 parts total in two groups. | 180 | // At this point we should have 4 parts total in two groups. |
178 | Assert.That(grp1.Children.Count == 2); | 181 | Assert.That(grp1.Children.Count == 2, "Group1 children count should be 2"); |
179 | Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); | 182 | Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); |
180 | Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); | 183 | Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); |
181 | Assert.That(grp3.Children.Count == 2); | 184 | Assert.That(grp3.Children.Count == 2, "Group3 children count should be 2"); |
182 | Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); | 185 | Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); |
183 | Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); | 186 | Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); |
184 | 187 | ||
@@ -201,10 +204,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
201 | grp3.RootPart.UpdateFlag = 0; | 204 | grp3.RootPart.UpdateFlag = 0; |
202 | 205 | ||
203 | // root part should have no offset position or rotation | 206 | // root part should have no offset position or rotation |
204 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); | 207 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, |
208 | "root part should have no offset position or rotation (again)"); | ||
205 | 209 | ||
206 | // offset position should be root part position - part2.absolute position. | 210 | // offset position should be root part position - part2.absolute position. |
207 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); | 211 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), |
212 | "offset position should be root part position - part2.absolute position (again)"); | ||
208 | 213 | ||
209 | float roll = 0; | 214 | float roll = 0; |
210 | float pitch = 0; | 215 | float pitch = 0; |
@@ -223,7 +228,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
223 | if (debugtest) | 228 | if (debugtest) |
224 | m_log.Debug(rotEuler2); | 229 | m_log.Debug(rotEuler2); |
225 | 230 | ||
226 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); | 231 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), |
232 | "Not sure what this assertion is all about..."); | ||
227 | 233 | ||
228 | // Now we're linking the first group to the third group. This will make the first group child parts of the third one. | 234 | // Now we're linking the first group to the third group. This will make the first group child parts of the third one. |
229 | grp3.LinkToGroup(grp1); | 235 | grp3.LinkToGroup(grp1); |
@@ -246,13 +252,14 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
246 | m_log.Debug("Group3: Prim2: OffsetPosition:" + part4.OffsetPosition + ", OffsetRotation:" + part4.RotationOffset); | 252 | m_log.Debug("Group3: Prim2: OffsetPosition:" + part4.OffsetPosition + ", OffsetRotation:" + part4.RotationOffset); |
247 | } | 253 | } |
248 | 254 | ||
249 | Assert.That(part2.AbsolutePosition == Vector3.Zero); | 255 | Assert.That(part2.AbsolutePosition == Vector3.Zero, "Badness 1"); |
250 | Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20)); | 256 | Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20), "Badness 2"); |
251 | Quaternion compareQuaternion = new Quaternion(0, 0.7071068f, 0, 0.7071068f); | 257 | Quaternion compareQuaternion = new Quaternion(0, 0.7071068f, 0, 0.7071068f); |
252 | Assert.That((part4.RotationOffset.X - compareQuaternion.X < 0.00003) | 258 | Assert.That((part4.RotationOffset.X - compareQuaternion.X < 0.00003) |
253 | && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) | 259 | && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) |
254 | && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) | 260 | && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) |
255 | && (part4.RotationOffset.W - compareQuaternion.W < 0.00003)); | 261 | && (part4.RotationOffset.W - compareQuaternion.W < 0.00003), |
262 | "Badness 3"); | ||
256 | } | 263 | } |
257 | } | 264 | } |
258 | } | 265 | } |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs index 37c7434..8df020f 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs | |||
@@ -48,14 +48,14 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
48 | 48 | ||
49 | public string Name | 49 | public string Name |
50 | { | 50 | { |
51 | get { return GetLO().landData.Name; } | 51 | get { return GetLO().LandData.Name; } |
52 | set { GetLO().landData.Name = value; } | 52 | set { GetLO().LandData.Name = value; } |
53 | } | 53 | } |
54 | 54 | ||
55 | public string Description | 55 | public string Description |
56 | { | 56 | { |
57 | get { return GetLO().landData.Description; } | 57 | get { return GetLO().LandData.Description; } |
58 | set { GetLO().landData.Description = value; } | 58 | set { GetLO().LandData.Description = value; } |
59 | } | 59 | } |
60 | 60 | ||
61 | public ISocialEntity Owner | 61 | public ISocialEntity Owner |
@@ -66,7 +66,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
66 | 66 | ||
67 | public bool[,] Bitmap | 67 | public bool[,] Bitmap |
68 | { | 68 | { |
69 | get { return GetLO().landBitmap; } | 69 | get { return GetLO().LandBitmap; } |
70 | } | 70 | } |
71 | } | 71 | } |
72 | } | 72 | } |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs index da5ea0d..6fcb5d0 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs | |||
@@ -191,7 +191,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
191 | 191 | ||
192 | foreach (ILandObject landObject in m_los) | 192 | foreach (ILandObject landObject in m_los) |
193 | { | 193 | { |
194 | m_parcels.Add(new LOParcel(m_internalScene, landObject.landData.LocalID)); | 194 | m_parcels.Add(new LOParcel(m_internalScene, landObject.LandData.LocalID)); |
195 | } | 195 | } |
196 | 196 | ||
197 | return m_parcels.ToArray(); | 197 | return m_parcels.ToArray(); |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs index dc49549..4e13fb3 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs | |||
@@ -305,9 +305,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
305 | if (engine != myScriptEngine.ScriptEngineName) | 305 | if (engine != myScriptEngine.ScriptEngineName) |
306 | return; | 306 | return; |
307 | 307 | ||
308 | m_log.Debug("OnRezScript localID: " + localID + | 308 | // m_log.Debug("OnRezScript localID: " + localID + |
309 | " LLUID: " + itemID.ToString() + " Size: " + | 309 | // " LLUID: " + itemID.ToString() + " Size: " + |
310 | script.Length); | 310 | // script.Length); |
311 | 311 | ||
312 | myScriptEngine.m_ScriptManager.StartScript(localID, itemID, script, | 312 | myScriptEngine.m_ScriptManager.StartScript(localID, itemID, script, |
313 | startParam, postOnRez); | 313 | startParam, postOnRez); |
@@ -315,7 +315,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
315 | 315 | ||
316 | public void OnRemoveScript(uint localID, UUID itemID) | 316 | public void OnRemoveScript(uint localID, UUID itemID) |
317 | { | 317 | { |
318 | m_log.Debug("OnRemoveScript localID: " + localID + " LLUID: " + itemID.ToString()); | 318 | // m_log.Debug("OnRemoveScript localID: " + localID + " LLUID: " + itemID.ToString()); |
319 | myScriptEngine.m_ScriptManager.StopScript( | 319 | myScriptEngine.m_ScriptManager.StopScript( |
320 | localID, | 320 | localID, |
321 | itemID | 321 | itemID |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 11ae661..ca67a64 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3905,7 +3905,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3905 | { | 3905 | { |
3906 | // agent must be over the owners land | 3906 | // agent must be over the owners land |
3907 | if (m_host.OwnerID == World.LandChannel.GetLandObject( | 3907 | if (m_host.OwnerID == World.LandChannel.GetLandObject( |
3908 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 3908 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) |
3909 | { | 3909 | { |
3910 | presence.ControllingClient.SendTeleportLocationStart(); | 3910 | presence.ControllingClient.SendTeleportLocationStart(); |
3911 | World.TeleportClientHome(agentId, presence.ControllingClient); | 3911 | World.TeleportClientHome(agentId, presence.ControllingClient); |
@@ -4097,7 +4097,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4097 | return; | 4097 | return; |
4098 | 4098 | ||
4099 | // Need provisions for Group Owned here | 4099 | // Need provisions for Group Owned here |
4100 | if (m_host.OwnerID == targetlandObj.landData.OwnerID || targetlandObj.landData.IsGroupOwned || m_host.OwnerID == targetID) | 4100 | if (m_host.OwnerID == targetlandObj.LandData.OwnerID || |
4101 | targetlandObj.LandData.IsGroupOwned || m_host.OwnerID == targetID) | ||
4101 | { | 4102 | { |
4102 | pushAllowed = true; | 4103 | pushAllowed = true; |
4103 | } | 4104 | } |
@@ -4113,10 +4114,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4113 | else | 4114 | else |
4114 | { | 4115 | { |
4115 | // Parcel push restriction | 4116 | // Parcel push restriction |
4116 | if ((targetlandObj.landData.Flags & (uint)ParcelFlags.RestrictPushObject) == (uint)ParcelFlags.RestrictPushObject) | 4117 | if ((targetlandObj.LandData.Flags & (uint)ParcelFlags.RestrictPushObject) == (uint)ParcelFlags.RestrictPushObject) |
4117 | { | 4118 | { |
4118 | // Need provisions for Group Owned here | 4119 | // Need provisions for Group Owned here |
4119 | if (m_host.OwnerID == targetlandObj.landData.OwnerID || targetlandObj.landData.IsGroupOwned || m_host.OwnerID == targetID) | 4120 | if (m_host.OwnerID == targetlandObj.LandData.OwnerID || |
4121 | targetlandObj.LandData.IsGroupOwned || | ||
4122 | m_host.OwnerID == targetID) | ||
4120 | { | 4123 | { |
4121 | pushAllowed = true; | 4124 | pushAllowed = true; |
4122 | } | 4125 | } |
@@ -5448,7 +5451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5448 | { | 5451 | { |
5449 | // agent must be over the owners land | 5452 | // agent must be over the owners land |
5450 | if (m_host.OwnerID == World.LandChannel.GetLandObject( | 5453 | if (m_host.OwnerID == World.LandChannel.GetLandObject( |
5451 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 5454 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) |
5452 | World.TeleportClientHome(agentId, presence.ControllingClient); | 5455 | World.TeleportClientHome(agentId, presence.ControllingClient); |
5453 | } | 5456 | } |
5454 | } | 5457 | } |
@@ -5538,7 +5541,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5538 | { | 5541 | { |
5539 | if (m_host.OwnerID | 5542 | if (m_host.OwnerID |
5540 | == World.LandChannel.GetLandObject( | 5543 | == World.LandChannel.GetLandObject( |
5541 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 5544 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) |
5542 | return 1; | 5545 | return 1; |
5543 | } | 5546 | } |
5544 | else // object is not an avatar | 5547 | else // object is not an avatar |
@@ -5547,7 +5550,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5547 | if (obj != null) | 5550 | if (obj != null) |
5548 | if (m_host.OwnerID | 5551 | if (m_host.OwnerID |
5549 | == World.LandChannel.GetLandObject( | 5552 | == World.LandChannel.GetLandObject( |
5550 | obj.AbsolutePosition.X, obj.AbsolutePosition.Y).landData.OwnerID) | 5553 | obj.AbsolutePosition.X, obj.AbsolutePosition.Y).LandData.OwnerID) |
5551 | return 1; | 5554 | return 1; |
5552 | } | 5555 | } |
5553 | } | 5556 | } |
@@ -5558,7 +5561,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5558 | public LSL_String llGetLandOwnerAt(LSL_Vector pos) | 5561 | public LSL_String llGetLandOwnerAt(LSL_Vector pos) |
5559 | { | 5562 | { |
5560 | m_host.AddScriptLPS(1); | 5563 | m_host.AddScriptLPS(1); |
5561 | return World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.OwnerID.ToString(); | 5564 | return World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).LandData.OwnerID.ToString(); |
5562 | } | 5565 | } |
5563 | 5566 | ||
5564 | /// <summary> | 5567 | /// <summary> |
@@ -5627,9 +5630,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5627 | ILandObject parcel = World.LandChannel.GetLandObject(av.AbsolutePosition.X, av.AbsolutePosition.Y); | 5630 | ILandObject parcel = World.LandChannel.GetLandObject(av.AbsolutePosition.X, av.AbsolutePosition.Y); |
5628 | if (parcel != null) | 5631 | if (parcel != null) |
5629 | { | 5632 | { |
5630 | if (m_host.ObjectOwner == parcel.landData.OwnerID || | 5633 | if (m_host.ObjectOwner == parcel.LandData.OwnerID || |
5631 | (m_host.OwnerID == m_host.GroupID && m_host.GroupID == parcel.landData.GroupID | 5634 | (m_host.OwnerID == m_host.GroupID && m_host.GroupID == parcel.LandData.GroupID |
5632 | && parcel.landData.IsGroupOwned) || World.Permissions.IsGod(m_host.OwnerID)) | 5635 | && parcel.LandData.IsGroupOwned) || World.Permissions.IsGod(m_host.OwnerID)) |
5633 | { | 5636 | { |
5634 | av.StandUp(); | 5637 | av.StandUp(); |
5635 | } | 5638 | } |
@@ -6132,7 +6135,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6132 | { | 6135 | { |
6133 | m_host.AddScriptLPS(1); | 6136 | m_host.AddScriptLPS(1); |
6134 | UUID key; | 6137 | UUID key; |
6135 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 6138 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
6136 | if (land.OwnerID == m_host.OwnerID) | 6139 | if (land.OwnerID == m_host.OwnerID) |
6137 | { | 6140 | { |
6138 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 6141 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
@@ -7147,7 +7150,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7147 | 7150 | ||
7148 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 7151 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); |
7149 | 7152 | ||
7150 | if (land.landData.OwnerID != m_host.ObjectOwner) | 7153 | if (land.LandData.OwnerID != m_host.ObjectOwner) |
7151 | return; | 7154 | return; |
7152 | 7155 | ||
7153 | land.SetMusicUrl(url); | 7156 | land.SetMusicUrl(url); |
@@ -8406,7 +8409,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8406 | bool update = false; // send a ParcelMediaUpdate (and possibly change the land's media URL)? | 8409 | bool update = false; // send a ParcelMediaUpdate (and possibly change the land's media URL)? |
8407 | byte loop = 0; | 8410 | byte loop = 0; |
8408 | 8411 | ||
8409 | LandData landData = landObject.landData; | 8412 | LandData landData = landObject.LandData; |
8410 | string url = landData.MediaURL; | 8413 | string url = landData.MediaURL; |
8411 | string texture = landData.MediaID.ToString(); | 8414 | string texture = landData.MediaID.ToString(); |
8412 | bool autoAlign = landData.MediaAutoScale != 0; | 8415 | bool autoAlign = landData.MediaAutoScale != 0; |
@@ -8835,7 +8838,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8835 | { | 8838 | { |
8836 | m_host.AddScriptLPS(1); | 8839 | m_host.AddScriptLPS(1); |
8837 | UUID key; | 8840 | UUID key; |
8838 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 8841 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
8839 | if (land.OwnerID == m_host.OwnerID) | 8842 | if (land.OwnerID == m_host.OwnerID) |
8840 | { | 8843 | { |
8841 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 8844 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
@@ -8854,7 +8857,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8854 | { | 8857 | { |
8855 | m_host.AddScriptLPS(1); | 8858 | m_host.AddScriptLPS(1); |
8856 | UUID key; | 8859 | UUID key; |
8857 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 8860 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
8858 | if (land.OwnerID == m_host.OwnerID) | 8861 | if (land.OwnerID == m_host.OwnerID) |
8859 | { | 8862 | { |
8860 | if (UUID.TryParse(avatar, out key)) | 8863 | if (UUID.TryParse(avatar, out key)) |
@@ -8876,7 +8879,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8876 | { | 8879 | { |
8877 | m_host.AddScriptLPS(1); | 8880 | m_host.AddScriptLPS(1); |
8878 | UUID key; | 8881 | UUID key; |
8879 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 8882 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
8880 | if (land.OwnerID == m_host.OwnerID) | 8883 | if (land.OwnerID == m_host.OwnerID) |
8881 | { | 8884 | { |
8882 | if (UUID.TryParse(avatar, out key)) | 8885 | if (UUID.TryParse(avatar, out key)) |
@@ -9021,7 +9024,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9021 | public LSL_Integer llGetParcelFlags(LSL_Vector pos) | 9024 | public LSL_Integer llGetParcelFlags(LSL_Vector pos) |
9022 | { | 9025 | { |
9023 | m_host.AddScriptLPS(1); | 9026 | m_host.AddScriptLPS(1); |
9024 | return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.Flags; | 9027 | return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).LandData.Flags; |
9025 | } | 9028 | } |
9026 | 9029 | ||
9027 | public LSL_Integer llGetRegionFlags() | 9030 | public LSL_Integer llGetRegionFlags() |
@@ -9142,7 +9145,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9142 | public void llResetLandBanList() | 9145 | public void llResetLandBanList() |
9143 | { | 9146 | { |
9144 | m_host.AddScriptLPS(1); | 9147 | m_host.AddScriptLPS(1); |
9145 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 9148 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
9146 | if (land.OwnerID == m_host.OwnerID) | 9149 | if (land.OwnerID == m_host.OwnerID) |
9147 | { | 9150 | { |
9148 | foreach (ParcelManager.ParcelAccessEntry entry in land.ParcelAccessList) | 9151 | foreach (ParcelManager.ParcelAccessEntry entry in land.ParcelAccessList) |
@@ -9159,7 +9162,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9159 | public void llResetLandPassList() | 9162 | public void llResetLandPassList() |
9160 | { | 9163 | { |
9161 | m_host.AddScriptLPS(1); | 9164 | m_host.AddScriptLPS(1); |
9162 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).landData; | 9165 | LandData land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).LandData; |
9163 | if (land.OwnerID == m_host.OwnerID) | 9166 | if (land.OwnerID == m_host.OwnerID) |
9164 | { | 9167 | { |
9165 | foreach (ParcelManager.ParcelAccessEntry entry in land.ParcelAccessList) | 9168 | foreach (ParcelManager.ParcelAccessEntry entry in land.ParcelAccessList) |
@@ -9243,7 +9246,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9243 | LSL_List ret = new LSL_List(); | 9246 | LSL_List ret = new LSL_List(); |
9244 | if (land != null) | 9247 | if (land != null) |
9245 | { | 9248 | { |
9246 | foreach (KeyValuePair<UUID, int> detectedParams in land.getLandObjectOwners()) | 9249 | foreach (KeyValuePair<UUID, int> detectedParams in land.GetLandObjectOwners()) |
9247 | { | 9250 | { |
9248 | ret.Add(detectedParams.Key.ToString()); | 9251 | ret.Add(detectedParams.Key.ToString()); |
9249 | ret.Add(detectedParams.Value); | 9252 | ret.Add(detectedParams.Value); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 0b95abc..59525b6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -593,7 +593,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
593 | // agent must be over owners land to avoid abuse | 593 | // agent must be over owners land to avoid abuse |
594 | if (m_host.OwnerID | 594 | if (m_host.OwnerID |
595 | == World.LandChannel.GetLandObject( | 595 | == World.LandChannel.GetLandObject( |
596 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 596 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) |
597 | { | 597 | { |
598 | 598 | ||
599 | // Check for hostname , attempt to make a hglink | 599 | // Check for hostname , attempt to make a hglink |
@@ -647,7 +647,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
647 | // agent must be over owners land to avoid abuse | 647 | // agent must be over owners land to avoid abuse |
648 | if (m_host.OwnerID | 648 | if (m_host.OwnerID |
649 | == World.LandChannel.GetLandObject( | 649 | == World.LandChannel.GetLandObject( |
650 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 650 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) |
651 | { | 651 | { |
652 | presence.ControllingClient.SendTeleportLocationStart(); | 652 | presence.ControllingClient.SendTeleportLocationStart(); |
653 | World.RequestTeleportLocation(presence.ControllingClient, regionHandle, | 653 | World.RequestTeleportLocation(presence.ControllingClient, regionHandle, |
@@ -1164,7 +1164,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1164 | ILandObject land | 1164 | ILandObject land |
1165 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 1165 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); |
1166 | 1166 | ||
1167 | if (land.landData.OwnerID != m_host.ObjectOwner) | 1167 | if (land.LandData.OwnerID != m_host.ObjectOwner) |
1168 | return; | 1168 | return; |
1169 | 1169 | ||
1170 | land.SetMediaUrl(url); | 1170 | land.SetMediaUrl(url); |
@@ -1182,7 +1182,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1182 | ILandObject land | 1182 | ILandObject land |
1183 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 1183 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); |
1184 | 1184 | ||
1185 | if (land.landData.OwnerID != m_host.ObjectOwner) | 1185 | if (land.LandData.OwnerID != m_host.ObjectOwner) |
1186 | { | 1186 | { |
1187 | OSSLError("osSetParcelSIPAddress: Sorry, you need to own the land to use this function"); | 1187 | OSSLError("osSetParcelSIPAddress: Sorry, you need to own the land to use this function"); |
1188 | return; | 1188 | return; |
@@ -1192,7 +1192,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1192 | IVoiceModule voiceModule = World.RequestModuleInterface<IVoiceModule>(); | 1192 | IVoiceModule voiceModule = World.RequestModuleInterface<IVoiceModule>(); |
1193 | 1193 | ||
1194 | if (voiceModule != null) | 1194 | if (voiceModule != null) |
1195 | voiceModule.setLandSIPAddress(SIPAddress,land.landData.GlobalID); | 1195 | voiceModule.setLandSIPAddress(SIPAddress,land.LandData.GlobalID); |
1196 | else | 1196 | else |
1197 | OSSLError("osSetParcelSIPAddress: No voice module enabled for this land"); | 1197 | OSSLError("osSetParcelSIPAddress: No voice module enabled for this land"); |
1198 | 1198 | ||
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs index ffc8e4c..d16112d 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs | |||
@@ -32,9 +32,11 @@ using System.IO; | |||
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | using Nini.Config; | 33 | using Nini.Config; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Framework.Communications; | 36 | using OpenSim.Framework.Communications; |
36 | using OpenSim.Framework.Servers.HttpServer; | 37 | using OpenSim.Framework.Servers.HttpServer; |
37 | using OpenSim.Services.Interfaces; | 38 | using OpenSim.Services.Interfaces; |
39 | using OpenMetaverse; | ||
38 | 40 | ||
39 | namespace OpenSim.Services.Connectors | 41 | namespace OpenSim.Services.Connectors |
40 | { | 42 | { |
@@ -79,6 +81,10 @@ namespace OpenSim.Services.Connectors | |||
79 | throw new Exception("Asset connector init error"); | 81 | throw new Exception("Asset connector init error"); |
80 | } | 82 | } |
81 | m_ServerURI = serviceURI; | 83 | m_ServerURI = serviceURI; |
84 | |||
85 | MainConsole.Instance.Commands.AddCommand("asset", false, "dump asset", | ||
86 | "dump asset <id> <file>", | ||
87 | "dump one cached asset", HandleDumpAsset); | ||
82 | } | 88 | } |
83 | 89 | ||
84 | protected void SetCache(IImprovedAssetCache cache) | 90 | protected void SetCache(IImprovedAssetCache cache) |
@@ -264,5 +270,43 @@ namespace OpenSim.Services.Connectors | |||
264 | } | 270 | } |
265 | return false; | 271 | return false; |
266 | } | 272 | } |
273 | |||
274 | private void HandleDumpAsset(string module, string[] args) | ||
275 | { | ||
276 | if (args.Length != 4) | ||
277 | { | ||
278 | MainConsole.Instance.Output("Syntax: dump asset <id> <file>"); | ||
279 | return; | ||
280 | } | ||
281 | |||
282 | UUID assetID; | ||
283 | |||
284 | if (!UUID.TryParse(args[2], out assetID)) | ||
285 | { | ||
286 | MainConsole.Instance.Output("Invalid asset ID"); | ||
287 | return; | ||
288 | } | ||
289 | |||
290 | if (m_Cache == null) | ||
291 | { | ||
292 | MainConsole.Instance.Output("Instance uses no cache"); | ||
293 | return; | ||
294 | } | ||
295 | |||
296 | AssetBase asset = asset = m_Cache.Get(assetID.ToString()); | ||
297 | |||
298 | if (asset == null) | ||
299 | { | ||
300 | MainConsole.Instance.Output("Asset not found in cache"); | ||
301 | return; | ||
302 | } | ||
303 | |||
304 | string fileName = args[3]; | ||
305 | |||
306 | FileStream fs = File.Create(fileName); | ||
307 | fs.Write(asset.Data, 0, asset.Data.Length); | ||
308 | |||
309 | fs.Close(); | ||
310 | } | ||
267 | } | 311 | } |
268 | } | 312 | } |
diff --git a/OpenSim/Tests/Common/Mock/TestLandChannel.cs b/OpenSim/Tests/Common/Mock/TestLandChannel.cs index 01b5203..ed30827 100644 --- a/OpenSim/Tests/Common/Mock/TestLandChannel.cs +++ b/OpenSim/Tests/Common/Mock/TestLandChannel.cs | |||
@@ -29,6 +29,8 @@ using System.Collections.Generic; | |||
29 | using OpenMetaverse; | 29 | using OpenMetaverse; |
30 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
31 | using OpenSim.Region.Framework.Interfaces; | 31 | using OpenSim.Region.Framework.Interfaces; |
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | using OpenSim.Region.CoreModules.World.Land; | ||
32 | 34 | ||
33 | namespace OpenSim.Tests.Common.Mock | 35 | namespace OpenSim.Tests.Common.Mock |
34 | { | 36 | { |
@@ -37,11 +39,45 @@ namespace OpenSim.Tests.Common.Mock | |||
37 | /// </summary> | 39 | /// </summary> |
38 | public class TestLandChannel : ILandChannel | 40 | public class TestLandChannel : ILandChannel |
39 | { | 41 | { |
40 | public List<ILandObject> ParcelsNearPoint(Vector3 position) { return null; } | 42 | private Scene m_scene; |
41 | public List<ILandObject> AllParcels() { return null; } | 43 | |
42 | public ILandObject GetLandObject(int x, int y) { return null; } | 44 | public TestLandChannel(Scene scene) |
43 | public ILandObject GetLandObject(int localID) { return null; } | 45 | { |
44 | public ILandObject GetLandObject(float x, float y) { return null; } | 46 | m_scene = scene; |
47 | } | ||
48 | |||
49 | public List<ILandObject> ParcelsNearPoint(Vector3 position) | ||
50 | { | ||
51 | return new List<ILandObject>(); | ||
52 | } | ||
53 | |||
54 | public List<ILandObject> AllParcels() | ||
55 | { | ||
56 | return new List<ILandObject>(); | ||
57 | } | ||
58 | |||
59 | protected ILandObject GetNoLand() | ||
60 | { | ||
61 | ILandObject obj = new LandObject(UUID.Zero, false, m_scene); | ||
62 | obj.LandData.Name = "NO LAND"; | ||
63 | return obj; | ||
64 | } | ||
65 | |||
66 | public ILandObject GetLandObject(int x, int y) | ||
67 | { | ||
68 | return GetNoLand(); | ||
69 | } | ||
70 | |||
71 | public ILandObject GetLandObject(int localID) | ||
72 | { | ||
73 | return GetNoLand(); | ||
74 | } | ||
75 | |||
76 | public ILandObject GetLandObject(float x, float y) | ||
77 | { | ||
78 | return GetNoLand(); | ||
79 | } | ||
80 | |||
45 | public bool IsLandPrimCountTainted() { return false; } | 81 | public bool IsLandPrimCountTainted() { return false; } |
46 | public bool IsForcefulBansAllowed() { return false; } | 82 | public bool IsForcefulBansAllowed() { return false; } |
47 | public void UpdateLandObject(int localID, LandData data) {} | 83 | public void UpdateLandObject(int localID, LandData data) {} |
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 53f24d9..eab5422 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | |||
@@ -127,7 +127,7 @@ namespace OpenSim.Tests.Common.Setup | |||
127 | public static TestScene SetupScene( | 127 | public static TestScene SetupScene( |
128 | string name, UUID id, uint x, uint y, TestCommunicationsManager cm, String realServices) | 128 | string name, UUID id, uint x, uint y, TestCommunicationsManager cm, String realServices) |
129 | { | 129 | { |
130 | bool newScene= false; | 130 | bool newScene = false; |
131 | 131 | ||
132 | Console.WriteLine("Setting up test scene {0}", name); | 132 | Console.WriteLine("Setting up test scene {0}", name); |
133 | 133 | ||
@@ -198,7 +198,7 @@ namespace OpenSim.Tests.Common.Setup | |||
198 | 198 | ||
199 | testScene.SetModuleInterfaces(); | 199 | testScene.SetModuleInterfaces(); |
200 | 200 | ||
201 | testScene.LandChannel = new TestLandChannel(); | 201 | testScene.LandChannel = new TestLandChannel(testScene); |
202 | testScene.LoadWorldMap(); | 202 | testScene.LoadWorldMap(); |
203 | 203 | ||
204 | PhysicsPluginManager physicsPluginManager = new PhysicsPluginManager(); | 204 | PhysicsPluginManager physicsPluginManager = new PhysicsPluginManager(); |