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
-
objectFarmDensityMapMode
- Implements
- Inherited Members
Constructors
FarmDensityMapMode(BuildingSystem, MapModeManager)
public FarmDensityMapMode(BuildingSystem buildingSystemRef, MapModeManager mapModeManagerRef)
Parameters
buildingSystemRefBuildingSystemmapModeManagerRefMapModeManager
Properties
Mode
Map mode type this handler manages
public override MapMode Mode { get; }
Property Value
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
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
provinceIdushortprovinceQueriesProvinceQueriescountryQueriesCountryQueries
Returns
- string
GetUpdateFrequency()
Get update frequency for this map mode's textures
public override UpdateFrequency GetUpdateFrequency()
Returns
GetValueCategory(float)
Custom category names for farm density
protected override string GetValueCategory(float value)
Parameters
valuefloat
Returns
- string
GetValueForProvince(ushort, ProvinceQueries, object)
Get the farm count for a province.
protected override float GetValueForProvince(ushort provinceId, ProvinceQueries provinceQueries, object gameProvinceSystem)
Parameters
provinceIdushortprovinceQueriesProvinceQueriesgameProvinceSystemobject
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
mapMaterialMaterialdataTexturesMapModeDataTextures
OnDeactivate(Material)
Called when this map mode becomes inactive Clean up, disable keywords, etc.
public override void OnDeactivate(Material mapMaterial)
Parameters
mapMaterialMaterial