Table of Contents

Class TerrainCostMapMode

Namespace
StarterKit.MapModes
Assembly
StarterKit.dll

STARTERKIT: Terrain Movement Cost Map Mode

Visualizes terrain-based movement costs from terrain.json5. Demonstrates ENGINE-GAME separation for pathfinding costs.

Color scale:

  • Green = fast movement (cost 1.0, grasslands/plains)
  • Yellow = moderate (cost 1.1-1.3, desert/marsh/highlands)
  • Orange = slow (cost 1.4-1.5, hills/mountains/jungle)
  • Red = very slow (cost 1.6+, snow)
  • Blue = water (impassable for land units)

Architecture:

  • ENGINE provides TerrainData with MovementCost
  • GAME visualizes costs for player understanding
public class TerrainCostMapMode : GradientMapMode, IMapModeHandler
Inheritance
object
TerrainCostMapMode
Implements
Inherited Members

Constructors

TerrainCostMapMode(GameState, MapModeManager)

public TerrainCostMapMode(GameState gameStateRef, MapModeManager mapModeManagerRef)

Parameters

gameStateRef GameState
mapModeManagerRef MapModeManager

Properties

Mode

Map mode type this handler manages

public override MapMode Mode { get; }

Property Value

MapMode

Name

Display name for UI

public override string Name { get; }

Property Value

string

OceanColor

protected override Color32 OceanColor { get; }

Property Value

Color32

ShaderModeID

Shader mode ID for the GPU

public override int ShaderModeID { get; }

Property Value

int

Methods

GetGradient()

Color gradient: Green (fast) -> Yellow -> Orange -> Red (slow)

protected override ColorGradient GetGradient()

Returns

ColorGradient

GetProvinceTooltip(ushort, ProvinceQueries, CountryQueries)

Get tooltip text for a specific province in this map mode

public override string GetProvinceTooltip(ushort provinceId, ProvinceQueries provinceQueries, CountryQueries countryQueries)

Parameters

provinceId ushort
provinceQueries ProvinceQueries
countryQueries CountryQueries

Returns

string

GetUpdateFrequency()

Get update frequency for this map mode's textures

public override UpdateFrequency GetUpdateFrequency()

Returns

UpdateFrequency

GetValueCategory(float)

Category names for movement speed

protected override string GetValueCategory(float normalizedValue)

Parameters

normalizedValue float

Returns

string

GetValueForProvince(ushort, ProvinceQueries, object)

Get normalized movement cost for a province (0-1 range).

protected override float GetValueForProvince(ushort provinceId, ProvinceQueries provinceQueries, object gameProvinceSystem)

Parameters

provinceId ushort
provinceQueries ProvinceQueries
gameProvinceSystem object

Returns

float

OnActivate(Material, MapModeDataTextures)

Called when this map mode becomes active Set up shader properties, enable keywords, etc.

public override void OnActivate(Material mapMaterial, MapModeDataTextures dataTextures)

Parameters

mapMaterial Material
dataTextures MapModeDataTextures

OnDeactivate(Material)

Called when this map mode becomes inactive Clean up, disable keywords, etc.

public override void OnDeactivate(Material mapMaterial)

Parameters

mapMaterial Material