diff options
author | Adam Frisby | 2007-06-26 04:45:24 +0000 |
---|---|---|
committer | Adam Frisby | 2007-06-26 04:45:24 +0000 |
commit | 34c7a0e43a55e60466ce5527722cbdc5c946cd34 (patch) | |
tree | 3713623e7f4cf7fafdd1ca77a6c2cc74e8149c48 /OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs | |
parent | * Committing terrain filter demo (diff) | |
download | opensim-SC-34c7a0e43a55e60466ce5527722cbdc5c946cd34.zip opensim-SC-34c7a0e43a55e60466ce5527722cbdc5c946cd34.tar.gz opensim-SC-34c7a0e43a55e60466ce5527722cbdc5c946cd34.tar.bz2 opensim-SC-34c7a0e43a55e60466ce5527722cbdc5c946cd34.tar.xz |
* Terrain filters! - Think photoshop-style filters for terrain.
* Terrain filters may be written in either C# or JavaScript and loaded at runtime
Use:
terrain csfilter somefile.cs -- Loads a C# filter
terrain jsfilter somefile.js -- Loads a JavaScript filter
Once a terrain filter has been loaded, you can use the command as normal, eg
terrain demofilter
Diffstat (limited to 'OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs')
-rw-r--r-- | OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs index d1d54ad..2bda5ba 100644 --- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs +++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs | |||
@@ -48,6 +48,11 @@ namespace OpenSim.Terrain | |||
48 | public class TerrainEngine | 48 | public class TerrainEngine |
49 | { | 49 | { |
50 | /// <summary> | 50 | /// <summary> |
51 | /// Plugin library for scripts | ||
52 | /// </summary> | ||
53 | public FilterHost customFilters = new FilterHost(); | ||
54 | |||
55 | /// <summary> | ||
51 | /// A [normally] 256x256 heightmap | 56 | /// A [normally] 256x256 heightmap |
52 | /// </summary> | 57 | /// </summary> |
53 | public Channel heightmap; | 58 | public Channel heightmap; |
@@ -193,8 +198,10 @@ namespace OpenSim.Terrain | |||
193 | resultText += "terrain erode aerobic <windspeed> <pickupmin> <dropmin> <carry> <rounds> <lowest>\n"; | 198 | resultText += "terrain erode aerobic <windspeed> <pickupmin> <dropmin> <carry> <rounds> <lowest>\n"; |
194 | resultText += "terrain erode thermal <talus> <rounds> <carry>\n"; | 199 | resultText += "terrain erode thermal <talus> <rounds> <carry>\n"; |
195 | resultText += "terrain multiply <val> - multiplies a terrain by <val>\n"; | 200 | resultText += "terrain multiply <val> - multiplies a terrain by <val>\n"; |
196 | resultText += "terrain revert - reverts the terrain to the stored original"; | 201 | resultText += "terrain revert - reverts the terrain to the stored original\n"; |
197 | resultText += "terrain bake - saves the current terrain into the revert map"; | 202 | resultText += "terrain bake - saves the current terrain into the revert map\n"; |
203 | resultText += "terrain csfilter <filename.cs> - loads a new filter from the specified .cs file\n"; | ||
204 | resultText += "terrain jsfilter <filename.js> - loads a new filter from the specified .js file\n"; | ||
198 | return false; | 205 | return false; |
199 | 206 | ||
200 | case "revert": | 207 | case "revert": |
@@ -285,9 +292,25 @@ namespace OpenSim.Terrain | |||
285 | } | 292 | } |
286 | break; | 293 | break; |
287 | 294 | ||
295 | case "csfilter": | ||
296 | customFilters.LoadFilterCSharp(args[1]); | ||
297 | break; | ||
298 | case "jsfilter": | ||
299 | customFilters.LoadFilterJScript(args[1]); | ||
300 | break; | ||
301 | |||
288 | default: | 302 | default: |
289 | resultText = "Unknown terrain command"; | 303 | // Run any custom registered filters |
290 | return false; | 304 | if (customFilters.filters.ContainsKey(command)) |
305 | { | ||
306 | customFilters.filters[command].Filter(heightmap, args); | ||
307 | break; | ||
308 | } | ||
309 | else | ||
310 | { | ||
311 | resultText = "Unknown terrain command"; | ||
312 | return false; | ||
313 | } | ||
291 | } | 314 | } |
292 | return true; | 315 | return true; |
293 | } | 316 | } |