ResourcePackContainer.gd 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. class_name ResourcePackContainer
  2. extends HBoxContainer
  3. const RESOURCE_PACK_CONFIG_MENU = preload("uid://bom2rstlk8fws")
  4. var pack_json := {"name": "Hello",
  5. "description": "Hi :"}
  6. var icon: Texture = null
  7. var pack_name := ""
  8. var loaded := false
  9. var selected := false
  10. var load_order := 0
  11. var config := {}
  12. var config_path := ""
  13. signal resource_pack_selected()
  14. signal open_config(pack: ResourcePackContainer)
  15. func _ready() -> void:
  16. setup_visuals()
  17. func setup_visuals() -> void:
  18. %Title.text = pack_json.name.to_upper()
  19. %Description.text = pack_json.description.to_upper()
  20. %Icon.texture = icon
  21. %LoadedOrder.text = str(load_order)
  22. func _process(_delta: float) -> void:
  23. loaded = Settings.file.visuals.resource_packs.has(pack_name)
  24. %Cursor.modulate.a = int(selected)
  25. %LoadedOrder.visible = loaded
  26. %LoadedOrder.text = str(load_order + 1)
  27. load_order = Settings.file.visuals.resource_packs.find(pack_name)
  28. $ResourcePackContainer.self_modulate = Color.GREEN if loaded else Color.WHITE
  29. $Edit/EditLabel.visible = selected and config != {}
  30. for i in [%TitleScroll, %DescScroll]:
  31. i.is_focused = selected
  32. if selected:
  33. focus_mode = Control.FOCUS_ALL
  34. grab_focus()
  35. else:
  36. focus_mode = Control.FOCUS_NONE
  37. if Input.is_action_just_pressed("jump_0") and selected and visible:
  38. select()
  39. elif Input.is_action_just_pressed("ui_right") and selected and visible and config != {}:
  40. open_config_menu()
  41. func open_config_menu() -> void:
  42. open_config.emit(self)
  43. func select() -> void:
  44. print(ResourceSetter.cache)
  45. ResourceSetter.cache.clear()
  46. print(ResourceSetter.cache)
  47. ResourceSetterNew.cache.clear()
  48. ResourceGetter.cache.clear()
  49. AudioManager.current_level_theme = ""
  50. loaded = not loaded
  51. if loaded and Settings.file.visuals.resource_packs.has(pack_name) == false:
  52. Settings.file.visuals.resource_packs.push_front(pack_name)
  53. if config != {}:
  54. ResourceSetterNew.pack_configs[pack_name] = config
  55. else:
  56. ResourceSetterNew.pack_configs.erase(pack_name)
  57. Settings.file.visuals.resource_packs.erase(pack_name)
  58. Global.level_theme_changed.emit()
  59. if loaded:
  60. AudioManager.play_global_sfx("coin")
  61. else:
  62. AudioManager.play_global_sfx("bump")