HammeriteBrushEntityStaticBody3D

Core: entities. Inherits StaticBody3D

The interface of HammeriteBrushEntityNode3D on a StaticBody3D: brushwork that is solid, such as a door leaf.

Each brush's collision shape is a trimesh of its faces - solid to bump into, with no inside. A script writes the interface as the underscore virtuals - _set_editor_active(), _apply_entity_property(), _trigger() and the rest - and everybody calls the public method of the same name, which answers the script's override where there is one and otherwise the class's own. _set_entity(), _update_properties(), _apply_entity_property(), _get_actions() and _run_action() run after the class's own rather than instead of it, so an override does not call super(): GDScript cannot call one into a native class.

Properties

TypeNameDefault
HammeriteBrushEntityentity

Methods

ReturnsMethod
void_apply_entity_property(prop_name: StringName, value) virtual required
bool_can_simulate() virtual
bool_can_trigger() virtual
void_draw_editor_gizmos(gizmos: HammeriteGizmoBuffer) virtual
bool_draws_editor_gizmos_only_when_picked() virtual
AABB_get_aabb() virtual
Dictionary[StringName, String]_get_actions() virtual
HammeriteEditorHandle[]_get_editor_handles() virtual
Dictionary[StringName, Variant]_get_runtime_properties() virtual
Variant_get_runtime_property(key: StringName, default_value) virtual
void_move_editor_handle(handle_id: StringName, to: Vector3) virtual
void_reset_runtime_properties() virtual
void_reset_simulation() virtual
void_run_action(action_id: StringName) virtual
void_set_editor_active(active: bool) virtual required
void_set_entity(entity: HammeriteBrushEntity) virtual
void_set_runtime_property(key: StringName, value) virtual
bool_should_create_colliders() virtual
bool_should_create_meshes() virtual
void_start_simulation() virtual
void_stop_simulation() virtual
void_trigger(impulse) virtual
void_update_properties() virtual
voidapply_entity_property(prop_name: StringName, value)
boolcan_simulate()
boolcan_trigger()
voiddraw_editor_gizmos(gizmos: HammeriteGizmoBuffer)
booldraws_editor_gizmos_only_when_picked()
AABBget_aabb()
Dictionary[StringName, String]get_actions()
Dictionary[int, MeshInstance3D]get_brush_meshes() const
Dictionary[int, CollisionShape3D]get_brush_shapes() const
HammeriteEditorHandle[]get_editor_handles()
HammeriteBrushEntityLightingget_lighting()
Dictionary[StringName, Variant]get_runtime_properties()
Variantget_runtime_property(key: StringName, default_value = null)
voidhand_back_to_lightmap()
voidhand_over_to_probes()
voidmove_editor_handle(handle_id: StringName, to: Vector3)
voidrequest_rebuild()
voidreset_runtime_properties()
voidreset_simulation()
voidrun_action(action_id: StringName)
voidset_editor_active(active: bool)
voidset_runtime_property(key: StringName, value)
boolshould_create_colliders()
boolshould_create_meshes()
voidstart_simulation()
voidstop_simulation()
voidtrigger(impulse = null)
voidupdate_properties()

Signals

rebuild_requested

signal rebuild_requested()

As HammeriteBrushEntityNode3D.rebuild_requested.

Property descriptions

entity

var entity: HammeriteBrushEntity

As HammeriteBrushEntityNode3D.entity.

Method descriptions

_apply_entity_property()

func _apply_entity_property(prop_name: StringName, value) -> void

As HammeriteBrushEntityNode3D.apply_entity_property().

_can_simulate()

func _can_simulate() -> bool

Whether the editor offers to run this entity, and whether HammeriteMap3D.start_simulation() starts it. The default does nothing when run, so offers nothing.

_can_trigger()

func _can_trigger() -> bool

Whether something - the editor's Trigger, a HammeriteTrigger, the game - may trigger() it.

_draw_editor_gizmos()

func _draw_editor_gizmos(gizmos: HammeriteGizmoBuffer) -> void

Draw what the author should see of this entity - its bounds, where it points, how far it reaches - into gizmos. The editor calls it every frame it is up and the entity is visible; the default draws nothing.

_draws_editor_gizmos_only_when_picked()

