Grid Placement

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