# Hurry Curry! - a game about cooking # Copyright 2024 nokoe # # 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 bubbles: SinkBubbles = preload("res://map/tiles/sink_bubbles.tscn").instantiate() var running: AudioStreamPlayer3D = AudioStreamPlayer3D.new() var stopping: AudioStreamPlayer3D = AudioStreamPlayer3D.new() func _init(rename: String, neighbors: Array): super(rename, neighbors) base.add_child(bubbles) 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(p: float, warn: bool): super(p, warn) if item is Plate: bubbles.start() if not running.playing: running.play() func finish(warn: bool): super(warn) bubbles.stop() running.stop() stopping.play() func set_item(i: Item): super(i) self.bubbles.stop() func take_item() -> Item: self.bubbles.stop() return super()