diff options
author | tpart <tpart120@proton.me> | 2025-09-21 22:19:39 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2025-09-21 22:19:44 +0200 |
commit | 483fba84229b42202157e9e9cc0ae2c394e48060 (patch) | |
tree | 2ccad6b215fdd809a5603c0eff95c650ba17b33c /client/map/tiles/rolling_board.gd | |
parent | f8c0f3a15a80bbf01ac5f6586269b3b506d0c21a (diff) | |
download | hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar.bz2 hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar.zst |
Add rolling board model; Add rolling pin model; Add rolling pin animation (#393)
Diffstat (limited to 'client/map/tiles/rolling_board.gd')
-rw-r--r-- | client/map/tiles/rolling_board.gd | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/client/map/tiles/rolling_board.gd b/client/map/tiles/rolling_board.gd new file mode 100644 index 00000000..078897b1 --- /dev/null +++ b/client/map/tiles/rolling_board.gd @@ -0,0 +1,57 @@ +# Hurry Curry! - a game about cooking +# Copyright (C) 2025 Hurry Curry! contributors +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +class_name RollingBoard +extends CounterBase + +var board = load("res://map/tiles/rolling_board.tscn").instantiate() +var rolling: AudioStreamPlayer3D = AudioStreamPlayer3D.new() +var acting_player + +func _init(ctx: TileFactory.TileCC): + super(ctx) + rolling.stream = preload("res://map/tiles/sounds/roll.ogg") + rolling.volume_db = -10 + add_child(rolling) + base.add_child(board) + +func progress(position_: float, speed: float, warn: bool, acting_player_): + super(position_, speed, warn, acting_player) + var pin: Node3D = board.get_node("RollingPin") + acting_player = acting_player_ + + if not rolling.playing and speed != 0.: + rolling.play() + if acting_player != null: + pin.visible = false + var acting_character: Character = acting_player.character + acting_character.rolling = true + elif speed == 0: + rolling.stop() + pin.visible = true + if acting_player != null: + var acting_character: Character = acting_player.character + acting_character.rolling = false + +func finish(): + super() + if is_instance_valid(acting_player): + var acting_character: Character = acting_player.character + acting_character.rolling = false + board.get_node("RollingPin").visible = true + rolling.stop() + +static func interact_target() -> Vector3: + return Vector3(0., 0.575, 0.) |