# Hurry Curry! - a game about cooking # Copyright 2024 nokoe # Copyright 2024 tpart # Copyright 2024 metamuffin # # 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() var sound_id 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() @warning_ignore("static_called_on_instance") base.position = base_position() add_child(base) owned_by = owned_by_ func _ready(): position = owned_by.global_position func _process(delta): var ispeed = 30.0 if owned_by.get_parent().get_parent() is Player else 10. position = G.interpolate(position, owned_by.global_position, delta * ispeed) func progress(p: float, warn: bool): progress_instance.visible = true progress_instance.set_progress(p, warn) # this shoukd be removed when the server is fixed if p >= 1.: finish(warn) func finish(_warn: bool): progress_instance.visible = false func setup_sounds(): take_sound.setup([preload("res://map/items/sounds/generic_take.ogg")]) put_sound.setup([preload("res://map/items/sounds/plate_put.ogg")]) func take(): take_sound.play_random() func put(): put_sound.play_random() static func base_position() -> Vector3: return Vector3(0., 0., 0.)