extends Control export (Array, String) var titles: Array export (Array, Texture) var palettes: Array export var previous_screen: PackedScene var current_palette: int = 0 onready var sg: TextureRect = $SG func _ready() -> void: assert(titles.size() == palettes.size(), "titles and palettes arrays are not same size") 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() return elif event.is_action_pressed("ui_left"): current_palette -= 1 elif event.is_action_pressed("ui_right"): current_palette += 1 current_palette = posmod(current_palette, palettes.size()) sg.material.set_shader_param("palette", palettes[current_palette]) $"%PaletteTitle".text = titles[current_palette]