mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-10-26 09:20:49 +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")
 | 
