Merge branch 'master' into careminster-presence-refactor
commit
3435816541
|
@ -228,8 +228,17 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
LandData parcel = LandDataSerializer.Deserialize(serialisedParcel);
|
LandData parcel = LandDataSerializer.Deserialize(serialisedParcel);
|
||||||
if (!ResolveUserUuid(parcel.OwnerID))
|
if (!ResolveUserUuid(parcel.OwnerID))
|
||||||
parcel.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
parcel.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
||||||
|
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[ARCHIVER]: Adding parcel {0}, local id {1}, area {2}",
|
||||||
|
// parcel.Name, parcel.LocalID, parcel.Area);
|
||||||
|
|
||||||
landData.Add(parcel);
|
landData.Add(parcel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!m_merge)
|
||||||
|
m_scene.LandChannel.Clear(false);
|
||||||
|
|
||||||
m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
|
m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
|
||||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
|
m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,12 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
return new List<ILandObject>();
|
return new List<ILandObject>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Clear(bool setupDefaultParcel)
|
||||||
|
{
|
||||||
|
if (m_landManagementModule != null)
|
||||||
|
m_landManagementModule.Clear(setupDefaultParcel);
|
||||||
|
}
|
||||||
|
|
||||||
public List<ILandObject> ParcelsNearPoint(Vector3 position)
|
public List<ILandObject> ParcelsNearPoint(Vector3 position)
|
||||||
{
|
{
|
||||||
if (m_landManagementModule != null)
|
if (m_landManagementModule != null)
|
||||||
|
|
|
@ -306,13 +306,19 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
|
m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
|
||||||
m_landIDList.Initialize();
|
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);
|
ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
|
||||||
|
|
||||||
fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
|
fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
|
||||||
fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
|
||||||
fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
|
fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
|
||||||
AddLandObject(fullSimParcel);
|
return AddLandObject(fullSimParcel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ILandObject> AllParcels()
|
public List<ILandObject> AllParcels()
|
||||||
|
@ -585,15 +591,6 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a basic Parcel object without an owner (a zeroed key)
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public ILandObject CreateBaseLand()
|
|
||||||
{
|
|
||||||
return new LandObject(UUID.Zero, false, m_scene);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds a land object to the stored list and adds them to the landIDList to what they own
|
/// Adds a land object to the stored list and adds them to the landIDList to what they own
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -654,6 +651,28 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clear the scene of all parcels
|
||||||
|
/// </summary>
|
||||||
|
public void Clear(bool setupDefaultParcel)
|
||||||
|
{
|
||||||
|
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();
|
||||||
|
|
||||||
|
if (setupDefaultParcel)
|
||||||
|
CreateDefaultParcel();
|
||||||
|
}
|
||||||
|
|
||||||
private void performFinalLandJoin(ILandObject master, ILandObject slave)
|
private void performFinalLandJoin(ILandObject master, ILandObject slave)
|
||||||
{
|
{
|
||||||
bool[,] landBitmapSlave = slave.GetLandBitmap();
|
bool[,] landBitmapSlave = slave.GetLandBitmap();
|
||||||
|
@ -1323,7 +1342,6 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ClientOnParcelDeedToGroup(int parcelLocalID, UUID groupID, IClientAPI remote_client)
|
void ClientOnParcelDeedToGroup(int parcelLocalID, UUID groupID, IClientAPI remote_client)
|
||||||
{
|
{
|
||||||
ILandObject land;
|
ILandObject land;
|
||||||
|
@ -1342,7 +1360,6 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
EventManagerOnParcelPrimCountTainted();
|
EventManagerOnParcelPrimCountTainted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region Land Object From Storage Functions
|
#region Land Object From Storage Functions
|
||||||
|
|
||||||
public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data)
|
public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data)
|
||||||
|
@ -1390,6 +1407,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
public void EventManagerOnNoLandDataFromStorage()
|
public void EventManagerOnNoLandDataFromStorage()
|
||||||
{
|
{
|
||||||
ResetSimLandObjects();
|
ResetSimLandObjects();
|
||||||
|
CreateDefaultParcel();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1963,23 +1981,34 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
|
|
||||||
protected void InstallInterfaces()
|
protected void InstallInterfaces()
|
||||||
{
|
{
|
||||||
Command showCommand =
|
Command clearCommand
|
||||||
new Command("show", CommandIntentions.COMMAND_STATISTICAL, ShowParcelsCommand, "Shows all parcels on the current region.");
|
= new Command("clear", CommandIntentions.COMMAND_HAZARDOUS, ClearCommand, "Clears all the parcels from the region.");
|
||||||
|
Command showCommand
|
||||||
|
= new Command("show", CommandIntentions.COMMAND_STATISTICAL, ShowParcelsCommand, "Shows all parcels on the region.");
|
||||||
|
|
||||||
|
m_commander.RegisterCommand("clear", clearCommand);
|
||||||
m_commander.RegisterCommand("show", showCommand);
|
m_commander.RegisterCommand("show", showCommand);
|
||||||
|
|
||||||
// Add this to our scene so scripts can call these functions
|
// Add this to our scene so scripts can call these functions
|
||||||
m_scene.RegisterModuleCommander(m_commander);
|
m_scene.RegisterModuleCommander(m_commander);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void ClearCommand(Object[] args)
|
||||||
|
{
|
||||||
|
Clear(true);
|
||||||
|
|
||||||
|
MainConsole.Instance.OutputFormat("Cleared all parcels from {0}", m_scene.RegionInfo.RegionName);
|
||||||
|
}
|
||||||
|
|
||||||
protected void ShowParcelsCommand(Object[] args)
|
protected void ShowParcelsCommand(Object[] args)
|
||||||
{
|
{
|
||||||
StringBuilder report = new StringBuilder();
|
StringBuilder report = new StringBuilder();
|
||||||
|
|
||||||
report.AppendFormat("Land information for {0}\n", m_scene.RegionInfo.RegionName);
|
report.AppendFormat("Land information for {0}\n", m_scene.RegionInfo.RegionName);
|
||||||
report.AppendFormat(
|
report.AppendFormat(
|
||||||
"{0,-20} {1,-9} {2,-18} {3,-18} {4,-20}\n",
|
"{0,-20} {1,-10} {2,-9} {3,-18} {4,-18} {5,-20}\n",
|
||||||
"Parcel Name",
|
"Parcel Name",
|
||||||
|
"Local ID",
|
||||||
"Area",
|
"Area",
|
||||||
"Starts",
|
"Starts",
|
||||||
"Ends",
|
"Ends",
|
||||||
|
@ -1992,8 +2021,8 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
LandData ld = lo.LandData;
|
LandData ld = lo.LandData;
|
||||||
|
|
||||||
report.AppendFormat(
|
report.AppendFormat(
|
||||||
"{0,-20} {1,-9} {2,-18} {3,-18} {4,-20}\n",
|
"{0,-20} {1,-10} {2,-9} {3,-18} {4,-18} {5,-20}\n",
|
||||||
ld.Name, ld.Area, lo.StartPoint, lo.EndPoint, m_userManager.GetUserName(ld.OwnerID));
|
ld.Name, ld.LocalID, ld.Area, lo.StartPoint, lo.EndPoint, m_userManager.GetUserName(ld.OwnerID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,14 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
ILandObject GetLandObject(int localID);
|
ILandObject GetLandObject(int localID);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clear the land channel of all parcels.
|
||||||
|
/// </summary>
|
||||||
|
/// <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 IsLandPrimCountTainted();
|
||||||
bool IsForcefulBansAllowed();
|
bool IsForcefulBansAllowed();
|
||||||
void UpdateLandObject(int localID, LandData data);
|
void UpdateLandObject(int localID, LandData data);
|
||||||
|
|
|
@ -63,6 +63,11 @@ public class RegionCombinerLargeLandChannel : ILandChannel
|
||||||
return RootRegionLandChannel.AllParcels();
|
return RootRegionLandChannel.AllParcels();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Clear(bool setupDefaultParcel)
|
||||||
|
{
|
||||||
|
RootRegionLandChannel.Clear(setupDefaultParcel);
|
||||||
|
}
|
||||||
|
|
||||||
public ILandObject GetLandObject(int x, int y)
|
public ILandObject GetLandObject(int x, int y)
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[BIGLANDTESTINT]: <{0},{1}>", x, y);
|
//m_log.DebugFormat("[BIGLANDTESTINT]: <{0},{1}>", x, y);
|
||||||
|
|
|
@ -56,6 +56,11 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
return new List<ILandObject>();
|
return new List<ILandObject>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Clear(bool setupDefaultParcel)
|
||||||
|
{
|
||||||
|
// Intentionally blank since we don't save any parcel data in the test channel
|
||||||
|
}
|
||||||
|
|
||||||
protected ILandObject GetNoLand()
|
protected ILandObject GetNoLand()
|
||||||
{
|
{
|
||||||
ILandObject obj = new LandObject(UUID.Zero, false, m_scene);
|
ILandObject obj = new LandObject(UUID.Zero, false, m_scene);
|
||||||
|
|
Loading…
Reference in New Issue