When an oar is loaded, do not create a default parcel before loading the parcels from the OAR.
The region spanning parcel shouldn't exist in this situation. If it does, when the land data is loaded it is repersisted with a local ID which comes after the ones loaded via the oar, which obliterates the oar loaded one. Resaving the data we just loaded from the database is somewhat odd in itself (though this makes sense from the way that OAR loading was already using the same event).viewer-2-initial-appearance
parent
42c0dbf49a
commit
be3685b1a2
|
@ -237,7 +237,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
}
|
||||
|
||||
if (!m_merge)
|
||||
m_scene.LandChannel.Clear();
|
||||
m_scene.LandChannel.Clear(false);
|
||||
|
||||
m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
|
||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
|
||||
|
|
|
@ -117,10 +117,10 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
return new List<ILandObject>();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
public void Clear(bool setupDefaultParcel)
|
||||
{
|
||||
if (m_landManagementModule != null)
|
||||
m_landManagementModule.Clear();
|
||||
m_landManagementModule.Clear(setupDefaultParcel);
|
||||
}
|
||||
|
||||
public List<ILandObject> ParcelsNearPoint(Vector3 position)
|
||||
|
|
|
@ -298,13 +298,19 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
|
||||
m_landIDList.Initialize();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a default parcel that spans the entire region and is owned by the estate owner.
|
||||
/// </summary>
|
||||
/// <returns>The parcel created.</returns>
|
||||
protected ILandObject CreateDefaultParcel()
|
||||
{
|
||||
ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
|
||||
|
||||
fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
|
||||
fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
||||
fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
|
||||
AddLandObject(fullSimParcel);
|
||||
return AddLandObject(fullSimParcel);
|
||||
}
|
||||
|
||||
public List<ILandObject> AllParcels()
|
||||
|
@ -640,7 +646,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
/// <summary>
|
||||
/// Clear the scene of all parcels
|
||||
/// </summary>
|
||||
public void Clear()
|
||||
public void Clear(bool setupDefaultParcel)
|
||||
{
|
||||
lock (m_landList)
|
||||
{
|
||||
|
@ -654,6 +660,9 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
}
|
||||
|
||||
ResetSimLandObjects();
|
||||
|
||||
if (setupDefaultParcel)
|
||||
CreateDefaultParcel();
|
||||
}
|
||||
|
||||
private void performFinalLandJoin(ILandObject master, ILandObject slave)
|
||||
|
@ -1321,7 +1330,6 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void ClientOnParcelDeedToGroup(int parcelLocalID, UUID groupID, IClientAPI remote_client)
|
||||
{
|
||||
ILandObject land;
|
||||
|
@ -1337,10 +1345,8 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
{
|
||||
land.DeedToGroup(groupID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#region Land Object From Storage Functions
|
||||
|
||||
public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data)
|
||||
|
@ -1375,6 +1381,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
public void EventManagerOnNoLandDataFromStorage()
|
||||
{
|
||||
ResetSimLandObjects();
|
||||
CreateDefaultParcel();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1646,7 +1653,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
|||
|
||||
protected void ClearCommand(Object[] args)
|
||||
{
|
||||
Clear();
|
||||
Clear(true);
|
||||
|
||||
MainConsole.Instance.OutputFormat("Cleared all parcels from {0}", m_scene.RegionInfo.RegionName);
|
||||
}
|
||||
|
|
|
@ -72,7 +72,10 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
/// <summary>
|
||||
/// Clear the land channel of all parcels.
|
||||
/// </summary>
|
||||
void Clear();
|
||||
/// <param name="setupDefaultParcel">
|
||||
/// If true, set up a default parcel covering the whole region owned by the estate owner.
|
||||
/// </param>
|
||||
void Clear(bool setupDefaultParcel);
|
||||
|
||||
bool IsLandPrimCountTainted();
|
||||
bool IsForcefulBansAllowed();
|
||||
|
|
|
@ -63,9 +63,9 @@ public class RegionCombinerLargeLandChannel : ILandChannel
|
|||
return RootRegionLandChannel.AllParcels();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
public void Clear(bool setupDefaultParcel)
|
||||
{
|
||||
RootRegionLandChannel.Clear();
|
||||
RootRegionLandChannel.Clear(setupDefaultParcel);
|
||||
}
|
||||
|
||||
public ILandObject GetLandObject(int x, int y)
|
||||
|
|
|
@ -56,7 +56,7 @@ namespace OpenSim.Tests.Common.Mock
|
|||
return new List<ILandObject>();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
public void Clear(bool setupDefaultParcel)
|
||||
{
|
||||
// Intentionally blank since we don't save any parcel data in the test channel
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue