aboutsummaryrefslogtreecommitdiff
path: root/game/src/Autoload/Arguments/ArgumentOption.gd
diff options
context:
space:
mode:
author Hop311 <hop3114@gmail.com>2023-05-25 23:35:16 +0200
committer Hop311 <hop3114@gmail.com>2023-05-25 23:35:16 +0200
commit9843807154aa70324c84692ce9d3b54414e2b5e0 (patch)
tree31d37e00cf6c010180fb3212b45ac5f70728cc8f /game/src/Autoload/Arguments/ArgumentOption.gd
parentb493547fb8c77918306fe56b74b704284cf54931 (diff)
Added compatibility-mode command line argument
Diffstat (limited to 'game/src/Autoload/Arguments/ArgumentOption.gd')
-rw-r--r--game/src/Autoload/Arguments/ArgumentOption.gd60
1 files changed, 60 insertions, 0 deletions
diff --git a/game/src/Autoload/Arguments/ArgumentOption.gd b/game/src/Autoload/Arguments/ArgumentOption.gd
new file mode 100644
index 0000000..f14cef0
--- /dev/null
+++ b/game/src/Autoload/Arguments/ArgumentOption.gd
@@ -0,0 +1,60 @@
+@tool
+class_name ArgumentOption
+extends Resource
+
+@export var name : StringName
+@export var aliases : Array[StringName] = []
+@export var type : Variant.Type :
+ get: return type
+ set(v):
+ type = v
+ match v:
+ TYPE_BOOL: default_value = false
+ TYPE_INT: default_value = 0
+ TYPE_FLOAT: default_value = 0.0
+ TYPE_STRING: default_value = ""
+ TYPE_STRING_NAME: default_value = &""
+ TYPE_COLOR: default_value = Color()
+ _: default_value = null
+ notify_property_list_changed()
+var default_value
+@export var description : String
+
+func _init(_name = "", _type = TYPE_NIL, _description = "", default = null):
+ name = _name
+ type = _type
+ if default != null and typeof(default) == type:
+ default_value = default
+ description = _description
+
+func add_alias(alias : StringName) -> ArgumentOption:
+ aliases.append(alias)
+ return self
+
+func get_type_string() -> StringName:
+ match type:
+ TYPE_NIL: return "null"
+ TYPE_BOOL: return "boolean"
+ TYPE_INT: return "integer"
+ TYPE_FLOAT: return "float"
+ TYPE_STRING, TYPE_STRING_NAME: return "string"
+ TYPE_COLOR: return "color"
+ return "<invalid type>"
+
+func _get(property):
+ if property == "default_value": return default_value
+
+func _set(property, value):
+ if property == "default_value":
+ default_value = value
+ return true
+
+func _get_property_list():
+ var properties := []
+
+ properties.append({
+ "name": "default_value",
+ "type": type
+ })
+
+ return properties