54 lines
1.6 KiB
GDScript
54 lines
1.6 KiB
GDScript
extends Control
|
|
|
|
|
|
export (Array, String) var titles: Array
|
|
export (Array, Texture) var palettes: Array
|
|
export var previous_screen: PackedScene
|
|
onready var menu_sounds = $MenuSounds
|
|
|
|
var current_palette: int = 0
|
|
|
|
|
|
onready var sg: AnimatedSprite = $SG
|
|
|
|
|
|
func _ready() -> void:
|
|
menu_sounds.can_play = true
|
|
assert(titles.size() == palettes.size(), "titles and palettes arrays are not same size")
|
|
|
|
if Save.current_file.is_super_player():
|
|
palettes.append(preload("res://graphics/player/palettes/super_player.tex"))
|
|
titles.append("Super Player")
|
|
|
|
for i in palettes.size():
|
|
var id = palettes[i].resource_path.get_file().get_basename()
|
|
if id == Save.current_file.palette:
|
|
current_palette = i
|
|
break
|
|
|
|
sg.material.set_shader_param("palette", palettes[current_palette])
|
|
$"%PaletteTitle".text = titles[current_palette]
|
|
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if event.is_action_pressed("ui_cancel"):
|
|
SceneManager.current_scene = previous_screen.instance()
|
|
menu_sounds.play_select_sound()
|
|
return
|
|
elif event.is_action_pressed("ui_left"):
|
|
current_palette -= 1
|
|
menu_sounds.play_select_sound()
|
|
elif event.is_action_pressed("ui_right"):
|
|
current_palette += 1
|
|
menu_sounds.play_select_sound()
|
|
|
|
current_palette = posmod(current_palette, palettes.size())
|
|
sg.material.set_shader_param("palette", palettes[current_palette])
|
|
$"%PaletteTitle".text = titles[current_palette]
|
|
Game.current_palette = palettes[current_palette].resource_path.get_file().get_basename()
|
|
if Game.current_palette == "super_player":
|
|
$"%Sparkles".visible = true
|
|
else:
|
|
$"%Sparkles".visible = false
|
|
Save.current_file.palette = Game.current_palette
|
|
Save.current_file.save_to_file()
|