PlacementValidator

AUTO-GENERATED FILE – DO NOT EDIT MANUALLY

Source File: addons/grid_building/placement/manager/components/placement_validator.gd

Extends: GBInjectable

Signals

  • Signal: finished(results: ValidationResults) - Emitted when the placement validator is done evaluating a set of rules on a scene node
  • Signal: setup_failed(issues : Dictionary[PlacementRule, Array]) - Emitted when the setup failed

Properties

  • Property: active_rules: Array[PlacementRule] = [] - Full list of rules being used by the placement validator to test object placement

Private Properties

  • Property: _base_rules: Array[PlacementRule] = [] (private)

    Rules that are enforced whenever placing any object into the game world by default Exists so you don’t have to add the same rule to every single object individually

  • Property: _logger : [GBLogger](./gb-logger/) = null (private) - Debug settings to pass into rules. Override in resource inspector if desired.

Constants

  • Constant: PlacementRuleValidationLogic = preload("res://addons/grid_building/placement/placement_rules/placement_rule_validation_logic.gd")

    Runs tests for each rule using RuleCheckIndicators to determine if placement in the targeted location is valid if all rules validate successfully

  • Constant: ISSUE_MATCHING_PRIORITY = "Info: %d rules share visual priority [%d] %s (allowed)"

Public Methods

create_with_injection

1
create_with_injection(container: GBCompositionContainer) -> PlacementValidator

Flags: static

Creates a PlacementValidator with dependency injection from container. Container serves as single source of truth for all dependencies. Parameters: container: GBCompositionContainer - The dependency container Returns: PlacementValidator - Fully configured placement validator with validated dependencies


resolve_gb_dependencies

1
resolve_gb_dependencies(container: GBCompositionContainer) -> bool

Passes. No injection needed. Returns: bool - True if dependencies were successfully resolved, false otherwise


get_runtime_issues

1
get_runtime_issues() -> Array[String]

Validates that all required dependencies are properly set. Returns: Array[String] - List of validation issues (empty if valid)


validate_placement

1
validate_placement() -> ValidationResults

Validates placement rules against the current target state. Returns the validation results including details of each placement rule result.

Returns: ValidationResults - Comprehensive validation results with rule details and success status


setup

1
2
3
4
setup(
    p_rules : Array[PlacementRule],
    p_gts : GridTargetingState
) -> Dictionary

Sets the active rules set and rule_check_indicators for validating the current target’s placement position Uses pure logic class for composition over inheritance Returns a dictionary of issues


get_combined_rules

1
2
3
4
get_combined_rules(
    p_outside_rules : Array,
    p_ignore_base = false
) -> Array[PlacementRule]

Gets the rules of the placement validator combined with the rules of the placeable resource Uses pure logic class for composition over inheritance


tear_down

1
tear_down()

Tear down base & placeable specific rules


apply_rules

1
apply_rules()

Clean up null indicators from all active tile check rules. This prevents null reference errors during validation. Uses pure logic for composition over inheritance Runs execute on each of the active rules

This is code that generally runs after validation is successful and the validated action takes place


Private Methods

_init

1
2
3
4
_init(
    p_base_rules : Array[PlacementRule],
    p_logger : GBLogger
) -> void

Flags: private


_handle_validation_orchestration

1
_handle_validation_orchestration(results: ValidationResults) -> void

Flags: private

Handles orchestration aspects of validation (logging, result processing)


_setup_rules

1
2
3
4
_setup_rules(
    p_rules : Array[PlacementRule],
    p_gts : GridTargetingState
) -> Dictionary

Flags: private

Tries setup on all of the p_rules PlacementRule Uses pure logic class for composition over inheritance Returns a dictionary PlacementRules and the issues found for each rule that had issues [param] p_rules : Array[PlacementRule] - The placement rules to setup [param] p_gts : GridTargetingState - The current grid targeting state


_pre_check_tile_rules

1
_pre_check_tile_rules(p_tile_check_rules: Array[TileCheckRule])

Flags: private