Class TargetingShapeCast2D
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
Encapsulates ShapeCast2D-based targeting logic as a reusable component
class TargetingShapeCast2D extends res://addons/grid_building/base/gb_cached_shape_cast_2d.gd
TargetingShapeCast2D
Properties
debug_log_collisions
Local debug flag: can be toggled per-instance in editor or by code
@export var debug_log_collisions: bool = false
config_msg
var config_msg = "[TargetingShapeCast2D] Configuration: "
old_target
var old_target: Node2D = _targeting_state.target
use_cache
Use cached values when called outside _physics_process (thread-safe). When _in_physics_process is true, force_shapecast_update() was just called so cached values are fresh and is_colliding() is safe to call. Outside _physics_process (e.g. tests), the space may be locked so we must use cached values populated by a prior force_shapecast_update() call.
var use_cache = not _in_physics_process
currently_colliding
var currently_colliding: bool = cached_is_colliding if use_cache else is_colliding()
raw_collider
var raw_collider: Node
promoted_target
var promoted_target: Node2D = _promote_to_targetable_root(raw_collider)
formatted
var formatted: String = GBDiagnostics.format_shape_cast_collisions(self)
layer_names
var layer_names: Array[String] = []
layer_value
var layer_value = 1 << bit
layer_number
var layer_number = bit + 1
layer_name
var layer_name = ProjectSettings.get_setting("layer_names/2d_physics/layer_%d" % layer_number, "")
node
var node: Node = raw
depth
var depth = 0
Methods
resolve_gb_dependencies
func resolve_gb_dependencies(p_container: PlacementContainer) -> void:
Parameters
p_container
Returns
update_target
func update_target() -> void: