diff options
-rw-r--r-- | client/game.gd | 8 | ||||
-rw-r--r-- | client/multiplayer.gd | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/client/game.gd b/client/game.gd index 51981713..5c52b11e 100644 --- a/client/game.gd +++ b/client/game.gd @@ -36,6 +36,7 @@ var in_lobby := false var is_replay := false var is_joined := false var join_sent := false +var last_position := Vector2(0, 0) var players := {} @@ -107,6 +108,13 @@ func _ready(): mp.position.connect(func(player: int, pos: Vector2, rot: float, boosting: bool): var player_instance: Player = players[player] player_instance.update_position(pos, rot, boosting) + if player == player_id: + last_position = pos + ) + + mp.movement_sync.connect(func(): + var player_instance: ControllablePlayer = players[player_id] + player_instance.position_ = last_position ) mp.remove_player.connect(func(id: int): diff --git a/client/multiplayer.gd b/client/multiplayer.gd index 064ffa70..c301c401 100644 --- a/client/multiplayer.gd +++ b/client/multiplayer.gd @@ -35,6 +35,7 @@ signal effect_message(player: int, effect: String, persist: bool) signal add_player(player: int, name: String, pos: Vector2, character: int) signal remove_player(player: int) signal position(player: int, position: Vector2, rotation: float, boosting: bool) +signal movement_sync() signal take_item(tile: Vector2i, player: int) signal put_item(player: int, tile: Vector2i, ) signal pass_item_player(from: int, to: int) @@ -127,6 +128,8 @@ func handle_packet(bytes: PackedByteArray): var rot = decoded["rot"] var boosting = decoded["boosting"] position.emit(player, pos_to_vec2(pos), rot, boosting) + "movement_sync": + movement_sync.emit() "take_item": push_warning("take_item is deprecated") var tile = pos_to_vec2i(decoded["tile"]) |