HammeriteNavigationBrushProperties
Navigation. Inherits RefCounted
What a room costs to cross, authored on the air brush that carves it.
Everything else this addon knows about the ground it measures: how much headroom there is, how wide the way through is, how far the sill stands above the floor, how deep the water over it is. Measurement cannot answer what the ground is made OF - that a courtyard is ankle-deep in rubble, that a cellar floor is slick with mud, that a gallery is the sort of place a guard hurries through. Those are authoring decisions, and the brush the room is carved from is where they belong: they move with it, copy with it, and survive a recompile, which nothing derived does. Cost is a multiplier on distance, so 1 is ordinary ground and 2 means an agent would rather walk twice as far on something else. It multiplies whatever the agent's own profile decides - crossing a muddy crawlspace bent double costs both.
Methods
| Returns | Method |
|---|---|
void | register() static |
float | travel_cost_for_cell(map: HammeriteMap, cell: HammeriteCell) static |
Constants
SCHEMA_ID
const SCHEMA_ID = &"nav"
Schema id, and therefore the namespace of every key below.
KEY_TRAVEL_COST
const KEY_TRAVEL_COST = &"nav/travel_cost"
Brush property: the room's travel cost, a multiplier on distance from 0.1 to 8. Read it through travel_cost_for_cell(), which supplies the default.
DEFAULT_TRAVEL_COST
const DEFAULT_TRAVEL_COST = 1.0
Travel cost of a room nobody set one on: ordinary ground.
Method descriptions
register()
static func register() -> void
Declare the navigation schema with HammeriteBrushPropertyRegistry. Called from the HammeriteNavigation autoload rather than from the editor plugin, for the reason the acoustic one is: the registry supplies DEFAULTS at read time, so a shipped game with no editor in it still has to be able to resolve a property no author ever set. Idempotent - registering twice replaces the schema rather than stacking a second copy.
travel_cost_for_cell()
static func travel_cost_for_cell(map: HammeriteMap, cell: HammeriteCell) -> float
The authored travel cost of the room cell belongs to, never below 0.01.