* Added String(FileExtension) property to ITerrainLoader to allow us to determine which file extension this loader is capable of handling.
* Added ITerrainLoader import capability to Terrain Plugins module - this allows you to write new terrain format plugins without modifying the terrain module directly.0.6.0-stable
parent
54563d8dea
commit
7693a7dac9
|
@ -42,6 +42,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders
|
||||||
{
|
{
|
||||||
#region ITerrainLoader Members
|
#region ITerrainLoader Members
|
||||||
|
|
||||||
|
public string FileExtension
|
||||||
|
{
|
||||||
|
get { return ".gsd"; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads a file from a specified filename on the disk,
|
/// Loads a file from a specified filename on the disk,
|
||||||
/// parses the image using the System.Drawing parsers
|
/// parses the image using the System.Drawing parsers
|
||||||
|
|
|
@ -36,6 +36,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders
|
||||||
{
|
{
|
||||||
#region ITerrainLoader Members
|
#region ITerrainLoader Members
|
||||||
|
|
||||||
|
public string FileExtension
|
||||||
|
{
|
||||||
|
get { return ".jpg"; }
|
||||||
|
}
|
||||||
|
|
||||||
public ITerrainChannel LoadFile(string filename)
|
public ITerrainChannel LoadFile(string filename)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|
|
@ -132,6 +132,12 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders
|
||||||
s.Close();
|
s.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string FileExtension
|
||||||
|
{
|
||||||
|
get { return ".raw"; }
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
|
|
@ -34,6 +34,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders
|
||||||
{
|
{
|
||||||
#region ITerrainLoader Members
|
#region ITerrainLoader Members
|
||||||
|
|
||||||
|
public string FileExtension
|
||||||
|
{
|
||||||
|
get { return ".r32"; }
|
||||||
|
}
|
||||||
|
|
||||||
public ITerrainChannel LoadFile(string filename)
|
public ITerrainChannel LoadFile(string filename)
|
||||||
{
|
{
|
||||||
TerrainChannel retval = new TerrainChannel();
|
TerrainChannel retval = new TerrainChannel();
|
||||||
|
|
|
@ -107,6 +107,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string FileExtension
|
||||||
|
{
|
||||||
|
get { return ".ter"; }
|
||||||
|
}
|
||||||
|
|
||||||
public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
|
public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace OpenSim.Region.Environment.Modules.Terrain
|
||||||
{
|
{
|
||||||
public interface ITerrainLoader
|
public interface ITerrainLoader
|
||||||
{
|
{
|
||||||
|
string FileExtension { get; }
|
||||||
ITerrainChannel LoadFile(string filename);
|
ITerrainChannel LoadFile(string filename);
|
||||||
ITerrainChannel LoadFile(string filename, int fileStartX, int fileStartY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight);
|
ITerrainChannel LoadFile(string filename, int fileStartX, int fileStartY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight);
|
||||||
void SaveFile(string filename, ITerrainChannel map);
|
void SaveFile(string filename, ITerrainChannel map);
|
||||||
|
|
|
@ -31,15 +31,15 @@ namespace OpenSim.Region.Environment.Modules.Terrain
|
||||||
{
|
{
|
||||||
public class TerrainException : Exception
|
public class TerrainException : Exception
|
||||||
{
|
{
|
||||||
public TerrainException(): base()
|
public TerrainException() : base()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerrainException(string msg): base(msg)
|
public TerrainException(string msg) : base(msg)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerrainException(string msg, Exception e): base(msg, e)
|
public TerrainException(string msg, Exception e) : base(msg, e)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,8 @@ namespace OpenSim.Region.Environment.Modules.Terrain
|
||||||
{
|
{
|
||||||
m_log.Error(
|
m_log.Error(
|
||||||
"[TERRAIN]: Unable to load heightmap, file not found. (A directory permissions error may also cause this)");
|
"[TERRAIN]: Unable to load heightmap, file not found. (A directory permissions error may also cause this)");
|
||||||
throw new TerrainException(String.Format("unable to load heightmap: file {0} not found (or permissions do not allow access", filename));
|
throw new TerrainException(
|
||||||
|
String.Format("unable to load heightmap: file {0} not found (or permissions do not allow access", filename));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CheckForTerrainUpdates();
|
CheckForTerrainUpdates();
|
||||||
|
@ -244,8 +245,20 @@ namespace OpenSim.Region.Environment.Modules.Terrain
|
||||||
if (pluginType.GetInterface("ITerrainEffect", false) != null)
|
if (pluginType.GetInterface("ITerrainEffect", false) != null)
|
||||||
{
|
{
|
||||||
ITerrainEffect terEffect = (ITerrainEffect) Activator.CreateInstance(library.GetType(pluginType.ToString()));
|
ITerrainEffect terEffect = (ITerrainEffect) Activator.CreateInstance(library.GetType(pluginType.ToString()));
|
||||||
|
if (!m_plugineffects.ContainsKey(pluginType.Name))
|
||||||
|
{
|
||||||
m_plugineffects.Add(pluginType.Name, terEffect);
|
m_plugineffects.Add(pluginType.Name, terEffect);
|
||||||
m_log.Info("... " + pluginType.Name);
|
m_log.Info("E ... " + pluginType.Name);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
m_log.Warn("E ... " + pluginType.Name + " (Already added)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (pluginType.GetInterface("ITerrainLoader", false) != null)
|
||||||
|
{
|
||||||
|
ITerrainLoader terLoader = (ITerrainLoader) Activator.CreateInstance(library.GetType(pluginType.ToString()));
|
||||||
|
m_loaders[terLoader.FileExtension] = terLoader;
|
||||||
|
m_log.Info("L ... " + pluginType.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (AmbiguousMatchException)
|
catch (AmbiguousMatchException)
|
||||||
|
|
Loading…
Reference in New Issue