Class IndicatorSetupUtils
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
IndicatorSetupUtils - Static utility functions for indicator setup operations.\n\nThis class provides static utility functions for complex indicator setup logic that has been extracted from IndicatorService for better testability. All functions are static and do not depend on instance state, making them suitable for unit testing.\n\nKey Features: - Static functions for collision test setup building - Testing indicator creation and management - Indicator count calculation without side effects - Tile-based positioning using tile map layers
class IndicatorSetupUtils extends RefCounted
IndicatorSetupUtils
Properties
testing_indicator
var testing_indicator = create_testing_indicator(indicator_template, parent_node)
owner_shapes
var owner_shapes: Dictionary[Node2D, Array] = {}
indicator_test_setups
var indicator_test_setups = build_collision_test_setups_with_factory(owner_shapes, collision_mapper._targeting_state)
setups_array
var setups_array = extract_valid_test_setups(test_setups)
testing_indicator
var testing_indicator = create_testing_indicator(indicator_template, parent_node)
position_rules_map
var position_rules_map: Dictionary[Vector2i, Array] = {}
result
var result = PositionValidationResult.new()
setup
var setup = CollisionTestSetup2D.new(owner, Vector2(tile_size.x * 2.0, tile_size.y * 2.0))
valid_setups
var valid_setups: Array[CollisionTestSetup2D] = []
result
var result = PositionValidationResult.new()
validation_issues
var validation_issues = validate_setup_preconditions(test_object, tile_check_rules, collision_mapper)
owner_shapes
var owner_shapes: Dictionary[Node2D, Array] = {}
should_free_testing_indicator
var should_free_testing_indicator: bool = false
test_setups
var test_setups: Array[CollisionTestSetup2D] = []
setups_array
var setups_array = extract_valid_test_setups(test_setups)
position_rules_map
var position_rules_map: Dictionary[Vector2i, Array] = {}
normalized_map
var normalized_map: Dictionary[Vector2i, Array] = {}
map_layer
var map_layer: TileMapLayer = targeting_state.target_map
positioner_tile
var positioner_tile: Vector2i = map_layer.local_to_map(map_layer.to_local(targeting_state.positioner.global_position))
rel_off
var rel_off: Vector2i = abs_tile - positioner_tile
indicators
Result class for indicator setup operations
var indicators: Array[RuleCheckIndicator] = []
result
var result = PositionValidationResult.new()
indicator
var indicator = indicators[i]
expected_tile_pos
var expected_tile_pos = expected_positions[i]
actual_tile_pos
var actual_tile_pos = targeting_state.target_map.local_to_map(targeting_state.target_map.to_local(indicator.global_position))
issues
var issues: Array[String] = []
indicators
Result class for indicator setup operations
var indicators: Array[RuleCheckIndicator] = []
owner_shapes
var owner_shapes: Dictionary[Node2D, Array] = {}
position_rules_map
var position_rules_map: Dictionary[Vector2i, Array] = {}
test_setups
var test_setups: Array[CollisionTestSetup2D] = []
issues
var issues: Array[String] = []
is_valid
Result class for position validation operations
var is_valid: bool = true
size_mismatch
var size_mismatch: bool = false
expected_count
var expected_count: int = 0
actual_count
var actual_count: int = 0
position_mismatches
var position_mismatches: Array = []
Methods
create_testing_indicator
static func create_testing_indicator(indicator_template: PackedScene, parent_node: Node) -> RuleCheckIndicator:
Parameters
indicator_templateparent_node
Returns
calculate_indicator_count
static func calculate_indicator_count( test_object: Node2D,
setup_collision_mapper
static func setup_collision_mapper( collision_mapper: CollisionMapper,
gather_collision_shapes
static func gather_collision_shapes(test_object: Node2D) -> Dictionary:
Parameters
test_object
Returns
build_collision_test_setups
static func build_collision_test_setups( owner_shapes: Dictionary,
build_collision_test_setups_with_factory
static func build_collision_test_setups_with_factory( owner_shapes: Dictionary,
extract_valid_test_setups
static func extract_valid_test_setups(setups_dict: Dictionary) -> Array[CollisionTestSetup2D]:
Parameters
setups_dict
Returns
map_positions_to_rules
static func map_positions_to_rules( collision_mapper: CollisionMapper,
execute_indicator_setup
static func execute_indicator_setup( test_object: Node2D,
validate_indicator_positions
static func validate_indicator_positions( indicators: Array[RuleCheckIndicator],
validate_setup_preconditions
static func validate_setup_preconditions( test_object: Node2D,
has_issues
func has_issues() -> bool:
Returns
is_successful
func is_successful() -> bool:
Returns
get_mismatch_summary
func get_mismatch_summary() -> String: