Table of Contents

Class PlacementRuleValidationLogic

Namespace
GridPlacement.GDScript
Assembly
MoonBark.GridPlacement.GDScript.dll

Pure logic class for placement rule validation. Contains no state and can be easily tested in isolation. Focuses on core validation logic without orchestration concerns.

class PlacementRuleValidationLogic extends RefCounted
PlacementRuleValidationLogic

Properties

results

var results = ValidationResults.new()

rule_result

var rule_result: RuleResult = rule.validate_placement()

cleaned_count

var cleaned_count = 0

tile_rule

var tile_rule = rule as TileCheckRule

i

var i = 0

issues

var issues: Dictionary = {}

invalid_count

var invalid_count: int = 0

issues

var issues: Dictionary = {}

rule_issues

var rule_issues = rule.setup(p_gts)

combined_rules

var combined_rules: Array[PlacementRule] = []

unique_rules

var unique_rules: Array[PlacementRule] = []

Methods

validate_placement_rules

static func validate_placement_rules(rules: Array[PlacementRule]) -> ValidationResults:

Parameters

rules

Returns

cleanup_null_indicators_from_rules

static func cleanup_null_indicators_from_rules(rules: Array[PlacementRule]) -> int:

Parameters

rules

Returns

validate_validation_prerequisites

static func validate_validation_prerequisites(rules: Array[PlacementRule]) -> Array[String]:

Parameters

rules

Returns

setup_rules

static func setup_rules(rules: Array[PlacementRule], p_gts : GridTargetingState) -> Dictionary:

Parameters

rules
p_gts

Returns

are_rules_ready

static func are_rules_ready(rules: Array[PlacementRule]) -> bool:

Parameters

rules

Returns

combine_rules

static func combine_rules(base_rules: Array[PlacementRule], additional_rules: Array[PlacementRule], ignore_base: bool = false) -> Array[PlacementRule]:

Parameters

base_rules
additional_rules
ignore_base

Returns