# 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 progress_instance: ProgressBar3D = preload("res://scenes/progress.tscn").instantiate() func _init(idx: int, owned_by_: Node3D): progress_instance.position.y = 2. add_child(progress_instance) progress_instance.visible = false match Multiplayer.item_names[idx]: var t: add_child(load("res://models/prefabs/map/bag.tscn").instantiate()) var mesh = MeshInstance3D.new() var text = TextMesh.new() var mat = StandardMaterial3D.new() text.text = t text.font = SystemFont.new() text.depth = 0 mesh.mesh = text mesh.position.y = 0.5 mesh.scale = Vector3(3, 3, 3) mat.billboard_mode = mat.BILLBOARD_ENABLED mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED text.material = mat add_child(mesh) 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