65 lines
1.7 KiB
GDScript
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
|