PlacementValidator
AUTO-GENERATED FILE — DO NOT EDIT MANUALLY
Source: systems/placement/validators/placement_validator.gd
Version: 5.1
class_name: PlacementValidator
extends: RefCounted
Signals
finished- Emitted when the placement validator is done evaluating a set of rules on a scene node
setup_failed- Emitted when the setup failed
Exports
(none)
Methods
_init()resolve_gb_dependencies()- Passes. No injection needed. [b]Returns[/b]: [i]bool[/i] - True if dependencies were successfully resolved, false otherwise
get_runtime_issues()- Validates that all required dependencies are properly set. Returns: Array[String] - List of validation issues (empty if valid)
validate_placement()- Validates placement rules against the current target state. Returns the validation results including details of each placement rule result.[br][br] [param p_context_override]: Optional context to use instead of the stored setup context Returns: [i]GBValidationResults[/i] - Comprehensive validation results with rule details and success status
_handle_validation_orchestration()- Handles orchestration aspects of validation (logging, result processing)
_setup_rules()- 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_context : PlacementRuleContext - The validation context
setup()- 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()- Gets the rules of the placement validator combined with the rules of the placeable resource Uses pure logic class for composition over inheritance Behavior contract:
- Builds and returns a combined rule list (base rules + outside rules).
- Does NOT execute validation.
- Does NOT mutate [member] _base_rules or the caller’s p_outside_rules array.
- When p_ignore_base is true, base rules are omitted.
_pre_check_tile_rules()- Behavior contract:
- Scans tile-check rules and logs (verbose) when multiple rules share the same visual priority.
- Does NOT change rule ordering.
- Does NOT reject duplicates (duplicates are allowed).
tear_down()- Tear down base & placeable specific rules
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
_add_rules_to_test()- Adds rule groups to the test and returns if all were setup successfully