From fc9b59121332fa6aff36eaf7b9061fc46eb95f45 Mon Sep 17 00:00:00 2001 From: nokoe Date: Fri, 27 Sep 2024 22:47:07 +0200 Subject: fix player still holding knife after cutting board interaction finishes --- client/map/tiles/cutting_board.gd | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'client/map') diff --git a/client/map/tiles/cutting_board.gd b/client/map/tiles/cutting_board.gd index 312bf129..564f4a38 100644 --- a/client/map/tiles/cutting_board.gd +++ b/client/map/tiles/cutting_board.gd @@ -18,6 +18,7 @@ extends CounterBase var board = load("res://map/tiles/cutting_board.tscn").instantiate() var chopping: AudioStreamPlayer3D = AudioStreamPlayer3D.new() +var acting_player func _init(ctx: TileFactory.TileCC): super(ctx) @@ -25,20 +26,24 @@ func _init(ctx: TileFactory.TileCC): add_child(chopping) base.add_child(board) -func progress(position_: float, speed: float, warn: bool, acting_player): +func progress(position_: float, speed: float, warn: bool, acting_player_): super(position_, speed, warn, acting_player) var knife: Node3D = board.get_node("Knife") - knife.visible = speed == 0 - - if acting_player != null: - var acting_character: Character = acting_player.character - acting_character.cutting = speed != 0 + acting_player = acting_player_ if not chopping.playing and speed != 0.: chopping.play() + if acting_player != null: + knife.visible = false + var acting_character: Character = acting_player.character + acting_character.cutting = true func finish(): super() + if is_instance_valid(acting_player): + var acting_character: Character = acting_player.character + acting_character.cutting = false + board.get_node("Knife").visible = true chopping.stop() static func interact_target() -> Vector3: -- cgit v1.2.3-70-g09d2