mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 11:57:03 +08:00
Merge branch 'master' of brain.opensimulator.org:/var/git/opensim
This commit is contained in:
@@ -101,16 +101,17 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
/// Merging usually suppresses terrain and parcel loading
|
||||
/// </value>
|
||||
protected bool m_merge;
|
||||
protected bool m_mergeReplaceObjects;
|
||||
|
||||
/// <value>
|
||||
/// If true, force the loading of terrain from the oar file
|
||||
/// </value>
|
||||
protected bool m_forceTerrain;
|
||||
protected bool m_mergeTerrain;
|
||||
|
||||
/// <value>
|
||||
/// If true, force the loading of parcels from the oar file
|
||||
/// If true, force the merge of parcels from the oar file
|
||||
/// </value>
|
||||
protected bool m_forceParcels;
|
||||
protected bool m_mergeParcels;
|
||||
|
||||
/// <value>
|
||||
/// Should we ignore any assets when reloading the archive?
|
||||
@@ -210,8 +211,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
m_errorMessage = String.Empty;
|
||||
|
||||
m_merge = options.ContainsKey("merge");
|
||||
m_forceTerrain = options.ContainsKey("force-terrain");
|
||||
m_forceParcels = options.ContainsKey("force-parcels");
|
||||
m_mergeReplaceObjects = options.ContainsKey("mReplaceObjects");
|
||||
m_mergeTerrain = options.ContainsKey("merge-terrain");
|
||||
m_mergeParcels = options.ContainsKey("merge-parcels");
|
||||
m_noObjects = options.ContainsKey("no-objects");
|
||||
m_skipAssets = options.ContainsKey("skipAssets");
|
||||
m_requestId = requestId;
|
||||
@@ -270,6 +272,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
m_loadStream = loadStream;
|
||||
m_skipAssets = options.ContainsKey("skipAssets");
|
||||
m_merge = options.ContainsKey("merge");
|
||||
m_mergeReplaceObjects = options.ContainsKey("mReplaceObjects");
|
||||
m_requestId = requestId;
|
||||
|
||||
m_defaultUser = scene.RegionInfo.EstateSettings.EstateOwner;
|
||||
@@ -352,7 +355,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
if ((successfulAssetRestores + failedAssetRestores) % 250 == 0)
|
||||
m_log.Debug("[ARCHIVER]: Loaded " + successfulAssetRestores + " assets and failed to load " + failedAssetRestores + " assets...");
|
||||
}
|
||||
else if (filePath.StartsWith(ArchiveConstants.TERRAINS_PATH) && (!m_merge || m_forceTerrain))
|
||||
else if (filePath.StartsWith(ArchiveConstants.TERRAINS_PATH) && (!m_merge || m_mergeTerrain))
|
||||
{
|
||||
LoadTerrain(scene, filePath, data);
|
||||
}
|
||||
@@ -360,7 +363,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
{
|
||||
LoadRegionSettings(scene, filePath, data, dearchivedScenes);
|
||||
}
|
||||
else if (filePath.StartsWith(ArchiveConstants.LANDDATA_PATH) && (!m_merge || m_forceParcels))
|
||||
else if (filePath.StartsWith(ArchiveConstants.LANDDATA_PATH) && (!m_merge || m_mergeParcels))
|
||||
{
|
||||
sceneContext.SerialisedParcels.Add(Encoding.UTF8.GetString(data));
|
||||
}
|
||||
@@ -546,23 +549,21 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
int sceneObjectsLoadedCount = 0;
|
||||
Vector3 boundingExtent = new Vector3(m_boundingOrigin.X + m_boundingSize.X, m_boundingOrigin.Y + m_boundingSize.Y, m_boundingOrigin.Z + m_boundingSize.Z);
|
||||
|
||||
int mergeskip = 0;
|
||||
foreach (string serialisedSceneObject in serialisedSceneObjects)
|
||||
{
|
||||
/*
|
||||
m_log.DebugFormat("[ARCHIVER]: Loading xml with raw size {0}", serialisedSceneObject.Length);
|
||||
|
||||
// Really large xml files (multi megabyte) appear to cause
|
||||
// memory problems
|
||||
// when loading the xml. But don't enable this check yet
|
||||
|
||||
if (serialisedSceneObject.Length > 5000000)
|
||||
{
|
||||
m_log.Error("[ARCHIVER]: Ignoring xml since size > 5000000);");
|
||||
continue;
|
||||
}
|
||||
*/
|
||||
|
||||
SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject);
|
||||
if (m_merge)
|
||||
{
|
||||
if(scene.TryGetSceneObjectGroup(sceneObject.UUID, out SceneObjectGroup oldSog))
|
||||
{
|
||||
++mergeskip;
|
||||
if (m_mergeReplaceObjects)
|
||||
scene.DeleteSceneObject(oldSog, false);
|
||||
else
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 pos = sceneObject.AbsolutePosition;
|
||||
if (m_debug)
|
||||
@@ -636,12 +637,18 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
}
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} scene objects to the scene", sceneObjectsLoadedCount);
|
||||
|
||||
int ignoredObjects = serialisedSceneObjects.Count - sceneObjectsLoadedCount;
|
||||
m_log.InfoFormat("[ARCHIVER]: Loaded {0} scene objects to the scene", sceneObjectsLoadedCount);
|
||||
int ignoredObjects = serialisedSceneObjects.Count - sceneObjectsLoadedCount - mergeskip;
|
||||
|
||||
if(mergeskip > 0)
|
||||
{
|
||||
if(m_mergeReplaceObjects)
|
||||
m_log.InfoFormat("[ARCHIVER]: Replaced {0} scene objects", mergeskip);
|
||||
else
|
||||
m_log.InfoFormat("[ARCHIVER]: Skipped {0} scene objects that already existed in the scene", mergeskip);
|
||||
}
|
||||
if (ignoredObjects > 0)
|
||||
m_log.WarnFormat("[ARCHIVER]: Ignored {0} scene objects that already existed in the scene or were out of bounds", ignoredObjects);
|
||||
m_log.WarnFormat("[ARCHIVER]: Ignored {0} possible out of bounds", ignoredObjects);
|
||||
|
||||
if (oldTelehubUUID != UUID.Zero)
|
||||
{
|
||||
@@ -730,6 +737,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
/// <param name="serialisedParcels"></param>
|
||||
protected void LoadParcels(Scene scene, List<string> serialisedParcels)
|
||||
{
|
||||
if(serialisedParcels.Count == 0)
|
||||
{
|
||||
m_log.Info("[ARCHIVER]: No parcels to load, or skiping load");
|
||||
return;
|
||||
}
|
||||
|
||||
// Reload serialized parcels
|
||||
m_log.InfoFormat("[ARCHIVER]: Loading {0} parcels. Please wait.", serialisedParcels.Count);
|
||||
List<LandData> landData = new List<LandData>();
|
||||
@@ -743,6 +756,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
|
||||
// Gather any existing parcels before we add any more. Later as we add parcels we can check if the new parcel
|
||||
// data overlays any of the old data, and we can modify and remove (if empty) the old parcel so that there's no conflict
|
||||
bool domerge = m_merge & m_mergeParcels;
|
||||
|
||||
parcels = scene.LandChannel.AllParcels();
|
||||
|
||||
foreach (string serialisedParcel in serialisedParcels)
|
||||
@@ -750,8 +765,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
LandData parcel = LandDataSerializer.Deserialize(serialisedParcel);
|
||||
bool overrideRegionSize = true; //use the src land parcel data size not the dst region size
|
||||
bool isEmptyNow;
|
||||
Vector3 AABBMin;
|
||||
Vector3 AABBMax;
|
||||
|
||||
// create a new LandObject that we can use to manipulate the incoming source parcel data
|
||||
// this is ok, but just beware that some of the LandObject functions (that we haven't used here) still
|
||||
@@ -771,7 +784,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
// parcel.Name, parcel.GlobalID, parcel.LocalID);
|
||||
//landObject.DebugLandBitmap(srcLandBitmap);
|
||||
|
||||
bool[,] dstLandBitmap = landObject.RemapLandBitmap(srcLandBitmap, displacement, m_rotation, boundingOrigin, boundingSize, regionSize, out isEmptyNow, out AABBMin, out AABBMax);
|
||||
bool[,] dstLandBitmap = landObject.RemapLandBitmap(srcLandBitmap, displacement, m_rotation, boundingOrigin, boundingSize, regionSize, out isEmptyNow);
|
||||
if (isEmptyNow)
|
||||
{
|
||||
m_log.WarnFormat("[ARCHIVER]: Not adding destination parcel {0} with GlobalID: {1} LocalID: {2} because, after applying rotation, bounding and displacement, it has no claimed land.",
|
||||
@@ -784,10 +797,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
|
||||
landObject.LandBitmap = dstLandBitmap;
|
||||
parcel.Bitmap = landObject.ConvertLandBitmapToBytes();
|
||||
parcel.AABBMin = AABBMin;
|
||||
parcel.AABBMax = AABBMax;
|
||||
|
||||
if (m_merge)
|
||||
if (domerge)
|
||||
{
|
||||
// give the remapped parcel a new GlobalID, in case we're using the same OAR twice and a bounding cube, displacement and --merge
|
||||
parcel.GlobalID = UUID.Random();
|
||||
@@ -799,7 +810,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
if (parcels[i] != null)
|
||||
{
|
||||
bool[,] modLandBitmap = parcels[i].ConvertBytesToLandBitmap(overrideRegionSize);
|
||||
modLandBitmap = parcels[i].RemoveFromLandBitmap(modLandBitmap, dstLandBitmap, out isEmptyNow, out AABBMin, out AABBMax);
|
||||
modLandBitmap = parcels[i].RemoveFromLandBitmap(modLandBitmap, dstLandBitmap, out isEmptyNow);
|
||||
if (isEmptyNow)
|
||||
{
|
||||
parcels[i] = null;
|
||||
@@ -808,8 +819,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
{
|
||||
parcels[i].LandBitmap = modLandBitmap;
|
||||
parcels[i].LandData.Bitmap = parcels[i].ConvertLandBitmapToBytes();
|
||||
parcels[i].LandData.AABBMin = AABBMin;
|
||||
parcels[i].LandData.AABBMax = AABBMax;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -854,19 +863,26 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
landData.Add(parcel);
|
||||
}
|
||||
|
||||
if (m_merge)
|
||||
{
|
||||
for (int i = 0; i < parcels.Count; i++) //if merging then we need to also add back in any existing parcels
|
||||
{
|
||||
if (parcels[i] != null) landData.Add(parcels[i].LandData);
|
||||
}
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Clearing {0} parcels.", parcels.Count);
|
||||
bool setupDefaultParcel = (landData.Count == 0);
|
||||
scene.LandChannel.Clear(setupDefaultParcel);
|
||||
|
||||
if (domerge)
|
||||
{
|
||||
int j = 0;
|
||||
for (int i = 0; i < parcels.Count; i++) //if merging then we need to also add back in any existing parcels
|
||||
{
|
||||
if (parcels[i] != null)
|
||||
{
|
||||
landData.Add(parcels[i].LandData);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
m_log.InfoFormat("[ARCHIVER]: Keeping {0} old parcels.", j);
|
||||
}
|
||||
|
||||
scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
|
||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
|
||||
m_log.InfoFormat("[ARCHIVER]: Added {0} total parcels.", landData.Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1017,10 +1033,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
private bool LoadRegionSettings(Scene scene, string settingsPath, byte[] data, DearchiveScenesInfo dearchivedScenes)
|
||||
{
|
||||
RegionSettings loadedRegionSettings;
|
||||
|
||||
ViewerEnvironment regionEnv = null;
|
||||
try
|
||||
{
|
||||
loadedRegionSettings = RegionSettingsSerializer.Deserialize(data);
|
||||
loadedRegionSettings = RegionSettingsSerializer.Deserialize(data, out regionEnv);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -1030,6 +1046,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
return false;
|
||||
}
|
||||
|
||||
IEnvironmentModule mEnv = scene.RequestModuleInterface<IEnvironmentModule>();
|
||||
if(mEnv != null)
|
||||
{
|
||||
mEnv.StoreOnRegion(regionEnv);
|
||||
mEnv.WindlightRefresh(0);
|
||||
}
|
||||
|
||||
RegionSettings currentRegionSettings = scene.RegionInfo.RegionSettings;
|
||||
|
||||
currentRegionSettings.AgentLimit = loadedRegionSettings.AgentLimit;
|
||||
@@ -1070,10 +1093,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
currentRegionSettings.LoadedCreationDateTime = dearchivedScenes.LoadedCreationDateTime;
|
||||
currentRegionSettings.LoadedCreationID = dearchivedScenes.GetOriginalRegionID(scene.RegionInfo.RegionID).ToString();
|
||||
|
||||
currentRegionSettings.CacheID = UUID.Random();
|
||||
currentRegionSettings.Save();
|
||||
|
||||
scene.TriggerEstateSunUpdate();
|
||||
|
||||
IEstateModule estateModule = scene.RequestModuleInterface<IEstateModule>();
|
||||
if (estateModule != null)
|
||||
estateModule.sendRegionHandshakeToAll();
|
||||
|
||||
@@ -150,8 +150,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
if (options.ContainsKey("noassets") && (bool)options["noassets"])
|
||||
SaveAssets = false;
|
||||
|
||||
Object temp;
|
||||
if (options.TryGetValue("checkPermissions", out temp))
|
||||
if (options.TryGetValue("checkPermissions", out Object temp))
|
||||
FilterContent = (string)temp;
|
||||
|
||||
|
||||
@@ -243,7 +242,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
{
|
||||
if (entity is SceneObjectGroup)
|
||||
{
|
||||
SceneObjectGroup sceneObject = (SceneObjectGroup)entity;
|
||||
SceneObjectGroup sceneObject = entity as SceneObjectGroup;
|
||||
|
||||
if (!sceneObject.IsDeleted && !sceneObject.IsAttachment && !sceneObject.IsTemporary && !sceneObject.inTransit)
|
||||
{
|
||||
@@ -278,11 +277,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
m_log.ErrorFormat("[ARCHIVER]: object {0} '{1}', at {2}, contains {3} references to missing or damaged assets",
|
||||
sceneObject.UUID, sceneObject.Name ,sceneObject.AbsolutePosition.ToString(), curErrorCntr);
|
||||
if(possible > 0)
|
||||
m_log.WarnFormat("[ARCHIVER Warning]: object also contains {0} references that may be to missing or damaged assets or not a problem", possible);
|
||||
m_log.WarnFormat("[ARCHIVER Warning]: object also contains {0} references that may not be assets or are missing", possible);
|
||||
}
|
||||
else if(possible > 0)
|
||||
{
|
||||
m_log.WarnFormat("[ARCHIVER Warning]: object {0} '{1}', at {2}, contains {3} references that may be to missing or damaged assets or not a problem",
|
||||
m_log.WarnFormat("[ARCHIVER Warning]: object {0} '{1}', at {2}, contains {3} references that may not be assets or are missing",
|
||||
sceneObject.UUID, sceneObject.Name ,sceneObject.AbsolutePosition.ToString(), possible);
|
||||
}
|
||||
}
|
||||
@@ -321,6 +320,16 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
if (regionSettings.TerrainTexture4 != RegionSettings.DEFAULT_TERRAIN_TEXTURE_4)
|
||||
assetUuids[regionSettings.TerrainTexture4] = (sbyte)AssetType.Texture;
|
||||
|
||||
if(scene.RegionEnvironment != null)
|
||||
scene.RegionEnvironment.GatherAssets(assetUuids);
|
||||
|
||||
List<ILandObject> landObjects = scene.LandChannel.AllParcels();
|
||||
foreach (ILandObject lo in landObjects)
|
||||
{
|
||||
if(lo.LandData != null && lo.LandData.Environment != null)
|
||||
lo.LandData.Environment.GatherAssets(assetUuids);
|
||||
}
|
||||
|
||||
Save(scene, sceneObjects, regionDir);
|
||||
GC.Collect();
|
||||
}
|
||||
@@ -518,15 +527,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
|
||||
for (uint y = (uint)scenesGroup.Rect.Top; y < scenesGroup.Rect.Bottom; ++y)
|
||||
{
|
||||
SortedDictionary<uint, Scene> row;
|
||||
if (scenesGroup.Regions.TryGetValue(y, out row))
|
||||
if (scenesGroup.Regions.TryGetValue(y, out SortedDictionary<uint, Scene> row))
|
||||
{
|
||||
xtw.WriteStartElement("row");
|
||||
|
||||
for (uint x = (uint)scenesGroup.Rect.Left; x < scenesGroup.Rect.Right; ++x)
|
||||
{
|
||||
Scene scene;
|
||||
if (row.TryGetValue(x, out scene))
|
||||
if (row.TryGetValue(x, out Scene scene))
|
||||
{
|
||||
xtw.WriteStartElement("region");
|
||||
xtw.WriteElementString("id", scene.RegionInfo.RegionID.ToString());
|
||||
@@ -572,7 +579,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
// Write out region settings
|
||||
string settingsPath = String.Format("{0}{1}{2}.xml",
|
||||
regionDir, ArchiveConstants.SETTINGS_PATH, scene.RegionInfo.RegionName);
|
||||
m_archiveWriter.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(scene.RegionInfo.RegionSettings));
|
||||
m_archiveWriter.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(scene.RegionInfo.RegionSettings, scene.RegionEnvironment));
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Adding parcel settings to archive.");
|
||||
|
||||
|
||||
@@ -101,9 +101,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
public void HandleLoadOarConsoleCommand(string module, string[] cmdparams)
|
||||
{
|
||||
bool mergeOar = false;
|
||||
bool mergeReplaceObjects = false;
|
||||
bool skipAssets = false;
|
||||
bool forceTerrain = false;
|
||||
bool forceParcels = false;
|
||||
bool mergeTerrain = false;
|
||||
bool mergeParcels = false;
|
||||
bool noObjects = false;
|
||||
Vector3 displacement = new Vector3(0f, 0f, 0f);
|
||||
String defaultUser = "";
|
||||
@@ -112,14 +113,17 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
Vector3 boundingOrigin = new Vector3(0f, 0f, 0f);
|
||||
Vector3 boundingSize = new Vector3(Scene.RegionInfo.RegionSizeX, Scene.RegionInfo.RegionSizeY, float.MaxValue);
|
||||
bool debug = false;
|
||||
|
||||
|
||||
OptionSet options = new OptionSet();
|
||||
options.Add("m|merge", delegate(string v) { mergeOar = (v != null); });
|
||||
options.Add("mergeReplaceObjects", delegate (string v) { mergeReplaceObjects = (v != null); });
|
||||
options.Add("s|skip-assets", delegate(string v) { skipAssets = (v != null); });
|
||||
options.Add("force-terrain", delegate(string v) { forceTerrain = (v != null); });
|
||||
options.Add("forceterrain", delegate(string v) { forceTerrain = (v != null); }); // downward compatibility
|
||||
options.Add("force-parcels", delegate(string v) { forceParcels = (v != null); });
|
||||
options.Add("forceparcels", delegate(string v) { forceParcels = (v != null); }); // downward compatibility
|
||||
options.Add("merge-terrain", delegate(string v) { mergeTerrain = (v != null); });
|
||||
options.Add("force-terrain", delegate (string v) { mergeTerrain = (v != null); }); // downward compatibility
|
||||
options.Add("forceterrain", delegate (string v) { mergeTerrain = (v != null); }); // downward compatibility
|
||||
options.Add("merge-parcels", delegate(string v) { mergeParcels = (v != null); });
|
||||
options.Add("force-parcels", delegate (string v) { mergeParcels = (v != null); }); // downward compatibility
|
||||
options.Add("forceparcels", delegate (string v) { mergeParcels = (v != null); }); // downward compatibility
|
||||
options.Add("no-objects", delegate(string v) { noObjects = (v != null); });
|
||||
options.Add("default-user=", delegate(string v) { defaultUser = (v == null) ? "" : v; });
|
||||
options.Add("displacement=", delegate(string v)
|
||||
@@ -212,8 +216,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
Dictionary<string, object> archiveOptions = new Dictionary<string, object>();
|
||||
if (mergeOar) archiveOptions.Add("merge", null);
|
||||
if (skipAssets) archiveOptions.Add("skipAssets", null);
|
||||
if (forceTerrain) archiveOptions.Add("force-terrain", null);
|
||||
if (forceParcels) archiveOptions.Add("force-parcels", null);
|
||||
if (mergeReplaceObjects) archiveOptions.Add("mReplaceObjects", null);
|
||||
if (mergeTerrain) archiveOptions.Add("merge-terrain", null);
|
||||
if (mergeParcels) archiveOptions.Add("merge-parcels", null);
|
||||
if (noObjects) archiveOptions.Add("no-objects", null);
|
||||
if (defaultUser != "")
|
||||
{
|
||||
|
||||
@@ -657,7 +657,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
|
||||
rs.TelehubObject = UUID.Parse("00000000-0000-0000-0000-111111111111");
|
||||
rs.AddSpawnPoint(SpawnPoint.Parse("1,-2,0.33"));
|
||||
|
||||
tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs));
|
||||
tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs, null));
|
||||
|
||||
tar.Close();
|
||||
|
||||
@@ -690,8 +690,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
|
||||
Assert.That(loadedRs.Elevation2NE, Is.EqualTo(19.2));
|
||||
Assert.That(loadedRs.Elevation2SE, Is.EqualTo(9.2));
|
||||
Assert.That(loadedRs.Elevation2SW, Is.EqualTo(2.1));
|
||||
Assert.That(loadedRs.FixedSun, Is.True);
|
||||
Assert.AreEqual(12.0, loadedRs.SunPosition);
|
||||
Assert.That(loadedRs.ObjectBonus, Is.EqualTo(1.4));
|
||||
Assert.That(loadedRs.RestrictPushing, Is.True);
|
||||
Assert.That(loadedRs.TerrainLowerLimit, Is.EqualTo(0.4));
|
||||
@@ -700,7 +698,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
|
||||
Assert.That(loadedRs.TerrainTexture2, Is.EqualTo(UUID.Parse("00000000-0000-0000-0000-000000000040")));
|
||||
Assert.That(loadedRs.TerrainTexture3, Is.EqualTo(UUID.Parse("00000000-0000-0000-0000-000000000060")));
|
||||
Assert.That(loadedRs.TerrainTexture4, Is.EqualTo(UUID.Parse("00000000-0000-0000-0000-000000000080")));
|
||||
Assert.That(loadedRs.UseEstateSun, Is.True);
|
||||
Assert.That(loadedRs.WaterHeight, Is.EqualTo(23));
|
||||
Assert.AreEqual(UUID.Zero, loadedRs.TelehubObject); // because no object was found with the original UUID
|
||||
Assert.AreEqual(0, loadedRs.SpawnPoints().Count);
|
||||
|
||||
Reference in New Issue
Block a user