Auto-validate Option.schema, Factorio: allow setting pollution values

This commit is contained in:
black-sliver
2021-07-19 01:02:23 +02:00
committed by Fabian Dill
parent b809d76b79
commit 10c6a70696
7 changed files with 88 additions and 12 deletions

View File

@@ -19,6 +19,15 @@ class AssembleOptions(type):
# apply aliases, without name_lookup
options.update({name[6:].lower(): option_id for name, option_id in attrs.items() if
name.startswith("alias_")})
# auto-validate schema on __init__
if "schema" in attrs.keys():
def validate_decorator(func):
def validate(self, *args, **kwargs):
func(self, *args, **kwargs)
self.value = self.schema.validate(self.value)
return validate
attrs["__init__"] = validate_decorator(attrs["__init__"])
return super(AssembleOptions, mcs).__new__(mcs, name, bases, attrs)
class Option(metaclass=AssembleOptions):