diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/client/game.gd b/client/game.gd index 1e7a378d..97460c01 100644 --- a/client/game.gd +++ b/client/game.gd @@ -1,6 +1,7 @@ # Undercooked - a game about cooking # Copyright 2024 nokoe # Copyright 2024 metamuffin +# Copyright 2024 tpart # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -17,6 +18,9 @@ class_name Game extends Node3D +signal update_players(players: Dictionary) +signal data_updated() + var player_id: int = -1 var item_names: Array = [] var item_index_by_name: Dictionary = {} @@ -24,6 +28,7 @@ var tile_names: Array = [] var tile_index_by_name: Dictionary = {} var tile_collide: Array = [] var tile_interact: Array = [] +var map_names: Array = [] var marker_target = Vector3(0,0,0) var players := {} @@ -34,6 +39,8 @@ var players := {} @onready var marker: Marker = $Marker @onready var environment = $WorldEnvironment @onready var debug_label = $Debug +@onready var overlay = $Overlay +@onready var lobby = $"../Lobby" func _ready(): if !Global.on_vulkan(): @@ -50,12 +57,14 @@ func _ready(): item_names_: Array, tile_names_: Array, tile_collide_: Array, - tile_interact_: Array + tile_interact_: Array, + map_names_: Array ): item_names = item_names_ tile_names = tile_names_ tile_collide = tile_collide_ tile_interact = tile_interact_ + map_names = map_names_ tile_index_by_name = {} for id in tile_names.size(): tile_index_by_name[tile_names[id]] = id @@ -63,6 +72,8 @@ func _ready(): item_index_by_name.clear() for i in range(item_names.size()): item_index_by_name[item_names[i]] = i + + data_updated.emit() ) await mp.init @@ -78,6 +89,7 @@ func _ready(): player_instance = Player.new(player, player_name, pos, character, self) players[player] = player_instance add_child(player_instance) + update_players.emit(players) ) mp.set_tile.connect(set_tile) @@ -97,6 +109,7 @@ func _ready(): player.hand.queue_free() players.erase(id) player.queue_free() + update_players.emit(players) ) mp.set_tile_item.connect(func(tile: Vector2i, item: int): @@ -193,7 +206,7 @@ func _ready(): mp.send_join(Global.profile["username"], Global.profile["character"]) - mp.set_ingame.connect(func (state): + mp.set_ingame.connect(func (state, _lobby): if state: map.gi_bake() await get_parent().menu_anim_open() @@ -205,8 +218,13 @@ func _ready(): mp.server_message.connect(func(text): print(text)) - mp.score.connect($Overlay.update) - mp.hide_score.connect($Overlay.reset) + mp.score.connect(overlay.update) + mp.hide_score.connect(overlay.reset) + + mp.set_ingame.connect( + func toggle_lobby(_state: bool, lobby_state: bool): + lobby.visible = lobby_state + ) func _process(delta): marker.position = Global.interpolate(marker.position, marker_target, delta * 30.) |