IndicatorManager
Handles manipulation cancellation by cleaning...
Handles manipulation cancellation by cleaning up all active indicators. This ensures indicators are properly freed when manipulation ends unexpectedly (e.g., source object deleted, user cancels, etc.). [param _data] The manipulation data (unused, but required by signal signature).
Version: v5.0.0
Inherits: GBNode2D
Source: indicator_manager.gd
Parsing: AST-based for maximum accuracy with symbol typing
Constants
DEFAULT_NAME
Value: "IndicatorManager"
Variables
initialized: bool
Whether the manager has been initalized yet or not
Type: bool
Default: false
_indicator_context:
Dependencies injected via resolve_gb_dependencies or _init
_owner_context: GBOwnerContext
Type: GBOwnerContext
_logger:
_indicator_template:
_targeting_state:
_manipulation_state:
_indicator_service:
_placement_validator:
_test_setup_factory:
_last_setup_test_object:
Signals
indicators_changed(indicators: Array[RuleCheckIndicator]: Variant)
Emitted when the active placement indicators are updated.
Parameters:
indicators: Array[RuleCheckIndicator]: Variant
Methods
create_with_injection
Signature: static create_with_injection(container: GBCompositionContainer, parent: Node = null) -> IndicatorManager
[returns] A configured IndicatorManager instance.
Returns: IndicatorManager
Static: true
Parameters:
container: GBCompositionContainerparent: Node(optional, default:null)
get_runtime_issues
Signature: get_runtime_issues() -> Array
[returns] An array of issue strings (empty if valid).
Returns: Array
_init
Signature: _init() -> void
Returns: void
resolve_gb_dependencies
Signature: resolve_gb_dependencies(p_container: GBCompositionContainer) -> void
[param p_container] The dependency injection container.
Returns: void
Parameters:
p_container: GBCompositionContainer
setup_indicators
Signature: setup_indicators(p_test_object: Node2D, p_tile_check_rules: Array[TileCheckRule]: Variant) -> IndicatorSetupReport
[returns] An IndicatorSetupReport with indicators and diagnostic information.
Returns: IndicatorSetupReport
Parameters:
p_test_object: Node2Dp_tile_check_rules: Array[TileCheckRule]: Variant
get_indicator_count
Signature: get_indicator_count(p_test_object: Node2D, p_tile_check_rules: Array[TileCheckRule]: Variant) -> int
[returns] The number of indicators that would be created, or -1 if calculation fails.
Returns: int
Parameters:
p_test_object: Node2Dp_tile_check_rules: Array[TileCheckRule]: Variant
get_indicators
Signature: get_indicators() -> Array
[returns] An array of RuleCheckIndicator instances.
Returns: Array
get_colliding_indicators
Signature: get_colliding_indicators() -> Array
[returns] An array of colliding RuleCheckIndicator instances.
Returns: Array
get_colliding_nodes
Signature: get_colliding_nodes() -> Array
[returns] An array of Node2D instances in collision.
Returns: Array
try_setup
Signature: try_setup(p_placeable_rules: Array[PlacementRule]: Variant, p_gts : GridTargetingState: Variant, p_ignore_base := false: Variant) -> PlacementReport
[returns] A PlacementReport with setup results.
Returns: PlacementReport
Parameters:
p_placeable_rules: Array[PlacementRule]: Variantp_gts : GridTargetingState: Variantp_ignore_base := false: Variant
_log_target_diagnostics
Signature: _log_target_diagnostics(target: Node) -> void
Returns: void
Parameters:
target: Node
_log_indicator_report
Signature: _log_indicator_report(indicators_report: IndicatorSetupReport) -> void
detect collision nodes
Returns: void
Parameters:
indicators_report: IndicatorSetupReport
_build_failed_report
Signature: _build_failed_report(validator_issues: Dictionary, target: Node) -> PlacementReport
Helper: Build a PlacementReport for failed validation with detailed issues
Returns: PlacementReport
Parameters:
validator_issues: Dictionarytarget: Node
clear
Signature: clear() -> void
Returns: void
tear_down
Signature: tear_down() -> void
Resets the manager, clearing indicators and validation state.
Returns: void
apply_rules
Signature: apply_rules() -> void
Applies placement rules through the validator.
Returns: void
validate_placement
Signature: validate_placement() -> ValidationResults
[returns] A ValidationResults object with validation outcome.
Returns: ValidationResults
inject_collision_mapper_dependencies
Signature: inject_collision_mapper_dependencies(container: GBCompositionContainer) -> bool
[returns bool] Whether the injection was successful or not
Returns: bool
Parameters:
container: GBCompositionContainer
get_or_create_testing_indicator
Signature: get_or_create_testing_indicator(parent_node: Node) -> RuleCheckIndicator
[returns] The testing indicator instance.
Returns: RuleCheckIndicator
Parameters:
parent_node: Node
setup_collision_mapper
Signature: setup_collision_mapper(testing_indicator: RuleCheckIndicator, setups: Dictionary) -> void
[param setups] The collision test setups.
Returns: void
Parameters:
testing_indicator: RuleCheckIndicatorsetups: Dictionary
get_collision_mapper
Signature: get_collision_mapper() -> CollisionMapper
[returns] The collision mapper instance.
Returns: CollisionMapper
get_placement_validator
Signature: get_placement_validator() -> PlacementValidator
Tests use this to drive validation directly when needed.
Returns: PlacementValidator
force_shapecast_update
Signature: force_shapecast_update() -> void
[method force_indicators_validity_evaluation] instead.
Returns: void
force_indicators_validity_evaluation
Signature: force_indicators_validity_evaluation() -> int
[returns] The number of indicators that were updated.
Returns: int
_on_manipulation_canceled
Signature: _on_manipulation_canceled(_data: ManipulationData) -> void
[param _data] The manipulation data (unused, but required by signal signature).
Returns: void
Parameters:
_data: ManipulationData