From 5440366f5211734455f7ece67fc124a36dea7da9 Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Sat, 6 Sep 2025 21:51:34 -0600 Subject: [PATCH] I don't wanna jinx it but I think I fixed the issue with the beast getting stuck on nav links --- levels/testing/pathing_test/pathing_test.tscn | 133 +++++++----------- src/props/bulkhead/bulkhead.tscn | 4 +- .../behaviors/actions/pursue_target.gd | 5 - .../behaviors/actions/set_nav_target.gd | 6 +- src/world/grunk_beast/grunk_beast.gd | 2 +- src/world/grunk_beast/grunk_beast.tscn | 11 +- src/world/grunk_beast/shambler/shambler.tscn | 4 +- 7 files changed, 61 insertions(+), 104 deletions(-) diff --git a/levels/testing/pathing_test/pathing_test.tscn b/levels/testing/pathing_test/pathing_test.tscn index 70ac4a6..7b1a653 100644 --- a/levels/testing/pathing_test/pathing_test.tscn +++ b/levels/testing/pathing_test/pathing_test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=62 format=4 uid="uid://tvirbm0kgvp8"] +[gd_scene load_steps=59 format=4 uid="uid://tvirbm0kgvp8"] [ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_fgk6j"] [ext_resource type="Script" uid="uid://68r4ht5ut1ct" path="res://src/game/level.gd" id="1_hv7qb"] @@ -38,28 +38,27 @@ sky_material = SubResource("ProceduralSkyMaterial_1lom2") background_mode = 2 sky = SubResource("Sky_18csx") +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_m4lys"] + [sub_resource type="NavigationMesh" id="NavigationMesh_hv7qb"] -vertices = PackedVector3Array(-27.5, 0.499, -20.75, -27.5, 0.499, -17.25, -26.75, 0.499, -18.25, -26.25, 0.499, -19, -26.25, 0.499, -22.25, -26.25, 0.499, -28.25, -26.25, 0.499, -30.75, -27.5, 0.499, -30.75, -27.5, 0.499, -27.5, -13.5, 0.499, -18.5, -13.75, 0.499, -17.25, -11, 0.499, -17.25, -9.75, 0.499, -18.5, -26.25, 0.499, -25.25, -27.5, 0.499, -24, -6.25, 0.499, -18.5, -8.25, 0.499, -17.25, -5.5, 0.499, -17.25, -2.5, 0.499, -17.25, -2.5, 0.499, -18.5, -16.5, 0.499, -17.25, -17, 0.499, -18.5, -18, 0.499, -17.5, -25.75, 0.499, -18.5, -25.5, 0.499, -18.25, -23, 0.499, -18.5, -19.75, 0.499, -17.5, -19.25, 0.499, -17.25, -24.75, 0.499, -17.25, -22, 0.499, -17.25, -20.25, 0.499, -18.5, -21.75, 0.499, -24.25, -24.25, 0.499, -24.25, -24.25, 0.499, -20.25, -21.75, 0.499, -20.25, -11.25, 0.499, -24.25, -13.75, 0.499, -24.25, -13.75, 0.499, -20.25, -11.25, 0.499, -20.25, -3, 0.499, -20.25, -3, 0.499, -24.25, -5.75, 0.499, -24.25, -5.75, 0.499, -20.25, -8.5, 0.499, -20.25, -8.5, 0.499, -24.25, -19, 0.499, -24.25, -19, 0.499, -20.25, -16.5, 0.499, -24.25, -16.5, 0.499, -20.25, -0.25, 0.499, -17.5, 0.75, 0.499, -18, 0.75, 0.499, -19.75, -0.5, 0.499, -19.75, -0.5, 0.499, -9.5, -0.5, 0.499, -6, 0.75, 0.499, -6, 0.75, 0.499, -9.5, 1.75, 0.499, -20.25, 1.75, 0.499, -24.25, -0.75, 0.499, -24.25, -1, 0.499, -20.25, -0.5, 0.499, -13, 0.75, 0.499, -12.75, 0, 0.499, -13.25, -0.5, 0.499, -16.5, -0.25, 0.499, -15.25, 24.25, 0.499, -22, 24.25, 0.499, -24.25, 21.25, 0.499, -24.25, 2.5, 0.499, -19.75, 4.5, 0.499, -24.25, 24.25, 0.499, -10.25, 24.25, 0.499, -12.75, 15.75, 0.499, -24.25, 24.25, 0.499, -19.75, 7.25, 0.499, -24.25, 18.5, 0.499, -24.25, 24.25, 0.499, -17.5, 10, 0.499, -24.25, 24.25, 0.499, -5.5, 24.25, 0.499, -8, 2.5, 0.499, -9.25, 2.5, 0.499, -5.75, 24.25, 0.499, -15, 2.5, 0.499, -16.25, 13, 0.499, -24.25, 2.5, 0.499, -12.75, -21.5, 0.499, -15.5, -24.25, 0.499, -15.5, -24.25, 0.499, -13.25, -24.25, 0.499, 21.75, -24.25, 0.499, 24.25, -21.5, 0.499, 24.25, -2.25, 0.499, -12.75, -2.25, 0.499, -15.5, -5, 0.499, -15.5, -24.25, 0.499, -10.75, -24.25, 0.499, 19.25, -2.25, 0.499, -10, -7.75, 0.499, -15.5, -18.75, 0.499, -15.5, -24.25, 0.499, -8.25, -18.75, 0.499, 24.25, -24.25, 0.499, 16.75, -1.5, 0.499, -3.75, -2.25, 0.499, -4.25, -24.25, 0.499, 4.25, -24.25, 0.499, 6.75, -4.5, 0.499, 24.25, -1.5, 0.499, 24.25, -24.25, 0.499, 9.25, -10.25, 0.499, 24.25, -7.25, 0.499, 24.25, -2.25, 0.499, -7.25, -10.5, 0.499, -15.5, -16, 0.499, -15.5, -24.25, 0.499, -5.75, -16, 0.499, 24.25, -24.25, 0.499, 14.25, -13.25, 0.499, -15.5, -24.25, 0.499, -3.25, -24.25, 0.499, -0.75, -24.25, 0.499, 11.75, -13, 0.499, 24.25, -24.25, 0.499, 1.75, 0.75, 0.499, -4.25, -0.5, 0.499, -4.25, 1.75, 0.499, -3.75, 1.75, 0.499, 24.25, 21.25, 0.499, 24.25, 24.25, 0.499, 24.25, 24.25, 0.499, 20.5, 18.5, 0.499, 24.25, 15.75, 0.499, 24.25, 24.25, 0.499, 16.75, 13, 0.499, 24.25, 7.25, 0.499, 24.25, 24.25, 0.499, 13, 24.25, 0.499, 9.25, 4.5, 0.499, 24.25, 10, 0.499, 24.25, 24.25, 0.499, 1.75, 2.5, 0.499, -4.25, 24.25, 0.499, 5.5, 24.25, 0.499, -2) -polygons = [PackedInt32Array(2, 1, 3), PackedInt32Array(3, 1, 0), PackedInt32Array(3, 0, 4), PackedInt32Array(6, 5, 7), PackedInt32Array(7, 5, 8), PackedInt32Array(10, 9, 11), PackedInt32Array(11, 9, 12), PackedInt32Array(5, 13, 8), PackedInt32Array(8, 13, 14), PackedInt32Array(17, 16, 15), PackedInt32Array(15, 16, 12), PackedInt32Array(13, 4, 14), PackedInt32Array(14, 4, 0), PackedInt32Array(18, 17, 19), PackedInt32Array(19, 17, 15), PackedInt32Array(22, 21, 20), PackedInt32Array(20, 21, 10), PackedInt32Array(10, 21, 9), PackedInt32Array(12, 16, 11), PackedInt32Array(23, 2, 3), PackedInt32Array(2, 23, 24), PackedInt32Array(24, 23, 25), PackedInt32Array(26, 22, 27), PackedInt32Array(27, 22, 20), PackedInt32Array(26, 29, 30), PackedInt32Array(30, 29, 25), PackedInt32Array(25, 29, 28), PackedInt32Array(25, 28, 24), PackedInt32Array(27, 29, 26), PackedInt32Array(34, 33, 31), PackedInt32Array(31, 33, 32), PackedInt32Array(38, 37, 35), PackedInt32Array(35, 37, 36), PackedInt32Array(42, 41, 39), PackedInt32Array(39, 41, 40), PackedInt32Array(44, 41, 43), PackedInt32Array(43, 41, 42), PackedInt32Array(46, 34, 45), PackedInt32Array(45, 34, 31), PackedInt32Array(35, 44, 38), PackedInt32Array(38, 44, 43), PackedInt32Array(48, 46, 47), PackedInt32Array(47, 46, 45), PackedInt32Array(37, 48, 36), PackedInt32Array(36, 48, 47), PackedInt32Array(51, 50, 52), PackedInt32Array(52, 50, 49), PackedInt32Array(56, 55, 53), PackedInt32Array(53, 55, 54), PackedInt32Array(52, 60, 51), PackedInt32Array(51, 60, 57), PackedInt32Array(57, 60, 59), PackedInt32Array(57, 59, 58), PackedInt32Array(63, 62, 61), PackedInt32Array(61, 62, 56), PackedInt32Array(61, 56, 53), PackedInt32Array(39, 40, 60), PackedInt32Array(60, 40, 59), PackedInt32Array(65, 64, 49), PackedInt32Array(49, 64, 52), PackedInt32Array(63, 61, 65), PackedInt32Array(65, 61, 64), PackedInt32Array(68, 67, 66), PackedInt32Array(57, 58, 69), PackedInt32Array(69, 58, 70), PackedInt32Array(73, 72, 71), PackedInt32Array(68, 66, 74), PackedInt32Array(69, 70, 75), PackedInt32Array(74, 77, 68), PackedInt32Array(68, 77, 76), PackedInt32Array(69, 75, 78), PackedInt32Array(80, 79, 73), PackedInt32Array(73, 79, 81), PackedInt32Array(81, 79, 82), PackedInt32Array(77, 83, 76), PackedInt32Array(76, 83, 73), PackedInt32Array(78, 85, 69), PackedInt32Array(69, 85, 84), PackedInt32Array(73, 71, 80), PackedInt32Array(81, 86, 73), PackedInt32Array(73, 83, 72), PackedInt32Array(85, 73, 84), PackedInt32Array(84, 73, 86), PackedInt32Array(89, 88, 87), PackedInt32Array(92, 91, 90), PackedInt32Array(95, 94, 93), PackedInt32Array(96, 89, 87), PackedInt32Array(92, 90, 97), PackedInt32Array(93, 98, 95), PackedInt32Array(95, 98, 99), PackedInt32Array(87, 100, 96), PackedInt32Array(96, 100, 101), PackedInt32Array(92, 97, 102), PackedInt32Array(102, 97, 103), PackedInt32Array(105, 104, 106), PackedInt32Array(106, 104, 107), PackedInt32Array(107, 104, 108), PackedInt32Array(108, 104, 109), PackedInt32Array(110, 107, 111), PackedInt32Array(111, 107, 112), PackedInt32Array(108, 112, 107), PackedInt32Array(98, 113, 99), PackedInt32Array(99, 113, 114), PackedInt32Array(101, 100, 116), PackedInt32Array(116, 100, 115), PackedInt32Array(102, 103, 117), PackedInt32Array(117, 103, 118), PackedInt32Array(121, 120, 119), PackedInt32Array(122, 110, 123), PackedInt32Array(123, 110, 111), PackedInt32Array(124, 121, 119), PackedInt32Array(114, 113, 119), PackedInt32Array(119, 113, 105), PackedInt32Array(119, 105, 124), PackedInt32Array(124, 105, 106), PackedInt32Array(116, 115, 120), PackedInt32Array(120, 115, 119), PackedInt32Array(118, 122, 117), PackedInt32Array(117, 122, 123), PackedInt32Array(126, 54, 125), PackedInt32Array(125, 54, 55), PackedInt32Array(125, 127, 126), PackedInt32Array(126, 127, 104), PackedInt32Array(104, 127, 128), PackedInt32Array(104, 128, 109), PackedInt32Array(131, 130, 129), PackedInt32Array(131, 129, 132), PackedInt32Array(131, 132, 133), PackedInt32Array(133, 135, 131), PackedInt32Array(131, 135, 134), PackedInt32Array(136, 139, 137), PackedInt32Array(137, 139, 138), PackedInt32Array(135, 140, 134), PackedInt32Array(134, 140, 137), PackedInt32Array(142, 141, 127), PackedInt32Array(127, 141, 143), PackedInt32Array(137, 140, 136), PackedInt32Array(82, 79, 142), PackedInt32Array(142, 79, 144), PackedInt32Array(143, 138, 127), PackedInt32Array(127, 138, 139), PackedInt32Array(127, 139, 128), PackedInt32Array(142, 144, 141)] +vertices = PackedVector3Array(-26.25, 0.5, -28.75, -26.25, 0.5, -30.75, -27.5, 0.5, -30.75, -27.5, 0.5, -28.25, -26.25, 0.5, -23.25, -26.25, 0.5, -26, -27.5, 0.5, -25.75, -27.5, 0.5, -23.25, -27.5, 0.5, -20.5, -26.25, 0.5, -20.5, 0.75, 0.5, -18, 0.75, 0.5, -18.75, -0.5, 0.5, -18.75, -0.25, 0.5, -17.5, -0.5, 0.5, -14.75, -0.5, 0.5, -12.75, 0, 0.5, -13.25, -0.25, 0.5, -15.25, -0.5, 0.5, -10.5, 0.75, 0.5, -10.5, 0.75, 0.5, -12.75, -25.5, 0.5, -18.5, -27.5, 0.5, -18.5, -27.5, 0.5, -17.25, -24.75, 0.5, -17.25, -19.25, 0.5, -17.25, -16.25, 0.5, -17.25, -16.25, 0.5, -18.5, -20, 0.5, -18.5, -21, 0.5, -17.5, -23.25, 0.5, -18.5, -22.75, 0.5, -17.5, -22, 0.5, -17.25, -14.25, 0.5, -18.5, -14.25, 0.5, -17.25, -11.5, 0.5, -17.25, -11.5, 0.5, -18.5, -8.5, 0.5, -17.25, -5.5, 0.5, -17.25, -5.5, 0.5, -18.5, -8.5, 0.5, -18.5, -2.5, 0.5, -17.25, -2.5, 0.5, -18.5, 0.75, 0.5, -6.5, 0.75, 0.5, -8.5, -0.5, 0.5, -8.5, -0.5, 0.5, -6.5, 2.25, 0.5, 14.75, 9.25, 0.5, 10, 9.25, 0.5, 7.75, 0, 0.5, 14.75, 0.75, 0.5, -4.25, -0.5, 0.5, -4.25, 9.25, 0.5, 5.5, 9.25, 0.5, 3, 5.25, 0.5, -3.75, 1.25, 0.5, -3.75, -1, 0.5, -3.75, -9.25, 0.5, 12.25, -9.25, 0.5, 14.75, -7, 0.5, 14.75, 6.75, 0.5, 14.75, 9.25, 0.5, 14.75, 9.25, 0.5, 12.25, 9.25, 0.5, -1.5, 9.25, 0.5, -3.75, -5.25, 0.5, -3.75, -9.25, 0.5, -3.75, -9.25, 0.5, -1.5, -4.75, 0.5, 14.75, -9.25, 0.5, 10, 4.5, 0.5, 14.75, 9.25, 0.5, 0.75, -9.25, 0.5, 0.75, -3.25, 0.5, -3.75, -9.25, 0.5, 3, -9.25, 0.5, 5.5, -9.25, 0.5, 7.75, -2.5, 0.5, 14.75) +polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 3), PackedInt32Array(7, 6, 4), PackedInt32Array(4, 6, 5), PackedInt32Array(6, 3, 5), PackedInt32Array(5, 3, 0), PackedInt32Array(4, 9, 7), PackedInt32Array(7, 9, 8), PackedInt32Array(11, 10, 12), PackedInt32Array(12, 10, 13), PackedInt32Array(17, 16, 14), PackedInt32Array(14, 16, 15), PackedInt32Array(16, 20, 15), PackedInt32Array(15, 20, 19), PackedInt32Array(15, 19, 18), PackedInt32Array(17, 14, 13), PackedInt32Array(13, 14, 12), PackedInt32Array(22, 21, 23), PackedInt32Array(23, 21, 24), PackedInt32Array(29, 28, 25), PackedInt32Array(25, 28, 26), PackedInt32Array(26, 28, 27), PackedInt32Array(31, 24, 30), PackedInt32Array(30, 24, 21), PackedInt32Array(31, 29, 32), PackedInt32Array(32, 29, 25), PackedInt32Array(32, 24, 31), PackedInt32Array(36, 35, 33), PackedInt32Array(33, 35, 34), PackedInt32Array(40, 39, 37), PackedInt32Array(37, 39, 38), PackedInt32Array(39, 42, 38), PackedInt32Array(38, 42, 41), PackedInt32Array(37, 35, 40), PackedInt32Array(40, 35, 36), PackedInt32Array(46, 45, 43), PackedInt32Array(43, 45, 44), PackedInt32Array(48, 47, 49), PackedInt32Array(49, 47, 50), PackedInt32Array(52, 46, 51), PackedInt32Array(51, 46, 43), PackedInt32Array(55, 54, 53), PackedInt32Array(51, 56, 52), PackedInt32Array(52, 56, 57), PackedInt32Array(55, 53, 49), PackedInt32Array(60, 59, 58), PackedInt32Array(63, 62, 61), PackedInt32Array(55, 65, 64), PackedInt32Array(68, 67, 66), PackedInt32Array(60, 58, 69), PackedInt32Array(69, 58, 70), PackedInt32Array(63, 61, 71), PackedInt32Array(55, 64, 72), PackedInt32Array(68, 66, 73), PackedInt32Array(73, 66, 74), PackedInt32Array(57, 56, 75), PackedInt32Array(75, 56, 76), PackedInt32Array(63, 71, 48), PackedInt32Array(48, 71, 47), PackedInt32Array(78, 77, 76), PackedInt32Array(55, 72, 54), PackedInt32Array(69, 70, 78), PackedInt32Array(78, 70, 77), PackedInt32Array(78, 76, 50), PackedInt32Array(50, 76, 49), PackedInt32Array(49, 76, 56), PackedInt32Array(49, 56, 55), PackedInt32Array(73, 74, 75), PackedInt32Array(75, 74, 57)] geometry_parsed_geometry_type = 1 geometry_collision_mask = 4278190081 agent_height = 2.0 agent_radius = 0.75 -region_min_size = 14.0 edge_max_length = 4.0 [sub_resource type="PlaneMesh" id="PlaneMesh_nwuu1"] -size = Vector2(50, 50) +size = Vector2(20, 20) -[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_gyhlh"] -data = PackedVector3Array(25, 0, 25, -25, 0, 25, 25, 0, -25, -25, 0, 25, -25, 0, -25, 25, 0, -25) - -[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_m4lys"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_qfeop"] +points = PackedVector3Array(-10, 0, -10, -10, 0, 10, 10, 0, -10, 10, 0, 10) [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_u8j4k"] data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_e2fuu"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qfeop"] resource_local_to_scene = true albedo_texture = ExtResource("6_e2fuu") metallic = 1.0 @@ -85,7 +84,7 @@ _surfaces = [{ }] blend_shape_mode = 0 -[sub_resource type="ArrayMesh" id="ArrayMesh_hv7qb"] +[sub_resource type="ArrayMesh" id="ArrayMesh_1v8x7"] resource_local_to_scene = true _surfaces = [{ "aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5), @@ -94,7 +93,7 @@ _surfaces = [{ "index_count": 84, "index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"), "lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")], -"material": SubResource("StandardMaterial3D_e2fuu"), +"material": SubResource("StandardMaterial3D_qfeop"), "name": "Cube", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -104,7 +103,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_isly2") -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wxmii"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0p851"] resource_local_to_scene = true albedo_texture = ExtResource("6_e2fuu") metallic = 1.0 @@ -115,7 +114,7 @@ normal_texture = ExtResource("8_wxmii") ao_enabled = true texture_filter = 2 -[sub_resource type="ArrayMesh" id="ArrayMesh_nsdlh"] +[sub_resource type="ArrayMesh" id="ArrayMesh_uhukx"] resource_local_to_scene = true _surfaces = [{ "aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5), @@ -124,7 +123,7 @@ _surfaces = [{ "index_count": 84, "index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"), "lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")], -"material": SubResource("StandardMaterial3D_wxmii"), +"material": SubResource("StandardMaterial3D_0p851"), "name": "Cube", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -134,7 +133,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_isly2") -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_br5h1"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rrd17"] resource_local_to_scene = true albedo_texture = ExtResource("6_e2fuu") metallic = 1.0 @@ -145,7 +144,7 @@ normal_texture = ExtResource("8_wxmii") ao_enabled = true texture_filter = 2 -[sub_resource type="ArrayMesh" id="ArrayMesh_qluxd"] +[sub_resource type="ArrayMesh" id="ArrayMesh_saqgh"] resource_local_to_scene = true _surfaces = [{ "aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5), @@ -154,7 +153,7 @@ _surfaces = [{ "index_count": 84, "index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"), "lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")], -"material": SubResource("StandardMaterial3D_br5h1"), +"material": SubResource("StandardMaterial3D_rrd17"), "name": "Cube", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -240,51 +239,6 @@ data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1, [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_o1heh"] data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h6xp0"] -resource_local_to_scene = true -albedo_texture = ExtResource("6_e2fuu") -metallic = 1.0 -metallic_texture = ExtResource("7_hv7qb") -roughness_texture = ExtResource("9_nsdlh") -normal_enabled = true -normal_texture = ExtResource("8_wxmii") -ao_enabled = true -texture_filter = 2 - -[sub_resource type="ArrayMesh" id="ArrayMesh_u2hqf"] -_surfaces = [{ -"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5), -"format": 34896613377, -"index_count": 84, -"index_data": PackedByteArray("CgAGAAIAAgAEAAoABAAGAAoACwAEAAIADAAGAAQABAAIAAwACwAIAAQADAAIAAYAAgABAAsAAQAIAAsADQABAAIAAgAGAA0ABwABAA0ADQAGAAcACQABAAcACQAIAAEABwAGAA4ACQAHAAUABQAHAA4ABQAIAAkABgAIAA8AAwAIAAUADgAGAAAAAAAGAA8ADgAAAAUADwAIAAAABQAAAAMAAAAIAAMA"), -"lods": [0.108952, PackedByteArray("AgAGAAcABAAGAAIAAgABAAQABwABAAIABAAIAAYAAQAIAAQACQABAAcACQAIAAEACQAHAAUABQAIAAkABwAGAAAABwAAAAUABgAIAAAAAwAIAAUAAAAIAAMABQAAAAMA"), 0.261829, PackedByteArray("AAABAAIAAgABAAQAAQAAAAUABAADAAIAAQADAAQAAgADAAAABQADAAEABQAAAAMA"), 0.524037, PackedByteArray("AAABAAIAAgABAAMAAQAAAAMAAgADAAAA")], -"name": "Cube", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 16, -"vertex_data": PackedByteArray("AAAyM///AADc3f//AAAAAP//zMz//wAAAAAyMwAAAAD//zIzAAAAAAAAzMwAAAAA3N0AAP//AAAhIv////8AACEiAAAAAAAAISL//wAAAAD//zIz//8AAP//zMwAAAAA3N0AAAAAAADc3f////8AAAAAzMz//wAAISIAAP//AAA=") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_irt7r"] -resource_local_to_scene = true -_surfaces = [{ -"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5), -"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"), -"format": 34896613399, -"index_count": 84, -"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"), -"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")], -"material": SubResource("StandardMaterial3D_h6xp0"), -"name": "Cube", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 48, -"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_u2hqf") - [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_tx4qh"] data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5) @@ -338,28 +292,28 @@ transform = Transform3D(0.866025, -0.156955, -0.474726, 0.5, 0.271854, 0.82225, environment = SubResource("Environment_pwykw") [node name="GrunkBeast" parent="." instance=ExtResource("2_1lom2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7, 1.5, -18.3) -spawn_on_load = null -anger_level = null -point_of_interest = null -debug_destroy = null +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.7, 0, -24.3) +spawn_on_load = true + +[node name="WorldFloor" type="StaticBody3D" parent="." groups=["PlasticMaterial"]] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.001, 0) +collision_layer = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="WorldFloor"] +shape = SubResource("WorldBoundaryShape3D_m4lys") [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] navigation_mesh = SubResource("NavigationMesh_hv7qb") -[node name="WorldFloor" type="StaticBody3D" parent="NavigationRegion3D" groups=["PlasticMaterial"]] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.001, 0) -collision_layer = 5 +[node name="AreaFloor" type="StaticBody3D" parent="NavigationRegion3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5.5) -[node name="MeshInstance3D" type="MeshInstance3D" parent="NavigationRegion3D/WorldFloor"] +[node name="MeshInstance3D" type="MeshInstance3D" parent="NavigationRegion3D/AreaFloor"] mesh = SubResource("PlaneMesh_nwuu1") skeleton = NodePath("../../..") -[node name="CollisionShape3D3" type="CollisionShape3D" parent="NavigationRegion3D/WorldFloor"] -shape = SubResource("ConcavePolygonShape3D_gyhlh") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/WorldFloor"] -shape = SubResource("WorldBoundaryShape3D_m4lys") +[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/AreaFloor"] +shape = SubResource("ConvexPolygonShape3D_qfeop") [node name="Corridor1" type="Node3D" parent="NavigationRegion3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10.5) @@ -383,17 +337,17 @@ source_gunk_material = ExtResource("7_nsdlh") [node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9) -mesh = SubResource("ArrayMesh_hv7qb") +mesh = SubResource("ArrayMesh_1v8x7") skeleton = NodePath("") [node name="CrateLong3" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")] transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9) -mesh = SubResource("ArrayMesh_nsdlh") +mesh = SubResource("ArrayMesh_uhukx") skeleton = NodePath("") [node name="CrateLong2" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9) -mesh = SubResource("ArrayMesh_qluxd") +mesh = SubResource("ArrayMesh_saqgh") skeleton = NodePath("") [node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("10_br5h1")] @@ -498,7 +452,7 @@ process_material = SubResource("ParticleProcessMaterial_m3sro") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5) [node name="TarpCrateLogo" parent="NavigationRegion3D/Corridor1/Hallway2" instance=ExtResource("19_iuevq")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.8, -11.4) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.8, -14.4) skeleton = NodePath("") [node name="Hallway3" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"] @@ -527,11 +481,6 @@ process_material = SubResource("ParticleProcessMaterial_m3sro") [node name="OverheadLight" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("12_h6xp0")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5) -[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("5_18csx")] -transform = Transform3D(-4.37114e-08, -0.965926, 0.258819, 1.77636e-15, 0.258819, 0.965926, -1, 4.2222e-08, -1.13133e-08, 1.06072, 0.789149, 6.6) -mesh = SubResource("ArrayMesh_irt7r") -skeleton = NodePath("../..") - [node name="T-Junction2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -27, 0, -7.5) mesh = ExtResource("21_e5vs1") @@ -626,5 +575,17 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 1.5, -19.5) [node name="Bulkhead" parent="NavigationRegion3D" instance=ExtResource("27_18csx")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.5, 0, -18) +[node name="Bulkhead4" parent="NavigationRegion3D" instance=ExtResource("27_18csx")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 7.12879e-07, 0, -9.6) + +[node name="Bulkhead2" parent="NavigationRegion3D" instance=ExtResource("27_18csx")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -15.2724, 0, -18) + +[node name="Bulkhead3" parent="NavigationRegion3D" instance=ExtResource("27_18csx")] +transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, -26.9809, 0, -19.5) + [connection signal="activated" from="NavigationRegion3D/Corridor1/Hallway1/SwitchA2" to="NavigationRegion3D/Bulkhead" method="open"] +[connection signal="activated" from="NavigationRegion3D/Corridor1/Hallway1/SwitchA2" to="NavigationRegion3D/Bulkhead4" method="open"] +[connection signal="activated" from="NavigationRegion3D/Corridor1/Hallway1/SwitchA2" to="NavigationRegion3D/Bulkhead2" method="open"] +[connection signal="activated" from="NavigationRegion3D/Corridor1/Hallway1/SwitchA2" to="NavigationRegion3D/Bulkhead3" method="open"] [connection signal="activated" from="NavigationRegion3D/Corridor1/Hallway4/SwitchB1" to="NavigationRegion3D/Corridor1/Hallway4/SwitchB1" method="disable"] diff --git a/src/props/bulkhead/bulkhead.tscn b/src/props/bulkhead/bulkhead.tscn index 77d1269..d31e433 100644 --- a/src/props/bulkhead/bulkhead.tscn +++ b/src/props/bulkhead/bulkhead.tscn @@ -373,7 +373,7 @@ volume_db = -14.0 unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.45, 0) enabled = false -start_position = Vector3(0, 0, -1.5) -end_position = Vector3(0, 0, 1.5) +start_position = Vector3(0, 0, -0.5) +end_position = Vector3(0, 0, 0.5) [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] diff --git a/src/world/grunk_beast/behaviors/actions/pursue_target.gd b/src/world/grunk_beast/behaviors/actions/pursue_target.gd index 9682729..5aaa953 100644 --- a/src/world/grunk_beast/behaviors/actions/pursue_target.gd +++ b/src/world/grunk_beast/behaviors/actions/pursue_target.gd @@ -11,11 +11,6 @@ class_name PursueTarget extends ActionLeaf func tick(actor: Node, blackboard: Blackboard) -> int: - # Bug workaround -- do not update nav target while inside a link! - var beast := actor as GrunkBeast - if beast.traversing_link: - return RUNNING - if not blackboard.has_value(blackboard_key): return FAILURE diff --git a/src/world/grunk_beast/behaviors/actions/set_nav_target.gd b/src/world/grunk_beast/behaviors/actions/set_nav_target.gd index 3d62d28..0145e1c 100644 --- a/src/world/grunk_beast/behaviors/actions/set_nav_target.gd +++ b/src/world/grunk_beast/behaviors/actions/set_nav_target.gd @@ -11,14 +11,10 @@ class_name SetNavTarget extends ActionLeaf @export var blackboard_key := "target" @onready var nav_agent: NavigationAgent3D = %NavAgent +@onready var navigation_update_cooldown: Timer = %NavigationUpdateCooldown func tick(actor: Node, blackboard: Blackboard) -> int: - # Bug workaround -- do not update nav target while inside a link! - var beast := actor as GrunkBeast - if beast.traversing_link: - return RUNNING - if not blackboard.has_value(blackboard_key): return FAILURE diff --git a/src/world/grunk_beast/grunk_beast.gd b/src/world/grunk_beast/grunk_beast.gd index a13becf..6adf27e 100644 --- a/src/world/grunk_beast/grunk_beast.gd +++ b/src/world/grunk_beast/grunk_beast.gd @@ -166,7 +166,7 @@ func _physics_process(_delta: float) -> void: var motion := Vector3.ZERO - if pathfinding and not nav_agent.is_navigation_finished(): + if pathfinding and (traversing_link or not nav_agent.is_navigation_finished()): motion = global_position.direction_to(nav_agent.get_next_path_position()) * get_speed() motion.y = velocity.y diff --git a/src/world/grunk_beast/grunk_beast.tscn b/src/world/grunk_beast/grunk_beast.tscn index 9d35ab5..cba312a 100644 --- a/src/world/grunk_beast/grunk_beast.tscn +++ b/src/world/grunk_beast/grunk_beast.tscn @@ -96,7 +96,7 @@ script = ExtResource("4_csisu") [node name="NavAgent" type="NavigationAgent3D" parent="Navigation"] unique_name_in_owner = true -path_height_offset = 0.25 +path_postprocessing = 1 debug_enabled = true [node name="NavProbe" type="NavigationAgent3D" parent="Navigation"] @@ -164,6 +164,11 @@ one_shot = true [node name="AngerDecay" type="Timer" parent="."] autostart = true +[node name="NavigationUpdateCooldown" type="Timer" parent="."] +unique_name_in_owner = true +wait_time = 0.1 +one_shot = true + [node name="GrunkBeastBehavior" type="Node" parent="." node_paths=PackedStringArray("blackboard", "actor")] unique_name_in_owner = true script = ExtResource("6_d4ex2") @@ -384,7 +389,7 @@ metadata/_custom_type_script = "uid://cg016dbe7gs1x" script = ExtResource("11_mbqcc") mean_time = 4.0 st_dev_time = 0.6 -wait_time = 3.52478 +wait_time = 4.75634 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomInvestigationTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/TrackingMode/ActionSelector/InvestigateAction/AlwaysSucceedDecorator/InvestigateSequence/RandomDelay"] @@ -478,7 +483,7 @@ metadata/_custom_type_script = "uid://bogt3htgqe12s" script = ExtResource("11_mbqcc") mean_time = 9.0 st_dev_time = 1.0 -wait_time = 9.52982 +wait_time = 9.92344 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomLurkTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/LurkingMode/RandomDelay"] diff --git a/src/world/grunk_beast/shambler/shambler.tscn b/src/world/grunk_beast/shambler/shambler.tscn index a24f87b..243cf74 100644 --- a/src/world/grunk_beast/shambler/shambler.tscn +++ b/src/world/grunk_beast/shambler/shambler.tscn @@ -331,7 +331,7 @@ primary_limit_angle = 1.5708 primary_damp_threshold = 0.4 [node name="SleeveL" type="BoneAttachment3D" parent="Armature/Skeleton3D" index="2"] -transform = Transform3D(0.0438309, 7.45058e-08, -0.999039, 0.999039, 6.10948e-07, 0.0438309, 7.37607e-07, -1, -4.47035e-08, 1.63061, 0.0124229, 0.803842) +transform = Transform3D(0.0438309, 7.45058e-08, -0.999039, -0.998162, -0.0418897, -0.0437925, -0.0418494, 0.999122, -0.0018359, 0.214328, -0.075648, -0.79725) bone_name = "Sleeve.L" bone_idx = 27 @@ -342,7 +342,7 @@ particle_scene = ExtResource("5_lqi3b") metadata/_custom_type_script = "uid://cuqr167olan8n" [node name="SleeveR" type="BoneAttachment3D" parent="Armature/Skeleton3D" index="3"] -transform = Transform3D(0.0438309, -7.45058e-08, 0.999039, -0.999039, 6.10948e-07, 0.0438309, -7.37607e-07, -1, -4.47035e-08, -1.63061, 0.0124234, 0.803842) +transform = Transform3D(0.0438309, -7.45058e-08, 0.999039, 0.998162, -0.0418897, -0.0437925, 0.0418494, 0.999122, -0.0018359, -0.214327, -0.0756485, -0.79725) bone_name = "Sleeve.R" bone_idx = 31