# Undercooked - 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 Item extends Node3D var owned_by: Node3D var base: Node3D = Node3D.new() var progress_instance: ProgressBar3D = preload("res://map/progress.tscn").instantiate() var take_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate() var put_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate() func _init(owned_by_: Node3D): progress_instance.position.y = 1 progress_instance.visible = false add_child(progress_instance) take_sound.volume_db = -16 put_sound.volume_db = -16 add_child(take_sound) add_child(put_sound) setup_sounds() base.position = base_position() add_child(base) owned_by = owned_by_ func _ready(): position = owned_by.global_position func _process(delta): position = lerp(position, owned_by.global_position, delta * 30.0) func progress(p: float, warn: bool): progress_instance.visible = true progress_instance.set_progress(p, warn) func finish(_warn: bool): progress_instance.visible = false func setup_sounds(): take_sound.setup([preload("res://map/sounds/generic_up.ogg")]) put_sound.setup([preload("res://map/sounds/plate_down.ogg")]) func take(): take_sound.play_random() func put(): put_sound.play_random() static func base_position() -> Vector3: return Vector3(0., 0., 0.)