AppLauncher/main.gd
2024-04-08 23:18:04 +02:00

65 lines
1.7 KiB
GDScript

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