diff options
author | Adam Frisby | 2008-04-27 23:54:16 +0000 |
---|---|---|
committer | Adam Frisby | 2008-04-27 23:54:16 +0000 |
commit | 7693a7dac9e6b4c8ed6d4028e210c611ad9d01ce (patch) | |
tree | 05e4de1f05ce98a74e85519b6c252b49193519c7 | |
parent | * Patch from XenReborn to make remove-region work properly without needing to... (diff) | |
download | opensim-SC-7693a7dac9e6b4c8ed6d4028e210c611ad9d01ce.zip opensim-SC-7693a7dac9e6b4c8ed6d4028e210c611ad9d01ce.tar.gz opensim-SC-7693a7dac9e6b4c8ed6d4028e210c611ad9d01ce.tar.bz2 opensim-SC-7693a7dac9e6b4c8ed6d4028e210c611ad9d01ce.tar.xz |
* 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.
8 files changed, 46 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/GenericSystemDrawing.cs index 47e0e4cb..b05c1cd 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/GenericSystemDrawing.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/GenericSystemDrawing.cs | |||
@@ -42,6 +42,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders | |||
42 | { | 42 | { |
43 | #region ITerrainLoader Members | 43 | #region ITerrainLoader Members |
44 | 44 | ||
45 | public string FileExtension | ||
46 | { | ||
47 | get { return ".gsd"; } | ||
48 | } | ||
49 | |||
45 | /// <summary> | 50 | /// <summary> |
46 | /// Loads a file from a specified filename on the disk, | 51 | /// Loads a file from a specified filename on the disk, |
47 | /// parses the image using the System.Drawing parsers | 52 | /// parses the image using the System.Drawing parsers |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/JPEG.cs b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/JPEG.cs index f25b29b..c2ac9d0 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/JPEG.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/JPEG.cs | |||
@@ -36,6 +36,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders | |||
36 | { | 36 | { |
37 | #region ITerrainLoader Members | 37 | #region ITerrainLoader Members |
38 | 38 | ||
39 | public string FileExtension | ||
40 | { | ||
41 | get { return ".jpg"; } | ||
42 | } | ||
43 | |||
39 | public ITerrainChannel LoadFile(string filename) | 44 | public ITerrainChannel LoadFile(string filename) |
40 | { | 45 | { |
41 | throw new NotImplementedException(); | 46 | throw new NotImplementedException(); |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/LLRAW.cs b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/LLRAW.cs index fda46f0..6ed7340 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/LLRAW.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/LLRAW.cs | |||
@@ -132,6 +132,12 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders | |||
132 | s.Close(); | 132 | s.Close(); |
133 | } | 133 | } |
134 | 134 | ||
135 | |||
136 | public string FileExtension | ||
137 | { | ||
138 | get { return ".raw"; } | ||
139 | } | ||
140 | |||
135 | #endregion | 141 | #endregion |
136 | 142 | ||
137 | public override string ToString() | 143 | public override string ToString() |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/RAW32.cs b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/RAW32.cs index d496069..edc379b 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/RAW32.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/RAW32.cs | |||
@@ -34,6 +34,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders | |||
34 | { | 34 | { |
35 | #region ITerrainLoader Members | 35 | #region ITerrainLoader Members |
36 | 36 | ||
37 | public string FileExtension | ||
38 | { | ||
39 | get { return ".r32"; } | ||
40 | } | ||
41 | |||
37 | public ITerrainChannel LoadFile(string filename) | 42 | public ITerrainChannel LoadFile(string filename) |
38 | { | 43 | { |
39 | TerrainChannel retval = new TerrainChannel(); | 44 | TerrainChannel retval = new TerrainChannel(); |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/Terragen.cs b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/Terragen.cs index 9f9edbc..2a4a8f8 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/Terragen.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/FileLoaders/Terragen.cs | |||
@@ -107,6 +107,11 @@ namespace OpenSim.Region.Environment.Modules.Terrain.FileLoaders | |||
107 | throw new NotImplementedException(); | 107 | throw new NotImplementedException(); |
108 | } | 108 | } |
109 | 109 | ||
110 | public string FileExtension | ||
111 | { | ||
112 | get { return ".ter"; } | ||
113 | } | ||
114 | |||
110 | public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h) | 115 | public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h) |
111 | { | 116 | { |
112 | throw new NotImplementedException(); | 117 | throw new NotImplementedException(); |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/ITerrainLoader.cs b/OpenSim/Region/Environment/Modules/Terrain/ITerrainLoader.cs index 992ed1e..c718a32 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/ITerrainLoader.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/ITerrainLoader.cs | |||
@@ -31,6 +31,7 @@ namespace OpenSim.Region.Environment.Modules.Terrain | |||
31 | { | 31 | { |
32 | public interface ITerrainLoader | 32 | public interface ITerrainLoader |
33 | { | 33 | { |
34 | string FileExtension { get; } | ||
34 | ITerrainChannel LoadFile(string filename); | 35 | ITerrainChannel LoadFile(string filename); |
35 | ITerrainChannel LoadFile(string filename, int fileStartX, int fileStartY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight); | 36 | ITerrainChannel LoadFile(string filename, int fileStartX, int fileStartY, int fileWidth, int fileHeight, int sectionWidth, int sectionHeight); |
36 | void SaveFile(string filename, ITerrainChannel map); | 37 | void SaveFile(string filename, ITerrainChannel map); |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/TerrainException.cs b/OpenSim/Region/Environment/Modules/Terrain/TerrainException.cs index 307553b..d357063 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/TerrainException.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/TerrainException.cs | |||
@@ -31,15 +31,15 @@ namespace OpenSim.Region.Environment.Modules.Terrain | |||
31 | { | 31 | { |
32 | public class TerrainException : Exception | 32 | public class TerrainException : Exception |
33 | { | 33 | { |
34 | public TerrainException(): base() | 34 | public TerrainException() : base() |
35 | { | 35 | { |
36 | } | 36 | } |
37 | 37 | ||
38 | public TerrainException(string msg): base(msg) | 38 | public TerrainException(string msg) : base(msg) |
39 | { | 39 | { |
40 | } | 40 | } |
41 | 41 | ||
42 | public TerrainException(string msg, Exception e): base(msg, e) | 42 | public TerrainException(string msg, Exception e) : base(msg, e) |
43 | { | 43 | { |
44 | } | 44 | } |
45 | } | 45 | } |
diff --git a/OpenSim/Region/Environment/Modules/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/Terrain/TerrainModule.cs index dc8a023..67acef7 100644 --- a/OpenSim/Region/Environment/Modules/Terrain/TerrainModule.cs +++ b/OpenSim/Region/Environment/Modules/Terrain/TerrainModule.cs | |||
@@ -185,7 +185,8 @@ namespace OpenSim.Region.Environment.Modules.Terrain | |||
185 | { | 185 | { |
186 | m_log.Error( | 186 | m_log.Error( |
187 | "[TERRAIN]: Unable to load heightmap, file not found. (A directory permissions error may also cause this)"); | 187 | "[TERRAIN]: Unable to load heightmap, file not found. (A directory permissions error may also cause this)"); |
188 | throw new TerrainException(String.Format("unable to load heightmap: file {0} not found (or permissions do not allow access", filename)); | 188 | throw new TerrainException( |
189 | String.Format("unable to load heightmap: file {0} not found (or permissions do not allow access", filename)); | ||
189 | } | 190 | } |
190 | } | 191 | } |
191 | CheckForTerrainUpdates(); | 192 | CheckForTerrainUpdates(); |
@@ -244,8 +245,20 @@ namespace OpenSim.Region.Environment.Modules.Terrain | |||
244 | if (pluginType.GetInterface("ITerrainEffect", false) != null) | 245 | if (pluginType.GetInterface("ITerrainEffect", false) != null) |
245 | { | 246 | { |
246 | ITerrainEffect terEffect = (ITerrainEffect) Activator.CreateInstance(library.GetType(pluginType.ToString())); | 247 | ITerrainEffect terEffect = (ITerrainEffect) Activator.CreateInstance(library.GetType(pluginType.ToString())); |
247 | m_plugineffects.Add(pluginType.Name, terEffect); | 248 | if (!m_plugineffects.ContainsKey(pluginType.Name)) |
248 | m_log.Info("... " + pluginType.Name); | 249 | { |
250 | m_plugineffects.Add(pluginType.Name, terEffect); | ||
251 | m_log.Info("E ... " + pluginType.Name); | ||
252 | } else | ||
253 | { | ||
254 | m_log.Warn("E ... " + pluginType.Name + " (Already added)"); | ||
255 | } | ||
256 | } | ||
257 | else if (pluginType.GetInterface("ITerrainLoader", false) != null) | ||
258 | { | ||
259 | ITerrainLoader terLoader = (ITerrainLoader) Activator.CreateInstance(library.GetType(pluginType.ToString())); | ||
260 | m_loaders[terLoader.FileExtension] = terLoader; | ||
261 | m_log.Info("L ... " + pluginType.Name); | ||
249 | } | 262 | } |
250 | } | 263 | } |
251 | catch (AmbiguousMatchException) | 264 | catch (AmbiguousMatchException) |