aboutsummaryrefslogtreecommitdiff
path: root/game/src/OptionMenu/SettingNodes/SettingOptionButton.gd
diff options
context:
space:
mode:
Diffstat (limited to 'game/src/OptionMenu/SettingNodes/SettingOptionButton.gd')
-rw-r--r--game/src/OptionMenu/SettingNodes/SettingOptionButton.gd77
1 files changed, 0 insertions, 77 deletions
diff --git a/game/src/OptionMenu/SettingNodes/SettingOptionButton.gd b/game/src/OptionMenu/SettingNodes/SettingOptionButton.gd
deleted file mode 100644
index c5a805e..0000000
--- a/game/src/OptionMenu/SettingNodes/SettingOptionButton.gd
+++ /dev/null
@@ -1,77 +0,0 @@
-extends OptionButton
-class_name SettingOptionButton
-
-signal option_selected(index : int, by_user : bool)
-
-@export
-var section_name : String = "setting"
-
-@export
-var setting_name : String = "setting_optionbutton"
-
-@export
-var default_selected : int = -1:
- get: return default_selected
- set(v):
- if v < 0 or item_count == 0:
- default_selected = -1
- return
- default_selected = v % item_count
-
-func _valid_index(index : int) -> bool:
- return 0 <= index and index < item_count
-
-func _get_value_for_file(select_value : int):
- if _valid_index(select_value):
- return select_value
- else:
- return null
-
-func _set_value_from_file(load_value) -> void:
- match typeof(load_value):
- TYPE_INT:
- if _valid_index(load_value):
- selected = load_value
- return
- TYPE_STRING, TYPE_STRING_NAME:
- var load_string := load_value as String
- if load_string.is_valid_int():
- var load_int := load_string.to_int()
- if _valid_index(load_int):
- selected = load_int
- return
- for item_index in item_count:
- if load_string == get_item_text(item_index):
- selected = item_index
- return
- push_error("Setting value '%s' invalid for setting [%s] \"%s\"" % [load_value, section_name, setting_name])
- selected = default_selected
-
-func _setup_button() -> void:
- pass
-
-func _ready():
- Events.Options.load_settings.connect(load_setting)
- Events.Options.save_settings.connect(save_setting)
- Events.Options.reset_settings.connect(reset_setting)
- item_selected.connect(func(index : int): option_selected.emit(index, true))
- _setup_button()
- if not _valid_index(default_selected) or selected == -1:
- var msg := "Failed to generate %s %s options." % [setting_name, section_name]
- push_error(msg)
- OS.alert(msg, "%s Options Error" % section_name)
- get_tree().quit()
-
-func load_setting(file : ConfigFile) -> void:
- if file == null: return
- _set_value_from_file(file.get_value(section_name, setting_name, _get_value_for_file(default_selected)))
- option_selected.emit(selected, false)
-
-func save_setting(file : ConfigFile) -> void:
- if file == null: return
- file.set_value(section_name, setting_name, _get_value_for_file(selected))
-
-func reset_setting(no_emit : bool = false) -> void:
- selected = default_selected
- if not no_emit:
- option_selected.emit(selected, false)