Fixed inverted map texture problem.
Added(from trunk) the loading of terrain files defined in the region.xml files.Sugilite
|
@ -28,6 +28,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Globalization;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Utilities;
|
using OpenSim.Framework.Utilities;
|
||||||
using OpenSim.Framework.Console;
|
using OpenSim.Framework.Console;
|
||||||
|
@ -178,6 +179,32 @@ namespace OpenSim.Framework.Types
|
||||||
this.IPListenAddr = attri;
|
this.IPListenAddr = attri;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
attri = "";
|
||||||
|
attri = configData.GetAttribute("TerrainFile");
|
||||||
|
if (attri == "")
|
||||||
|
{
|
||||||
|
this.estateSettings.terrainFile = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Default Terrain File", "default.r32");
|
||||||
|
configData.SetAttribute("TerrainFile", this.estateSettings.terrainFile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.estateSettings.terrainFile = attri;
|
||||||
|
}
|
||||||
|
|
||||||
|
attri = "";
|
||||||
|
attri = configData.GetAttribute("TerrainMultiplier");
|
||||||
|
if (attri == "")
|
||||||
|
{
|
||||||
|
string re = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0");
|
||||||
|
this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture);
|
||||||
|
configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.estateSettings.terrainMultiplier = Convert.ToDouble(attri);
|
||||||
|
}
|
||||||
|
|
||||||
attri = "";
|
attri = "";
|
||||||
attri = configData.GetAttribute("MasterAvatarFirstName");
|
attri = configData.GetAttribute("MasterAvatarFirstName");
|
||||||
if (attri == "")
|
if (attri == "")
|
||||||
|
|
|
@ -39,13 +39,13 @@ namespace OpenSim.LocalCommunications
|
||||||
{
|
{
|
||||||
public class CommunicationsLocal : CommunicationsManager
|
public class CommunicationsLocal : CommunicationsManager
|
||||||
{
|
{
|
||||||
public LocalBackEndServices SandManager = new LocalBackEndServices();
|
public LocalBackEndServices SandBoxManager = new LocalBackEndServices();
|
||||||
|
|
||||||
public CommunicationsLocal()
|
public CommunicationsLocal()
|
||||||
{
|
{
|
||||||
UserServer = null;
|
UserServer = null;
|
||||||
GridServer = SandManager;
|
GridServer = SandBoxManager;
|
||||||
InterRegion = SandManager;
|
InterRegion = SandBoxManager;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -415,10 +415,31 @@ namespace OpenSim.Region.Scenes
|
||||||
float[] map = this.localStorage.LoadWorld();
|
float[] map = this.localStorage.LoadWorld();
|
||||||
if (map == null)
|
if (map == null)
|
||||||
{
|
{
|
||||||
Console.WriteLine("creating new terrain");
|
// Console.WriteLine("creating new terrain");
|
||||||
this.Terrain.hills();
|
// this.Terrain.hills();
|
||||||
|
|
||||||
// this.localStorage.SaveMap(this.Terrain.getHeights1D());
|
// this.localStorage.SaveMap(this.Terrain.getHeights1D());
|
||||||
|
if (string.IsNullOrEmpty(this.m_regInfo.estateSettings.terrainFile))
|
||||||
|
{
|
||||||
|
Console.WriteLine("No default terrain, procedurally generating...");
|
||||||
|
this.Terrain.hills();
|
||||||
|
|
||||||
|
// this.localStorage.SaveMap(this.Terrain.getHeights1D());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
this.Terrain.loadFromFileF32(this.m_regInfo.estateSettings.terrainFile);
|
||||||
|
this.Terrain *= this.m_regInfo.estateSettings.terrainMultiplier;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Console.WriteLine("Unable to load default terrain, procedurally generating instead...");
|
||||||
|
Terrain.hills();
|
||||||
|
}
|
||||||
|
// this.localStorage.SaveMap(this.Terrain.getHeights1D());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -536,7 +536,7 @@ namespace OpenSim.Terrain
|
||||||
for (int y = 0; y < copy.h; y++)
|
for (int y = 0; y < copy.h; y++)
|
||||||
{
|
{
|
||||||
// 512 is the largest possible height before colours clamp
|
// 512 is the largest possible height before colours clamp
|
||||||
int colorindex = (int)(Math.Max(Math.Min(1.0, copy.get(copy.w -x, copy.h - y) / 512.0), 0.0) * pallete);
|
int colorindex = (int)(Math.Max(Math.Min(1.0, copy.get(copy.h - y, x) / 512.0), 0.0) * pallete);
|
||||||
bmp.SetPixel(x, y, colours[colorindex]);
|
bmp.SetPixel(x, y, colours[colorindex]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -549,6 +549,7 @@ namespace OpenSim.Terrain
|
||||||
{
|
{
|
||||||
Console.WriteLine("Failed generating terrain map: " + e.ToString());
|
Console.WriteLine("Failed generating terrain map: " + e.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return imageData;
|
return imageData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,12 +100,14 @@ namespace OpenSim
|
||||||
|
|
||||||
ClientView.TerrainManager = new TerrainManager(new SecondLife());
|
ClientView.TerrainManager = new TerrainManager(new SecondLife());
|
||||||
|
|
||||||
|
CommunicationsLocal sandboxCommunications = null;
|
||||||
if (m_sandbox)
|
if (m_sandbox)
|
||||||
{
|
{
|
||||||
this.SetupLocalGridServers();
|
this.SetupLocalGridServers();
|
||||||
this.checkServer = new CheckSumServer(12036);
|
this.checkServer = new CheckSumServer(12036);
|
||||||
this.checkServer.ServerListener();
|
this.checkServer.ServerListener();
|
||||||
this.commsManager = new CommunicationsLocal();
|
sandboxCommunications = new CommunicationsLocal();
|
||||||
|
this.commsManager = sandboxCommunications;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -132,7 +134,7 @@ namespace OpenSim
|
||||||
{
|
{
|
||||||
loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, false);
|
loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, false);
|
||||||
loginServer.Startup();
|
loginServer.Startup();
|
||||||
loginServer.SetSessionHandler(((CommunicationsLocal)this.commsManager).SandManager.AddNewSession);
|
loginServer.SetSessionHandler(sandboxCommunications.SandBoxManager.AddNewSession);
|
||||||
//sandbox mode with loginserver not using accounts
|
//sandbox mode with loginserver not using accounts
|
||||||
httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod);
|
httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,13 @@
|
||||||
<property name="build.debug" value="true" />
|
<property name="build.debug" value="true" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<property name="project.config" value="Release" />
|
||||||
|
|
||||||
|
<target name="Release" description="">
|
||||||
|
<property name="project.config" value="Release" />
|
||||||
|
<property name="build.debug" value="false" />
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="net-1.1" description="Sets framework to .NET 1.1">
|
<target name="net-1.1" description="Sets framework to .NET 1.1">
|
||||||
<property name="nant.settings.currentframework" value="net-1.1" />
|
<property name="nant.settings.currentframework" value="net-1.1" />
|
||||||
</target>
|
</target>
|
||||||
|
|
|
@ -5,10 +5,13 @@ EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
Use the "terrain load" command to import these datafiles.
|
||||||
|
They are stored as Float-32 arrays, use the F32 import type.
|
||||||
|
|
||||||
|
These files are formatted on a scale of 0 to 1, they are designed for a range of 0..58.81
|
||||||
|
use the 'multiply' command to multiply them by 58.81 to achieve correct height values.
|
||||||
|
|
||||||
|
Example ------------------
|
||||||
|
Region# : terrain load f32 c:\opensim\datafiles\output_x0_y0.r32
|
||||||
|
Region# : terrain multiply 58.81
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<AdamZaius> 0,0 - 1,0 - 2,0
|
||||||
|
<AdamZaius> 0,1 - 1,1 - 2,1
|
||||||
|
<AdamZaius> 0,2 - 1,2, 2,2
|
||||||
|
|
||||||
|
|
||||||
|
for a 3x3 area on the grid
|
||||||
|
|
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 768 KiB |