diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/client/game.gd b/client/game.gd index f1f4e065..67b92679 100644 --- a/client/game.gd +++ b/client/game.gd @@ -1,38 +1,39 @@ # Undercooked - a game about cooking # Copyright 2024 nokoe # Copyright 2024 metamuffin -# +# # 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 # the Free Software Foundation, version 3 of the License only. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. -# +# # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -# +# class_name Game extends Node3D @onready var camera: FollowCamera = $FollowCamera @onready var map: Map = $Map +@onready var mp: Multiplayer = $Multiplayer @onready var marker: Marker = $Marker var marker_target = Vector3(0,0,0) var players := {} # Called when the node enters the scene tree for the first time. func _ready(): - Multiplayer.connect_client() - await Multiplayer.init - if Multiplayer.player_id == -1: + await mp.init + if mp.player_id == -1: push_error("multiplayer has not been initialized") - Multiplayer.connect("add_player", + + mp.connect("add_player", func(player: int, player_name: String, pos: Vector2, character: int): var player_instance: Player - if player == Multiplayer.player_id: + if player == mp.player_id: player_instance = ControllablePlayer.new(player, player_name, pos, character, self) camera.target = player_instance else: @@ -41,13 +42,15 @@ func _ready(): add_child(player_instance) ) - Multiplayer.connect("position", + mp.connect("update_map", map.update) + + mp.connect("position", func(player: int, pos: Vector2, rot: float): var player_instance: Player = players[player] player_instance.update_position(pos, rot) ) - Multiplayer.connect("remove_player", func(id: int): + mp.connect("remove_player", func(id: int): var player: Player = players.get(id) if player != null: if player.hand != null: @@ -56,55 +59,55 @@ func _ready(): player.queue_free() ) - Multiplayer.connect("set_tile_item", func(tile: Vector2i, item: int): + mp.connect("set_tile_item", func(tile: Vector2i, item: int): var t: Floor = map.tile_by_pos[str(tile)] - var i = ItemFactory.produce(item, t.item_base) + var i = ItemFactory.produce(mp.item_names[item], t.item_base) add_child(i) - i.name = Multiplayer.item_names[item] + i.name = mp.item_names[item] t.set_item(i) ) - Multiplayer.connect("remove_tile_item", func(tile: Vector2i): + mp.connect("remove_tile_item", func(tile: Vector2i): var t: Floor = map.tile_by_pos[str(tile)] t.take_item().queue_free() ) - Multiplayer.connect("set_player_item", func(player: int, item: int): + mp.connect("set_player_item", func(player: int, item: int): var p: Player = players[player] - var i = ItemFactory.produce(item, p.hand_base) + var i = ItemFactory.produce(mp.item_names[item], p.hand_base) add_child(i) - i.name = Multiplayer.item_names[item] + i.name = mp.item_names[item] p.set_item(i) ) - Multiplayer.connect("remove_player_item", func(player: int): + mp.connect("remove_player_item", func(player: int): var p: Player = players[player] p.remove_item().queue_free() ) - Multiplayer.connect("take_item", func(tile: Vector2i, player: int): + mp.connect("take_item", func(tile: Vector2i, player: int): var t: Floor = map.tile_by_pos[str(tile)] var p: Player = players[player] p.take_item(t) ) - Multiplayer.connect("put_item", func(tile: Vector2i, player: int): + mp.connect("put_item", func(tile: Vector2i, player: int): var t: FullTile = map.tile_by_pos[str(tile)] var p: Player = players[player] p.put_item(t) ) - Multiplayer.connect("set_progress", func(tile: Vector2i, progress: float, warn: bool): + mp.connect("set_progress", func(tile: Vector2i, progress: float, warn: bool): var t: FullTile = map.tile_by_pos[str(tile)] t.progress(progress, warn) ) - Multiplayer.connect("set_finished", func(tile: Vector2i, warn: bool): + mp.connect("set_finished", func(tile: Vector2i, warn: bool): var t: FullTile = map.tile_by_pos[str(tile)] t.finish(warn) ) - Multiplayer.send_join("Blub", 1) + mp.send_join("Blub", 1) func _process(delta): |