Add AI and Patrol components, update related resources and presenters

This commit is contained in:
2025-10-30 21:53:31 +01:00
parent 90d3abd83f
commit 5ea02e7bf9
18 changed files with 361 additions and 22 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=4 uid="uid://bkvgcsb8d3v7p"]
[gd_scene load_steps=37 format=4 uid="uid://bkvgcsb8d3v7p"]
[ext_resource type="Script" uid="uid://cfpm5p102f65x" path="res://Code/Presenters/GamePresenter.cs" id="1_qvgq0"]
[ext_resource type="Resource" uid="uid://biev6ri5s8kyf" path="res://Resources/Entities/player.tres" id="2_alii3"]
@@ -18,19 +18,25 @@
[ext_resource type="Script" uid="uid://dngi4w4ae8wyr" path="res://Code/Resources/OpenDoorActionResource.cs" id="16_vpkaq"]
[ext_resource type="Script" uid="uid://c4csquqmqqqww" path="res://Code/Resources/LogicSequenceComponentResource.cs" id="17_df4ul"]
[ext_resource type="Script" uid="uid://d3u3q5yhenegb" path="res://Code/Resources/CloseDoorActionResource.cs" id="17_q0a86"]
[ext_resource type="PackedScene" uid="uid://c52xl2srv7vg5" path="res://Objects/enemy_ai.tscn" id="19_q0a86"]
[ext_resource type="Script" uid="uid://b583iynr5p62n" path="res://Code/Presenters/PatrolComponentPresenter.cs" id="20_3hp7m"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ucfah"]
data = PackedVector3Array(-4.282257, -0.5, 4.977783, -4.282257, -0.5, -4.977783, -4.282257, 0.5, -4.977783, 4.282257, -0.5, -4.977783, -4.282257, -0.5, -4.977783, -4.282257, -0.5, 4.977783, -4.282257, 0.5, -4.977783, -4.282257, -0.5, -4.977783, 4.282257, -0.5, -4.977783, -4.282257, 0.5, -4.977783, -4.282257, 0.5, 4.977783, -4.282257, -0.5, 4.977783, -4.282257, -0.5, 4.977783, -4.282257, 0.5, 4.977783, 4.282257, 0.5, 4.977783, 4.282257, 0.5, 4.977783, -4.282257, 0.5, 4.977783, -4.282257, 0.5, -4.977783, -4.282257, -0.5, 4.977783, 4.282257, -0.5, 4.977783, 4.282257, -0.5, -4.977783, 4.282257, 0.5, 4.977783, 4.282257, -0.5, 4.977783, -4.282257, -0.5, 4.977783, 4.282257, -0.5, -4.977783, 4.282257, -0.5, 4.977783, 4.282257, 0.5, 4.977783, 4.282257, -0.5, -4.977783, 4.282257, 0.5, -4.977783, -4.282257, 0.5, -4.977783, -4.282257, 0.5, -4.977783, 4.282257, 0.5, -4.977783, 4.282257, 0.5, 4.977783, 4.282257, 0.5, 4.977783, 4.282257, 0.5, -4.977783, 4.282257, -0.5, -4.977783)
[sub_resource type="NavigationMesh" id="NavigationMesh_q0a86"]
vertices = PackedVector3Array(-12.066559, 0.14160275, -15.827454, -12.066559, 0.14160275, 10.172546, 12.183441, 0.14160275, 10.172546, 12.183441, 0.14160275, -15.827454)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1)]
[sub_resource type="ArrayMesh" id="ArrayMesh_ucfah"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_df4ul"]
data = PackedVector3Array(-12.6594925, -0.5, 13.537674, -12.6594925, -0.5, -13.537674, -12.6594925, 0.5, -13.537674, 12.6594925, -0.5, -13.537674, -12.6594925, -0.5, -13.537674, -12.6594925, -0.5, 13.537674, -12.6594925, 0.5, -13.537674, -12.6594925, -0.5, -13.537674, 12.6594925, -0.5, -13.537674, -12.6594925, 0.5, -13.537674, -12.6594925, 0.5, 13.537674, -12.6594925, -0.5, 13.537674, -12.6594925, -0.5, 13.537674, -12.6594925, 0.5, 13.537674, 12.6594925, 0.5, 13.537674, 12.6594925, 0.5, 13.537674, -12.6594925, 0.5, 13.537674, -12.6594925, 0.5, -13.537674, -12.6594925, -0.5, 13.537674, 12.6594925, -0.5, 13.537674, 12.6594925, -0.5, -13.537674, 12.6594925, 0.5, 13.537674, 12.6594925, -0.5, 13.537674, -12.6594925, -0.5, 13.537674, 12.6594925, -0.5, -13.537674, 12.6594925, -0.5, 13.537674, 12.6594925, 0.5, 13.537674, 12.6594925, -0.5, -13.537674, 12.6594925, 0.5, -13.537674, -12.6594925, 0.5, -13.537674, -12.6594925, 0.5, -13.537674, 12.6594925, 0.5, -13.537674, 12.6594925, 0.5, 13.537674, 12.6594925, 0.5, 13.537674, 12.6594925, 0.5, -13.537674, 12.6594925, -0.5, -13.537674)
[sub_resource type="ArrayMesh" id="ArrayMesh_q0a86"]
_surfaces = [{
"aabb": AABB(-4.282257, -0.5, -4.977783, 8.564514, 1, 9.955566),
"aabb": AABB(-12.6594925, -0.5, -13.537674, 25.318985, 1, 27.075348),
"attribute_data": PackedByteArray("AACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAgD8AAIA/"),
"format": 34359738391,
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 36,
"vertex_data": PackedByteArray("QAiJwAAAAL8ASp9AQAiJwAAAAL8ASp/AQAiJwAAAAD8ASp/AQAiJQAAAAL8ASp/AQAiJwAAAAL8ASp/AQAiJwAAAAL8ASp9AQAiJwAAAAD8ASp/AQAiJwAAAAL8ASp/AQAiJQAAAAL8ASp/AQAiJwAAAAD8ASp/AQAiJwAAAAD8ASp9AQAiJwAAAAL8ASp9AQAiJwAAAAL8ASp9AQAiJwAAAAD8ASp9AQAiJQAAAAD8ASp9AQAiJQAAAAD8ASp9AQAiJwAAAAD8ASp9AQAiJwAAAAD8ASp/AQAiJwAAAAL8ASp9AQAiJQAAAAL8ASp9AQAiJQAAAAL8ASp/AQAiJQAAAAD8ASp9AQAiJQAAAAL8ASp9AQAiJwAAAAL8ASp9AQAiJQAAAAL8ASp/AQAiJQAAAAL8ASp9AQAiJQAAAAD8ASp9AQAiJQAAAAL8ASp/AQAiJQAAAAD8ASp/AQAiJwAAAAD8ASp/AQAiJwAAAAD8ASp/AQAiJQAAAAD8ASp/AQAiJQAAAAD8ASp9AQAiJQAAAAD8ASp9AQAiJQAAAAD8ASp/AQAiJQAAAAL8ASp/AAAD/f/9//n8AAP9//3/+fwAA/3//f/5//38AAP//AAD/fwAA//8AAP9/AAD//wAA/////wAA/z//////AAD/P/////8AAP8/AAD/f/9//n8AAP9//3/+fwAA/3//f/5//3//fwAA/z//f/9/AAD/P/9//38AAP8//3//////AAD/f/////8AAP9//////wAA/38AAP//AAD/fwAA//8AAP9/AAD//wAA/3//fwAA/z//f/9/AAD/P/9//38AAP8/////f/9//n////9//3/+f////3//f/5//////wAA/z//////AAD/P/////8AAP8//3//////AAD/f/////8AAP9//////wAA////f/9//n////9//3/+f////3//f/5/")
"vertex_data": PackedByteArray("SI1KwQAAAL9QmlhBSI1KwQAAAL9QmljBSI1KwQAAAD9QmljBSI1KQQAAAL9QmljBSI1KwQAAAL9QmljBSI1KwQAAAL9QmlhBSI1KwQAAAD9QmljBSI1KwQAAAL9QmljBSI1KQQAAAL9QmljBSI1KwQAAAD9QmljBSI1KwQAAAD9QmlhBSI1KwQAAAL9QmlhBSI1KwQAAAL9QmlhBSI1KwQAAAD9QmlhBSI1KQQAAAD9QmlhBSI1KQQAAAD9QmlhBSI1KwQAAAD9QmlhBSI1KwQAAAD9QmljBSI1KwQAAAL9QmlhBSI1KQQAAAL9QmlhBSI1KQQAAAL9QmljBSI1KQQAAAD9QmlhBSI1KQQAAAL9QmlhBSI1KwQAAAL9QmlhBSI1KQQAAAL9QmljBSI1KQQAAAL9QmlhBSI1KQQAAAD9QmlhBSI1KQQAAAL9QmljBSI1KQQAAAD9QmljBSI1KwQAAAD9QmljBSI1KwQAAAD9QmljBSI1KQQAAAD9QmljBSI1KQQAAAD9QmlhBSI1KQQAAAD9QmlhBSI1KQQAAAD9QmljBSI1KQQAAAL9QmljBAAD/f/9//n8AAP9//3/+fwAA/3//f/5//38AAP//AAD/fwAA//8AAP9/AAD//wAA/////wAA/z//////AAD/P/////8AAP8/AAD/f/9//n8AAP9//3/+fwAA/3//f/5//3//fwAA/z//f/9/AAD/P/9//38AAP8//3//////AAD/f/////8AAP9//////wAA/38AAP//AAD/fwAA//8AAP9/AAD//wAA/3//fwAA/z//f/9/AAD/P/9//38AAP8/////f/9//n////9//3/+f////3//f/5//////wAA/z//////AAD/P/////8AAP8//3//////AAD/f/////8AAP9//////wAA////f/9//n////9//3/+f////3//f/5/")
}]
[sub_resource type="SphereMesh" id="SphereMesh_27os8"]
@@ -92,18 +98,23 @@ metadata/_custom_type_script = "uid://c4csquqmqqqww"
[node name="Geometry" type="Node" parent="."]
[node name="CSGBox3D" type="CSGBox3D" parent="Geometry"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.23013306, 0, 0.34545898)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.092933655, 15.962494, -2.7897797)
visible = false
size = Vector3(8.564514, 1, 9.955566)
size = Vector3(25.318985, 1, 27.075348)
[node name="CSGBakedMeshInstance3D" type="StaticBody3D" parent="Geometry"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.23013306, -1.5645537, 0.34545898)
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="Geometry"]
navigation_mesh = SubResource("NavigationMesh_q0a86")
[node name="CSGBakedCollisionShape3D" type="CollisionShape3D" parent="Geometry/CSGBakedMeshInstance3D"]
shape = SubResource("ConcavePolygonShape3D_ucfah")
[node name="StaticBody3D" type="StaticBody3D" parent="Geometry/NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.73305273, 0)
[node name="CSGBakedMeshInstance3D2" type="MeshInstance3D" parent="Geometry/CSGBakedMeshInstance3D"]
mesh = SubResource("ArrayMesh_ucfah")
[node name="CSGBakedCollisionShape3D" type="CollisionShape3D" parent="Geometry/NavigationRegion3D/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.092933655, 0, -2.7897797)
shape = SubResource("ConcavePolygonShape3D_df4ul")
[node name="CSGBakedMeshInstance3D" type="MeshInstance3D" parent="Geometry/NavigationRegion3D/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.092933655, -0.8753445, -2.7897797)
mesh = SubResource("ArrayMesh_q0a86")
skeleton = NodePath("../../..")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry"]
@@ -267,10 +278,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5896075, -0.81455386, -3.99
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4061804, -0.56455374, 4.434821)
[node name="Knife" parent="." instance=ExtResource("11_l855d")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.7087288, -0.8145535, 4.6141477)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.7087288, -0.03280258, 4.6141477)
[node name="Pistol" parent="." instance=ExtResource("12_00aki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.122588, -0.81455374, 1.582226)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.122588, 0.07612455, 1.582226)
[node name="GreenDoor" parent="." instance=ExtResource("13_00aki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8655286, -0.0645535, 5.593994)
@@ -289,3 +300,19 @@ metadata/_custom_type_script = "uid://cb7vaw6xqjs1i"
script = ExtResource("5_f1ejf")
ComponentResources = Array[Resource]([SubResource("Resource_3hp7m")])
metadata/_custom_type_script = "uid://b6x8llipvutqs"
[node name="Enemy AI" parent="." instance=ExtResource("19_q0a86")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.73215866, -1.0429426, -12.651663)
[node name="PatrolComponentPresenter" type="Node" parent="Enemy AI" node_paths=PackedStringArray("PatrolPoints")]
script = ExtResource("20_3hp7m")
PatrolPoints = [NodePath("../../PatrolPoints/Marker3D"), NodePath("../../PatrolPoints/Marker3D2")]
metadata/_custom_type_script = "uid://b583iynr5p62n"
[node name="PatrolPoints" type="Node3D" parent="."]
[node name="Marker3D" type="Marker3D" parent="PatrolPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12.76429)
[node name="Marker3D2" type="Marker3D" parent="PatrolPoints"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.840687, 0, -12.76429)