Table of Contents

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:

Returns