@@ -3,8 +3,8 @@ class_name PandoraSettings
33extends RefCounted
44
55enum IDType {
6- SEQUENTIAL ,
7- NANOID ,
6+ SEQUENTIAL ,
7+ NANOID ,
88}
99
1010const CATEGORY_MAIN : StringName = "pandora"
@@ -14,43 +14,85 @@ const SETTING_ID_TYPE: StringName = CATEGORY_CONFIG + "/id_type"
1414
1515const DEFAULT_ID_TYPE : IDType = IDType .SEQUENTIAL
1616
17+ const SETTING_PANDORA_DATA_PATH : StringName = CATEGORY_CONFIG + "/data_path"
18+ const DEFAULT_PANDORA_DATA_PATH : StringName = "res://data.pandora"
19+
20+ const SETTINGS_PANDORA_DEFINITIONS_DIR : StringName = CATEGORY_CONFIG + "/definitions_dir"
21+ const DEFAULT_PANDORA_DEFINITIONS_DIR : StringName = "res://pandora/"
22+
1723
1824static func initialize () -> void :
19- init_setting (
20- SETTING_ID_TYPE ,
21- IDType .keys ()[DEFAULT_ID_TYPE ],
22- TYPE_STRING ,
23- PROPERTY_HINT_ENUM ,
24- "%s ,%s " % IDType .keys ()
25- )
25+ init_setting (
26+ SETTING_ID_TYPE ,
27+ IDType .keys ()[DEFAULT_ID_TYPE ],
28+ TYPE_STRING ,
29+ PROPERTY_HINT_ENUM ,
30+ "%s ,%s " % IDType .keys ()
31+ )
32+
33+ init_setting (
34+ SETTING_PANDORA_DATA_PATH ,
35+ DEFAULT_PANDORA_DATA_PATH ,
36+ TYPE_STRING ,
37+ PROPERTY_HINT_FILE ,
38+ )
39+
40+ init_setting (
41+ SETTINGS_PANDORA_DEFINITIONS_DIR ,
42+ DEFAULT_PANDORA_DEFINITIONS_DIR ,
43+ TYPE_STRING ,
44+ PROPERTY_HINT_DIR
45+ )
2646
2747
2848static func init_setting (
29- name : String ,
30- default : Variant ,
31- type := typeof (default ),
32- hint := PROPERTY_HINT_NONE ,
33- hint_string := ""
49+ name : String ,
50+ default : Variant ,
51+ type := typeof (default ),
52+ hint := PROPERTY_HINT_NONE ,
53+ hint_string := ""
3454) -> void :
35- if not ProjectSettings .has_setting (name ):
36- ProjectSettings .set_setting (name , default )
55+ if not ProjectSettings .has_setting (name ):
56+ ProjectSettings .set_setting (name , default )
3757
38- ProjectSettings .set_initial_value (name , default )
58+ ProjectSettings .set_initial_value (name , default )
3959
40- var info = {
41- "name" : name ,
42- "type" : type ,
43- "hint" : hint ,
44- "hint_string" : hint_string ,
45- }
46- ProjectSettings .add_property_info (info )
60+ var info = {
61+ "name" : name ,
62+ "type" : type ,
63+ "hint" : hint ,
64+ "hint_string" : hint_string ,
65+ }
66+ ProjectSettings .add_property_info (info )
4767
4868
4969static func get_id_type () -> IDType :
50- var default : StringName = IDType .keys ()[DEFAULT_ID_TYPE ]
51- var key := ProjectSettings .get_setting (SETTING_ID_TYPE , default )
52- return IDType [key ]
70+ var default : StringName = IDType .keys ()[DEFAULT_ID_TYPE ]
71+ var key := ProjectSettings .get_setting (SETTING_ID_TYPE , default )
72+ return IDType [key ]
5373
5474
5575static func set_id_type (id_type : IDType ) -> void :
56- ProjectSettings .set_setting (SETTING_ID_TYPE , IDType .keys ()[id_type ])
76+ ProjectSettings .set_setting (SETTING_ID_TYPE , IDType .keys ()[id_type ])
77+
78+
79+ static func get_data_path () -> StringName :
80+ return ProjectSettings .get_setting (
81+ SETTING_PANDORA_DATA_PATH ,
82+ DEFAULT_PANDORA_DATA_PATH
83+ )
84+
85+
86+ static func set_data_path (path : StringName ) -> void :
87+ ProjectSettings .set_setting (SETTING_PANDORA_DATA_PATH , path )
88+
89+
90+ static func get_definitions_dir () -> StringName :
91+ return ProjectSettings .get_setting (
92+ SETTINGS_PANDORA_DEFINITIONS_DIR ,
93+ DEFAULT_PANDORA_DEFINITIONS_DIR
94+ )
95+
96+
97+ static func set_definitions_dir (path : StringName ) -> void :
98+ ProjectSettings .set_setting (SETTINGS_PANDORA_DEFINITIONS_DIR , path )
0 commit comments