Table of Contents

Namespace FishMMO.Shared.Biomes

Classes

BiomeAffinity

How strongly a race belongs in a biome. A race's affinities say where its settlements are named from, where spawners should favour it, and — through the biome's climate variants — how its places read under the current weather.

BiomeClimateVariant

A climate reading a biome can be experienced under: the same Forest, frozen or scorched.

Biomes are fixed when the world is generated; what the current climate changes is the variant — and with it the names a place is given and, for the terrain painter, the textures it wears. A template lists its own variants; one that lists none takes the defaults from the scene's ClimateSettings.

BiomeNamingData

What the name generator knows about a biome, carried on its BiomeTemplate: the phonology dungeon and point-of-interest names are built from, and the vocabulary that flavours them. The runtime view is built once when the biome registers.

BiomeRegistry

Runtime index of every loaded BiomeTemplate, by key and by cached-object ID. Holds no data of its own: templates register as Addressables load them (or as the editor loader finds them) and leave when they unload.

BiomeResolver

Chooses the biome for a set of conditions from the registered templates' data — the replacement for WorldEditor's hand-written decision tree. A biome is eligible when its elevation tier matches; among eligible biomes, one whose climate envelope contains the reading beats one whose envelope does not, the more central reading wins, and the SelectionWeight scales the score. Ties break on key order, so the result is deterministic for every peer that holds the same templates.

BiomeSampler

Answers "what biome is here?" for anything in a scene — namers, spawners, later systems.

The biome comes from the scene's baked SceneBiomeMap, which is what generation fixed; a position the map does not cover falls back to choosing a biome from the terrain height and the current climate. The climate variant always comes from the current climate on WorldSceneSettings, so a frozen winter reads as such without the biome itself changing.

BiomeTemplate

A biome. The asset is the identity — its cached-object ID is what references, biome maps and race affinities carry — and everything the biome means is data on it: the elevation tier and climate envelope it is chosen for during generation, the colour that identifies it on a biome map, the terrain textures and spawn rules that paint it, the climate variants it can be experienced under, and the naming data dungeons and points of interest are named from. Registers with BiomeRegistry when loaded.

Nothing here restricts where a biome may be used. A cave biome and a grassland are the same kind of asset; a biome that should never be picked by climate simply has a SelectionWeight of zero and is placed by hand.

CliffTextureLayer

A texture layer that appears on steep faces, weighted by slope angle and optionally by height.

ClimateSettings

The climate model, as data. Every constant WorldEditor's biome generation hard-codes — the lapse rate, the humidity curve, the latitude gradient, the elevation-tier boundaries — is a field here, so a scene can be a frozen north or a tropical coast by asset, and a weather system can push the offsets at runtime through WorldSceneSettings.

MinMaxRangeAttribute

Limits for the min-max slider drawn for a MinMaxRange field.

PrefabSpawnRule

Where and how densely a set of prefabs is scattered wherever its texture layer dominates. Field names match the WorldEditor asset layout so exported biome templates load unchanged.

SceneBiomeMap

Which biome lies where in a scene, baked when the world was generated: a grid of BiomeTemplate IDs over a rectangle of world space. Imported from the biome-map cells WorldEditor exports, or painted by any other tool; both the server and the client read it, so it holds IDs rather than a texture.

TerrainTextureLayer

One terrain texture of a biome — its maps, tiling, blend noise, and the height and slope bands it is confined to — plus the prefab spawn rules that apply where it dominates. Field names match the WorldEditor asset layout so exported biome templates load unchanged.

Structs

BiomeReading

What the world is at a position: its biome, the climate reading, and the variant the biome shows under it.

ClimateSample

A climate reading at one point: what the world feels like there right now.

MinMaxRange

A closed float interval, drawn in the inspector as a min-max slider.

Enums

PrefabSpawnChannel

Which Unity terrain channel a spawn rule writes to.

TextureBlendMode

How a texture layer blends with the others in its biome.