diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/game.gd | 2 | ||||
-rw-r--r-- | client/menu/ingame.gd | 2 | ||||
-rw-r--r-- | client/player/controllable_player.gd | 9 |
3 files changed, 12 insertions, 1 deletions
diff --git a/client/game.gd b/client/game.gd index 0bbc4ab0..671f328f 100644 --- a/client/game.gd +++ b/client/game.gd @@ -20,6 +20,7 @@ extends Node3D signal update_players(players: Dictionary) signal data_updated() +signal player_set_input_enabled(b: bool) var player_id: int = -1 var item_names: Array = [] @@ -86,6 +87,7 @@ func _ready(): if player == player_id: player_instance = ControllablePlayer.new(player, player_name, pos, character, self) camera.target = player_instance + player_set_input_enabled.connect(player_instance.set_input_enabled) else: player_instance = Player.new(player, player_name, pos, character, self) players[player] = player_instance diff --git a/client/menu/ingame.gd b/client/menu/ingame.gd index e6ec7c54..61984c99 100644 --- a/client/menu/ingame.gd +++ b/client/menu/ingame.gd @@ -14,10 +14,12 @@ func _ready(): func anim_setup(): pass func menu_anim_open(): print("ingame open") + game.player_set_input_enabled.emit(false) anim.play("activate") await anim.animation_finished func menu_anim_exit(): print("ingame exit") + game.player_set_input_enabled.emit(true) anim.play_backwards("activate") await anim.animation_finished diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 8361ca6a..de39abfb 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -29,6 +29,7 @@ var facing = Vector2(1, 0) var velocity_ = Vector2(0, 0) var stamina = 0 var chat_open := false +var enable_input := true var target: Vector2i = Vector2i(0, 0) @@ -52,6 +53,7 @@ func _input(_event): else: chat_bubble.edit() chat_open = !chat_open + enable_input = !enable_input const MAX_DT = 1./50. func _process(delta): @@ -62,7 +64,7 @@ func _process(delta): super(delta) func _process_movement(delta): - var input = Input.get_vector("left", "right", "forward", "backwards") + var input = Input.get_vector("left", "right", "forward", "backwards") if enable_input else Vector2.ZERO var boost = Input.is_action_pressed("boost") or (Global.get_setting("latch_boost") and boosting) input = input.rotated( - game.camera.angle_target) if Input.is_action_pressed("interact") or Input.is_action_just_released("interact"): @@ -145,6 +147,8 @@ func take_item(tile: Tile): Input.start_joy_vibration(0, 0.1, 0.0, 0.075) func interact(): + if not enable_input: + return var tile = game.map.get_tile_instance(target) if tile != null: game.marker.set_interactive(game.get_tile_interactive(target)) @@ -157,3 +161,6 @@ func interact(): game.mp.send_tile_interact(target, false) else: game.marker.visible = false + +func set_input_enabled(b: bool): + enable_input = b |