# 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 . # class_name Sink extends Counter var particles: SinkParticles = preload("res://map/tiles/sink_particles.tscn").instantiate() var running: AudioStreamPlayer3D = AudioStreamPlayer3D.new() var stopping: AudioStreamPlayer3D = AudioStreamPlayer3D.new() func _init(ctx: TileFactory.TileCC): super(ctx) base.add_child(particles) match kind: CounterKind.STRAIGHT: base.add_child(load("res://map/tiles/sink.tscn").instantiate()) CounterKind.STRAIGHT_BACKSPLASH: base.add_child(load("res://map/tiles/sink_backsplash.tscn").instantiate()) _: base.add_child(load("res://map/tiles/sink.tscn").instantiate()) running.stream = preload("res://map/tiles/sounds/sink_running.ogg") add_child(running) stopping.stream = preload("res://map/tiles/sounds/sink_stopping.ogg") add_child(stopping) func progress(position_: float, speed: float, warn: bool, _acting_player): super(position_, speed, warn, _acting_player) if speed == 0: particles.stop() running.stop() else: if item is Plate: particles.start(true) elif item is Glass: particles.start() if not running.playing: running.play() func finish(): super() particles.stop() running.stop() stopping.play() func set_item(i: Item): super(i) particles.stop() func take_item() -> Item: particles.stop() return super()