Added Itemsmanager

Items now can be stored. I wanna kill myself
This commit is contained in:
Nikolai Fesenko
2025-08-18 20:31:52 +02:00
parent 7ba255334d
commit e4667a3a47
25 changed files with 233 additions and 49 deletions

Binary file not shown.

View File

@@ -0,0 +1,53 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c1ermg14csqb6"
path="res://.godot/imported/Untitled.blend-593cf321034d89ec0dceac9257bb7479.scn"
[deps]
source_file="res://Blends/Person/test/Untitled.blend"
dest_files=["res://.godot/imported/Untitled.blend-593cf321034d89ec0dceac9257bb7479.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

View File

@@ -20,6 +20,7 @@ shader_parameter/color = Vector3(0, 0, 0)
render_priority = 0
shader = ExtResource("10_pigwg")
shader_parameter/is_active = false
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_byy4f"]
next_pass = SubResource("ShaderMaterial_pigwg")
@@ -76,6 +77,7 @@ surface_material_override/7 = SubResource("ShaderMaterial_hnq8j")
surface_material_override/8 = SubResource("StandardMaterial3D_byy4f")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.053833, -0.776428, 0.0276413)

View File

@@ -65,6 +65,7 @@ surface_material_override/1 = SubResource("StandardMaterial3D_k1k40")
surface_material_override/2 = SubResource("StandardMaterial3D_tma46")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.218994, -0.287048, 0.10144)
@@ -75,15 +76,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.3739)
script = ExtResource("8_c1046")
[node name="Area3d" type="Area3D" parent="ActionNode"]
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="ActionNode/Area3d"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.839141, 0.470829)
shape = SubResource("SphereShape3D_c1046")
[node name="CSGSphere3D" type="CSGSphere3D" parent="ActionNode/Area3d"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.839141, 0.470829)
radius = 0.886475
[node name="PersonPos1" parent="ActionNode" instance=ExtResource("9_k1k40")]
transform = Transform3D(0.0323901, -0.298156, -0.00732965, 0.298245, 0.0323998, 0, 0.000791598, -0.00728678, 0.29991, -0.0940391, -1.07055, -1.60941)
visible = false

View File

@@ -1,3 +0,0 @@
extends Node3D
var item_name

View File

@@ -24,6 +24,7 @@ size = Vector3(3.78918, 4.23603, 2.59656)
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dn6sd"]
next_pass = SubResource("ShaderMaterial_r71lq")
@@ -41,6 +42,7 @@ uv1_scale = Vector3(0.5, 0.4, 1)
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uhv8u"]
next_pass = SubResource("ShaderMaterial_e7ek7")
@@ -52,6 +54,7 @@ normal_texture = ExtResource("6_r71lq")
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rbvpf"]
next_pass = SubResource("ShaderMaterial_dn6sd")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=3 uid="uid://c0gypplbklc3i"]
[gd_scene load_steps=13 format=3 uid="uid://c0gypplbklc3i"]
[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"]
@@ -6,6 +6,7 @@
[ext_resource type="Texture2D" uid="uid://5gmmgg4cmefr" path="res://Blends/Shelf/color.png" id="2_x70sl"]
[ext_resource type="Texture2D" uid="uid://q0duenho1u2x" path="res://Blends/Shelf/normal.png" id="3_ya6sq"]
[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"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4318v"]
render_priority = 0
@@ -16,6 +17,7 @@ shader_parameter/color = Vector3(0, 0, 0)
render_priority = 0
shader = ExtResource("5_jbe2f")
shader_parameter/is_active = false
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jbe2f"]
next_pass = SubResource("ShaderMaterial_0dtcx")
@@ -27,10 +29,14 @@ normal_texture = ExtResource("3_ya6sq")
[sub_resource type="BoxShape3D" id="BoxShape3D_jbe2f"]
size = Vector3(4.40356, 3.34375, 1.28992)
[node name="Shelf" type="Node3D" node_paths=PackedStringArray("meshInstance")]
[sub_resource type="SphereShape3D" id="SphereShape3D_jbe2f"]
radius = 0.870929
[node name="Shelf" type="Node3D" node_paths=PackedStringArray("meshInstance", "ActionNode")]
script = ExtResource("1_ya6sq")
meshInstance = NodePath("Shelf")
preview_shader = SubResource("ShaderMaterial_4318v")
ActionNode = NodePath("ActionNode")
[node name="Shelf" type="MeshInstance3D" parent="."]
transform = Transform3D(-2.18557e-08, 0, -0.5, 0, 0.5, 0, 0.5, 0, -2.18557e-08, 0, -1.53245, 0)
@@ -38,7 +44,26 @@ mesh = ExtResource("1_usf1u")
surface_material_override/0 = SubResource("StandardMaterial3D_jbe2f")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0545654, 0.0981445, -0.0205688)
shape = SubResource("BoxShape3D_jbe2f")
[node name="ActionNode" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39139)
script = ExtResource("7_4318v")
[node name="Area3d" type="Area3D" parent="ActionNode"]
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="ActionNode/Area3d"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.839141, 0.470829)
shape = SubResource("SphereShape3D_jbe2f")
[node name="CSGSphere3D" type="CSGSphere3D" parent="ActionNode/Area3d"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.839141, 0.470829)
visible = false
radius = 0.886475
[connection signal="ready" from="ActionNode" to="ActionNode" method="_on_ready"]

