aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/OpenSim.RegionServer/RegionInfo.cs18
-rw-r--r--OpenSim/OpenSim.RegionServer/RegionInfoBase.cs23
-rw-r--r--OpenSim/OpenSim.RegionServer/world/World.cs23
3 files changed, 61 insertions, 3 deletions
diff --git a/OpenSim/OpenSim.RegionServer/RegionInfo.cs b/OpenSim/OpenSim.RegionServer/RegionInfo.cs
index f82495a..60a5861 100644
--- a/OpenSim/OpenSim.RegionServer/RegionInfo.cs
+++ b/OpenSim/OpenSim.RegionServer/RegionInfo.cs
@@ -175,6 +175,24 @@ namespace OpenSim
175 { 175 {
176 this.IPListenAddr = attri; 176 this.IPListenAddr = attri;
177 } 177 }
178
179 // Terrain Default File
180 attri = "";
181 attri = configData.GetAttribute("TerrainFile");
182 if (attri == "")
183 {
184 this.TerrainFile = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Terrain file default", "default.r32");
185 configData.SetAttribute("TerrainFile", this.TerrainFile);
186 }
187
188 attri = "";
189 attri = configData.GetAttribute("TerrainMultiplier");
190 if (attri == "")
191 {
192 this.TerrainMultiplier = Convert.ToDouble(OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Terrain multiplier", "60.0"));
193 configData.SetAttribute("TerrainMultiplier", this.TerrainMultiplier.ToString());
194 }
195
178 196
179 if (!isSandbox) 197 if (!isSandbox)
180 { 198 {
diff --git a/OpenSim/OpenSim.RegionServer/RegionInfoBase.cs b/OpenSim/OpenSim.RegionServer/RegionInfoBase.cs
index 42d3030..afad245 100644
--- a/OpenSim/OpenSim.RegionServer/RegionInfoBase.cs
+++ b/OpenSim/OpenSim.RegionServer/RegionInfoBase.cs
@@ -23,6 +23,29 @@ namespace OpenSim
23 public int IPListenPort; 23 public int IPListenPort;
24 public string IPListenAddr; 24 public string IPListenAddr;
25 25
26 // Region Information
27 public LLUUID TerrainBase0 = new LLUUID(); // Insert default here
28 public LLUUID TerrainBase1 = new LLUUID();
29 public LLUUID TerrainBase2 = new LLUUID();
30 public LLUUID TerrainBase3 = new LLUUID();
31 public LLUUID TerrainDetail0 = new LLUUID();
32 public LLUUID TerrainDetail1 = new LLUUID();
33 public LLUUID TerrainDetail2 = new LLUUID();
34 public LLUUID TerrainDetail3 = new LLUUID();
35 public float TerrainStartHeight00 = 0.0f;
36 public float TerrainStartHeight01 = 0.0f;
37 public float TerrainStartHeight10 = 0.0f;
38 public float TerrainStartHeight11 = 0.0f;
39 public float TerrainHeightRange00 = 40.0f;
40 public float TerrainHeightRange01 = 40.0f;
41 public float TerrainHeightRange10 = 40.0f;
42 public float TerrainHeightRange11 = 40.0f;
43
44 // Terrain Default (Must be in F32 Format!)
45 public string TerrainFile = "default.r32";
46 public double TerrainMultiplier = 60.0;
47
48
26 public RegionInfoBase() 49 public RegionInfoBase()
27 { 50 {
28 51
diff --git a/OpenSim/OpenSim.RegionServer/world/World.cs b/OpenSim/OpenSim.RegionServer/world/World.cs
index 68516d2..ef6833c 100644
--- a/OpenSim/OpenSim.RegionServer/world/World.cs
+++ b/OpenSim/OpenSim.RegionServer/world/World.cs
@@ -417,10 +417,27 @@ namespace OpenSim.world
417 float[] map = this.localStorage.LoadWorld(); 417 float[] map = this.localStorage.LoadWorld();
418 if (map == null) 418 if (map == null)
419 { 419 {
420 Console.WriteLine("creating new terrain"); 420 if (string.IsNullOrEmpty(this.m_regInfo.TerrainFile))
421 this.Terrain.hills(); 421 {
422 Console.WriteLine("No default terrain, procedurally generating...");
423 this.Terrain.hills();
422 424
423 this.localStorage.SaveMap(this.Terrain.getHeights1D()); 425 this.localStorage.SaveMap(this.Terrain.getHeights1D());
426 }
427 else
428 {
429 try
430 {
431 this.Terrain.loadFromFileF32(this.m_regInfo.TerrainFile);
432 this.Terrain *= this.m_regInfo.TerrainMultiplier;
433 }
434 catch (Exception e)
435 {
436 Console.WriteLine("Unable to load default terrain (" + e.ToString() + "), procedurally generating instead...");
437 Terrain.hills();
438 }
439 this.localStorage.SaveMap(this.Terrain.getHeights1D());
440 }
424 } 441 }
425 else 442 else
426 { 443 {