func _draws_editor_gizmos_only_when_picked() -> bool

As HammeritePointEntityNode3D.draws_editor_gizmos_only_when_picked().

_get_aabb()

func _get_aabb() -> AABB

The box round its brushwork, in map space: its brush meshes', where they are drawn - so it follows a drag preview. Empty for an entity that builds no meshes (should_create_meshes()); override for one that knows its extent some other way.

_get_actions()

func _get_actions() -> Dictionary[StringName, String]

The actions this entity offers in the editor's runtime panel, as id -> label. An action is a thing done TO a running entity, not a value set on it: it belongs beside the runtime properties because that is what it acts on, and it is not undoable because there is nothing authored to put back. Every entity that says it can be triggered gets Trigger for nothing. Override _get_actions() to add more: what it answers is merged over these.

_get_editor_handles()

func _get_editor_handles() -> HammeriteEditorHandle[]

The points of this entity an author may take hold of in the viewport, or nothing where it offers none. Drawn and picked by the editor while the entity is selected; see HammeriteEditorHandle.

_get_runtime_properties()

func _get_runtime_properties() -> Dictionary[StringName, Variant]

What the inspector shows of the RUNNING thing, beside its authored properties - which are entity's, read with HammeriteEntity.get_property().

_get_runtime_property()

func _get_runtime_property(key: StringName, default_value) -> Variant

As HammeriteBrushEntityNode3D.get_runtime_property().

_move_editor_handle()

func _move_editor_handle(handle_id: StringName, to: Vector3) -> void

One of get_editor_handles() has been dragged to to, snapped to the grid. Read the position as whatever the value it stands for actually is.

_reset_runtime_properties()

func _reset_runtime_properties() -> void

As HammeriteBrushEntityNode3D.reset_runtime_properties().

_reset_simulation()

func _reset_simulation() -> void

Put the running thing back the way the map built it.

_run_action()

func _run_action(action_id: StringName) -> void

Do one of get_actions(). Override alongside it.

_set_editor_active()

func _set_editor_active(active: bool) -> void

As HammeriteBrushEntityNode3D.set_editor_active().

_set_entity()

func _set_entity(entity: HammeriteBrushEntity) -> void

As HammeriteBrushEntityNode3D.set_entity().

_set_runtime_property()

func _set_runtime_property(key: StringName, value) -> void

As HammeriteBrushEntityNode3D.set_runtime_property().

_should_create_colliders()

func _should_create_colliders() -> bool

Whether set_entity() builds a collision shape for each brush.

_should_create_meshes()

func _should_create_meshes() -> bool

Whether set_entity() builds a mesh for each brush. Override to build none - a volume that is never drawn.

_start_simulation()

func _start_simulation() -> void

As HammeriteBrushEntityNode3D.start_simulation().

_stop_simulation()

func _stop_simulation() -> void

As HammeriteBrushEntityNode3D.stop_simulation().

_trigger()

func _trigger(impulse) -> void

Do whatever this entity does when triggered. impulse is whatever the one triggering it handed over - null from the editor's Trigger, a HammeriteTrigger's target_impulse - and what it means is the entity's to say: a light might read a bool as on or off and toggle on null, a lift a floor number.

_update_properties()

func _update_properties() -> void

Every property the entity's type declares, as the entity holds it or as the type defaults it: a map saved before a property existed has no key for it, and its entities read the type's default.

apply_entity_property()

func apply_entity_property(prop_name: StringName, value) -> void

As HammeriteBrushEntityNode3D.apply_entity_property().

can_simulate()

func can_simulate() -> bool

Whether the editor offers to run this entity, and whether HammeriteMap3D.start_simulation() starts it. The default does nothing when run, so offers nothing.

can_trigger()

func can_trigger() -> bool

Whether something - the editor's Trigger, a HammeriteTrigger, the game - may trigger() it.

draw_editor_gizmos()

func draw_editor_gizmos(gizmos: HammeriteGizmoBuffer) -> void

Draw what the author should see of this entity - its bounds, where it points, how far it reaches - into gizmos. The editor calls it every frame it is up and the entity is visible; the default draws nothing.

draws_editor_gizmos_only_when_picked()

func draws_editor_gizmos_only_when_picked() -> bool

