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.) | 
