HammeriteBrushEntityArea3D
Core: entities. Inherits Area3D
The interface of HammeriteBrushEntityNode3D on an Area3D: brushwork that notices what is inside it, such as water or a trigger.
Each brush's collision shape is its convex hull. Its meshes are drawn only while the editor is up (set_editor_active()): a volume is more often invisible than not.
Properties
| Type | Name | Default |
|---|---|---|
HammeriteBrushEntity | entity | null |
Methods
Signals
rebuild_requested
signal rebuild_requested()
As HammeriteBrushEntityNode3D.rebuild_requested.
Property descriptions
entity
var entity: HammeriteBrushEntity = null
As HammeriteBrushEntityNode3D.entity.
Method descriptions
get_entity()
func get_entity() -> HammeriteBrushEntity
Getter of entity.
set_entity()
func set_entity(new_entity: HammeriteBrushEntity) -> void
As HammeriteBrushEntityNode3D.set_entity(), except that each brush's collision shape is its convex hull rather than a trimesh, so a body wholly inside the brushwork still counts as inside.
request_rebuild()
func request_rebuild() -> void
As HammeriteBrushEntityNode3D.request_rebuild().
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.
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.
should_create_colliders()
func should_create_colliders() -> bool
Whether set_entity() builds a collision shape for each brush.
set_editor_active()
func set_editor_active(active: bool) -> void
As HammeriteBrushEntityNode3D.set_editor_active(), and shows the brushes only while active. Override, calling super(), for a volume that is seen in the game too or that has more of its own to show.
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
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_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.
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.
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.
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.
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 HammeriteBrushEntityNode3D.start_simulation().
stop_simulation()
func stop_simulation() -> void
As HammeriteBrushEntityNode3D.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 HammeriteBrushEntityNode3D.get_runtime_property().
set_runtime_property()
func set_runtime_property(_key: StringName, _value) -> void
As HammeriteBrushEntityNode3D.set_runtime_property().
reset_runtime_properties()
func reset_runtime_properties() -> void
As HammeriteBrushEntityNode3D.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. 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 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