aboutsummaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/game.gd')
-rw-r--r--client/game.gd26
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.)