new item model and interactions
person can hold item now. Global can give item to person.
This commit is contained in:
BIN
Blends/BoneTest.bin
Normal file
BIN
Blends/BoneTest.bin
Normal file
Binary file not shown.
7
Blends/Items/Food/Material.001.tres
Normal file
7
Blends/Items/Food/Material.001.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://ewwyg8jhpr87"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Material.001"
|
||||
cull_mode = 2
|
||||
albedo_color = Color(0.906332, 0.906332, 0.906332, 1)
|
||||
roughness = 0.5
|
||||
16
Blends/Items/Food/Material.tres
Normal file
16
Blends/Items/Food/Material.tres
Normal file
@@ -0,0 +1,16 @@
|
||||
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://detpb4ww2vvsf"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="1_4u3y3"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_s6uwl"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_4u3y3")
|
||||
shader_parameter/is_active = false
|
||||
shader_parameter/color = Vector3(0.95, 0.71, 0.01)
|
||||
|
||||
[resource]
|
||||
resource_name = "Material"
|
||||
next_pass = SubResource("ShaderMaterial_s6uwl")
|
||||
cull_mode = 2
|
||||
albedo_color = Color(0.655154, 0.629469, 0.906882, 1)
|
||||
roughness = 0.5
|
||||
BIN
Blends/Items/Food/food.bin
Normal file
BIN
Blends/Items/Food/food.bin
Normal file
Binary file not shown.
BIN
Blends/Items/Food/food.blend
Normal file
BIN
Blends/Items/Food/food.blend
Normal file
Binary file not shown.
53
Blends/Items/Food/food.blend.import
Normal file
53
Blends/Items/Food/food.blend.import
Normal file
@@ -0,0 +1,53 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://yry4c8j7q63q"
|
||||
path="res://.godot/imported/food.blend-bb725c29af6e4b27bddfb2a1444749ae.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Blends/Items/Food/food.blend"
|
||||
dest_files=["res://.godot/imported/food.blend-bb725c29af6e4b27bddfb2a1444749ae.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
|
||||
BIN
Blends/Items/Food/food.blend1
Normal file
BIN
Blends/Items/Food/food.blend1
Normal file
Binary file not shown.
217
Blends/Items/Food/food.gltf
Normal file
217
Blends/Items/Food/food.gltf
Normal file
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"asset":{
|
||||
"generator":"Khronos glTF Blender I/O v4.5.47",
|
||||
"version":"2.0"
|
||||
},
|
||||
"scene":0,
|
||||
"scenes":[
|
||||
{
|
||||
"name":"Scene",
|
||||
"nodes":[
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes":[
|
||||
{
|
||||
"mesh":0,
|
||||
"name":"Cube"
|
||||
},
|
||||
{
|
||||
"mesh":1,
|
||||
"name":"Text",
|
||||
"scale":[
|
||||
0.5714878439903259,
|
||||
0.5714878439903259,
|
||||
0.5714878439903259
|
||||
]
|
||||
}
|
||||
],
|
||||
"materials":[
|
||||
{
|
||||
"doubleSided":true,
|
||||
"name":"Material",
|
||||
"pbrMetallicRoughness":{
|
||||
"baseColorFactor":[
|
||||
0.3867591321468353,
|
||||
0.3540330231189728,
|
||||
0.8011000156402588,
|
||||
1
|
||||
],
|
||||
"metallicFactor":0,
|
||||
"roughnessFactor":0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"doubleSided":true,
|
||||
"name":"Material.001",
|
||||
"pbrMetallicRoughness":{
|
||||
"baseColorFactor":[
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1
|
||||
],
|
||||
"metallicFactor":0,
|
||||
"roughnessFactor":0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes":[
|
||||
{
|
||||
"name":"Cube",
|
||||
"primitives":[
|
||||
{
|
||||
"attributes":{
|
||||
"POSITION":0,
|
||||
"NORMAL":1,
|
||||
"TEXCOORD_0":2
|
||||
},
|
||||
"indices":3,
|
||||
"material":0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"f",
|
||||
"primitives":[
|
||||
{
|
||||
"attributes":{
|
||||
"POSITION":4,
|
||||
"NORMAL":5,
|
||||
"TEXCOORD_0":6
|
||||
},
|
||||
"indices":7,
|
||||
"material":1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"accessors":[
|
||||
{
|
||||
"bufferView":0,
|
||||
"componentType":5126,
|
||||
"count":168,
|
||||
"max":[
|
||||
1.0715641975402832,
|
||||
0.07224392890930176,
|
||||
1.0715641975402832
|
||||
],
|
||||
"min":[
|
||||
-1.0715641975402832,
|
||||
-0.7519297003746033,
|
||||
-1.0715641975402832
|
||||
],
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":1,
|
||||
"componentType":5126,
|
||||
"count":168,
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":2,
|
||||
"componentType":5126,
|
||||
"count":168,
|
||||
"type":"VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView":3,
|
||||
"componentType":5123,
|
||||
"count":852,
|
||||
"type":"SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView":4,
|
||||
"componentType":5126,
|
||||
"count":512,
|
||||
"max":[
|
||||
1.3956226110458374,
|
||||
0.17762300372123718,
|
||||
0.31090247631073
|
||||
],
|
||||
"min":[
|
||||
-1.3473774194717407,
|
||||
0.1200113594532013,
|
||||
-0.38909757137298584
|
||||
],
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":5,
|
||||
"componentType":5126,
|
||||
"count":512,
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":6,
|
||||
"componentType":5126,
|
||||
"count":512,
|
||||
"type":"VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView":7,
|
||||
"componentType":5123,
|
||||
"count":3060,
|
||||
"type":"SCALAR"
|
||||
}
|
||||
],
|
||||
"bufferViews":[
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":2016,
|
||||
"byteOffset":0,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":2016,
|
||||
"byteOffset":2016,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":1344,
|
||||
"byteOffset":4032,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":1704,
|
||||
"byteOffset":5376,
|
||||
"target":34963
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":6144,
|
||||
"byteOffset":7080,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":6144,
|
||||
"byteOffset":13224,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":4096,
|
||||
"byteOffset":19368,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":6120,
|
||||
"byteOffset":23464,
|
||||
"target":34963
|
||||
}
|
||||
],
|
||||
"buffers":[
|
||||
{
|
||||
"byteLength":29584,
|
||||
"uri":"food.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
48
Blends/Items/Food/food.gltf.import
Normal file
48
Blends/Items/Food/food.gltf.import
Normal file
@@ -0,0 +1,48 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://tedmijw81j46"
|
||||
path="res://.godot/imported/food.gltf-05a2764e0a6bf33e050aa626fcac2f77.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Blends/Items/Food/food.gltf"
|
||||
dest_files=["res://.godot/imported/food.gltf-05a2764e0a6bf33e050aa626fcac2f77.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={
|
||||
"materials": {
|
||||
"Material": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Blends/Items/Food/Material.tres"
|
||||
},
|
||||
"Material.001": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Blends/Items/Food/Material.001.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
@@ -19,6 +19,7 @@ shader_parameter/color = Vector3(0, 0, 0)
|
||||
render_priority = 0
|
||||
shader = ExtResource("5_c1046")
|
||||
shader_parameter/is_active = false
|
||||
shader_parameter/color = Vector3(0, 0, 0)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c1046"]
|
||||
next_pass = SubResource("ShaderMaterial_k1k40")
|
||||
@@ -29,6 +30,7 @@ roughness_texture = ExtResource("4_dn7et")
|
||||
render_priority = 0
|
||||
shader = ExtResource("5_c1046")
|
||||
shader_parameter/is_active = false
|
||||
shader_parameter/color = Vector3(0, 0, 0)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1k40"]
|
||||
next_pass = SubResource("ShaderMaterial_tma46")
|
||||
@@ -38,6 +40,7 @@ albedo_texture = ExtResource("5_sp2kd")
|
||||
render_priority = 0
|
||||
shader = ExtResource("5_c1046")
|
||||
shader_parameter/is_active = false
|
||||
shader_parameter/color = Vector3(0, 0, 0)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tma46"]
|
||||
next_pass = SubResource("ShaderMaterial_8tdb8")
|
||||
|
||||
3
Scenes/Prefabs/Item.gd
Normal file
3
Scenes/Prefabs/Item.gd
Normal file
@@ -0,0 +1,3 @@
|
||||
extends Node3D
|
||||
|
||||
var item_name
|
||||
1
Scenes/Prefabs/Item.gd.uid
Normal file
1
Scenes/Prefabs/Item.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c1ic8jloyqlnt
|
||||
12
Scenes/Prefabs/food_item.tscn
Normal file
12
Scenes/Prefabs/food_item.tscn
Normal file
@@ -0,0 +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="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")
|
||||
|
||||
[node name="Cube" parent="." index="0"]
|
||||
surface_material_override/0 = ExtResource("3_cemcp")
|
||||
@@ -1,15 +1,25 @@
|
||||
extends Node3D
|
||||
|
||||
@onready var outline_shader = preload("res://Shaders/outline.gdshader")
|
||||
|
||||
@onready var food_item = preload("res://Scenes/Prefabs/food_item.tscn")
|
||||
@export var debugLabel1: Label
|
||||
|
||||
signal interact(person,interact_object)
|
||||
|
||||
func _ready() -> void:
|
||||
print(outline_shader)
|
||||
|
||||
interact.connect(_on_interact)
|
||||
|
||||
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
|
||||
|
||||
@@ -14,6 +14,11 @@ var action: Interactable
|
||||
var is_target_reached: bool
|
||||
|
||||
var timer: Timer
|
||||
|
||||
var is_holding_item: bool = false
|
||||
var holdingItem: Object
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
nav_agent = $NavigationAgent3D
|
||||
meshI = $MeshInstance3D
|
||||
@@ -28,6 +33,8 @@ 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:
|
||||
@@ -79,3 +86,14 @@ func _on_timer_timeout() -> void:
|
||||
if action != null:
|
||||
print("action stoped")
|
||||
action.stop_action(self,target_object)
|
||||
|
||||
|
||||
func hold_item(item):
|
||||
var newItem = item.instantiate()
|
||||
holdingItem = newItem
|
||||
newItem.position = Vector3(0,0.976, -0.065)
|
||||
self.add_child(newItem)
|
||||
|
||||
|
||||
func drop_item():
|
||||
pass
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
shader_type spatial;
|
||||
render_mode cull_front, unshaded;
|
||||
|
||||
uniform bool is_active;
|
||||
|
||||
const vec3 color = vec3(0.95, 0.71, 0.01);
|
||||
uniform vec3 color = vec3(0.95, 0.71, 0.01);
|
||||
const float thickness = 0.1;
|
||||
|
||||
void vertex() {
|
||||
|
||||
Reference in New Issue
Block a user