HammeriteSkyPropertyRegistry

Core: files, names and extension. Inherits RefCounted

The properties games and addons have added to the sky: the seam through which a game puts its own weather on a map's sky without Hammerite knowing what weather is.

The brush property registry's arrangement (HammeriteBrushPropertyRegistry), for the sky: values live sparsely on HammeriteSkybox.properties and are read through HammeriteSkybox.get_property(), and this supplies the default for every value nobody set - so register from the game's runtime, not only from anything editor-side, or a shipped game reads null. The Sky tool shows a section for each registered schema, and a change there is a HammeriteSkyRenderer.sky_changed like any other change to the sky. Idempotent by schema id: registering again replaces the schema and keeps its place, so the Sky panel's sections do not move when a game re-registers.

Methods

ReturnsMethod
voidregister(schema: HammeriteSkyPropertySchema) static
voidunregister(schema_id: StringName) static
voidclear() static
HammeriteSkyPropertySchema[]get_schemas() static
HammeriteSkyPropertySchemaget_schema(schema_id: StringName) static
HammeriteBrushPropertyDef[]get_defs() static
HammeriteBrushPropertyDefget_def(key: StringName) static
boolhas_property(key: StringName) static
Variantget_default(key: StringName, fallback = null) static

Method descriptions

register()

static func register(schema: HammeriteSkyPropertySchema) -> void

Register schema, replacing any schema already registered under the same id and leaving it where it was. In place rather than removed and appended, because the list is the order the Sky tool draws its sections in: a game that re-registers - re-initializing an addon, reloading a mod - would otherwise send its own section to the bottom, and which run it happened on would depend on what touched the registry first. The brush registry was the same and stopped being (917fcdd).

unregister()

static func unregister(schema_id: StringName) -> void

Drop the schema registered under schema_id, if any.

clear()

static func clear() -> void

Forget every schema. Test-support; a game registers once and leaves it.

get_schemas()

static func get_schemas() -> HammeriteSkyPropertySchema[]

Every registered schema, in registration order - the order the Sky tool shows them in. A copy.

get_schema()

static func get_schema(schema_id: StringName) -> HammeriteSkyPropertySchema

The schema registered under schema_id, or null.

get_defs()

static func get_defs() -> HammeriteBrushPropertyDef[]

Every declared def, of every schema, in the order the schemas were registered.

get_def()

static func get_def(key: StringName) -> HammeriteBrushPropertyDef

The def for namespaced key, or null if no schema declared it.

has_property()

static func has_property(key: StringName) -> bool

True when key has been declared by some registered schema.

get_default()

static func get_default(key: StringName, fallback = null) -> Variant

The registered default for key, or fallback when nothing registered it.

Hammerite 1.0 · built from a6dd634, 2026-10-10