HammeritePointEntityAnimatableBody3D

Core: entities. Inherits AnimatableBody3D

A point entity that MOVES and that the world can collide with: a door leaf, a lift, a drawbridge.

Same interface as HammeritePointEntityNode3D, on a body the physics server knows about. Reach for it when the thing is driven from script and has to push the player around; reach for HammeritePointEntityNode3D when it only needs to be somewhere. It is not sized for you. Godot does not promise to collide a scaled body, so a type that can be sized hands scale to apply_entity_property() and the subclass sizes its own meshes and collision shapes, as HammeritePropModel sizes its collider's points.

Properties

TypeNameDefault
HammeriteEntityentitynull

Methods

ReturnsMethod
HammeriteEntityget_entity()
voidset_entity(new_entity: HammeriteEntity)
voidupdate_properties()
voidrequest_rebuild()
voidturn_to(facing: Basis)
voidset_editor_active(active: bool) abstract
voiddraw_editor_gizmos(_gizmos: HammeriteGizmoBuffer)
booldraws_editor_gizmos_only_when_picked()
HammeriteEditorHandle[]get_editor_handles()
voidmove_editor_handle(_handle_id: StringName, _to: Vector3)
AABBget_aabb()
boolcan_simulate()
voidstart_simulation()
voidstop_simulation()
voidreset_simulation()
Dictionary[StringName, Variant]get_runtime_properties()
Variantget_runtime_property(key: StringName, default_value = null)
voidset_runtime_property(_key: StringName, _value)
voidreset_runtime_properties()
boolcan_trigger()
voidtrigger(_impulse = null)
Dictionary[StringName, String]get_actions()
voidrun_action(action_id: StringName)
voidapply_entity_property(prop_name: StringName, value) abstract
voidset_light_modulation(modulation: float)

Signals

rebuild_requested

signal rebuild_requested()

As HammeritePointEntityNode3D.rebuild_requested.

Property descriptions

entity

var entity: HammeriteEntity = null

As HammeritePointEntityNode3D.entity.

Method descriptions

get_entity()

func get_entity() -> HammeriteEntity

Getter of entity.

set_entity()

func set_entity(new_entity: HammeriteEntity) -> void

As HammeritePointEntityNode3D.set_entity().

update_properties()

func update_properties() -> void

Apply 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. set_entity() calls it. Override it, calling super(), for what wants every property applied first - gathering the probes that light the node once it knows where it stands.

request_rebuild()

func request_rebuild() -> void

Emit rebuild_requested, so HammeriteMap3D frees this node and builds it again from the entity.

turn_to()

func turn_to(facing: Basis) -> void

As HammeritePointEntityNode3D.turn_to().

set_editor_active()

abstract func set_editor_active(active: bool) -> void

As HammeritePointEntityNode3D.set_editor_active().

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_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.

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.

get_aabb()

func get_aabb() -> AABB

As HammeritePointEntityNode3D.get_aabb().

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.

start_simulation()

func start_simulation() -> void

As HammeritePointEntityNode3D.start_simulation().

stop_simulation()

func stop_simulation() -> void

As HammeritePointEntityNode3D.stop_simulation().

reset_simulation()

func reset_simulation() -> void

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

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 HammeritePointEntityNode3D.get_runtime_property().

set_runtime_property()

func set_runtime_property(_key: StringName, _value) -> void

As HammeritePointEntityNode3D.set_runtime_property().

reset_runtime_properties()

func reset_runtime_properties() -> void

As HammeritePointEntityNode3D.reset_runtime_properties().

can_trigger()

func can_trigger() -> bool

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

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.

get_actions()

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

The actions this entity offers in the editor's runtime panel, as id -> label. Every entity that says it can be triggered gets Trigger for nothing. Override to add more, and call super() unless you mean to drop it.

run_action()

func run_action(action_id: StringName) -> void

Do one of get_actions(). Override alongside it.

apply_entity_property()

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

As HammeritePointEntityNode3D.apply_entity_property(). rotation has been applied before this is told; scale never is.

set_light_modulation()

func set_light_modulation(modulation: float) -> void

As HammeritePointEntityNode3D.set_light_modulation().

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