Compare commits

...

6 Commits

Author SHA1 Message Date
Nikolai Fesenko
5637c82eb7 added user action 2025-08-17 16:21:34 +02:00
Nikolai Fesenko
06bca3f9d8 added solid ground to ground in main scene 2025-08-17 13:32:38 +02:00
Nikolai Fesenko
caa719f49b moved all build related code rom global to buildmanger 2025-08-17 13:29:13 +02:00
Nikolai Fesenko
9cb45d79ea fixed persons script 2025-08-17 13:18:50 +02:00
Nikolai Fesenko
dec413a269 outline update 2025-08-17 13:16:21 +02:00
Nikolai Fesenko
c473c0a2fb new outline shader 2025-08-16 18:34:52 +02:00
26 changed files with 316 additions and 79 deletions

View File

@@ -35,7 +35,6 @@ void fragment() {
}
"
graph_offset = Vector2(-323.167, 182.894)
nodes/fragment/2/node = SubResource("VisualShaderNodeInput_k82ey")
nodes/fragment/2/position = Vector2(-140, 280)
nodes/fragment/3/node = SubResource("VisualShaderNodeTransformOp_k82ey")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://wr21rggawosn"]
[gd_scene load_steps=21 format=3 uid="uid://wr21rggawosn"]
[ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_c0yqx"]
[ext_resource type="ArrayMesh" uid="uid://cvgyv0qygl2g2" path="res://Blends/Battery/Battery.obj" id="1_lt2ya"]
@@ -9,13 +9,20 @@
[ext_resource type="Shader" uid="uid://csc12sk3jp67" path="res://Shaders/battery_handle.gdshader" id="5_6tv3k"]
[ext_resource type="Shader" uid="uid://xn2eixgmefs8" path="res://Shaders/battery_glass.gdshader" id="6_b5dta"]
[ext_resource type="Shader" uid="uid://4m7bv5x2pfnr" path="res://Shaders/Fuse.gdshader" id="7_hr37j"]
[ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="10_pigwg"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6tv3k"]
render_priority = 0
shader = ExtResource("2_pigwg")
shader_parameter/color = Vector3(0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pigwg"]
render_priority = 0
shader = ExtResource("10_pigwg")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_byy4f"]
next_pass = SubResource("ShaderMaterial_pigwg")
albedo_texture = ExtResource("2_teewy")
metallic = 1.0
roughness = 0.5
@@ -39,6 +46,7 @@ shader_parameter/normal = ExtResource("3_c0yqx")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_8a881"]
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_fdnlq"]
seamless = true
noise = SubResource("FastNoiseLite_8a881")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hnq8j"]
@@ -46,6 +54,9 @@ render_priority = 0
shader = ExtResource("7_hr37j")
shader_parameter/noise = SubResource("NoiseTexture2D_fdnlq")
[sub_resource type="BoxShape3D" id="BoxShape3D_pigwg"]
size = Vector3(6.92554, 2.55286, 2.97417)
[node name="Battery" type="Node3D" node_paths=PackedStringArray("meshInstance")]
script = ExtResource("1_c0yqx")
meshInstance = NodePath("Battery")
@@ -63,3 +74,9 @@ surface_material_override/5 = SubResource("StandardMaterial3D_byy4f")
surface_material_override/6 = SubResource("ShaderMaterial_wr5rf")
surface_material_override/7 = SubResource("ShaderMaterial_hnq8j")
surface_material_override/8 = SubResource("StandardMaterial3D_byy4f")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.053833, -0.776428, 0.0276413)
shape = SubResource("BoxShape3D_pigwg")

View File

@@ -1,27 +1,53 @@
[gd_scene load_steps=11 format=3 uid="uid://0t0cvsitlfmm"]
[gd_scene load_steps=18 format=3 uid="uid://0t0cvsitlfmm"]
[ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_nn5da"]
[ext_resource type="ArrayMesh" uid="uid://cahq2fdeqqwhx" path="res://Blends/Mobel/DoubleBeds.obj" id="2_8ssp7"]
[ext_resource type="Texture2D" uid="uid://84bnb4rnuhuq" path="res://Blends/Mobel/textures/double_bed_metal.png" id="3_nn5da"]
[ext_resource type="Shader" uid="uid://bfv6ckihralab" path="res://Shaders/build_transparent.gdshader" id="3_pdq8c"]
[ext_resource type="Texture2D" uid="uid://lbbig7lpdun3" path="res://Blends/Mobel/textures/Material.003 Roughness.png" id="4_dn7et"]
[ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="5_c1046"]
[ext_resource type="Texture2D" uid="uid://kl1jplui8wfq" path="res://Blends/Mobel/textures/Material.003 Base Color.png" id="5_sp2kd"]
[ext_resource type="Script" uid="uid://fjdtka5s1dxi" path="res://Scripts/objects/DoubleBeds.gd" id="8_c1046"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dn7et"]
render_priority = 0
shader = ExtResource("3_pdq8c")
shader_parameter/color = Vector3(0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k1k40"]
render_priority = 0
shader = ExtResource("5_c1046")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c1046"]
next_pass = SubResource("ShaderMaterial_k1k40")
albedo_texture = ExtResource("3_nn5da")
roughness_texture = ExtResource("4_dn7et")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tma46"]
render_priority = 0
shader = ExtResource("5_c1046")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1k40"]
next_pass = SubResource("ShaderMaterial_tma46")
albedo_texture = ExtResource("5_sp2kd")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8tdb8"]
render_priority = 0
shader = ExtResource("5_c1046")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tma46"]
next_pass = SubResource("ShaderMaterial_8tdb8")
albedo_texture = ExtResource("5_sp2kd")
[sub_resource type="BoxShape3D" id="BoxShape3D_sp2kd"]
size = Vector3(5.62061, 2.52063, 2.12427)
[sub_resource type="SphereShape3D" id="SphereShape3D_c1046"]
radius = 0.870929
[node name="DoubleBeds" type="Node3D" node_paths=PackedStringArray("meshInstance")]
script = ExtResource("1_nn5da")
meshInstance = NodePath("DoubleBeds")
@@ -33,3 +59,23 @@ mesh = ExtResource("2_8ssp7")
surface_material_override/0 = SubResource("StandardMaterial3D_c1046")
surface_material_override/1 = SubResource("StandardMaterial3D_k1k40")
surface_material_override/2 = SubResource("StandardMaterial3D_tma46")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.218994, -0.287048, 0.10144)
shape = SubResource("BoxShape3D_sp2kd")
[node name="ActionNode" type="Node3D" parent="."]
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"]
[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

View File

@@ -30,3 +30,4 @@ avoidance_enabled = true
debug_enabled = true
[connection signal="navigation_finished" from="NavigationAgent3D" to="." method="_on_navigation_agent_3d_navigation_finished"]
[connection signal="target_reached" from="NavigationAgent3D" to="." method="_on_navigation_agent_3d_target_reached"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://bcme5mx8nf5kf"]
[gd_scene load_steps=20 format=3 uid="uid://bcme5mx8nf5kf"]
[ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_c5d30"]
[ext_resource type="ArrayMesh" uid="uid://dqs5joeucls8u" path="res://Blends/Pot/pot.obj" id="1_ps8qt"]
@@ -10,13 +10,23 @@
[ext_resource type="Texture2D" uid="uid://8qyuw0q5luju" path="res://Blends/Pot/pot_uv.jpg" id="5_vv7mx"]
[ext_resource type="Texture2D" uid="uid://bxgm6oovlxdjq" path="res://Blends/Pot/wood_n.png" id="6_r71lq"]
[ext_resource type="Texture2D" uid="uid://run700pxmcyc" path="res://Blends/Pot/brick_t.png" id="7_e7ek7"]
[ext_resource type="Shader" uid="uid://c08eg1piwoy3t" path="res://Shaders/outline.gdshader" id="7_gtq0i"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_vv7mx"]
render_priority = 0
shader = ExtResource("2_ocdig")
shader_parameter/color = Vector3(0, 0, 0)
[sub_resource type="BoxShape3D" id="BoxShape3D_gtq0i"]
size = Vector3(3.78918, 4.23603, 2.59656)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_r71lq"]
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dn6sd"]
next_pass = SubResource("ShaderMaterial_r71lq")
albedo_texture = ExtResource("2_c5d30")
roughness = 0.4
roughness_texture = ExtResource("4_vv7mx")
@@ -27,22 +37,40 @@ detail_albedo = ExtResource("5_vv7mx")
detail_normal = ExtResource("3_ocdig")
uv1_scale = Vector3(0.5, 0.4, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e7ek7"]
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uhv8u"]
next_pass = SubResource("ShaderMaterial_e7ek7")
albedo_texture = ExtResource("5_gtq0i")
normal_enabled = true
normal_texture = ExtResource("6_r71lq")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dn6sd"]
render_priority = 0
shader = ExtResource("7_gtq0i")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rbvpf"]
next_pass = SubResource("ShaderMaterial_dn6sd")
albedo_texture = ExtResource("7_e7ek7")
[node name="Pot" type="Node3D" node_paths=PackedStringArray("meshInstance")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
script = ExtResource("1_c5d30")
meshInstance = NodePath("Pot")
preview_shader = SubResource("ShaderMaterial_vv7mx")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.14194, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.916585, 0.0207213)
shape = SubResource("BoxShape3D_gtq0i")
[node name="Pot" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.41814, 0)
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -2.14194, 0)
mesh = ExtResource("1_ps8qt")
surface_material_override/0 = SubResource("StandardMaterial3D_dn6sd")
surface_material_override/1 = SubResource("StandardMaterial3D_uhv8u")

View File

@@ -1,22 +1,32 @@
[gd_scene load_steps=8 format=3 uid="uid://c0gypplbklc3i"]
[gd_scene load_steps=11 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"]
[ext_resource type="Shader" uid="uid://bfv6ckihralab" path="res://Shaders/build_transparent.gdshader" id="2_jbe2f"]
[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"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4318v"]
render_priority = 0
shader = ExtResource("2_jbe2f")
shader_parameter/color = Vector3(0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0dtcx"]
render_priority = 0
shader = ExtResource("5_jbe2f")
shader_parameter/is_active = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jbe2f"]
next_pass = SubResource("ShaderMaterial_0dtcx")
albedo_texture = ExtResource("2_x70sl")
normal_enabled = true
normal_scale = -1.88
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")]
script = ExtResource("1_ya6sq")
meshInstance = NodePath("Shelf")
@@ -26,3 +36,9 @@ preview_shader = SubResource("ShaderMaterial_4318v")
transform = Transform3D(-2.18557e-08, 0, -0.5, 0, 0.5, 0, 0.5, 0, -2.18557e-08, 0, -1.53245, 0)
mesh = ExtResource("1_usf1u")
surface_material_override/0 = SubResource("StandardMaterial3D_jbe2f")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[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")

View File

@@ -8,7 +8,7 @@
[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.615929, -3.27442, 3.10583, -0.615929, -3.27442, 3.10583, -1.86593, -2.27442, 0.105834, 0.884071, -9.27442, 0.105834, 0.884071, -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.384071, -8.27442, 0.105834, -1.61593, -8.27442, 0.105834, -0.865929, -3.52442, 0.105834, -0.865929, -3.52442, 0.105834, -1.61593)
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)]
agent_radius = 0.7
@@ -55,6 +55,7 @@ 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)
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)
@@ -85,34 +86,39 @@ visible = false
mesh = ExtResource("3_2wj72")
[node name="BlockBuildingArea" type="StaticBody3D" parent="."]
visible = false
[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")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3174, 1.96498, -1.34338)
script = ExtResource("5_eosii")
buildTransparentPreivew = NodePath("BuildAreaModeView")
metadata/is_building_area = true
[node name="smallBuildingArea2" type="CollisionShape3D" parent="BuildingArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.69414, 1.44495, -1.22106)
shape = SubResource("BoxShape3D_eosii")
metadata/is_building_area = true
[node name="BuildAreaModeView" type="MeshInstance3D" parent="BuildingArea"]
transform = Transform3D(5.40002, 0, 0, 0, 4.29805, 0, 0, 0, 2.28394, -5.69414, 1.02766, -1.22106)
transform = Transform3D(5.40002, 0, 0, 0, 4.29805, 0, 0, 0, 2.28394, 0, 0, 0)
mesh = SubResource("BoxMesh_eosii")
surface_material_override/0 = SubResource("ShaderMaterial_u7bw1")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://bj7y7q2qkpnci"]
[gd_scene load_steps=17 format=3 uid="uid://bj7y7q2qkpnci"]
[ext_resource type="Shader" uid="uid://c5e2qqpg6h4lw" path="res://Shaders/road.gdshader" id="2_6bp64"]
[ext_resource type="ArrayMesh" uid="uid://622ethh2pdfa" path="res://Blends/road/road.obj" id="4_jjvhh"]
@@ -7,9 +7,6 @@
[ext_resource type="PackedScene" uid="uid://dim2geqhn6d35" path="res://Scenes/Prefabs/cart.tscn" id="6_21xkr"]
[ext_resource type="PackedScene" uid="uid://dy03tqug33fep" path="res://Blends/ground.blend" id="6_344ge"]
[ext_resource type="Script" uid="uid://drrp1k2q71hq2" path="res://Scripts/camera_3d.gd" id="7_6bp64"]
[ext_resource type="ArrayMesh" uid="uid://k2k1ppv3ycsv" path="res://Blends/Shelf/Shelf.obj" id="8_344ge"]
[ext_resource type="Texture2D" uid="uid://5gmmgg4cmefr" path="res://Blends/Shelf/color.png" id="9_hptm8"]
[ext_resource type="Texture2D" uid="uid://q0duenho1u2x" path="res://Blends/Shelf/normal.png" id="10_d1ilt"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_jjvhh"]
sky_top_color = Color(0.654771, 0.60129, 0.578102, 1)
@@ -50,11 +47,8 @@ size = Vector2(0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_21xkr"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6iyac"]
albedo_texture = ExtResource("9_hptm8")
normal_enabled = true
normal_scale = -1.88
normal_texture = ExtResource("10_d1ilt")
[sub_resource type="BoxShape3D" id="BoxShape3D_6bp64"]
size = Vector3(156.989, 1, 161.434)
[node name="Main" type="Node3D"]
@@ -72,7 +66,7 @@ skeleton = NodePath("../Road")
surface_material_override/0 = SubResource("ShaderMaterial_6bp64")
[node name="Road" type="MeshInstance3D" parent="."]
transform = Transform3D(10.9512, 0, 0, 0, 1, 0, 0, 0, 1, -54.4288, 0.584906, -61.8752)
transform = Transform3D(10.9512, 0, 0, 0, 1, 0, 0, 0, 1, -54.4288, 0.58491, -61.8752)
mesh = ExtResource("4_jjvhh")
surface_material_override/0 = SubResource("ShaderMaterial_344ge")
@@ -93,7 +87,7 @@ spot_range = 23.417
spot_angle = 89.99
[node name="Cart" parent="." node_paths=PackedStringArray("mainCamera") instance=ExtResource("6_21xkr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.31428, 3.18503, -60.2323)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.31428, 3.18503, -60.0041)
mainCamera = NodePath("../RigidBody3D/Camera3D")
[node name="RigidBody3D" type="RigidBody3D" parent="."]
@@ -131,6 +125,12 @@ debug_color = Color(0.895552, 0, 0.381247, 1)
[node name="ground" parent="." instance=ExtResource("6_344ge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.321, 0.384693, -59.426)
[node name="StaticBody3D" type="StaticBody3D" parent="ground"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ground/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.149445, -0.621046, 1.07111)
shape = SubResource("BoxShape3D_6bp64")
[node name="ground2" parent="." instance=ExtResource("6_344ge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180.354, 0.385, -59.426)
@@ -147,8 +147,3 @@ mouse_filter = 2
[node name="Marker3D" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.90278, -57.5436)
[node name="Shelf" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99485, 0.659399, -45.3142)
mesh = ExtResource("8_344ge")
surface_material_override/0 = SubResource("StandardMaterial3D_6iyac")

10
Scripts/Interactable.gd Normal file
View File

@@ -0,0 +1,10 @@
class_name Interactable
extends Node
var can_pick: bool
var can_store: bool
var stored_objects: Array
func action(person):
print("action!")

View File

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

View File

@@ -7,17 +7,37 @@ extends Node
signal build_object_selected
signal exit_build_mode
signal enter_build_mode
signal preview_created
signal preview_destroyed
signal object_placed(build_postion)
signal object_added(object)
var build_mode: bool = false
var selected_object_id: int
var is_object_selected: bool
var global_y = 2.903
var builded_objects: Array
func _ready() -> void:
is_object_selected = false
build_object_selected.connect(_on_object_selected)
func _input(event: InputEvent) -> void:
if event.is_action_released("enter_build_mode"):
if build_mode:
exit_build_mode.emit()
build_mode = false
else:
enter_build_mode.emit()
build_mode = true
func get_preview_object():
var selected_object
match selected_object_id:
@@ -34,3 +54,8 @@ func get_preview_object():
func _on_object_selected():
is_object_selected = true
func add_object_to_array(object):
builded_objects.append(object)
object_added.emit(object)

View File

@@ -1,16 +1,24 @@
extends Node3D
@export var meshInstance: MeshInstance3D
@export var preview_shader: ShaderMaterial
var default_shaders: Array
var staic_body: StaticBody3D
var ActionNode: Node3D
func _ready() -> void:
Global.preview_created.connect(_on_preview_create)
Global.object_placed.connect(_on_object_placed)
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)
ActionNode = $ActionNode
func set_default_shaders():
var amount_shaders = meshInstance.get_surface_override_material_count()
@@ -44,5 +52,26 @@ func _on_preview_create():
set_preview_shader_color()
func _on_object_placed():
func _on_object_placed(build_postion):
#BuildManager.add_object_to_array(self)
#print(ActionNode.global_position)
restore_default_shaders()
func enable_outline():
for i in meshInstance.get_surface_override_material_count():
var material = meshInstance.get_surface_override_material(i)
if material.next_pass != null:
meshInstance.get_surface_override_material(i).next_pass.set_shader_parameter("is_active", true)
func disable_outline():
for i in meshInstance.get_surface_override_material_count():
var material = meshInstance.get_surface_override_material(i)
if material.next_pass != null:
meshInstance.get_surface_override_material(i).next_pass.set_shader_parameter("is_active", false)
func _on_mouse_enter():
enable_outline()
func _on_mouse_exit():
disable_outline()

View File

@@ -1,33 +1,32 @@
extends StaticBody3D
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
@export var buildTransparentPreivew: MeshInstance3D
var areas
var previewObject: Node3D
var is_placed = false
func _ready() -> void:
areas = get_children()
buildTransparentPreivew.visible = false
Global.exit_build_mode.connect(_on_exit_build_mode)
Global.enter_build_mode.connect(_on_enter_build_mode)
BuildManager.exit_build_mode.connect(_on_exit_build_mode)
BuildManager.enter_build_mode.connect(_on_enter_build_mode)
func _input_event(camera: Camera3D, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) -> void:
if event.is_action_pressed("mouse_click") and Global.build_mode:
if event.is_action_pressed("mouse_click") and BuildManager.build_mode:
place_object()
func _mouse_enter() -> void:
if !is_placed and Global.build_mode and BuildManager.is_object_selected:
if !is_placed and BuildManager.build_mode and BuildManager.is_object_selected:
show_preview()
func _mouse_exit() -> void:
if !is_placed and Global.build_mode:
if !is_placed and BuildManager.build_mode:
hide_preview()
func show_preview():
@@ -37,7 +36,7 @@ func show_preview():
areas[0].add_child(previewObject)
#previewObject.global_position.y = BuildManager.global_y
buildTransparentPreivew.visible = false
Global.preview_created.emit()
BuildManager.preview_created.emit()
func hide_preview():
if is_placed != true:
@@ -46,9 +45,10 @@ func hide_preview():
buildTransparentPreivew.visible = true
func place_object():
is_placed = true
buildTransparentPreivew.visible = false
Global.object_placed.emit()
#is_placed = true
#buildTransparentPreivew.visible = false
BuildManager.object_placed.emit(self.position)
self.queue_free()
func _on_enter_build_mode():
if !is_placed:

View File

@@ -22,7 +22,7 @@ func _ready() -> void:
func _process(delta: float) -> void:
debugLabel.text = "Mode: " + str(Global.build_mode)
debugLabel.text = "Mode: " + str(BuildManager.build_mode)
global_delta = delta
look_at(ownRigidBody.position)
self.position.y = -0.1 * pow(self.position.z,2) + zoom_pos # y axis controll for camera

View File

@@ -1,17 +1,24 @@
extends Node3D
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
@export var cartTop: MeshInstance3D
@export var mainCamera: Camera3D
var nav_mesh: NavigationMesh
var previewObject
var targetPos
func _ready() -> void:
pass
BuildManager.object_placed.connect(_on_object_placed)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("hide_top"):
cartTop.visible = !cartTop.visible
#add_preview()
func _on_object_placed(build_postion):
var newObject = BuildManager.get_preview_object().instantiate()
newObject.global_position = build_postion
BuildManager.add_object_to_array(newObject)
self.add_child(newObject)

View File

@@ -1,23 +1,15 @@
extends Node3D
@onready var outline_shader = preload("res://Shaders/outline.gdshader")
@export var debugLabel1: Label
signal exit_build_mode
signal enter_build_mode
signal interact(person,interact_object)
signal preview_created
signal preview_destroyed
func _ready() -> void:
print(outline_shader)
signal object_placed
var build_mode: bool = false
func _input(event: InputEvent) -> void:
if event.is_action_released("enter_build_mode"):
if build_mode:
exit_build_mode.emit()
build_mode = false
else:
enter_build_mode.emit()
build_mode = true
interact.connect(_on_interact)
func _on_interact(person, object):
object.action(person)

View File

@@ -0,0 +1,9 @@
extends Interactable
func _ready() -> void:
can_pick = false
can_store = false
func action(person):
print(str(person) + " is sleeping")

View File

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

View File

@@ -6,18 +6,19 @@ var shirt_shader: ShaderMaterial
var meshI: MeshInstance3D
var start_pos: Vector3
var target_object: Node3D
func _ready() -> void:
nav_agent = $NavigationAgent3D
meshI = $MeshInstance3D
shirt_shader = meshI.get_surface_override_material(1)
Global.object_placed.connect(_on_object_placed)
BuildManager.object_added.connect(_on_object_added)
set_random_shirt()
start_pos = global_position
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
func _physics_process(delta: float) -> void:
@@ -26,10 +27,12 @@ func _physics_process(delta: float) -> void:
velocity = new_velocity
move_and_slide()
func _input(event: InputEvent) -> void:
if event.is_action_pressed("test"):
set_target_position()
func _on_object_placed():
nav_agent.target_position = Vector3(-14.305,3.486,-59.836)
func _on_object_added(object):
set_target(object)
func set_random_shirt():
@@ -38,5 +41,19 @@ func set_random_shirt():
pass
func _on_navigation_agent_3d_navigation_finished() -> void:
nav_agent.target_position = start_pos
func set_target(object):
target_object = object
#nav_agent.target_position = target_object.ActionNode.global_position
func set_target_position():
var newPos = target_object.ActionNode.global_position
newPos.y = self.position.y
nav_agent.target_position = newPos
#nav_agent.target_position = start_pos
func _on_navigation_agent_3d_target_reached() -> void:
if target_object != null:
Global.interact.emit(self, target_object.ActionNode)
pass

View File

@@ -3,8 +3,8 @@ extends Panel
func _ready() -> void:
self.visible = false
Global.enter_build_mode.connect(_on_enter_build_mode)
Global.exit_build_mode.connect(_on_exit_build_mode)
BuildManager.enter_build_mode.connect(_on_enter_build_mode)
BuildManager.exit_build_mode.connect(_on_exit_build_mode)
func _on_enter_build_mode():

View File

@@ -1,18 +1,25 @@
shader_type spatial;
uniform sampler2D noise;
varying float pos_y;
void vertex() {
// Called for every vertex the material is visible on.
pos_y = VERTEX.y;
//pos_y = POSITION.y;
//POSITION.y = 0.0;
}
void fragment() {
//ALBEDO = vec3(0.000275,0.0,0.665027);
EMISSION = vec3(0.0,0.0,1.0);
EMISSION = vec3(0.0,0.0,10.0);
if( TIME < 1800.0 ) {
ALBEDO = texture(noise,UV + TIME / 5.0).rgb;
}
else {
ALBEDO = texture(noise,UV - TIME).rgb;
ALBEDO = texture(noise,UV - TIME / 5.0).rgb;
}
CLEARCOAT = 5.0;
}

View File

@@ -6,7 +6,7 @@ void vertex() {
void fragment() {
ALBEDO = vec3(1.0,0.0,0.0);
EMISSION = vec3(1.0,0.0,0.0);
EMISSION = vec3(5.0,0.0,0.0);
}
//void light() {

25
Shaders/outline.gdshader Normal file
View File

@@ -0,0 +1,25 @@
shader_type spatial;
render_mode cull_front, unshaded;
uniform bool is_active;
const vec3 color = vec3(0.95, 0.71, 0.01);
const float thickness = 0.1;
void vertex() {
if(is_active) {
VERTEX += NORMAL * thickness;
}
}
void fragment() {
if (is_active) {
ALBEDO = color;
ALPHA = 0.5;
}
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

View File

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

View File

@@ -52,3 +52,8 @@ mouse_click={
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(146, 26),"global_position":Vector2(155, 74),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
test={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}