mirror of
https://github.com/opensim/opensim.git
synced 2026-08-12 04:05:42 +08:00
Fix OAR parcel loading so that old parcels are replaced by the new instead of merged.
The --merge switch will still merge the old and new land parcelling.
This commit is contained in:
@@ -230,6 +230,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
parcel.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
||||
landData.Add(parcel);
|
||||
}
|
||||
|
||||
if (!m_merge)
|
||||
m_scene.LandChannel.Clear();
|
||||
|
||||
m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
|
||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
|
||||
|
||||
|
||||
@@ -116,6 +116,12 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
|
||||
return new List<ILandObject>();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (m_landManagementModule != null)
|
||||
m_landManagementModule.Clear();
|
||||
}
|
||||
|
||||
public List<ILandObject> ParcelsNearPoint(Vector3 position)
|
||||
{
|
||||
|
||||
@@ -636,6 +636,25 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||
m_landList.Remove(local_id);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clear the scene of all parcels
|
||||
/// </summary>
|
||||
public void Clear()
|
||||
{
|
||||
lock (m_landList)
|
||||
{
|
||||
foreach (ILandObject lo in m_landList.Values)
|
||||
{
|
||||
//m_scene.SimulationDataService.RemoveLandObject(lo.LandData.GlobalID);
|
||||
m_scene.EventManager.TriggerLandObjectRemoved(lo.LandData.GlobalID);
|
||||
}
|
||||
|
||||
m_landList.Clear();
|
||||
}
|
||||
|
||||
ResetSimLandObjects();
|
||||
}
|
||||
|
||||
private void performFinalLandJoin(ILandObject master, ILandObject slave)
|
||||
{
|
||||
|
||||
@@ -69,6 +69,11 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||
/// <returns></returns>
|
||||
ILandObject GetLandObject(int localID);
|
||||
|
||||
/// <summary>
|
||||
/// Clear the land channel of all parcels.
|
||||
/// </summary>
|
||||
void Clear();
|
||||
|
||||
bool IsLandPrimCountTainted();
|
||||
bool IsForcefulBansAllowed();
|
||||
void UpdateLandObject(int localID, LandData data);
|
||||
|
||||
@@ -62,6 +62,11 @@ public class RegionCombinerLargeLandChannel : ILandChannel
|
||||
{
|
||||
return RootRegionLandChannel.AllParcels();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
RootRegionLandChannel.Clear();
|
||||
}
|
||||
|
||||
public ILandObject GetLandObject(int x, int y)
|
||||
{
|
||||
|
||||
@@ -55,6 +55,11 @@ namespace OpenSim.Tests.Common.Mock
|
||||
{
|
||||
return new List<ILandObject>();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
// Intentionally blank since we don't save any parcel data in the test channel
|
||||
}
|
||||
|
||||
protected ILandObject GetNoLand()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user