added poses for items in shelf

This commit is contained in:
Nikolai Fesenko
2025-08-19 15:39:24 +02:00
parent 31c9a69132
commit 88007d247a
6 changed files with 209 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=4 uid="uid://c0gypplbklc3i"] [gd_scene load_steps=17 format=4 uid="uid://c0gypplbklc3i"]
[ext_resource type="ArrayMesh" uid="uid://k2k1ppv3ycsv" path="res://Blends/Shelf/Shelf.obj" id="1_usf1u"] [ext_resource type="ArrayMesh" uid="uid://k2k1ppv3ycsv" path="res://Blends/Shelf/Shelf.obj" id="1_usf1u"]
[ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_ya6sq"] [ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_ya6sq"]
@@ -8,6 +8,7 @@
[ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="5_jbe2f"] [ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="5_jbe2f"]
[ext_resource type="Script" uid="uid://dw0nntbakhny6" path="res://Scripts/objects/shelf_object.gd" id="7_4318v"] [ext_resource type="Script" uid="uid://dw0nntbakhny6" path="res://Scripts/objects/shelf_object.gd" id="7_4318v"]
[ext_resource type="Material" uid="uid://detpb4ww2vvsf" path="res://Blends/Items/Food/Material.tres" id="8_0dtcx"] [ext_resource type="Material" uid="uid://detpb4ww2vvsf" path="res://Blends/Items/Food/Material.tres" id="8_0dtcx"]
[ext_resource type="Script" uid="uid://ckrqph0jwnjcp" path="res://Scripts/pose_item.gd" id="8_w5qf7"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4318v"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_4318v"]
render_priority = 0 render_priority = 0
@@ -86,9 +87,10 @@ input_ray_pickable = false
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0545654, 0.0981445, -0.0205688) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0545654, 0.0981445, -0.0205688)
shape = SubResource("BoxShape3D_jbe2f") shape = SubResource("BoxShape3D_jbe2f")
[node name="ActionNode" type="Node3D" parent="."] [node name="ActionNode" type="Node3D" parent="." node_paths=PackedStringArray("items_pos_master")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39139) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39139)
script = ExtResource("7_4318v") script = ExtResource("7_4318v")
items_pos_master = NodePath("ItemPos")
[node name="Area3d" type="Area3D" parent="ActionNode"] [node name="Area3d" type="Area3D" parent="ActionNode"]
input_ray_pickable = false input_ray_pickable = false
@@ -102,8 +104,170 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.839141, 0.470829)
visible = false visible = false
radius = 0.886475 radius = 0.886475
[node name="Cube" type="MeshInstance3D" parent="."] [node name="ItemPos" type="Node3D" parent="ActionNode"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.24741)
[node name="Pose1" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75345, -1.22793, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose1"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0) transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose2" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.834656, -1.22793, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose2"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose3" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.029565, -1.22793, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose3"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose4" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.886944, -1.22793, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose4"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose5" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.696, -1.22793, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose5"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose6" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75345, -0.182641, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose6"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose7" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.834656, -0.182641, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose7"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose8" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.029565, -0.182641, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose8"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose9" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.886944, -0.182641, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose9"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose10" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.696, -0.182641, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose10"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose11" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75345, 0.906006, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose11"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose12" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.834656, 0.906006, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose12"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose13" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.029565, 0.906006, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose13"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose14" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.886944, 0.906006, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose14"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx")
[node name="Pose15" type="Node3D" parent="ActionNode/ItemPos"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.696, 0.906006, -0.143976)
script = ExtResource("8_w5qf7")
[node name="Cube" type="MeshInstance3D" parent="ActionNode/ItemPos/Pose15"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
visible = false
mesh = SubResource("ArrayMesh_w5qf7") mesh = SubResource("ArrayMesh_w5qf7")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = ExtResource("8_0dtcx") surface_material_override/0 = ExtResource("8_0dtcx")

View File

@@ -34,7 +34,7 @@ func add_shelf(object):
func add_item_to_shelf(shelf, item): func add_item_to_shelf(shelf, item):
item.shelf_owner = shelf item.shelf_owner = shelf
shelf.stored_items.append(item) shelf.add_item(item)
func get_item(id): func get_item(id):
return get_item_from_id(id) return get_item_from_id(id)

View File

@@ -3,12 +3,15 @@ extends Interactable
var test: bool = false var test: bool = false
@export var items_pos_master: Node
var item_poses: Array
func _init() -> void: func _init() -> void:
max_person_using = 1 max_person_using = 1
can_store = true can_store = true
func _ready() -> void: func _ready() -> void:
self.owner = $".." self.owner = $".."
print(self)
#object_placed.connect(_on_object_placed.bind(self)) #object_placed.connect(_on_object_placed.bind(self))
@@ -20,14 +23,29 @@ func start_action(person, object):
func give_out(person): func give_out(person):
var pose = get_item_pose(person.target_item)
pose.remove_item()
person.hold_item(person.target_item) person.hold_item(person.target_item)
stored_items.erase(person.target_item) stored_items.erase(person.target_item)
func add_item(item):
stored_items.append(item)
print(item_poses)
for pose in item_poses:
if pose.is_free:
pose.add_item(item)
break
func get_item_pose(item):
for pose in item_poses:
if pose.item == item:
return pose
return null
func create(): func create():
for pose in items_pos_master.get_children():
item_poses.append(pose)
var newItem = ItemManager.get_item(0).instantiate() var newItem = ItemManager.get_item(0).instantiate()
ItemManager.add_shelf(self) ItemManager.add_shelf(self)
ItemManager.add_item_to_shelf(self, newItem) ItemManager.add_item_to_shelf(self, newItem)

View File

@@ -110,4 +110,5 @@ func drop_item():
func _on_item_received(): func _on_item_received():
if holdingItem != null: if holdingItem != null:
holdingItem.use() pass
#holdingItem.use()

18
Scripts/pose_item.gd Normal file
View File

@@ -0,0 +1,18 @@
extends Node3D
var is_free: bool
var item
func _init() -> void:
is_free = true
func add_item(new_item):
is_free = false
item = new_item
self.add_child(item)
item.position = global_position
print("item added")
func remove_item():
self.remove_child(item)

1
Scripts/pose_item.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://ckrqph0jwnjcp