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"])  |