Table of Contents

Class FarmDensityMapMode

Namespace
StarterKit.MapModes
Assembly
StarterKit.dll

STARTERKIT: Farm Density Map Mode

Demonstrates how to create a custom GAME-layer map mode that extends the ENGINE's GradientMapMode base class.

Shows farms built per province as a heatmap:

  • Cream/off-white = no farms (owned land)
  • Yellow/Orange = some farms
  • Dark orange = many farms (max density)

Architecture:

  • ENGINE provides mechanism (GradientMapMode, texture array)
  • GAME provides policy (farm data, gradient colors)
  • Mode switching is instant (just changes shader int)
public class FarmDensityMapMode : GradientMapMode, IMapModeHandler
Inheritance
object
FarmDensityMapMode
Implements
Inherited Members

Constructors

FarmDensityMapMode(BuildingSystem, MapModeManager)

public FarmDensityMapMode(BuildingSystem buildingSystemRef, MapModeManager mapModeManagerRef)

Parameters

buildingSystemRef BuildingSystem
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

ShaderModeID

Shader mode ID for the GPU

public override int ShaderModeID { get; }

Property Value

int

Methods

GetGradient()

Define the color gradient: cream (no farms) -> yellow -> orange (max farms)

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)

Custom category names for farm density

protected override string GetValueCategory(float value)

Parameters

value float

Returns

string

GetValueForProvince(ushort, ProvinceQueries, object)

Get the farm count for a province.

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