extends Control var games := [] func _ready(): %Games.visible=false %GameTab.visible=false %Profiles.visible=false register_games() %Games.item_activated.connect(on_item_activated.bind("games")) %Profiles.item_activated.connect(on_item_activated.bind("profiles")) %ProfileAdd.pressed.connect(_add_new_profile) if games.size()==1: select_game(games[0]) %GameClose.visible=false elif games.size()>1: load_games() %GameClose.pressed.connect(_return_to_list) func register_games(): games.push_back({"name":"dummy","image":"res://icon.svg"}) games.push_back({"name":"dummy2","image":"res://icon.svg"}) func select_game(game_data:Dictionary): var game_name :String= game_data.get("name") if game_data.has("name") else "UNKNOWN" var game_image :Texture= load(game_data.get("image")) if game_data.has("name") else load("res://icon.svg") %GameName.text=game_name %GameIcon.texture=game_image %Games.visible=false %GameTab.visible=true %Profiles.visible=true func load_games(): var list :ItemList=%Games list.clear() var i:=0 for dt in games: var game_name :String= dt.get("name") if dt.has("name") else "UNKNOWN" var game_image :Texture= load(dt.get("image")) if dt.has("name") else load("res://icon.svg") list.add_item(game_name,game_image) list.set_item_metadata(i,dt) i+=1 %Games.visible=true func on_item_activated(id:int,type:String): if type=="games": var data :Dictionary=%Games.get_item_metadata(id) select_game(data) elif type=="profiles": var data :Dictionary=%Profiles.get_item_metadata(id) func _return_to_list(): load_games() %Games.visible=true %GameTab.visible=false %Profiles.visible=false func _add_new_profile(): pass