| 123456789101112131415161718192021222324252627282930313233343536373839 |
- extends Control
- var current_theme := "Overworld"
- const THEME_ICONS_DAY = preload("uid://cw5c58yiaeh4j")
- const THEME_ICONS_NIGHT = preload("uid://bds7ota87jglw")
- signal level_theme_changed
- func _ready() -> void:
- update()
- grab_themes()
- func grab_themes() -> void:
- for i in %ThemeContainer.get_children():
- i.get_node("Button").pressed.connect(theme_selected.bind(i.name))
- func open() -> void:
- update()
- show()
- func close() -> void:
- hide()
- func update() -> void:
- for i in %ThemeContainer.get_children():
- i.get_node("Checkbox").visible = current_theme == i.name
- i.texture = [THEME_ICONS_DAY, THEME_ICONS_NIGHT][["Day", "Night"].find(Global.theme_time)]
- func theme_selected(theme_name := "") -> void:
- current_theme = theme_name
- Global.level_theme = current_theme
- Global.current_level.theme = current_theme
- level_theme_changed.emit()
- ResourceSetterNew.cache.clear()
- ResourceSetter.cache.clear()
- Global.level_theme_changed.emit()
- update()
- close()
|