L3DT users' wiki
Large 3D terrain generator

Scripts > DM_GetLayer

Description A script to extract a layer from the design map, so that it may be separately viewed, edited, exported, etc.
Author Aaron
Created 2010/05/24
Updated 2016/05/12
Requires L3DT v2.9 beta 2 or later
Download DM_GetLayer.zs

Script contents

// Author:  A. Torpy
// Updated: 16 May 2016

hvar hDM
set hDM <GetMap "DM">
assert <cast bool <map.GetWidth hDM>> "Design map not initialised!"

// allow user to select layer
combosel CS
combosel.Init &CS "Altitude|PeakNoise|FracNoise|Cliffs|Erosion|Lakes|Climate|SpecType|SpecParam|" "Altitude" NULL
if <not <EditUI &CS "Select DM layer">>
  return 0
endif

// determine layer ID
int LayerID
set LayerID -1
string LayerName
string PaletteName
set PaletteName "Greyscale"
set LayerName <combosel.GetCurSelA &CS>
if <iseq 0 <strcmp LayerName "Altitude">>
  set LayerID 0
elseif <iseq 0 <strcmp LayerName "PeakNoise">>
  set LayerID 1
elseif <iseq 0 <strcmp LayerName "FracNoise">>
  set LayerID 2
elseif <iseq 0 <strcmp LayerName "Cliffs">>
  set LayerID 3
elseif <iseq 0 <strcmp LayerName "Erosion">>
  set LayerID 4
  set PaletteName "EGA-VGA"
elseif <iseq 0 <strcmp LayerName "Lakes">>
  set LayerID 5
  set PaletteName "Blue"
elseif <iseq 0 <strcmp LayerName "Climate">>
  set LayerID 6
  set PaletteName "EGA-VGA"
elseif <iseq 0 <strcmp LayerName "SpecType">>
  set LayerID 7
  set PaletteName "EGA-VGA"
elseif <iseq 0 <strcmp LayerName "SpecParam">>
  set LayerID 8
  set PaletteName "EGA-VGA"
else
  assert false "Invalid layer selection!"
endif

// get or create the map layer
string MapName
set MapName <strcat "DM-" LayerName>
hvar hLayer
set hLayer <GetMap MapName>
if <not hLayer>
  set hLayer <project.CreateMap MapName>
endif
assert hLayer "Can neither get nor create map layer!"

// free layer if initialised
if <map.GetWidth hLayer>
  map.Free hLayer
endif

assert <calc.DM.GetLayer hDM hLayer LayerID> "Cannot extract design map layer!"

// set the display palette
hvar hSettings
set hSettings <project.GetSettingsList>
if hSettings
  hvar hStr
  set hStr <varlist.GetOrCreateItem hSettings string <strcat <strcat "MapViewOptions." MapName> ".IndexedPalette">>
  set *hStr PaletteName
endif

// and now show & edit the map layer
view.ShowMap MapName
 
scripts/getdesignmaplayer.txt · Last modified: 2017/08/31 06:57 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki