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
|
render_priority = 0
|
||||||
shader = ExtResource("5_c1046")
|
shader = ExtResource("5_c1046")
|
||||||
shader_parameter/is_active = false
|
shader_parameter/is_active = false
|
||||||
|
shader_parameter/color = Vector3(0, 0, 0)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c1046"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c1046"]
|
||||||
next_pass = SubResource("ShaderMaterial_k1k40")
|
next_pass = SubResource("ShaderMaterial_k1k40")
|
||||||
@@ -29,6 +30,7 @@ roughness_texture = ExtResource("4_dn7et")
|
|||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("5_c1046")
|
shader = ExtResource("5_c1046")
|
||||||
shader_parameter/is_active = false
|
shader_parameter/is_active = false
|
||||||
|
shader_parameter/color = Vector3(0, 0, 0)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1k40"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1k40"]
|
||||||
next_pass = SubResource("ShaderMaterial_tma46")
|
next_pass = SubResource("ShaderMaterial_tma46")
|
||||||
@@ -38,6 +40,7 @@ albedo_texture = ExtResource("5_sp2kd")
|
|||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("5_c1046")
|
shader = ExtResource("5_c1046")
|
||||||
shader_parameter/is_active = false
|
shader_parameter/is_active = false
|
||||||
|
shader_parameter/color = Vector3(0, 0, 0)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tma46"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tma46"]
|
||||||
next_pass = SubResource("ShaderMaterial_8tdb8")
|
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
|
extends Node3D
|
||||||
|
|
||||||
@onready var outline_shader = preload("res://Shaders/outline.gdshader")
|
@onready var outline_shader = preload("res://Shaders/outline.gdshader")
|
||||||
|
@onready var food_item = preload("res://Scenes/Prefabs/food_item.tscn")
|
||||||
@export var debugLabel1: Label
|
@export var debugLabel1: Label
|
||||||
|
|
||||||
signal interact(person,interact_object)
|
signal interact(person,interact_object)
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
print(outline_shader)
|
|
||||||
|
|
||||||
interact.connect(_on_interact)
|
interact.connect(_on_interact)
|
||||||
|
|
||||||
func _on_interact(person, object):
|
func _on_interact(person, object):
|
||||||
object.ActionNode.start_action(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 is_target_reached: bool
|
||||||
|
|
||||||
var timer: Timer
|
var timer: Timer
|
||||||
|
|
||||||
|
var is_holding_item: bool = false
|
||||||
|
var holdingItem: Object
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
nav_agent = $NavigationAgent3D
|
nav_agent = $NavigationAgent3D
|
||||||
meshI = $MeshInstance3D
|
meshI = $MeshInstance3D
|
||||||
@@ -28,6 +33,8 @@ func _ready() -> void:
|
|||||||
is_in_action = false
|
is_in_action = false
|
||||||
|
|
||||||
timer = $Timer
|
timer = $Timer
|
||||||
|
|
||||||
|
Global.give_item(self, 0)
|
||||||
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
|
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
@@ -79,3 +86,14 @@ func _on_timer_timeout() -> void:
|
|||||||
if action != null:
|
if action != null:
|
||||||
print("action stoped")
|
print("action stoped")
|
||||||
action.stop_action(self,target_object)
|
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;
|
shader_type spatial;
|
||||||
render_mode cull_front, unshaded;
|
render_mode cull_front, unshaded;
|
||||||
|
|
||||||
uniform bool is_active;
|
uniform bool is_active;
|
||||||
|
uniform vec3 color = vec3(0.95, 0.71, 0.01);
|
||||||
const vec3 color = vec3(0.95, 0.71, 0.01);
|
|
||||||
const float thickness = 0.1;
|
const float thickness = 0.1;
|
||||||
|
|
||||||
void vertex() {
|
void vertex() {
|
||||||
|
|||||||
Reference in New Issue
Block a user