As HammeritePointEntityNode3D.draws_editor_gizmos_only_when_picked().

get_aabb()

func get_aabb() -> AABB

The box round its brushwork, in map space: its brush meshes', where they are drawn - so it follows a drag preview. Empty for an entity that builds no meshes (should_create_meshes()); override for one that knows its extent some other way.

get_actions()

func get_actions() -> Dictionary[StringName, String]

The actions this entity offers in the editor's runtime panel, as id -> label. An action is a thing done TO a running entity, not a value set on it: it belongs beside the runtime properties because that is what it acts on, and it is not undoable because there is nothing authored to put back. Every entity that says it can be triggered gets Trigger for nothing. Override _get_actions() to add more: what it answers is merged over these.

get_brush_meshes()

func get_brush_meshes() -> Dictionary[int, MeshInstance3D]

The mesh drawn for each of the entity's brushes, by brush id: a copy of the node's own record.

get_brush_shapes()

func get_brush_shapes() -> Dictionary[int, CollisionShape3D]

The collision shape built for each of the entity's brushes, by brush id: a copy of the node's own record.

get_editor_handles()

func get_editor_handles() -> HammeriteEditorHandle[]

The points of this entity an author may take hold of in the viewport, or nothing where it offers none. Drawn and picked by the editor while the entity is selected; see HammeriteEditorHandle.

get_lighting()

func get_lighting() -> HammeriteBrushEntityLighting

What hands this brushwork over from its lightmap to the light probes when it moves, and back: made the first time it is asked for, and driving itself from then on.

get_runtime_properties()

func get_runtime_properties() -> Dictionary[StringName, Variant]

What the inspector shows of the RUNNING thing, beside its authored properties - which are entity's, read with HammeriteEntity.get_property().

get_runtime_property()

func get_runtime_property(key: StringName, default_value = null) -> Variant

As HammeriteBrushEntityNode3D.get_runtime_property().

hand_back_to_lightmap()

func hand_back_to_lightmap() -> void

Light it from its lightmap again, for brushwork that returns flush to where it was baked.

hand_over_to_probes()

func hand_over_to_probes() -> void

Light this brushwork from the probes from now on: call it as the movement starts, so the blend (HammeriteBrushEntityLighting.blend_seconds()) happens under the motion.

move_editor_handle()

func move_editor_handle(handle_id: StringName, to: Vector3) -> void

One of get_editor_handles() has been dragged to to, snapped to the grid. Read the position as whatever the value it stands for actually is.

request_rebuild()

func request_rebuild() -> void

As HammeriteBrushEntityNode3D.request_rebuild().

reset_runtime_properties()

func reset_runtime_properties() -> void

As HammeriteBrushEntityNode3D.reset_runtime_properties().

reset_simulation()

func reset_simulation() -> void

Put the running thing back the way the map built it.

run_action()

func run_action(action_id: StringName) -> void

Do one of get_actions(). Override alongside it.

set_editor_active()

func set_editor_active(active: bool) -> void

As HammeriteBrushEntityNode3D.set_editor_active().

set_runtime_property()

func set_runtime_property(key: StringName, value) -> void

As HammeriteBrushEntityNode3D.set_runtime_property().

should_create_colliders()

func should_create_colliders() -> bool

Whether set_entity() builds a collision shape for each brush.

should_create_meshes()

func should_create_meshes() -> bool

Whether set_entity() builds a mesh for each brush. Override to build none - a volume that is never drawn.

start_simulation()

func start_simulation() -> void

As HammeriteBrushEntityNode3D.start_simulation().

stop_simulation()

func stop_simulation() -> void

As HammeriteBrushEntityNode3D.stop_simulation().

trigger()

func trigger(impulse = null) -> void

Do whatever this entity does when triggered. impulse is whatever the one triggering it handed over - null from the editor's Trigger, a HammeriteTrigger's target_impulse - and what it means is the entity's to say: a light might read a bool as on or off and toggle on null, a lift a floor number.

update_properties()

func update_properties() -> void

Every property the entity's type declares, as the entity holds it or as the type defaults it: a map saved before a property existed has no key for it, and its entities read the type's default.

Hammerite 2.0 · built from 6d57ab2d, 2026-10-17