Files
Kalulu/addons/godot-form-validator/validation.gd
T
2024-02-20 16:08:30 +01:00

40 lines
945 B
GDScript

@tool
extends Node
signal validator_added(control, validator)
signal validator_removed(control)
enum Method {
# Processes all validators and rules before returning a result.
BATCH,
# Processes validators until a rule failure is encountered, then proceeds to the next validator.
FAIL_FAST,
# Processes validators until a rule failure is encountered and returns immediately.
IMMEDIATE
}
var _validators: Array[Validator] = []
func _ready() -> void:
add_validator(ButtonValidator.new())
add_validator(LineEditValidator.new())
add_validator(RangeValidator.new())
add_validator(TextEditValidator.new())
func add_validator(validator: Validator) -> void:
if not _validators.has(validator):
_validators.append(validator)
func get_validators() -> Array[Validator]:
return _validators
func find_validator(node: Node) -> Validator:
for validator in get_validators():
if validator.is_type(node):
return validator
return null