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")
|
||||
|
||||
[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"]
|
||||
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="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")]
|
||||
[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)
|
||||
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")
|
||||
|
||||
@@ -1,9 +1,34 @@
|
||||
extends Node3D
|
||||
class_name Item
|
||||
|
||||
|
||||
|
||||
var item_name
|
||||
var shelf_owner
|
||||
var is_being_used: bool
|
||||
|
||||
var outline_material: ShaderMaterial
|
||||
var static_body: StaticBody3D
|
||||
|
||||
func _ready() -> void:
|
||||
set_outline_shader()
|
||||
|
||||
func use():
|
||||
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
|
||||
|
||||
|
||||
@export var mesh: MeshInstance3D
|
||||
|
||||
func _init() -> void:
|
||||
item_name = "food"
|
||||
is_being_used = false
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
outline_material = mesh.get_surface_override_material(0).next_pass
|
||||
set_outline_shader()
|
||||
|
||||
func use():
|
||||
print("Object eaten")
|
||||
self.queue_free()
|
||||
|
||||
@@ -22,6 +22,7 @@ func _on_object_placed(build_postion):
|
||||
newObject.static_body.input_ray_pickable = true
|
||||
newObject.global_position = build_postion
|
||||
BuildManager.add_object_to_array(newObject)
|
||||
if newObject.ActionNode != null:
|
||||
newObject.ActionNode.create()
|
||||
#newObject.restore_default_shaders()
|
||||
self.add_child(newObject)
|
||||
|
||||
@@ -6,8 +6,25 @@ extends Node3D
|
||||
|
||||
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:
|
||||
interact.connect(_on_interact)
|
||||
|
||||
func _on_interact(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):
|
||||
stored_items.append(item)
|
||||
print(item_poses)
|
||||
|
||||
for pose in item_poses:
|
||||
if pose.is_free:
|
||||
print(pose)
|
||||
pose.add_item(item)
|
||||
break
|
||||
|
||||
@@ -46,6 +47,6 @@ func get_item_pose(item):
|
||||
func create():
|
||||
for pose in items_pos_master.get_children():
|
||||
item_poses.append(pose)
|
||||
var newItem = ItemManager.get_item(0).instantiate()
|
||||
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:
|
||||
if target_object != null:
|
||||
print(22)
|
||||
is_target_reached = true
|
||||
nav_agent.target_position = self.global_position
|
||||
Global.interact.emit(self, target_object)
|
||||
@@ -98,6 +97,7 @@ func _on_timer_timeout() -> void:
|
||||
|
||||
|
||||
func hold_item(item):
|
||||
is_holding_item = true
|
||||
var newItem = item.duplicate()
|
||||
holdingItem = newItem
|
||||
holdingItem.position = Vector3(0,0.976, -0.065)
|
||||
|
||||
@@ -15,4 +15,5 @@ func add_item(new_item):
|
||||
|
||||
|
||||
func remove_item():
|
||||
is_free = true
|
||||
self.remove_child(item)
|
||||
|
||||
Reference in New Issue
Block a user