Class PlacementValidator
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
class PlacementValidator extends GBInjectable
PlacementValidator
Fields
ISSUE_MATCHING_PRIORITY
const ISSUE_MATCHING_PRIORITY = "Info: %d rules share visual priority [%d] %s (allowed)"
Properties
logger
var logger = container.get_logger()
container_rules
var container_rules = container.get_placement_rules()
validator
var validator = PlacementValidator.new(container_rules, logger)
issues
var issues = results.get_issues()
active_rules
Full list of rules being used by the placement validator to test object placement
var active_rules: Array[PlacementRule] = []
issues
var issues = results.get_issues()
results
var results = rule.setup(p_gts)
prerequisite_issues
var prerequisite_issues = PlacementRuleValidationLogic.validate_validation_prerequisites(active_rules)
cleaned_count
var cleaned_count = PlacementRuleValidationLogic.cleanup_null_indicators_from_rules(active_rules)
validation_results
var validation_results = PlacementRuleValidationLogic.validate_placement_rules(active_rules)
issues
var issues = results.get_issues()
rule_result
var rule_result = results.rule_results[rule]
issues_for_rule
var issues_for_rule = rule_result.issues if rule_result else []
status
var status = ("PASS" if issues_for_rule.is_empty() else "FAIL")
rule_name
var rule_name = rule.get_class() if rule else "Unknown"
rule_issues
var rule_issues = _setup_rules(p_rules, p_gts)
tile_check_rules
var tile_check_rules: Array[TileCheckRule] = RuleFilters.only_tile_check(p_rules)
priority_rule_dict
var priority_rule_dict = {}
rules
var rules = priority_rule_dict.get(key)
rules_names
var rules_names = "["
rules_with_priority
var rules_with_priority = priority_rule_dict[key].size()
all_rules_setup
var all_rules_setup = true
results
var results = rule.setup(p_gts)
Methods
create_with_injection
static func create_with_injection(container: PlacementContainer) -> PlacementValidator:
Parameters
container
Returns
resolve_gb_dependencies
func resolve_gb_dependencies(container: PlacementContainer) -> bool:
Parameters
container
Returns
get_runtime_issues
func get_runtime_issues() -> Array[String]:
Returns
validate_placement
func validate_placement() -> ValidationResults:
Returns
setup
func setup(p_rules : Array[PlacementRule], p_gts : GridTargetingState) -> Dictionary:
Parameters
p_rulesp_gts
Returns
get_combined_rules
func get_combined_rules(p_outside_rules : Array, p_ignore_base = false) -> Array[PlacementRule]:
Parameters
p_outside_rulesp_ignore_base
Returns
tear_down
func tear_down() -> void:
Returns
apply_rules
func apply_rules() -> void:
Returns
Events
finished
Runs tests for each rule using RuleCheckIndicators to determine if placement in the targeted location is valid if all rules validate successfully Emitted when the placement validator is done evaluating a set of rules on a scene node
signal finished(results: ValidationResults)
setup_failed
Emitted when the setup failed
signal setup_failed(issues : Dictionary[PlacementRule, Array])