item can be stored, added poses to shelf
This commit is contained in:
@@ -43,7 +43,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138559, 0)
|
|||||||
navigation_mesh = SubResource("NavigationMesh_ru0md")
|
navigation_mesh = SubResource("NavigationMesh_ru0md")
|
||||||
|
|
||||||
[node name="ground" type="StaticBody3D" parent="Cart-bottom/NavigationRegion3D"]
|
[node name="ground" type="StaticBody3D" parent="Cart-bottom/NavigationRegion3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.12006, 0.135911, 0.169229, -0.0448687)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.12006, 0.135911, -0.0747662, -0.0448687)
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Cart-bottom/NavigationRegion3D/ground"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Cart-bottom/NavigationRegion3D/ground"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.930367, -0.452148, 0.568024)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.930367, -0.452148, 0.568024)
|
||||||
|
|||||||
@@ -1,12 +1,23 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://d3l2w1076ttb0"]
|
[gd_scene load_steps=5 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="PackedScene" uid="uid://tedmijw81j46" path="res://Blends/Items/Food/food.gltf" id="1_613iy"]
|
||||||
[ext_resource type="Script" uid="uid://bd3vhk86ac1nu" path="res://Scripts/Items/food_item.gd" id="2_cemcp"]
|
[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"]
|
[ext_resource type="Material" uid="uid://detpb4ww2vvsf" path="res://Blends/Items/Food/Material.tres" id="3_cemcp"]
|
||||||
|
|
||||||
[node name="food" instance=ExtResource("1_613iy")]
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_cemcp"]
|
||||||
|
points = PackedVector3Array(0.916143, 0.0653669, 0.916143, -1.04586, -0.458043, -1.04586, -0.987529, -0.722254, -0.987529, -1.04586, -0.458043, 1.04586, 0.942723, -0.750116, 0.942926, 1.04586, -0.458043, -1.04586, -0.916143, 0.0653669, -0.916143, -0.916143, 0.0653669, 0.916143, 0.916143, 0.0653669, -0.916143, 0.942723, -0.750116, -0.942926, -0.942723, -0.750116, 0.942926, 1.0134, -0.196704, 1.04617, -1.04617, -0.196704, -1.0134, 1.0134, -0.196704, -1.04617, 1.04586, -0.458043, 1.04586, -1.04617, -0.196704, 1.0134, -0.942723, -0.750116, -0.942926, 0.987529, -0.722254, 0.987529, 1.04617, -0.196704, -1.0134, 0.987529, -0.722254, -0.987529, -0.987529, -0.722254, 0.987529, 1.04617, -0.196704, 1.0134, -1.0132, -0.196704, -1.04617, -1.0132, -0.196704, 1.04617, -0.948223, 0.0324106, -0.948428, 0.948223, 0.0324106, 0.948428, -0.948223, 0.0324106, 0.948428, 0.948223, 0.0324106, -0.948428)
|
||||||
|
|
||||||
|
[node name="food" node_paths=PackedStringArray("mesh") 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)
|
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_cemcp")
|
script = ExtResource("2_cemcp")
|
||||||
|
mesh = NodePath("Cube")
|
||||||
|
|
||||||
[node name="Cube" parent="." index="0"]
|
[node name="StaticBody3D" type="StaticBody3D" parent="." index="0"]
|
||||||
|
transform = Transform3D(1, -1.44862e-12, -1.09139e-11, -1.56369e-12, 1, 1.81899e-12, 7.27596e-12, 0, 1, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0"]
|
||||||
|
transform = Transform3D(1, 2.18947e-12, 7.27596e-12, 2.07429e-12, 1, -1.81899e-12, -7.27596e-12, 0, 1, 0, 0, 0)
|
||||||
|
shape = SubResource("ConvexPolygonShape3D_cemcp")
|
||||||
|
|
||||||
|
[node name="Cube" parent="." index="1"]
|
||||||
surface_material_override/0 = ExtResource("3_cemcp")
|
surface_material_override/0 = ExtResource("3_cemcp")
|
||||||
|
|||||||
@@ -1,9 +1,34 @@
|
|||||||
extends Node3D
|
extends Node3D
|
||||||
class_name Item
|
class_name Item
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var item_name
|
var item_name
|
||||||
var shelf_owner
|
var shelf_owner
|
||||||
var is_being_used: bool
|
var is_being_used: bool
|
||||||
|
|
||||||
|
var outline_material: ShaderMaterial
|
||||||
|
var static_body: StaticBody3D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
set_outline_shader()
|
||||||
|
|
||||||
func use():
|
func use():
|
||||||
print(str(self) + "is used")
|
print(str(self) + "is used")
|
||||||
|
|
||||||
|
|
||||||
|
func set_outline_shader():
|
||||||
|
static_body = $StaticBody3D
|
||||||
|
static_body.mouse_entered.connect(_on_mouse_enter)
|
||||||
|
static_body.mouse_exited.connect(_on_mouse_exit)
|
||||||
|
|
||||||
|
func _on_mouse_enter():
|
||||||
|
enable_outline()
|
||||||
|
func _on_mouse_exit():
|
||||||
|
disable_outline()
|
||||||
|
|
||||||
|
|
||||||
|
func enable_outline():
|
||||||
|
outline_material.set_shader_parameter("is_active", true)
|
||||||
|
func disable_outline():
|
||||||
|
outline_material.set_shader_parameter("is_active", false)
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
extends Item
|
extends Item
|
||||||
|
|
||||||
|
@export var mesh: MeshInstance3D
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
item_name = "food"
|
item_name = "food"
|
||||||
is_being_used = false
|
is_being_used = false
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
outline_material = mesh.get_surface_override_material(0).next_pass
|
||||||
|
set_outline_shader()
|
||||||
|
|
||||||
func use():
|
func use():
|
||||||
print("Object eaten")
|
print("Object eaten")
|
||||||
self.queue_free()
|
self.queue_free()
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ func _on_object_placed(build_postion):
|
|||||||
newObject.static_body.input_ray_pickable = true
|
newObject.static_body.input_ray_pickable = true
|
||||||
newObject.global_position = build_postion
|
newObject.global_position = build_postion
|
||||||
BuildManager.add_object_to_array(newObject)
|
BuildManager.add_object_to_array(newObject)
|
||||||
|
if newObject.ActionNode != null:
|
||||||
newObject.ActionNode.create()
|
newObject.ActionNode.create()
|
||||||
#newObject.restore_default_shaders()
|
#newObject.restore_default_shaders()
|
||||||
self.add_child(newObject)
|
self.add_child(newObject)
|
||||||
|
|||||||
@@ -6,8 +6,25 @@ extends Node3D
|
|||||||
|
|
||||||
signal interact(person,interact_object)
|
signal interact(person,interact_object)
|
||||||
|
|
||||||
|
signal object_selected_signal
|
||||||
|
signal object_unselected_signal
|
||||||
|
signal object_over_mouse_signal
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var object_selected
|
||||||
|
var object_over_mouse
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
interact.connect(_on_interact)
|
interact.connect(_on_interact)
|
||||||
|
|
||||||
func _on_interact(person, object):
|
func _on_interact(person, object):
|
||||||
object.start_action(person, object)
|
object.start_action(person, object)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_object_selected():
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_object_unselected():
|
||||||
|
pass
|
||||||
|
|||||||
@@ -53,3 +53,5 @@ func get_item_from_id(id):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func create_item(item_id):
|
||||||
|
return ItemManager.get_item(0).instantiate()
|
||||||
|
|||||||
@@ -31,9 +31,10 @@ func give_out(person):
|
|||||||
|
|
||||||
func add_item(item):
|
func add_item(item):
|
||||||
stored_items.append(item)
|
stored_items.append(item)
|
||||||
print(item_poses)
|
|
||||||
for pose in item_poses:
|
for pose in item_poses:
|
||||||
if pose.is_free:
|
if pose.is_free:
|
||||||
|
print(pose)
|
||||||
pose.add_item(item)
|
pose.add_item(item)
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -46,6 +47,6 @@ func get_item_pose(item):
|
|||||||
func create():
|
func create():
|
||||||
for pose in items_pos_master.get_children():
|
for pose in items_pos_master.get_children():
|
||||||
item_poses.append(pose)
|
item_poses.append(pose)
|
||||||
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, ItemManager.create_item(0))
|
||||||
|
ItemManager.add_item_to_shelf(self, ItemManager.create_item(0))
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ func set_target_position():
|
|||||||
|
|
||||||
func _on_navigation_agent_3d_target_reached() -> void:
|
func _on_navigation_agent_3d_target_reached() -> void:
|
||||||
if target_object != null:
|
if target_object != null:
|
||||||
print(22)
|
|
||||||
is_target_reached = true
|
is_target_reached = true
|
||||||
nav_agent.target_position = self.global_position
|
nav_agent.target_position = self.global_position
|
||||||
Global.interact.emit(self, target_object)
|
Global.interact.emit(self, target_object)
|
||||||
@@ -98,6 +97,7 @@ func _on_timer_timeout() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func hold_item(item):
|
func hold_item(item):
|
||||||
|
is_holding_item = true
|
||||||
var newItem = item.duplicate()
|
var newItem = item.duplicate()
|
||||||
holdingItem = newItem
|
holdingItem = newItem
|
||||||
holdingItem.position = Vector3(0,0.976, -0.065)
|
holdingItem.position = Vector3(0,0.976, -0.065)
|
||||||
|
|||||||
@@ -15,4 +15,5 @@ func add_item(new_item):
|
|||||||
|
|
||||||
|
|
||||||
func remove_item():
|
func remove_item():
|
||||||
|
is_free = true
|
||||||
self.remove_child(item)
|
self.remove_child(item)
|
||||||
|
|||||||
Reference in New Issue
Block a user