aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/game.gd5
-rw-r--r--client/menu/ingame.gd4
-rw-r--r--client/menu/lobby.gd2
-rw-r--r--client/multiplayer.gd20
-rw-r--r--client/player/controllable_player.gd8
5 files changed, 21 insertions, 18 deletions
diff --git a/client/game.gd b/client/game.gd
index 8f23fbed..fee3b390 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -61,7 +61,7 @@ func _ready():
get_parent().replace_menu("res://menu/error.tscn")
)
- mp.init.connect(func(player_id_: int): player_id = player_id_)
+ mp.joined.connect(func(player_id_: int): player_id = player_id_)
mp.data.connect(func(
item_names_: Array,
@@ -85,7 +85,6 @@ func _ready():
data_updated.emit()
)
- await mp.init
if player_id == -1:
push_error("multiplayer has not been initialized")
@@ -269,7 +268,7 @@ func join():
func leave():
join_sent = false
- mp.send_leave()
+ mp.send_leave(player_id)
func _process(delta):
update_center()
diff --git a/client/menu/ingame.gd b/client/menu/ingame.gd
index 4e8eac0c..78cb45aa 100644
--- a/client/menu/ingame.gd
+++ b/client/menu/ingame.gd
@@ -58,12 +58,12 @@ func _on_quit_pressed():
quit()
func _on_lobby_pressed():
- game.mp.send_chat("/end")
+ game.mp.send_chat(game.player_id, "/end")
exit()
func _on_leave_pressed():
if game.is_joined:
- game.mp.send_leave()
+ game.mp.send_leave(game.player_id)
elif not game.join_sent:
leave_button.disabled = true
game.join()
diff --git a/client/menu/lobby.gd b/client/menu/lobby.gd
index 9991fbbf..1d4674cd 100644
--- a/client/menu/lobby.gd
+++ b/client/menu/lobby.gd
@@ -96,7 +96,7 @@ func _on_right_pressed():
func _on_controller_button_pressed():
if selected_map_name != null:
- game.mp.send_chat("/start %s" % selected_map_name)
+ game.mp.send_chat(game.player_id, "/start %s" % selected_map_name)
Sound.play_music("stop") # TODO: Game music enter
func _on_join_spectate_pressed():
diff --git a/client/multiplayer.gd b/client/multiplayer.gd
index dad4464d..02cf21e0 100644
--- a/client/multiplayer.gd
+++ b/client/multiplayer.gd
@@ -18,7 +18,7 @@
class_name Multiplayer
extends Node
-signal init(player_id: int)
+signal joined(player_id: int)
signal data(
item_names: Array[String],
tile_names: Array[String],
@@ -98,9 +98,9 @@ func handle_packet(bytes: PackedByteArray):
var packet_type: String = decoded["type"]
match packet_type:
- "init":
+ "joined":
var player_id = decoded["id"]
- init.emit(player_id)
+ joined.emit(player_id)
"version":
var major = decoded["major"]
var minor = decoded["minor"]
@@ -279,26 +279,29 @@ func send_join(player_name: String, character: int):
"character": character
})
-func send_movement(pos: Vector2, direction: Vector2, boosting: bool):
+func send_movement(player: int, pos: Vector2, direction: Vector2, boosting: bool):
send_packet({
"type": "movement",
+ "player": player,
"pos": [pos.x, pos.y],
"direction": [direction.x, direction.y],
"boosting": boosting
})
-func send_tile_interact(pos: Vector2i, edge: bool):
+func send_tile_interact(player:int, pos: Vector2i, edge: bool):
send_packet({
"type": "interact",
+ "player": player,
"pos": [pos.x, pos.y] if edge else null,
})
-func set_player_interact(_player: int, _edge: bool):
+func send_player_interact(_player: int, _edge: bool):
push_error("not yet implemented")
-func send_chat(message: String):
+func send_chat(player: int, message: String):
send_packet({
"type": "communicate",
+ "player": player,
"persist": false,
"message": {
"text": message
@@ -311,9 +314,10 @@ func send_replay_tick(dt: float):
"dt": dt
})
-func send_leave():
+func send_leave(player: int):
send_packet({
"type": "leave",
+ "player": player,
})
func send_packet(packet):
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index 79c73246..b05b2103 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -43,7 +43,7 @@ func _ready():
timer.start()
timer.connect("timeout", func():
if game.mp != null:
- game.mp.send_movement(position_, direction, boosting)
+ game.mp.send_movement(game.player_id, position_, direction, boosting)
)
add_child(onscreen_controls)
super()
@@ -147,7 +147,7 @@ func update_position(_new_position: Vector2, _new_rotation: float, _new_boosting
pass
func submit_message(text: String):
- game.mp.send_chat(text)
+ game.mp.send_chat(game.player_id, text)
func progress(p: float, warn: bool):
super(p, warn)
@@ -169,11 +169,11 @@ func interact():
marker.visible = true
marker_target = tile.item_base.global_position
if Input.is_action_just_pressed("interact"):
- game.mp.send_tile_interact(target, true)
+ game.mp.send_tile_interact(game.player_id, target, true)
tile.interact()
marker.set_interacting(true)
elif Input.is_action_just_released("interact"):
- game.mp.send_tile_interact(target, false)
+ game.mp.send_tile_interact(game.player_id, target, false)
marker.set_interacting(false)
else:
marker.visible = false