View File

@@ -8,15 +8,15 @@
[ext_resource type="Shader" uid="uid://bfv6ckihralab" path="res://Shaders/build_transparent.gdshader" id="6_ru0md"]
[sub_resource type="NavigationMesh" id="NavigationMesh_ru0md"]
vertices = PackedVector3Array(-8.52442, 3.10583, -1.86593, -8.52442, 3.10583, -0.615934, -3.27442, 3.10583, -0.615934, -3.27442, 3.10583, -1.86593, -2.27442, 0.105834, 0.884066, -9.27442, 0.105834, 0.884066, -9.27442, 0.105834, 3.13407, 11.4756, 0.105834, 3.13407, 11.4756, 0.105834, -1.86593, -1.77442, 0.105834, -1.86593, -1.77442, 0.105834, 0.384066, -8.27442, 0.105834, -1.61593, -8.27442, 0.105834, -0.865934, -3.52442, 0.105834, -0.865934, -3.52442, 0.105834, -1.61593)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Array(5, 4, 6), PackedInt32Array(6, 4, 7), PackedInt32Array(10, 9, 8), PackedInt32Array(10, 8, 4), PackedInt32Array(4, 8, 7), PackedInt32Array(14, 13, 11), PackedInt32Array(11, 13, 12)]
vertices = PackedVector3Array(-8.52442, 1.10583, -1.86593, -8.52442, 1.10583, -0.615934, -3.27442, 1.10583, -0.615934, -3.27442, 1.10583, -1.86593, -2.27442, 0.105834, 0.884066, -9.27442, 0.105834, 0.884066, -9.27442, 0.105834, 3.13407, 11.4756, 0.105834, 3.13407, 11.4756, 0.105834, -1.86593, -1.77442, 0.105834, -1.86593, -1.77442, 0.105834, 0.384066)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Array(5, 4, 6), PackedInt32Array(6, 4, 7), PackedInt32Array(10, 9, 8), PackedInt32Array(10, 8, 4), PackedInt32Array(4, 8, 7)]
agent_radius = 0.7
[sub_resource type="BoxShape3D" id="BoxShape3D_u7bw1"]
size = Vector3(22.1814, 0.0957031, 5.72699)
[sub_resource type="BoxShape3D" id="BoxShape3D_ru0md"]
size = Vector3(6.47229, 3.39474, 2.33685)
size = Vector3(6.47229, 1.38536, 2.33685)
[sub_resource type="BoxShape3D" id="BoxShape3D_esjgi"]
size = Vector3(22.2341, 4.23804, 0.494629)
@@ -54,11 +54,13 @@ height = 0.1
affect_navigation_mesh = true
[node name="StaticBody3D" type="StaticBody3D" parent="Cart-bottom/NavigationRegion3D/NavigationObstacle3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.50052, -0.0203562, -1.1511)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.50052, -0.0203562, -20.5103)
collision_layer = 4
collision_mask = 4
input_ray_pickable = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="Cart-bottom/NavigationRegion3D/NavigationObstacle3D/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.352722, 1.07356, -0.102142)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.352722, 0.0688691, -0.102142)
shape = SubResource("BoxShape3D_ru0md")
[node name="Wheels2" type="MeshInstance3D" parent="."]
@@ -86,26 +88,22 @@ visible = false
mesh = ExtResource("3_2wj72")
[node name="BlockBuildingArea" type="StaticBody3D" parent="."]
visible = false
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.137932, 0)
[node name="CollisionShape3D4" type="CollisionShape3D" parent="BlockBuildingArea"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 11.1878, 1.59147, -0.622702)
visible = false
shape = SubResource("BoxShape3D_esjgi")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="BlockBuildingArea"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -10.6143, 1.63224, 0.537586)
visible = false
shape = SubResource("BoxShape3D_esjgi")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="BlockBuildingArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.619003, 1.50816, 3.83996)
visible = false
shape = SubResource("BoxShape3D_esjgi")
[node name="CollisionShape3D" type="CollisionShape3D" parent="BlockBuildingArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.282789, 1.61902, -2.6054)
visible = false
shape = SubResource("BoxShape3D_esjgi")
[node name="BuildingArea" type="StaticBody3D" parent="." node_paths=PackedStringArray("buildTransparentPreivew")]
@@ -116,6 +114,7 @@ metadata/is_building_area = true
[node name="smallBuildingArea2" type="CollisionShape3D" parent="BuildingArea"]
shape = SubResource("BoxShape3D_eosii")
debug_color = Color(0.981345, 0, 0.371873, 0.42)
metadata/is_building_area = true
[node name="BuildAreaModeView" type="MeshInstance3D" parent="BuildingArea"]

View File

@@ -1,12 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://d3l2w1076ttb0"]
[ext_resource type="PackedScene" uid="uid://tedmijw81j46" path="res://Blends/Items/Food/food.gltf" id="1_613iy"]
[ext_resource type="Script" uid="uid://c1ic8jloyqlnt" path="res://Scenes/Prefabs/Item.gd" id="2_qhaka"]
[ext_resource type="Script" uid="uid://bd3vhk86ac1nu" path="res://Scripts/Items/food_item.gd" id="2_cemcp"]
[ext_resource type="Material" uid="uid://detpb4ww2vvsf" path="res://Blends/Items/Food/Material.tres" id="3_cemcp"]
[node name="food" instance=ExtResource("1_613iy")]
transform = Transform3D(0.3, -1.53807e-05, 1.30802e-05, 1.53807e-05, 0.3, -5.5671e-06, -1.30802e-05, 5.5671e-06, 0.3, 0, 0, 0)
script = ExtResource("2_qhaka")
script = ExtResource("2_cemcp")
[node name="Cube" parent="." index="0"]
surface_material_override/0 = ExtResource("3_cemcp")

View File

@@ -81,6 +81,7 @@ process_material = SubResource("ParticleProcessMaterial_21xkr")
draw_pass_1 = SubResource("QuadMesh_21xkr")
[node name="SpotLight3D" type="SpotLight3D" parent="."]
process_mode = 4
transform = Transform3D(1, 0, 0, 0, 0.64431, 0.764764, 0, -0.764764, 0.64431, -14.3055, 3.48611, -59.8356)
light_energy = 1.162
spot_range = 23.417

View File

@@ -2,11 +2,13 @@ class_name Interactable
extends Node
signal action_stoped
signal object_placed()
var can_pick: bool
var can_store: bool
var stored_objects: Array
var stored_items: Array
var max_person_using
var persons_using: Array
@@ -48,3 +50,6 @@ func can_be_used():
return true
else:
return false
func create():
pass

4
Scripts/Item.gd Normal file
View File

@@ -0,0 +1,4 @@
extends Node3D
class_name Item
var item_name
var shelf_owner

View File

@@ -0,0 +1,4 @@
extends Item
func _init() -> void:
item_name = "food"

View File

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

View File

@@ -4,19 +4,20 @@ extends Node3D
@export var meshInstance: MeshInstance3D
@export var preview_shader: ShaderMaterial
@export var ActionNode: Node3D
var default_shaders: Array
var staic_body: StaticBody3D
var ActionNode: Node3D
var static_body: StaticBody3D
#var ActionNode: Node3D
var is_placed: bool = false
func _ready() -> void:
BuildManager.preview_created.connect(_on_preview_create)
BuildManager.object_placed.connect(_on_object_placed)
set_default_shaders()
staic_body = $StaticBody3D
staic_body.mouse_entered.connect(_on_mouse_enter)
staic_body.mouse_exited.connect(_on_mouse_exit)
static_body = $StaticBody3D
ActionNode = $ActionNode
@@ -53,8 +54,11 @@ func _on_preview_create():
func _on_object_placed(build_postion):
#BuildManager.add_object_to_array(self)
#print(ActionNode.global_position)
is_placed = true
static_body.input_ray_pickable = true
static_body.mouse_entered.connect(_on_mouse_enter)
static_body.mouse_exited.connect(_on_mouse_exit)
restore_default_shaders()

View File

@@ -45,7 +45,7 @@ func hide_preview():
buildTransparentPreivew.visible = true
func place_object():
#is_placed = true
is_placed = true
#buildTransparentPreivew.visible = false
BuildManager.object_placed.emit(self.position)
self.queue_free()

View File

@@ -21,4 +21,5 @@ func _on_object_placed(build_postion):
var newObject = BuildManager.get_preview_object().instantiate()
newObject.global_position = build_postion
BuildManager.add_object_to_array(newObject)
newObject.ActionNode.create()
self.add_child(newObject)

View File

@@ -11,15 +11,4 @@ func _ready() -> void:
func _on_interact(person, object):
object.ActionNode.start_action(person, object)
func give_item(person, item_id):
var item = get_item_form_id(item_id)
person.hold_item(item)
func get_item_form_id(id):
match id:
0:
return food_item
print(object)

54
Scripts/item_manager.gd Normal file
View File

@@ -0,0 +1,54 @@
extends Node
@onready var food_item = preload("res://Scenes/Prefabs/food_item.tscn")
signal object_placed
var shelfes: Array
func set_person_target_item(person,item_name):
var result = find_item(item_name)
print(result)
if result != null:
person.set_target(result.shelf_owner.owner)
func find_item(item_name):
for shelf in shelfes:
if shelf != null:
for item in shelf.stored_items:
if item.item_name == item_name:
return item
return null
func get_item_name():
pass
func add_shelf(object):
shelfes.append(object)
print(object)
func add_item_to_shelf(shelf, item):
item.shelf_owner = shelf
shelf.stored_items.append(item)
func get_item(id):
return get_item_from_id(id)
func give_item(person, item_id):
var item = get_item_from_id(item_id)
person.hold_item(item)
func get_item_from_id(id):
match id:
0:
return food_item

View File

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

View File

@@ -0,0 +1,40 @@
extends Interactable
var test: bool = false
func _init() -> void:
max_person_using = 1
can_store = true
print("init")
func _ready() -> void:
self.owner = $".."
print(self)
#object_placed.connect(_on_object_placed.bind(self))
print("ready")
func start_action(person, object):
pass
func give_out(person):
pass
func _on_object_placed(_owner):
print(2)
print(_owner)
var newItem = ItemManager.get_item(0).instantiate()
ItemManager.add_shelf(_owner)
#ItemManager.shelfes.append(_owner)
ItemManager.add_item_to_shelf(_owner, newItem)
print("placed")
func create():
var newItem = ItemManager.get_item(0).instantiate()
ItemManager.shelfes.append(self)
ItemManager.add_item_to_shelf(self, newItem)
print("placed")

View File

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

View File

@@ -19,12 +19,13 @@ var is_holding_item: bool = false
var holdingItem: Object
var target_item: int
func _ready() -> void:
nav_agent = $NavigationAgent3D
meshI = $MeshInstance3D
shirt_shader = meshI.get_surface_override_material(1)
BuildManager.object_added.connect(_on_object_added)
set_random_shirt()
@@ -33,8 +34,7 @@ func _ready() -> void:
is_in_action = false
timer = $Timer
Global.give_item(self, 0)
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
func _physics_process(delta: float) -> void:
@@ -46,10 +46,10 @@ func _physics_process(delta: float) -> void:
func _input(event: InputEvent) -> void:
if event.is_action_pressed("test"):
set_target_position()
ItemManager.set_person_target_item(self, "food")
#set_target_position()
func _on_object_added(object):
set_target(object)
func set_random_shirt():
@@ -63,6 +63,7 @@ func set_target(object):
#if !is_in_action and object.ActionNode.can_be_used():
if !is_in_action:
target_object = object
set_target_position()
#nav_agent.target_position = target_object.ActionNode.global_position
func set_target_position():
is_target_reached = false
@@ -70,7 +71,7 @@ func set_target_position():
newPos.y = self.position.y
nav_agent.target_position = newPos
print(target_object.ActionNode.can_be_used())
#nav_agent.target_position = start_pos

View File

@@ -20,6 +20,7 @@ config/icon="res://icon.svg"
Global="*res://Scripts/global_script.gd"
BuildManager="*res://Scripts/build_manager.gd"
PersonAction="*res://Scripts/person_action.gd"
ItemManager="*res://Scripts/item_manager.gd"
[editor_plugins]