public void TerrainChannelTest() { TerrainChannel x = new TerrainChannel((int)Constants.RegionSize, (int)Constants.RegionSize); Assert.That(x[0, 0] == 0.0, "Terrain not initialising correctly."); x[0, 0] = 1.0; Assert.That(x[0, 0] == 1.0, "Terrain not setting values correctly."); x[0, 0] = 0; x[0, 0] += 5.0; x[0, 0] -= 1.0; Assert.That(x[0, 0] == 4.0, "Terrain addition/subtraction error."); x[0, 0] = Math.PI; double[,] doublesExport = x.GetDoubles(); Assert.That(doublesExport[0, 0] == Math.PI, "Export to double[,] array not working correctly."); x[0, 0] = 1.0; float[] floatsExport = x.GetFloatsSerialised(); Assert.That(floatsExport[0] == 1.0f, "Export to float[] not working correctly."); x[0, 0] = 1.0; Assert.That(x.Tainted(0, 0), "Terrain channel tainting not working correctly."); Assert.That(!x.Tainted(0, 0), "Terrain channel tainting not working correctly."); TerrainChannel y = x.Copy(); Assert.That(!ReferenceEquals(x, y), "Terrain copy not duplicating correctly."); Assert.That(!ReferenceEquals(x.GetDoubles(), y.GetDoubles()), "Terrain array not duplicating correctly."); }
/// <summary> /// Loads the World heightmap /// </summary> public override void LoadWorldMap() { try { double[,] map = SimulationDataService.LoadTerrain(RegionInfo.RegionID); if (map == null) { // This should be in the Terrain module, but it isn't because // the heightmap is needed _way_ before the modules are initialized... IConfig terrainConfig = m_config.Configs["Terrain"]; String m_InitialTerrain = "pinhead-island"; if (terrainConfig != null) m_InitialTerrain = terrainConfig.GetString("InitialTerrain", m_InitialTerrain); m_log.InfoFormat("[TERRAIN]: No default terrain. Generating a new terrain {0}.", m_InitialTerrain); Heightmap = new TerrainChannel(m_InitialTerrain); SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } else { Heightmap = new TerrainChannel(map); } } catch (IOException e) { m_log.WarnFormat( "[TERRAIN]: Scene.cs: LoadWorldMap() - Regenerating as failed with exception {0}{1}", e.Message, e.StackTrace); // Non standard region size. If there's an old terrain in the database, it might read past the buffer #pragma warning disable 0162 if ((int)Constants.RegionSize != 256) { Heightmap = new TerrainChannel(); SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } } catch (Exception e) { m_log.WarnFormat( "[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception {0}{1}", e.Message, e.StackTrace); } }
/// <summary> /// Loads the World heightmap /// </summary> public override void LoadWorldMap() { try { double[,] map = m_storageManager.DataStore.LoadTerrain(RegionInfo.RegionID); if (map == null) { m_log.Info("[TERRAIN]: No default terrain. Generating a new terrain."); Heightmap = new TerrainChannel(); m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } else { Heightmap = new TerrainChannel(map); } } catch (Exception e) { m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString()); } }
/// <summary> /// Loads the World heightmap /// </summary> public override void LoadWorldMap() { try { double[,] map = SimulationDataService.LoadTerrain(RegionInfo.RegionID); if (map == null) { m_log.Info("[TERRAIN]: No default terrain. Generating a new terrain."); Heightmap = new TerrainChannel(); SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } else { Heightmap = new TerrainChannel(map); } } catch (IOException e) { m_log.WarnFormat( "[TERRAIN]: Scene.cs: LoadWorldMap() - Regenerating as failed with exception {0}{1}", e.Message, e.StackTrace); // Non standard region size. If there's an old terrain in the database, it might read past the buffer #pragma warning disable 0162 if ((int)Constants.RegionSize != 256) { Heightmap = new TerrainChannel(); SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } } catch (Exception e) { m_log.WarnFormat( "[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception {0}{1}", e.Message, e.StackTrace); } }
/// <summary> /// Loads the World heightmap /// </summary> public override void LoadWorldMap() { try { double[,] map = m_storageManager.DataStore.LoadTerrain(RegionInfo.RegionID); if (map == null) { m_log.Info("[TERRAIN]: No default terrain. Generating a new terrain."); Heightmap = new TerrainChannel(); m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } else { Heightmap = new TerrainChannel(map); } } catch (IOException e) { m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString() + " Regenerating"); // Non standard region size. If there's an old terrain in the database, it might read past the buffer #pragma warning disable 0162 if ((int)Constants.RegionSize != 256) { Heightmap = new TerrainChannel(); m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); } } catch (Exception e) { m_log.Warn("[TERRAIN]: Scene.cs: LoadWorldMap() - Failed with exception " + e.ToString()); } }