mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-11-04 08:35:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
class_name ResourcePackContainer
 | 
						|
extends HBoxContainer
 | 
						|
const RESOURCE_PACK_CONFIG_MENU = preload("uid://bom2rstlk8fws")
 | 
						|
var pack_json := {"name": "Hello",
 | 
						|
				"description": "Hi :"}
 | 
						|
var icon: Texture = null
 | 
						|
 | 
						|
var pack_name := ""
 | 
						|
 | 
						|
var loaded := false
 | 
						|
var selected := false
 | 
						|
var load_order := 0
 | 
						|
var config := {}
 | 
						|
 | 
						|
var config_path := ""
 | 
						|
 | 
						|
signal resource_pack_selected()
 | 
						|
 | 
						|
signal open_config(pack: ResourcePackContainer)
 | 
						|
 | 
						|
func _ready() -> void:
 | 
						|
	setup_visuals()
 | 
						|
 | 
						|
func setup_visuals() -> void:
 | 
						|
	%Title.text = pack_json.name.to_upper()
 | 
						|
	%Description.text = pack_json.description.to_upper()
 | 
						|
	%Icon.texture = icon
 | 
						|
	%LoadedOrder.text = str(load_order)
 | 
						|
 | 
						|
func _process(_delta: float) -> void:
 | 
						|
	loaded = Settings.file.visuals.resource_packs.has(pack_name)
 | 
						|
	%Cursor.modulate.a = int(selected)
 | 
						|
	%LoadedOrder.visible = loaded
 | 
						|
	%LoadedOrder.text = str(load_order + 1)
 | 
						|
	load_order = Settings.file.visuals.resource_packs.find(pack_name)
 | 
						|
	$ResourcePackContainer.self_modulate = Color.GREEN if loaded else Color.WHITE
 | 
						|
	$Edit/EditLabel.visible = selected and config != {}
 | 
						|
	for i in [%TitleScroll, %DescScroll]:
 | 
						|
		i.is_focused = selected
 | 
						|
	if selected:
 | 
						|
		focus_mode = Control.FOCUS_ALL
 | 
						|
		grab_focus()
 | 
						|
	else:
 | 
						|
		focus_mode = Control.FOCUS_NONE
 | 
						|
	if Input.is_action_just_pressed("ui_accept") and selected and visible:
 | 
						|
		select()
 | 
						|
	elif Input.is_action_just_pressed("ui_right") and selected and visible and config != {}:
 | 
						|
		open_config_menu()
 | 
						|
 | 
						|
func open_config_menu() -> void:
 | 
						|
	open_config.emit(self)
 | 
						|
 | 
						|
func select() -> void:
 | 
						|
	print(ResourceSetter.cache)
 | 
						|
	ResourceSetter.cache.clear()
 | 
						|
	print(ResourceSetter.cache)
 | 
						|
	ResourceSetterNew.cache.clear()
 | 
						|
	ResourceGetter.cache.clear()
 | 
						|
	AudioManager.current_level_theme = ""
 | 
						|
	loaded = not loaded
 | 
						|
	if loaded and Settings.file.visuals.resource_packs.has(pack_name) == false:
 | 
						|
		Settings.file.visuals.resource_packs.push_front(pack_name)
 | 
						|
		if config != {}:
 | 
						|
			ResourceSetterNew.pack_configs[pack_name] = config
 | 
						|
	else:
 | 
						|
		ResourceSetterNew.pack_configs.erase(pack_name)
 | 
						|
		Settings.file.visuals.resource_packs.erase(pack_name)
 | 
						|
	Global.level_theme_changed.emit()
 | 
						|
	if loaded:
 | 
						|
		AudioManager.play_global_sfx("coin")
 | 
						|
	else:
 | 
						|
		AudioManager.play_global_sfx("bump")
 |