#pragma once #include "raylib.h" #include "PlanetTypes.hpp" // Biome // Cell color mapping for the viewer. Pure functions of cell properties. enum class ColorMode { Elevation, Plate, Age, Crust, Biome, Temperature, Precip, FloraDensity, FaunaDensity, FungaDensity, Ecoregion, Habitability, Territory, TempSummer, TempWinter, Seasonality }; // 6 cycles these temp sub-views Color elevationColor(double e, double seaLevel); Color plateColor(int id); Color ageColor(double age, double maxAge); Color crustColor(bool oceanic); // Phase-2.5 inland water (lakes): a bright turquoise, clearly distinct from ocean. Color lakeColor(); // Phase-3 biome palette + display name. Color biomeColor(Biome b); const char* biomeName(Biome b); // Human-readable name of a color mode (for the active-view label). const char* colorModeName(ColorMode m); // Phase-3 climate: temperature in deg C (blue cold -> red hot); precip normalized 0..1 // (tan dry -> green -> blue wet). Color tempColor(double celsius); Color precipColor(double moist01); // Seasonality: summer-winter temperature range in deg C (grey calm -> orange extreme). Color seasonColor(double rangeC); // Tide level (m), diverging around 0: low tide amber -> high tide cyan. `range` sets the // saturation scale (meters at which the colour is fully amber/cyan). Color tideColor(double level, double range); // Biota density ramps (0..1): flora barren->lush green, fauna pale->amber/red, // funga pale->violet/brown. Color floraColor(double d01); Color faunaColor(double d01); Color fungaColor(double d01); // Marine biota density ramps (0..1) -- a distinct sea palette so ocean reads as // ocean: marine flora deep blue->bright teal/green bloom, marine fauna deep // blue->cyan->warm. Used for water cells in the flora/fauna views. Color marineFloraColor(double d01); Color marineFaunaColor(double d01); Color ecoregionColor(int id, Biome b, double productivity); // Habitability heat map (0..1): barren grey -> fertile green/gold (where civilization can thrive). Color habitabilityColor(double h01); // Per-nation territory tint (golden-ratio HSV, offset from plateColor so realms read distinctly). Color nationColor(int id);