aboutsummaryrefslogtreecommitdiff
path: root/client/map/items
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/items')
-rw-r--r--client/map/items/generic_item.gd34
-rw-r--r--client/map/items/item.gd40
-rw-r--r--client/map/items/plate.gd21
-rw-r--r--client/map/items/plate.resbin0 -> 6217 bytes
-rw-r--r--client/map/items/plate.tscn10
5 files changed, 105 insertions, 0 deletions
diff --git a/client/map/items/generic_item.gd b/client/map/items/generic_item.gd
new file mode 100644
index 00000000..70e9b354
--- /dev/null
+++ b/client/map/items/generic_item.gd
@@ -0,0 +1,34 @@
+# 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 <https://www.gnu.org/licenses/>.
+#
+class_name GenericItem
+extends Item
+
+func _init(owned_by_: Node3D, t: String):
+ super(owned_by_)
+ #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)
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
new file mode 100644
index 00000000..f817e72d
--- /dev/null
+++ b/client/map/items/item.gd
@@ -0,0 +1,40 @@
+# 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 <https://www.gnu.org/licenses/>.
+#
+class_name Item
+extends Node3D
+
+var owned_by: Node3D
+
+var progress_instance: ProgressBar3D = preload("res://map/progress.tscn").instantiate()
+
+func _init(owned_by_: Node3D):
+ progress_instance.position.y = 2.
+ add_child(progress_instance)
+ progress_instance.visible = false
+ 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
diff --git a/client/map/items/plate.gd b/client/map/items/plate.gd
new file mode 100644
index 00000000..8ebea099
--- /dev/null
+++ b/client/map/items/plate.gd
@@ -0,0 +1,21 @@
+# 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 <https://www.gnu.org/licenses/>.
+#
+class_name Plate
+extends Item
+
+func _init(owned_by_: Node3D):
+ super(owned_by_)
+ add_child(load("res://map/items/plate.tscn").instantiate())
diff --git a/client/map/items/plate.res b/client/map/items/plate.res
new file mode 100644
index 00000000..25e6e832
--- /dev/null
+++ b/client/map/items/plate.res
Binary files differ
diff --git a/client/map/items/plate.tscn b/client/map/items/plate.tscn
new file mode 100644
index 00000000..8503fe81
--- /dev/null
+++ b/client/map/items/plate.tscn
@@ -0,0 +1,10 @@
+[gd_scene load_steps=2 format=3 uid="uid://daxh3hgia7qyp"]
+
+[ext_resource type="ArrayMesh" uid="uid://bnku7g8g0ts81" path="res://map/items/plate.res" id="1_70hux"]
+
+[node name="Plate" type="Node3D"]
+
+[node name="Mesh" type="MeshInstance3D" parent="."]
+transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
+mesh = ExtResource("1_70hux")
+skeleton = NodePath("")