Compare commits
1 Commits
28338982bf
...
vagon
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f7f9d6ae3 |
@@ -2,7 +2,7 @@ extends CharacterBody3D
|
|||||||
|
|
||||||
class_name AIBase
|
class_name AIBase
|
||||||
|
|
||||||
@export_group("Settings")
|
@export_group("Movement")
|
||||||
@export var speed: float = 4.0
|
@export var speed: float = 4.0
|
||||||
var _enable_state_machine: bool = true
|
var _enable_state_machine: bool = true
|
||||||
@export var enable_state_machine: bool:
|
@export var enable_state_machine: bool:
|
||||||
@@ -11,7 +11,10 @@ var _enable_state_machine: bool = true
|
|||||||
toggle_enable_state_machine()
|
toggle_enable_state_machine()
|
||||||
get:
|
get:
|
||||||
return _enable_state_machine
|
return _enable_state_machine
|
||||||
@export var anim_player: AnimationPlayer
|
|
||||||
|
@onready var patrol_radius_shape: CollisionShape3D = $%PatrolRadiusShape
|
||||||
|
@onready var nav_agent: NavigationAgent3D = $%NavigationAgent3D
|
||||||
|
@onready var state_machine: StateMachine = $%StateMachine
|
||||||
|
|
||||||
@export_group("Entities")
|
@export_group("Entities")
|
||||||
enum EntityType { HUMANOID, ANIMAL }
|
enum EntityType { HUMANOID, ANIMAL }
|
||||||
@@ -20,9 +23,6 @@ enum EntityType { HUMANOID, ANIMAL }
|
|||||||
@export var allowed_biomes: Array[String] = []
|
@export var allowed_biomes: Array[String] = []
|
||||||
@export_range(0.0, 100.0, 0.1) var spawn_uniqueness: float = 1.0
|
@export_range(0.0, 100.0, 0.1) var spawn_uniqueness: float = 1.0
|
||||||
|
|
||||||
@onready var patrol_radius_shape: CollisionShape3D = $%PatrolRadiusShape
|
|
||||||
@onready var nav_agent: NavigationAgent3D = $%NavigationAgent3D
|
|
||||||
@onready var state_machine: StateMachine = $%StateMachine
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
randomize()
|
randomize()
|
||||||
@@ -48,11 +48,6 @@ func _physics_process(delta: float) -> void:
|
|||||||
velocity.x = direction.x * speed
|
velocity.x = direction.x * speed
|
||||||
velocity.z = direction.z * speed
|
velocity.z = direction.z * speed
|
||||||
|
|
||||||
if velocity.length_squared() > 0.1:
|
|
||||||
var look_dir = Vector3(velocity.x, 0, velocity.z)
|
|
||||||
var target_transform = global_transform.looking_at(global_position - look_dir, Vector3.UP)
|
|
||||||
global_transform = global_transform.interpolate_with(target_transform, delta * 10.0)
|
|
||||||
|
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
|
||||||
func navigate_to_random_point() -> void:
|
func navigate_to_random_point() -> void:
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b30p1yqojbbbk" path="res://core/ai/agents/base/ai_base.gd" id="1_4d1nn"]
|
[ext_resource type="Script" uid="uid://b30p1yqojbbbk" path="res://core/ai/agents/base/ai_base.gd" id="1_4d1nn"]
|
||||||
[ext_resource type="Script" uid="uid://ps3vlu2qvmop" path="res://core/ai/framework/state_machine.gd" id="2_q1hg3"]
|
[ext_resource type="Script" uid="uid://ps3vlu2qvmop" path="res://core/ai/framework/state_machine.gd" id="2_q1hg3"]
|
||||||
|
[ext_resource type="Script" uid="uid://nga8qx56iwgu" path="res://core/ai/agents/base/idle_state.gd" id="3_26faq"]
|
||||||
|
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/agents/base/patrol_state.gd" id="4_lim44"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleMesh" id="CapsuleMesh_mh3lg"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mh3lg"]
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_lim44"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_lim44"]
|
||||||
radius = 20.0
|
radius = 20.0
|
||||||
@@ -10,12 +16,27 @@ radius = 20.0
|
|||||||
script = ExtResource("1_4d1nn")
|
script = ExtResource("1_4d1nn")
|
||||||
entity_name = "Humanoid"
|
entity_name = "Humanoid"
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=214482161]
|
||||||
|
mesh = SubResource("CapsuleMesh_mh3lg")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=92811823]
|
||||||
|
shape = SubResource("CapsuleShape3D_mh3lg")
|
||||||
|
|
||||||
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=1370024449]
|
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=1370024449]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="StateMachine" type="Node" parent="." unique_id=1286404264]
|
[node name="StateMachine" type="Node" parent="." unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("2_q1hg3")
|
script = ExtResource("2_q1hg3")
|
||||||
|
initial_state = NodePath("IdleState")
|
||||||
|
|
||||||
|
[node name="IdleState" type="Node" parent="StateMachine" unique_id=763668255]
|
||||||
|
script = ExtResource("3_26faq")
|
||||||
|
state_id = &"idle"
|
||||||
|
|
||||||
|
[node name="PatrolState" type="Node" parent="StateMachine" unique_id=2054606629]
|
||||||
|
script = ExtResource("4_lim44")
|
||||||
|
state_id = &"patrol"
|
||||||
|
|
||||||
[node name="PatrolRadiusShape" type="CollisionShape3D" parent="." unique_id=1379515938]
|
[node name="PatrolRadiusShape" type="CollisionShape3D" parent="." unique_id=1379515938]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
26
core/ai/agents/base/idle_state.gd
Normal file
26
core/ai/agents/base/idle_state.gd
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
extends State
|
||||||
|
|
||||||
|
const PATROL_STATE_ID: StringName = &"patrol"
|
||||||
|
|
||||||
|
@export var wait_time: float = 3.0
|
||||||
|
|
||||||
|
var runtime_timer: Timer
|
||||||
|
|
||||||
|
func enter() -> void:
|
||||||
|
runtime_timer = Timer.new()
|
||||||
|
runtime_timer.name = "IdleTimer"
|
||||||
|
add_child(runtime_timer)
|
||||||
|
runtime_timer.one_shot = true
|
||||||
|
runtime_timer.timeout.connect(_on_timer_timeout)
|
||||||
|
runtime_timer.start(wait_time)
|
||||||
|
|
||||||
|
func exit() -> void:
|
||||||
|
if runtime_timer:
|
||||||
|
if runtime_timer.is_connected("timeout", _on_timer_timeout):
|
||||||
|
runtime_timer.timeout.disconnect(_on_timer_timeout)
|
||||||
|
|
||||||
|
runtime_timer.queue_free()
|
||||||
|
runtime_timer = null
|
||||||
|
|
||||||
|
func _on_timer_timeout() -> void:
|
||||||
|
transitioned.emit(self, PATROL_STATE_ID)
|
||||||
1
core/ai/agents/base/idle_state.gd.uid
Normal file
1
core/ai/agents/base/idle_state.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://nga8qx56iwgu
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
extends State
|
extends State
|
||||||
|
|
||||||
|
const IDLE_STATE_ID: StringName = &"idle"
|
||||||
|
|
||||||
|
@onready var agent: AIBase = owner
|
||||||
|
|
||||||
func enter() -> void:
|
func enter() -> void:
|
||||||
super.enter()
|
|
||||||
run_animation()
|
|
||||||
agent.navigate_to_random_point()
|
agent.navigate_to_random_point()
|
||||||
|
|
||||||
func physics_update(_delta) -> void:
|
func physics_update(_delta) -> void:
|
||||||
if agent.nav_agent.is_navigation_finished():
|
if agent.nav_agent.is_navigation_finished():
|
||||||
transitioned.emit(self, next_state_id)
|
transitioned.emit(self, IDLE_STATE_ID)
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://dd8wn62anbts8"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_p2hpa"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bjp8wbrtfl4v2" path="res://core/ai/agents/cow/cow_mannequin.tscn" id="2_6gadt"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_vlvvc"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_su7en"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_6gadt"]
|
|
||||||
size = Vector3(1, 1.4033203, 2.201294)
|
|
||||||
|
|
||||||
[node name="AiCow" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_p2hpa")]
|
|
||||||
anim_player = NodePath("CowMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.20166016, 0.24859619)
|
|
||||||
shape = SubResource("BoxShape3D_6gadt")
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=2033863310]
|
|
||||||
script = ExtResource("2_vlvvc")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=2076820654]
|
|
||||||
script = ExtResource("3_su7en")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="CowMannequin" parent="." index="5" unique_id=1390675137 instance=ExtResource("2_6gadt")]
|
|
||||||
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[editable path="CowMannequin"]
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,81 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://bjp8wbrtfl4v2"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b7d57tyxi41r1" path="res://core/ai/agents/cow/cow.fbx" id="1_60f5q"]
|
|
||||||
[ext_resource type="Animation" uid="uid://bsuoywknbbnm0" path="res://core/ai/agents/cow/idle.res" id="2_5ukcj"]
|
|
||||||
[ext_resource type="Animation" uid="uid://ckmybsnuf4stp" path="res://core/ai/agents/cow/walking.res" id="3_0mu5m"]
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lowte"]
|
|
||||||
_data = {
|
|
||||||
&"idle": ExtResource("2_5ukcj"),
|
|
||||||
&"walking": ExtResource("3_0mu5m")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="CowMannequin" unique_id=786985233 instance=ExtResource("1_60f5q")]
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(792301245) index="0" unique_id=1950086664]
|
|
||||||
bones/1/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
|
|
||||||
bones/1/scale = Vector3(1, 1, 1)
|
|
||||||
bones/4/rotation = Quaternion(0.0015316998, -0.0015319793, 0.70710516, 0.70710516)
|
|
||||||
bones/5/position = Vector3(1.3183898e-16, 0.006025583, -6.675722e-10)
|
|
||||||
bones/5/rotation = Quaternion(0.703962, -0.69745475, -0.08083715, 0.10705068)
|
|
||||||
bones/5/scale = Vector3(1, 0.99999976, 1)
|
|
||||||
bones/6/position = Vector3(-1.403955e-10, 0.009248152, 3.7406075e-11)
|
|
||||||
bones/6/rotation = Quaternion(0.18324056, -0.018661192, 0.0034790868, 0.98288476)
|
|
||||||
bones/6/scale = Vector3(1, 1, 1)
|
|
||||||
bones/8/scale = Vector3(0.99999994, 0.99999994, 1)
|
|
||||||
bones/9/position = Vector3(-3.8163916e-17, 0.0046958304, 1.907358e-10)
|
|
||||||
bones/9/rotation = Quaternion(0.6754388, -0.68119305, 0.18401879, -0.21423234)
|
|
||||||
bones/9/scale = Vector3(1, 0.99999994, 1.0000001)
|
|
||||||
bones/10/position = Vector3(7.2902e-10, 0.011755081, -3.0995417e-10)
|
|
||||||
bones/10/rotation = Quaternion(-0.35146433, 0.018116632, 0.0068026204, 0.9360013)
|
|
||||||
bones/10/scale = Vector3(0.9999999, 1, 1.0000001)
|
|
||||||
bones/12/rotation = Quaternion(0.707105, 0.70710486, 0.0016303749, -0.0016306548)
|
|
||||||
bones/12/scale = Vector3(1, 1, 1)
|
|
||||||
bones/13/position = Vector3(-1.5265567e-16, 0.0060255853, 6.6757205e-10)
|
|
||||||
bones/13/rotation = Quaternion(-0.057434652, -0.13032891, 0.70625645, 0.69348216)
|
|
||||||
bones/13/scale = Vector3(0.99999994, 1, 0.9999999)
|
|
||||||
bones/14/position = Vector3(-4.5945833e-10, 0.009248151, -5.7053273e-09)
|
|
||||||
bones/14/rotation = Quaternion(0.18302466, 0.051401887, -0.0095829815, 0.9817169)
|
|
||||||
bones/14/scale = Vector3(1, 1.0000001, 0.99999994)
|
|
||||||
bones/16/rotation = Quaternion(0.7071062, 0.7071063, 0.0008663558, -0.0008670737)
|
|
||||||
bones/16/scale = Vector3(1, 1, 1)
|
|
||||||
bones/17/position = Vector3(1.7347235e-17, 0.0046958304, -1.9073432e-10)
|
|
||||||
bones/17/rotation = Quaternion(0.1907959, 0.2076444, 0.67355627, 0.6832297)
|
|
||||||
bones/17/scale = Vector3(1, 1, 1.0000001)
|
|
||||||
bones/18/position = Vector3(1.834215e-10, 0.011755081, -1.7500804e-09)
|
|
||||||
bones/18/rotation = Quaternion(-0.35151497, -0.0088962475, -0.003340601, 0.93613404)
|
|
||||||
bones/18/scale = Vector3(1, 1.0000001, 0.99999994)
|
|
||||||
bones/20/rotation = Quaternion(0.60080343, -0.03016121, 0.03526711, 0.7980488)
|
|
||||||
bones/21/position = Vector3(0.00011168665, 0.0039693406, -0.013754063)
|
|
||||||
bones/21/rotation = Quaternion(0.98885596, 3.1474094e-08, 2.23642e-07, -0.14887528)
|
|
||||||
bones/21/scale = Vector3(1, 1.0000001, 1.0000001)
|
|
||||||
bones/22/position = Vector3(-2.5714557e-11, 0.00836347, -9.433328e-09)
|
|
||||||
bones/22/rotation = Quaternion(-0.6231534, 9.0575064e-08, -7.589477e-08, 0.78209966)
|
|
||||||
bones/22/scale = Vector3(1, 0.9999999, 0.99999994)
|
|
||||||
bones/23/position = Vector3(-2.1545942e-12, 0.0072733457, -2.594807e-09)
|
|
||||||
bones/23/rotation = Quaternion(-1.8223004e-08, 0.98608583, -0.16623694, 2.7314604e-07)
|
|
||||||
bones/23/scale = Vector3(1, 0.9999997, 0.9999997)
|
|
||||||
bones/24/position = Vector3(3.3663968e-13, 0.006993335, -2.8376712e-09)
|
|
||||||
bones/24/rotation = Quaternion(-0.048028953, 2.6759114e-08, 4.5447155e-08, 0.998846)
|
|
||||||
bones/24/scale = Vector3(1, 0.99999994, 1.0000001)
|
|
||||||
bones/26/rotation = Quaternion(0.0054439656, 0.86556005, 0.50029516, -0.021930087)
|
|
||||||
bones/26/scale = Vector3(1, 1.0000002, 1)
|
|
||||||
bones/27/position = Vector3(1.8971762e-10, 0.013189232, -5.7312505e-10)
|
|
||||||
bones/27/rotation = Quaternion(0.15129425, -0.018451845, -0.013046658, 0.9882304)
|
|
||||||
bones/27/scale = Vector3(0.99999994, 0.99999994, 1.0000001)
|
|
||||||
bones/28/position = Vector3(-2.1601461e-10, 0.013573305, 4.8459786e-10)
|
|
||||||
bones/28/rotation = Quaternion(-0.6245376, -0.19781438, 0.16660775, 0.7369289)
|
|
||||||
bones/28/scale = Vector3(1, 0.9999999, 1.0000001)
|
|
||||||
bones/30/rotation = Quaternion(3.5765906e-06, 0.67050743, 0.7419029, 3.2289404e-06)
|
|
||||||
bones/31/position = Vector3(-1.2499713e-14, 0.01925819, -1.2902629e-09)
|
|
||||||
bones/31/rotation = Quaternion(0.086390205, 0.0012038474, -0.013495129, 0.99616927)
|
|
||||||
bones/31/scale = Vector3(0.9999999, 0.99999994, 1)
|
|
||||||
bones/33/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
|
|
||||||
bones/33/scale = Vector3(1, 1, 1)
|
|
||||||
bones/35/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
|
|
||||||
bones/35/scale = Vector3(1, 1, 1)
|
|
||||||
bones/37/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
|
|
||||||
bones/37/scale = Vector3(1, 1, 1)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="." index="1" unique_id=1401028430]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_lowte")
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,79 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://cayakdk7gmlyg"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_e5v3h"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dqhueybnlrrqx" path="res://core/ai/agents/horse/horse_mannequin.tscn" id="2_4t6jw"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_or6xs"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_n63jb"]
|
|
||||||
[ext_resource type="Animation" uid="uid://doyi6etqvy4n2" path="res://core/ai/agents/horse/idle.res" id="3_qe4rt"]
|
|
||||||
[ext_resource type="Animation" uid="uid://hotr7r3fd1sq" path="res://core/ai/agents/horse/walking.res" id="4_q8m0v"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_4t6jw"]
|
|
||||||
size = Vector3(1, 1.4991455, 1.7949219)
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_or6xs"]
|
|
||||||
_data = {
|
|
||||||
&"idle": ExtResource("3_qe4rt"),
|
|
||||||
&"walking": ExtResource("4_q8m0v")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="AiHorse" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_e5v3h")]
|
|
||||||
anim_player = NodePath("HorseMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2074585, 0.14794922)
|
|
||||||
shape = SubResource("BoxShape3D_4t6jw")
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=734754793]
|
|
||||||
script = ExtResource("2_or6xs")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=1748382252]
|
|
||||||
script = ExtResource("3_n63jb")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="HorseMannequin" parent="." index="5" unique_id=1289880358 instance=ExtResource("2_4t6jw")]
|
|
||||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="HorseMannequin/Armature" parent_id_path=PackedInt32Array(1289880358, 245823720) index="0" unique_id=494955820]
|
|
||||||
bones/1/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
|
|
||||||
bones/4/rotation = Quaternion(0.0012952884, -0.0012955684, 0.7071056, 0.7071057)
|
|
||||||
bones/5/rotation = Quaternion(0.70685357, -0.70227593, -0.04508998, 0.07164877)
|
|
||||||
bones/6/rotation = Quaternion(0.13314606, -0.018813655, 0.0025279524, 0.9909147)
|
|
||||||
bones/8/rotation = Quaternion(0.00078355736, -0.00078427553, 0.70710635, 0.70710635)
|
|
||||||
bones/9/rotation = Quaternion(0.6711558, -0.6744515, 0.20213859, -0.23195927)
|
|
||||||
bones/10/rotation = Quaternion(-0.3574636, 0.018072592, 0.006918765, 0.9337266)
|
|
||||||
bones/12/rotation = Quaternion(0.7071054, 0.7071055, 0.0013743625, -0.0013746425)
|
|
||||||
bones/13/rotation = Quaternion(-0.02159133, -0.09508795, 0.70796114, 0.69948786)
|
|
||||||
bones/14/rotation = Quaternion(0.13298893, 0.051821847, -0.0069631753, 0.9897374)
|
|
||||||
bones/16/rotation = Quaternion(0.7071064, 0.70710653, 0.00066260004, -0.00066331815)
|
|
||||||
bones/17/rotation = Quaternion(0.20885532, 0.22542001, 0.6690968, 0.6766645)
|
|
||||||
bones/18/rotation = Quaternion(-0.3575147, -0.008874607, -0.003397635, 0.9338592)
|
|
||||||
bones/20/rotation = Quaternion(0.6010642, -0.021428203, 0.02848876, 0.79840535)
|
|
||||||
bones/21/rotation = Quaternion(0.99267024, 2.482745e-08, 2.2239277e-07, -0.12085533)
|
|
||||||
bones/22/rotation = Quaternion(-0.6165577, 9.507701e-08, -7.2693986e-08, 0.7873097)
|
|
||||||
bones/23/rotation = Quaternion(-1.5614631e-08, 0.9891947, -0.14660779, 2.7153942e-07)
|
|
||||||
bones/24/rotation = Quaternion(0.03904001, 3.5621138e-08, 1.47960275e-08, 0.99923766)
|
|
||||||
bones/26/rotation = Quaternion(0.008421451, 0.95973384, 0.27944198, -0.027427308)
|
|
||||||
bones/27/rotation = Quaternion(-0.08868468, -0.022488868, -0.01781765, 0.9956465)
|
|
||||||
bones/28/rotation = Quaternion(-0.62453747, -0.1978144, 0.1666077, 0.736929)
|
|
||||||
bones/30/rotation = Quaternion(3.4527793e-06, 0.6944211, 0.71956885, 3.3297817e-06)
|
|
||||||
bones/31/rotation = Quaternion(0.053752482, 0.0007617086, -0.013526975, 0.9984624)
|
|
||||||
bones/33/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
|
|
||||||
bones/35/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
|
|
||||||
bones/37/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="HorseMannequin" index="1" unique_id=272680130]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_or6xs")
|
|
||||||
|
|
||||||
[editable path="HorseMannequin"]
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://dqhueybnlrrqx"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://be1ql8okme4n7" path="res://core/ai/agents/horse/horse.fbx" id="1_fbqil"]
|
|
||||||
|
|
||||||
[node name="HorseMannequin" unique_id=1289880358 instance=ExtResource("1_fbqil")]
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,10 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://bdqeshcwwnyc4"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://mvh2v6v72stt" path="res://core/ai/agents/human/ai_human.tscn" id="1_awhwq"]
|
|
||||||
|
|
||||||
[node name="AiCitizen" unique_id=1228675528 instance=ExtResource("1_awhwq")]
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("")
|
|
||||||
|
|
||||||
[editable path="HumanMannequin"]
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://bbseno7clbepx"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bdqeshcwwnyc4" path="res://core/ai/agents/human/ai_citizen.tscn" id="1_cduuu"]
|
|
||||||
|
|
||||||
[node name="AiCitizenSitter" unique_id=1228675528 instance=ExtResource("1_cduuu")]
|
|
||||||
|
|
||||||
[node name="SK_Mannequin" parent="HumanMannequin" parent_id_path=PackedInt32Array(333236377) index="0" unique_id=377304892]
|
|
||||||
transform = Transform3D(0.99906886, 0.025971904, -0.03444738, 0.038254507, -0.16420224, 0.98568463, 0.019943757, -0.98608464, -0.1650429, 0.034450583, -0.44864154, 0.18535595)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="HumanMannequin/SK_Mannequin" index="0" unique_id=427572412]
|
|
||||||
bones/2/rotation = Quaternion(-0.007029906, 0.032859802, -0.23654123, 0.97104025)
|
|
||||||
bones/3/rotation = Quaternion(-0.000884556, 0.0033522977, 0.10280211, 0.99469584)
|
|
||||||
bones/4/rotation = Quaternion(-0.00040807336, 0.0034836144, 0.0045103733, 0.9999837)
|
|
||||||
bones/5/rotation = Quaternion(0.13797933, 0.74176145, 0.017092831, 0.6560942)
|
|
||||||
bones/6/rotation = Quaternion(0.049281683, 0.43982458, -0.36467218, 0.81923133)
|
|
||||||
bones/7/rotation = Quaternion(-0.049351897, 0.03842162, -0.476375, 0.87701494)
|
|
||||||
bones/8/rotation = Quaternion(-0.41694272, -0.05554785, -0.18030654, 0.889136)
|
|
||||||
bones/9/rotation = Quaternion(0.094457716, 0.050416686, 0.50820345, 0.85455555)
|
|
||||||
bones/10/rotation = Quaternion(0.011606372, 0.08610083, 0.2719557, 0.95838)
|
|
||||||
bones/12/rotation = Quaternion(-0.00016985182, 0.0032503307, 0.42722064, 0.90414155)
|
|
||||||
bones/13/rotation = Quaternion(-0.018024907, 0.015150134, 0.27278355, 0.9617873)
|
|
||||||
bones/15/rotation = Quaternion(-0.13467012, -0.10029431, 0.2853874, 0.94358844)
|
|
||||||
bones/16/rotation = Quaternion(0.010311794, -0.034373257, 0.13259757, 0.9905202)
|
|
||||||
bones/18/rotation = Quaternion(-0.09865642, -0.08747626, 0.37470394, 0.917721)
|
|
||||||
bones/19/rotation = Quaternion(0.0042531197, -0.033760007, 0.1860149, 0.98195755)
|
|
||||||
bones/21/rotation = Quaternion(0.70078146, 0.36200625, -0.001720201, 0.61469823)
|
|
||||||
bones/22/rotation = Quaternion(-0.001820262, 0.12128391, 0.22490783, 0.9668006)
|
|
||||||
bones/26/rotation = Quaternion(0.76902086, -0.13267346, -0.62528044, -0.005393706)
|
|
||||||
bones/27/rotation = Quaternion(0.034201004, 0.38763282, -0.48749813, 0.7816117)
|
|
||||||
bones/28/rotation = Quaternion(-0.053170834, 0.025972798, -0.32202634, 0.9448796)
|
|
||||||
bones/29/rotation = Quaternion(-0.43919632, 0.049489442, -0.098192796, 0.89163643)
|
|
||||||
bones/30/rotation = Quaternion(0.103668794, 0.04579189, 0.46590617, 0.8775462)
|
|
||||||
bones/31/rotation = Quaternion(0.011519267, 0.09922818, 0.29214594, 0.95114243)
|
|
||||||
bones/33/rotation = Quaternion(9.437185e-05, 0.009016322, 0.44048977, 0.89771235)
|
|
||||||
bones/34/rotation = Quaternion(-0.018226523, 0.017689873, 0.23132406, 0.97254515)
|
|
||||||
bones/36/rotation = Quaternion(-0.13272016, -0.101737194, 0.26830983, 0.9487069)
|
|
||||||
bones/37/rotation = Quaternion(0.010193698, -0.046628788, 0.19672133, 0.97929704)
|
|
||||||
bones/39/rotation = Quaternion(-0.110196866, -0.05036995, 0.35450295, 0.9271716)
|
|
||||||
bones/40/rotation = Quaternion(0.0042593707, -0.028552007, 0.17841409, 0.983532)
|
|
||||||
bones/42/rotation = Quaternion(0.7297342, 0.26573184, -0.09265223, 0.6231294)
|
|
||||||
bones/43/rotation = Quaternion(0.06426929, 0.22943345, 0.1991351, 0.95056564)
|
|
||||||
bones/47/rotation = Quaternion(0.00421817, -0.00037953872, -0.21590644, 0.9764049)
|
|
||||||
bones/49/rotation = Quaternion(0.14012733, -0.038448263, 0.6819175, 0.7168505)
|
|
||||||
bones/50/rotation = Quaternion(-0.05631607, 0.020481886, -0.74316776, 0.6664162)
|
|
||||||
bones/52/rotation = Quaternion(-0.0004946971, -0.048858073, -0.0074254284, 0.998778)
|
|
||||||
bones/55/rotation = Quaternion(0.0132777635, 0.10731075, 0.71409845, -0.6916441)
|
|
||||||
bones/56/rotation = Quaternion(0.03920827, -0.09832406, -0.75485575, 0.64729285)
|
|
||||||
bones/58/rotation = Quaternion(0.01656407, -0.06386153, 0.030505493, 0.9973549)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="HumanMannequin" parent_id_path=PackedInt32Array(333236377) index="1" unique_id=233699491]
|
|
||||||
autoplay = &"custom/sit"
|
|
||||||
|
|
||||||
[editable path="HumanMannequin"]
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://bnnuke5e7e1yr"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bdqeshcwwnyc4" path="res://core/ai/agents/human/ai_citizen.tscn" id="1_dms8s"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_awhwq"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_8d0tj"]
|
|
||||||
|
|
||||||
[node name="AiCitizenWalker" unique_id=1228675528 instance=ExtResource("1_dms8s")]
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=42226979]
|
|
||||||
script = ExtResource("2_awhwq")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=1357892786]
|
|
||||||
script = ExtResource("3_8d0tj")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[editable path="HumanMannequin"]
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://ceqxsqfiotm5j"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://mvh2v6v72stt" path="res://core/ai/agents/human/ai_human.tscn" id="1_l2y7m"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_2oda6"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="4_2oda6"]
|
|
||||||
|
|
||||||
[node name="AiFarmer" unique_id=1228675528 instance=ExtResource("1_l2y7m")]
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("GatherState")
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="0" unique_id=930272128]
|
|
||||||
script = ExtResource("3_2oda6")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"gather"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="GatherState" type="Node" parent="StateMachine" index="1" unique_id=48091671]
|
|
||||||
script = ExtResource("4_2oda6")
|
|
||||||
state_id = &"gather"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/gather"
|
|
||||||
exit_on_animation_finished = true
|
|
||||||
|
|
||||||
[editable path="HumanMannequin"]
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://mvh2v6v72stt"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_hko2w"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://legcajdd0jsy" path="res://core/ai/agents/human/human_mannequin.tscn" id="2_cnrgi"]
|
|
||||||
|
|
||||||
[node name="AiHuman" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_hko2w")]
|
|
||||||
anim_player = NodePath("HumanMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="HumanMannequin" parent="." index="5" unique_id=333236377 instance=ExtResource("2_cnrgi")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[node name="SK_Mannequin" parent="HumanMannequin" index="0" unique_id=377304892]
|
|
||||||
transform = Transform3D(0.99999994, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="HumanMannequin/SK_Mannequin" index="0" unique_id=427572412]
|
|
||||||
bones/2/rotation = Quaternion(-2.1971985e-24, 0, -0.062388558, 0.99805194)
|
|
||||||
bones/3/rotation = Quaternion(4.135903e-25, 1.6543612e-24, 0.12241964, 0.99247843)
|
|
||||||
bones/4/rotation = Quaternion(2.2850868e-23, 0, 0.024252614, 0.9997059)
|
|
||||||
bones/5/rotation = Quaternion(0.20891805, 0.7294167, 0.12304399, 0.6396598)
|
|
||||||
bones/6/rotation = Quaternion(0.11299576, 0.33062968, -0.16141911, 0.92296255)
|
|
||||||
bones/7/rotation = Quaternion(-0.05401651, -0.079182714, -0.26340967, 0.9599103)
|
|
||||||
bones/8/rotation = Quaternion(-0.61789525, 0.019371983, 0.010653294, 0.7859496)
|
|
||||||
bones/9/rotation = Quaternion(0.1333045, -0.0031801206, 0.22317973, 0.96561414)
|
|
||||||
bones/10/rotation = Quaternion(0.012043531, -0.0029058352, 0.10444825, 0.9944532)
|
|
||||||
bones/12/rotation = Quaternion(0.028522171, -0.05687394, 0.19848494, 0.9780366)
|
|
||||||
bones/13/rotation = Quaternion(-0.018628873, 0.007972199, 0.10711657, 0.99404)
|
|
||||||
bones/15/rotation = Quaternion(-0.1295377, -0.18789689, 0.14421311, 0.9628693)
|
|
||||||
bones/16/rotation = Quaternion(0.010359715, -0.010519396, 0.09774818, 0.9951017)
|
|
||||||
bones/18/rotation = Quaternion(-0.095480494, -0.116765715, 0.18851167, 0.9704188)
|
|
||||||
bones/19/rotation = Quaternion(0.00430111, -0.0141675975, 0.11596311, 0.9931432)
|
|
||||||
bones/21/rotation = Quaternion(0.6303091, 0.37152508, -0.07729015, 0.6772783)
|
|
||||||
bones/22/rotation = Quaternion(0.0026046867, 0.086798474, 0.13014112, 0.98768544)
|
|
||||||
bones/26/rotation = Quaternion(0.7294168, -0.20891781, -0.6396598, 0.12304417)
|
|
||||||
bones/27/rotation = Quaternion(0.11299576, 0.33062968, -0.16141911, 0.92296255)
|
|
||||||
bones/28/rotation = Quaternion(-0.05401651, -0.079182714, -0.26340967, 0.9599103)
|
|
||||||
bones/29/rotation = Quaternion(-0.61789525, 0.019371983, 0.010653294, 0.7859496)
|
|
||||||
bones/30/rotation = Quaternion(0.1333045, -0.0031801206, 0.22317973, 0.96561414)
|
|
||||||
bones/31/rotation = Quaternion(0.012043531, -0.0029058352, 0.10444825, 0.9944532)
|
|
||||||
bones/33/rotation = Quaternion(0.028522171, -0.05687394, 0.19848494, 0.9780366)
|
|
||||||
bones/34/rotation = Quaternion(-0.018628873, 0.007972199, 0.10711657, 0.99404)
|
|
||||||
bones/36/rotation = Quaternion(-0.1295377, -0.18789689, 0.14421311, 0.9628693)
|
|
||||||
bones/37/rotation = Quaternion(0.010359715, -0.010519396, 0.09774818, 0.9951017)
|
|
||||||
bones/39/rotation = Quaternion(-0.095480494, -0.116765715, 0.18851167, 0.9704188)
|
|
||||||
bones/40/rotation = Quaternion(0.00430111, -0.0141675975, 0.11596311, 0.9931432)
|
|
||||||
bones/42/rotation = Quaternion(0.6303091, 0.37152508, -0.07729015, 0.6772783)
|
|
||||||
bones/43/rotation = Quaternion(0.0026047025, 0.08679848, 0.13014114, 0.98768544)
|
|
||||||
bones/47/rotation = Quaternion(-1.5923227e-23, 0, -0.20371072, 0.97903115)
|
|
||||||
bones/49/rotation = Quaternion(0.07370486, -0.062138822, -0.008584324, 0.9953053)
|
|
||||||
bones/50/rotation = Quaternion(-0.048884246, 0.018863896, -0.06552225, 0.99647444)
|
|
||||||
bones/52/rotation = Quaternion(-0.0058857696, 0.03199128, 0.07035475, 0.9969916)
|
|
||||||
bones/55/rotation = Quaternion(0.062138822, 0.07370486, 0.9953054, 0.008584333)
|
|
||||||
bones/56/rotation = Quaternion(-0.048884246, 0.018863896, -0.06552225, 0.99647444)
|
|
||||||
bones/58/rotation = Quaternion(-0.0058857696, 0.03199128, 0.07035475, 0.9969916)
|
|
||||||
|
|
||||||
[editable path="HumanMannequin"]
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,94 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://legcajdd0jsy"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ys8pesrqeyv2" path="res://core/ai/agents/human/human_mannequin_mixamo.fbx" id="1_561x5"]
|
|
||||||
[ext_resource type="Animation" uid="uid://c3rjx3uo8mbt3" path="res://core/ai/agents/human/gather.res" id="2_3r4wv"]
|
|
||||||
[ext_resource type="Animation" uid="uid://b2wo1mpqihko6" path="res://core/ai/agents/human/idle.res" id="2_b4vfe"]
|
|
||||||
[ext_resource type="Animation" uid="uid://ckkmrph86jlsd" path="res://core/ai/agents/human/walking.res" id="3_jl3mr"]
|
|
||||||
[ext_resource type="Animation" uid="uid://biaxql3fr1787" path="res://core/ai/agents/human/sit.res" id="4_xaokg"]
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3r4wv"]
|
|
||||||
_data = {
|
|
||||||
&"gather": ExtResource("2_3r4wv"),
|
|
||||||
&"idle": ExtResource("2_b4vfe"),
|
|
||||||
&"sit": ExtResource("4_xaokg"),
|
|
||||||
&"walking": ExtResource("3_jl3mr")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="HumanMannequin" unique_id=1583776159 instance=ExtResource("1_561x5")]
|
|
||||||
|
|
||||||
[node name="SK_Mannequin" parent="." index="0" unique_id=377304892]
|
|
||||||
transform = Transform3D(0.9990688, 0.025971903, -0.034447376, 0.038254507, -0.16420223, 0.9856846, 0.019943757, -0.9860846, -0.16504289, 0.034450583, -0.44864154, 0.18535595)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="SK_Mannequin" index="0" unique_id=427572412]
|
|
||||||
bones/2/rotation = Quaternion(-0.007029906, 0.032859802, -0.23654123, 0.97104025)
|
|
||||||
bones/3/rotation = Quaternion(-0.000884556, 0.0033522977, 0.10280211, 0.99469584)
|
|
||||||
bones/4/position = Vector3(0.13407329, 0.004204774, -5.584202e-15)
|
|
||||||
bones/4/rotation = Quaternion(-0.00040807336, 0.0034836144, 0.0045103733, 0.9999837)
|
|
||||||
bones/5/rotation = Quaternion(0.13797933, 0.74176145, 0.017092831, 0.6560942)
|
|
||||||
bones/6/position = Vector3(0.15784872, 1.4317955e-11, 6.3591354e-11)
|
|
||||||
bones/6/rotation = Quaternion(0.049281683, 0.43982458, -0.36467218, 0.81923133)
|
|
||||||
bones/7/position = Vector3(0.3033993, 8.407472e-11, 3.197531e-11)
|
|
||||||
bones/7/rotation = Quaternion(-0.049351897, 0.03842162, -0.476375, 0.87701494)
|
|
||||||
bones/8/position = Vector3(0.26975143, 1.572964e-11, -9.6207486e-11)
|
|
||||||
bones/8/rotation = Quaternion(-0.41694272, -0.05554785, -0.18030654, 0.889136)
|
|
||||||
bones/9/rotation = Quaternion(0.094457716, 0.050416686, 0.50820345, 0.85455555)
|
|
||||||
bones/10/position = Vector3(0.04287498, -2.9850333e-10, 5.048406e-11)
|
|
||||||
bones/10/rotation = Quaternion(0.011606372, 0.08610083, 0.2719557, 0.95838)
|
|
||||||
bones/11/position = Vector3(0.0339379, 1.1695445e-10, -2.349232e-11)
|
|
||||||
bones/12/rotation = Quaternion(-0.00016985182, 0.0032503307, 0.42722064, 0.90414155)
|
|
||||||
bones/13/position = Vector3(0.046403743, -3.648193e-11, 1.830866e-11)
|
|
||||||
bones/13/rotation = Quaternion(-0.018024907, 0.015150134, 0.27278355, 0.9617873)
|
|
||||||
bones/14/position = Vector3(0.036488436, -1.9989443e-10, 1.6076356e-11)
|
|
||||||
bones/15/rotation = Quaternion(-0.13467012, -0.10029431, 0.2853874, 0.94358844)
|
|
||||||
bones/16/position = Vector3(0.03570981, 1.8669866e-10, 3.9181436e-12)
|
|
||||||
bones/16/rotation = Quaternion(0.010311794, -0.034373257, 0.13259757, 0.9905202)
|
|
||||||
bones/17/position = Vector3(0.029856307, -3.005879e-10, -4.0375425e-11)
|
|
||||||
bones/18/rotation = Quaternion(-0.09865642, -0.08747626, 0.37470394, 0.917721)
|
|
||||||
bones/19/position = Vector3(0.04430177, 4.6665116e-11, -9.4033115e-12)
|
|
||||||
bones/19/rotation = Quaternion(0.0042531197, -0.033760007, 0.1860149, 0.98195755)
|
|
||||||
bones/20/position = Vector3(0.034766525, -1.6786372e-10, 2.768652e-11)
|
|
||||||
bones/21/rotation = Quaternion(0.70078146, 0.36200625, -0.001720201, 0.61469823)
|
|
||||||
bones/22/position = Vector3(0.038696717, 5.0118687e-11, 9.9849684e-11)
|
|
||||||
bones/22/rotation = Quaternion(-0.001820262, 0.12128391, 0.22490783, 0.9668006)
|
|
||||||
bones/23/position = Vector3(0.040621713, 1.0721979e-11, -5.127232e-12)
|
|
||||||
bones/24/position = Vector3(0.14, 1.110223e-16, 2.220446e-16)
|
|
||||||
bones/24/rotation = Quaternion(-2.7755576e-17, -6.938894e-17, -6.938894e-18, 1)
|
|
||||||
bones/25/position = Vector3(0.005, -2.7755576e-17, 0)
|
|
||||||
bones/25/rotation = Quaternion(-9.540979e-18, -2.7755576e-17, 9.540979e-18, 1)
|
|
||||||
bones/26/rotation = Quaternion(0.76902086, -0.13267346, -0.62528044, -0.005393706)
|
|
||||||
bones/27/rotation = Quaternion(0.034201004, 0.38763282, -0.48749813, 0.7816117)
|
|
||||||
bones/28/rotation = Quaternion(-0.053170834, 0.025972798, -0.32202634, 0.9448796)
|
|
||||||
bones/29/position = Vector3(-0.26975244, 2.563412e-07, -1.1905385e-08)
|
|
||||||
bones/29/rotation = Quaternion(-0.43919632, 0.049489442, -0.098192796, 0.89163643)
|
|
||||||
bones/30/rotation = Quaternion(0.103668794, 0.04579189, 0.46590617, 0.8775462)
|
|
||||||
bones/31/rotation = Quaternion(0.011519267, 0.09922818, 0.29214594, 0.95114243)
|
|
||||||
bones/33/rotation = Quaternion(9.437185e-05, 0.009016322, 0.44048977, 0.89771235)
|
|
||||||
bones/34/rotation = Quaternion(-0.018226523, 0.017689873, 0.23132406, 0.97254515)
|
|
||||||
bones/36/rotation = Quaternion(-0.13272016, -0.101737194, 0.26830983, 0.9487069)
|
|
||||||
bones/37/rotation = Quaternion(0.010193698, -0.046628788, 0.19672133, 0.97929704)
|
|
||||||
bones/39/rotation = Quaternion(-0.110196866, -0.05036995, 0.35450295, 0.9271716)
|
|
||||||
bones/40/rotation = Quaternion(0.0042593707, -0.028552007, 0.17841409, 0.983532)
|
|
||||||
bones/42/rotation = Quaternion(0.7297342, 0.26573184, -0.09265223, 0.6231294)
|
|
||||||
bones/43/rotation = Quaternion(0.06426929, 0.22943345, 0.1991351, 0.95056564)
|
|
||||||
bones/45/rotation = Quaternion(-0.1176271, 1.3974802e-16, -6.288661e-17, 0.99305785)
|
|
||||||
bones/46/rotation = Quaternion(-0.17323487, -2.099698e-25, 1.9374898e-17, 0.9848805)
|
|
||||||
bones/47/rotation = Quaternion(0.00421817, -0.00037953872, -0.21590644, 0.9764049)
|
|
||||||
bones/48/position = Vector3(0.092836134, 0.0036415688, 2.7747754e-17)
|
|
||||||
bones/48/rotation = Quaternion(1.2661336e-17, 9.989056e-18, 0.13354194, 0.99104315)
|
|
||||||
bones/49/rotation = Quaternion(0.14012733, -0.038448263, 0.6819175, 0.7168505)
|
|
||||||
bones/50/position = Vector3(-0.42572036, 1.7074263e-12, -4.667877e-12)
|
|
||||||
bones/50/rotation = Quaternion(-0.05631607, 0.020481886, -0.74316776, 0.6664162)
|
|
||||||
bones/51/position = Vector3(-0.20476776, -1.3877788e-17, 0)
|
|
||||||
bones/52/position = Vector3(-0.4019669, -3.933849e-11, 1.899425e-12)
|
|
||||||
bones/52/rotation = Quaternion(-0.0004946971, -0.048858073, -0.0074254284, 0.998778)
|
|
||||||
bones/54/position = Vector3(-0.22094238, 4.7704896e-18, 0)
|
|
||||||
bones/55/rotation = Quaternion(0.0132777635, 0.10731075, 0.71409845, -0.6916441)
|
|
||||||
bones/56/rotation = Quaternion(0.03920827, -0.09832406, -0.75485575, 0.64729285)
|
|
||||||
bones/57/position = Vector3(0.20476907, 0, -5.551115e-17)
|
|
||||||
bones/58/rotation = Quaternion(0.01656407, -0.06386153, 0.030505493, 0.9973549)
|
|
||||||
bones/60/position = Vector3(0.22094241, 3.035766e-18, -2.7755576e-17)
|
|
||||||
bones/67/position = Vector3(-4.440892e-16, 0, 7.632783e-17)
|
|
||||||
bones/67/rotation = Quaternion(-2.8449465e-16, 8.326673e-17, 2.7755576e-17, 1)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="." index="1" unique_id=233699491]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_3r4wv")
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -1,86 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://c2hg6hu2y5srb"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_j8spt"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_acc6o"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0xb7kl4rjd66" path="res://core/ai/agents/pig/pig_mannequin.tscn" id="2_qmc2e"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_3n8ak"]
|
|
||||||
[ext_resource type="Animation" uid="uid://c4ingpw0co8v2" path="res://core/ai/agents/pig/idle.res" id="3_lvpc5"]
|
|
||||||
[ext_resource type="Animation" uid="uid://0563r715lmw1" path="res://core/ai/agents/pig/walking.res" id="4_3f3hl"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lvpc5"]
|
|
||||||
size = Vector3(1, 1.4848633, 1.960083)
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lvpc5"]
|
|
||||||
_data = {
|
|
||||||
&"idle": ExtResource("3_lvpc5"),
|
|
||||||
&"walking": ExtResource("4_3f3hl")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="AiPig" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_j8spt")]
|
|
||||||
anim_player = NodePath("PigMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.24243164, 0.10699463)
|
|
||||||
shape = SubResource("BoxShape3D_lvpc5")
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=403305255]
|
|
||||||
script = ExtResource("2_acc6o")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=1237150984]
|
|
||||||
script = ExtResource("3_3n8ak")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="PigMannequin" parent="." index="5" unique_id=926755470 instance=ExtResource("2_qmc2e")]
|
|
||||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="PigMannequin/Armature" parent_id_path=PackedInt32Array(926755470, 695496535) index="0" unique_id=725647261]
|
|
||||||
bones/1/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
|
|
||||||
bones/3/position = Vector3(5.37765e-05, 0.017809996, -0.007695386)
|
|
||||||
bones/3/rotation = Quaternion(-0.027121998, 0, 0, 0.99963224)
|
|
||||||
bones/4/position = Vector3(-0.004269575, -0.0009057691, 0.018837402)
|
|
||||||
bones/4/rotation = Quaternion(-0.20850496, 0.20850474, 0.675667, 0.6756669)
|
|
||||||
bones/5/rotation = Quaternion(0.70767504, -0.7007484, -0.04928623, 0.07562217)
|
|
||||||
bones/6/rotation = Quaternion(0.5074964, -0.016355418, 0.009635334, 0.86144483)
|
|
||||||
bones/8/position = Vector3(-0.004269574, 0.0008725248, -0.02819033)
|
|
||||||
bones/8/rotation = Quaternion(-0.021000031, 0.020999499, 0.7067949, 0.7067949)
|
|
||||||
bones/9/rotation = Quaternion(0.6762797, -0.7030302, 0.13760945, -0.17163305)
|
|
||||||
bones/10/rotation = Quaternion(-0.76131815, 0.012544005, 0.014735432, 0.64808965)
|
|
||||||
bones/12/position = Vector3(0.0036532492, -0.0009057691, 0.018837402)
|
|
||||||
bones/12/rotation = Quaternion(0.67572093, 0.6757209, -0.20832984, 0.20832963)
|
|
||||||
bones/13/rotation = Quaternion(-0.025831472, -0.099082425, 0.70891863, 0.6978179)
|
|
||||||
bones/14/rotation = Quaternion(0.50689334, 0.045050938, -0.026540417, 0.8604216)
|
|
||||||
bones/16/position = Vector3(0.0036521717, 0.0008013838, -0.028183708)
|
|
||||||
bones/16/rotation = Quaternion(0.7068031, 0.7068031, -0.020723455, 0.020722982)
|
|
||||||
bones/17/rotation = Quaternion(0.1443776, 0.16487122, 0.6747477, 0.7047611)
|
|
||||||
bones/18/rotation = Quaternion(-0.7649948, -0.0061196624, -0.0072699804, 0.64396644)
|
|
||||||
bones/20/position = Vector3(-0.00042349403, 0.0063493187, -0.030968314)
|
|
||||||
bones/20/rotation = Quaternion(0.60138106, 0.012805484, 0.0019118772, 0.79885745)
|
|
||||||
bones/22/position = Vector3(-0.0002038494, 0.0041766805, 0.0044565103)
|
|
||||||
bones/22/rotation = Quaternion(0.0076635648, 0.7548352, 0.6556045, -0.018651871)
|
|
||||||
bones/23/rotation = Quaternion(0.065689825, -0.010677165, -0.019551655, 0.99759144)
|
|
||||||
bones/24/rotation = Quaternion(-0.24106143, -0.2388839, 0.03569213, 0.9399734)
|
|
||||||
bones/26/position = Vector3(-0.00032282702, 0.010153349, -0.021613695)
|
|
||||||
bones/26/rotation = Quaternion(3.6196245e-06, 0.6452338, 0.7639852, 3.2175833e-06)
|
|
||||||
bones/27/rotation = Quaternion(0.0455184, 0.00040800165, -0.025042463, 0.99864954)
|
|
||||||
bones/29/position = Vector3(-0.01117923, 0.0010000349, -0.03163386)
|
|
||||||
bones/29/rotation = Quaternion(0.7071068, -6.178108e-07, -6.178107e-07, 0.7071067)
|
|
||||||
bones/31/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)
|
|
||||||
bones/33/position = Vector3(0.010670463, 0.0010000349, -0.03166372)
|
|
||||||
bones/33/rotation = Quaternion(0.70755845, -7.1388774e-07, -1.0355643e-06, 0.7066547)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="PigMannequin" index="1" unique_id=904091745]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_lvpc5")
|
|
||||||
|
|
||||||
[editable path="PigMannequin"]
|
|
||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://b0xb7kl4rjd66"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bi5f24frndw7j" path="res://core/ai/agents/pig/pig.fbx" id="1_ptg6h"]
|
|
||||||
|
|
||||||
[node name="PigMannequin" unique_id=926755470 instance=ExtResource("1_ptg6h")]
|
|
||||||
Binary file not shown.
@@ -1,58 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://2md4l83fy8kr"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_0bu1i"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_iapui"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c16j3umhplew4" path="res://core/ai/agents/pug/pug_mannequin.tscn" id="2_n0mit"]
|
|
||||||
[ext_resource type="Animation" uid="uid://c8hy2tftqb7su" path="res://core/ai/agents/pug/idle.res" id="3_hv1px"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_xc1yq"]
|
|
||||||
[ext_resource type="Animation" uid="uid://bqrhidcnublea" path="res://core/ai/agents/pug/walking.res" id="4_cjq2y"]
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iapui"]
|
|
||||||
_data = {
|
|
||||||
&"idle": ExtResource("3_hv1px"),
|
|
||||||
&"walking": ExtResource("4_cjq2y")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="AiPug" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_0bu1i")]
|
|
||||||
anim_player = NodePath("PugMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=1079848975]
|
|
||||||
script = ExtResource("2_iapui")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=1573670396]
|
|
||||||
script = ExtResource("3_xc1yq")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="PugMannequin" parent="." index="5" unique_id=1732134047 instance=ExtResource("2_n0mit")]
|
|
||||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="PugMannequin/Armature" parent_id_path=PackedInt32Array(1732134047, 199608791) index="0" unique_id=33809722]
|
|
||||||
bones/8/position = Vector3(-0.0054483665, 0.008346455, -0.020266803)
|
|
||||||
bones/8/rotation = Quaternion(-0.007561639, 0.007561228, 0.70706636, 0.70706636)
|
|
||||||
bones/9/rotation = Quaternion(0.6665347, -0.6790185, 0.20055033, -0.23333457)
|
|
||||||
bones/10/rotation = Quaternion(-0.37439552, 0.017943675, 0.007246467, 0.92706716)
|
|
||||||
bones/14/rotation = Quaternion(0.13296904, 0.051822018, -0.0069621373, 0.9897401)
|
|
||||||
bones/16/position = Vector3(0.0048320387, 0.008252437, -0.02027757)
|
|
||||||
bones/16/rotation = Quaternion(0.7070978, 0.7070978, -0.0035577225, 0.0035573125)
|
|
||||||
bones/17/rotation = Quaternion(0.20727697, 0.22687204, 0.66435784, 0.68131787)
|
|
||||||
bones/18/rotation = Quaternion(-0.38250104, -0.0087800585, -0.0036350952, 0.9239062)
|
|
||||||
bones/20/rotation = Quaternion(0.6013276, -0.007656022, 0.017799761, 0.79876757)
|
|
||||||
bones/24/rotation = Quaternion(-0.45064288, -0.22904137, 0.090387635, 0.858074)
|
|
||||||
bones/27/rotation = Quaternion(0.05229574, 5.703821e-05, -0.025155801, 0.99831474)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="PugMannequin" index="1" unique_id=1653203922]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_iapui")
|
|
||||||
|
|
||||||
[editable path="PugMannequin"]
|
|
||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,29 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://c16j3umhplew4"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://buqmw5lbfom07" path="res://core/ai/agents/pug/pug.fbx" id="1_3c2yk"]
|
|
||||||
|
|
||||||
[node name="PugMannequin" unique_id=1732134047 instance=ExtResource("1_3c2yk")]
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(251322627) index="0" unique_id=1067550931]
|
|
||||||
bones/1/rotation = Quaternion(0.7071068, -8.7384586e-07, -8.7384575e-07, 0.7071067)
|
|
||||||
bones/3/position = Vector3(5.37765e-05, 0.023020823, -0.0001735416)
|
|
||||||
bones/4/rotation = Quaternion(0.0013124894, -0.0013127187, 0.7071056, 0.7071056)
|
|
||||||
bones/5/rotation = Quaternion(0.7071125, -0.70201516, -0.045116592, 0.07163183)
|
|
||||||
bones/6/rotation = Quaternion(0.13312602, -0.018813718, 0.0025276097, 0.9909174)
|
|
||||||
bones/8/rotation = Quaternion(0.0006567046, -0.0006571151, 0.7071065, 0.7071065)
|
|
||||||
bones/9/rotation = Quaternion(0.66675293, -0.67880416, 0.20062506, -0.23327015)
|
|
||||||
bones/10/rotation = Quaternion(-0.35678986, 0.01807761, 0.006905738, 0.9339843)
|
|
||||||
bones/12/rotation = Quaternion(0.70710534, 0.70710546, 0.0014091316, -0.0014093613)
|
|
||||||
bones/13/rotation = Quaternion(-0.021626502, -0.09508007, 0.7082199, 0.6992257)
|
|
||||||
bones/14/rotation = Quaternion(0.13296904, 0.051822014, -0.0069621364, 0.98974)
|
|
||||||
bones/16/rotation = Quaternion(0.7071066, 0.7071067, 0.00044525132, -0.00044566192)
|
|
||||||
bones/17/rotation = Quaternion(0.20738536, 0.2267729, 0.6646832, 0.6810004)
|
|
||||||
bones/18/rotation = Quaternion(-0.35684106, -0.008877046, -0.003391197, 0.93411684)
|
|
||||||
bones/20/rotation = Quaternion(0.6013276, -0.007656024, 0.017799761, 0.79876757)
|
|
||||||
bones/22/rotation = Quaternion(0.0076703057, 0.9327372, 0.3595561, -0.025732514)
|
|
||||||
bones/23/rotation = Quaternion(-0.089636706, -0.019697238, -0.01825219, 0.99561244)
|
|
||||||
bones/24/rotation = Quaternion(-0.44343108, -0.23039742, 0.11800072, 0.85811526)
|
|
||||||
bones/26/rotation = Quaternion(5.170388e-06, 0.6954638, 0.7185612, 5.0026606e-06)
|
|
||||||
bones/27/rotation = Quaternion(0.052304644, 0.00074447604, -0.01352817, 0.99853927)
|
|
||||||
bones/29/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
|
|
||||||
bones/31/rotation = Quaternion(0.7071068, -1.2110207e-06, -1.2110205e-06, 0.7071067)
|
|
||||||
Binary file not shown.
@@ -1,54 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://bs1bdtm7jdtgb"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_smbiq"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://58u6viv3qd63" path="res://core/ai/agents/sheep/sheep_mannequin.tscn" id="2_hnenk"]
|
|
||||||
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_vlyix"]
|
|
||||||
[ext_resource type="Animation" uid="uid://bjvoxmyf4vdy8" path="res://core/ai/agents/sheep/idle.res" id="3_i3d22"]
|
|
||||||
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_uqv5v"]
|
|
||||||
[ext_resource type="Animation" uid="uid://8r05h8e7nmic" path="res://core/ai/agents/sheep/walking.res" id="4_hxh1r"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_hnenk"]
|
|
||||||
size = Vector3(1, 1.4770508, 1.3725281)
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vlyix"]
|
|
||||||
_data = {
|
|
||||||
&"idle": ExtResource("3_i3d22"),
|
|
||||||
&"walking": ExtResource("4_hxh1r")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="AiSheep" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_smbiq")]
|
|
||||||
anim_player = NodePath("SheepMannequin/AnimationPlayer")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.23852539, 0.11299133)
|
|
||||||
shape = SubResource("BoxShape3D_hnenk")
|
|
||||||
|
|
||||||
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
|
|
||||||
initial_state = NodePath("IdleState")
|
|
||||||
|
|
||||||
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=190711451]
|
|
||||||
script = ExtResource("2_vlyix")
|
|
||||||
state_id = &"idle"
|
|
||||||
next_state_id = &"patrol"
|
|
||||||
animation_name = "custom/idle"
|
|
||||||
|
|
||||||
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=431976868]
|
|
||||||
script = ExtResource("3_uqv5v")
|
|
||||||
state_id = &"patrol"
|
|
||||||
next_state_id = &"idle"
|
|
||||||
animation_name = "custom/walking"
|
|
||||||
exit_on_action_finished = true
|
|
||||||
|
|
||||||
[node name="SheepMannequin" parent="." index="5" unique_id=1153770042 instance=ExtResource("2_hnenk")]
|
|
||||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
|
|
||||||
|
|
||||||
[node name="Armature" parent="SheepMannequin" index="0" unique_id=62421163]
|
|
||||||
transform = Transform3D(100, 0, 0, 0, -4.3711384e-06, 99.99999, 0, -99.99999, -4.3711384e-06, 0, 0, 0)
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="SheepMannequin" index="1" unique_id=676833932]
|
|
||||||
libraries/custom = SubResource("AnimationLibrary_vlyix")
|
|
||||||
|
|
||||||
[editable path="SheepMannequin"]
|
|
||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,29 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://58u6viv3qd63"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://oog8biov508a" path="res://core/ai/agents/sheep/sheep.fbx" id="1_pnkxh"]
|
|
||||||
|
|
||||||
[node name="SheepMannequin" unique_id=1153770042 instance=ExtResource("1_pnkxh")]
|
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(1644576745) index="0" unique_id=811031257]
|
|
||||||
bones/1/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
|
|
||||||
bones/4/rotation = Quaternion(0.0017592248, -0.0017595046, 0.7071046, 0.7071046)
|
|
||||||
bones/5/rotation = Quaternion(0.706397, -0.7005701, -0.057003256, 0.08339989)
|
|
||||||
bones/6/rotation = Quaternion(0.17354831, -0.018694565, 0.003295098, 0.98464245)
|
|
||||||
bones/8/rotation = Quaternion(0.0011415672, -0.0011422854, 0.7071059, 0.7071059)
|
|
||||||
bones/9/rotation = Quaternion(0.66940695, -0.67618734, 0.20153745, -0.23248184)
|
|
||||||
bones/10/rotation = Quaternion(-0.38440856, 0.017864142, 0.0074402345, 0.92296034)
|
|
||||||
bones/12/rotation = Quaternion(0.70710427, 0.7071044, 0.001866237, -0.0018665171)
|
|
||||||
bones/13/rotation = Quaternion(-0.033540055, -0.106803544, 0.7078988, 0.6973861)
|
|
||||||
bones/14/rotation = Quaternion(0.17334078, 0.051493812, -0.009075931, 0.9834729)
|
|
||||||
bones/16/rotation = Quaternion(0.70710605, 0.7071062, 0.0009843343, -0.0009850523)
|
|
||||||
bones/17/rotation = Quaternion(0.2082713, 0.22595985, 0.6673435, 0.67839366)
|
|
||||||
bones/18/rotation = Quaternion(-0.384463, -0.008772296, -0.0036537221, 0.92309153)
|
|
||||||
bones/20/rotation = Quaternion(0.6012591, 0.022893472, -0.005923484, 0.7987042)
|
|
||||||
bones/22/rotation = Quaternion(0.006586622, 0.9146406, 0.40345904, -0.02469813)
|
|
||||||
bones/23/rotation = Quaternion(0.07927493, -0.021147288, -0.014362239, 0.996525)
|
|
||||||
bones/24/rotation = Quaternion(-0.6495659, -0.19198355, 0.17329836, 0.71496445)
|
|
||||||
bones/26/rotation = Quaternion(3.4527793e-06, 0.6944211, 0.71956885, 3.3297817e-06)
|
|
||||||
bones/27/rotation = Quaternion(0.0651835, 0.0008379451, -0.017830681, 0.9977136)
|
|
||||||
bones/29/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
|
|
||||||
bones/31/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)
|
|
||||||
bones/33/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)
|
|
||||||
Binary file not shown.
@@ -1,6 +0,0 @@
|
|||||||
extends State
|
|
||||||
|
|
||||||
|
|
||||||
func enter() -> void:
|
|
||||||
super.enter()
|
|
||||||
run_animation()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://d3hy70ec8vqo5
|
|
||||||
@@ -3,61 +3,18 @@ extends Node
|
|||||||
class_name State
|
class_name State
|
||||||
|
|
||||||
@export var state_id: StringName = &""
|
@export var state_id: StringName = &""
|
||||||
@export var next_state_id: StringName
|
|
||||||
@export var animation_name: String
|
|
||||||
@export var exit_on_action_finished: bool
|
|
||||||
@export var exit_on_animation_finished: bool
|
|
||||||
@export var min_wait_time: float = 3.0
|
|
||||||
@export var max_wait_time: float = 10
|
|
||||||
|
|
||||||
var runtime_timer: Timer
|
|
||||||
|
|
||||||
@onready var agent: AIBase = owner
|
|
||||||
|
|
||||||
|
@warning_ignore("unused_signal")
|
||||||
signal transitioned(state: State, new_state_id: StringName)
|
signal transitioned(state: State, new_state_id: StringName)
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
if min_wait_time > 0 and !exit_on_action_finished:
|
|
||||||
runtime_timer = Timer.new()
|
|
||||||
runtime_timer.name = "IdleTimer"
|
|
||||||
runtime_timer.one_shot = true
|
|
||||||
add_child(runtime_timer)
|
|
||||||
runtime_timer.timeout.connect(_on_timer_timeout)
|
|
||||||
|
|
||||||
func enter() -> void:
|
func enter() -> void:
|
||||||
if exit_on_animation_finished:
|
pass
|
||||||
if not agent.anim_player.animation_finished.is_connected(_on_animation_finished):
|
|
||||||
agent.anim_player.animation_finished.connect(_on_animation_finished)
|
|
||||||
elif min_wait_time > 0 and !exit_on_action_finished:
|
|
||||||
var wait_time:= randf_range(min_wait_time, max_wait_time)
|
|
||||||
runtime_timer.start(wait_time)
|
|
||||||
|
|
||||||
func exit() -> void:
|
func exit() -> void:
|
||||||
if exit_on_animation_finished and agent.anim_player.animation_finished.is_connected(_on_animation_finished):
|
|
||||||
agent.anim_player.animation_finished.disconnect(_on_animation_finished)
|
|
||||||
|
|
||||||
if runtime_timer and not runtime_timer.is_stopped():
|
|
||||||
runtime_timer.stop()
|
|
||||||
|
|
||||||
func update(_delta: float) -> void:
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func physics_update(_delta: float) -> void:
|
func update(_delta) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func run_animation() -> void:
|
func physics_update(_delta) -> void:
|
||||||
if agent.anim_player and agent.anim_player.has_animation(animation_name):
|
pass
|
||||||
agent.anim_player.play(animation_name)
|
|
||||||
|
|
||||||
func _on_animation_finished(anim_name: StringName) -> void:
|
|
||||||
if animation_name == anim_name:
|
|
||||||
if exit_on_action_finished:
|
|
||||||
return
|
|
||||||
elif min_wait_time > 0:
|
|
||||||
var wait_time := randf_range(min_wait_time, max_wait_time)
|
|
||||||
runtime_timer.start(wait_time)
|
|
||||||
else:
|
|
||||||
transitioned.emit(self, next_state_id)
|
|
||||||
|
|
||||||
func _on_timer_timeout() -> void:
|
|
||||||
transitioned.emit(self, next_state_id)
|
|
||||||
|
|||||||
@@ -1,31 +1,60 @@
|
|||||||
extends Path3D
|
extends Path3D
|
||||||
|
|
||||||
@export_group("Train")
|
@export_group("Train")
|
||||||
|
##train speed
|
||||||
@export var train_speed: float = 6.0
|
@export var train_speed: float = 6.0
|
||||||
|
##if true the train is in motion
|
||||||
@export var is_inmotion: bool = true
|
@export var is_inmotion: bool = true
|
||||||
|
##the model for the locomotive
|
||||||
@export var train_model: PackedScene
|
@export var train_model: PackedScene
|
||||||
|
##array of wagon scenes
|
||||||
|
@export var wagon_pool: Resource
|
||||||
|
##if true the number of wagons is random from 1 to wagon_count
|
||||||
|
@export var wagon_random_number: bool = true
|
||||||
|
##if wagon_random_number = true is used as max wagons
|
||||||
|
@export_range(0, 32, 1, "or_greater") var wagon_count: int = 3
|
||||||
|
##the distance between two wagons
|
||||||
|
@export var wagon_gap: float = 0.4
|
||||||
|
##the scale to calculate the distance of the bounds
|
||||||
|
@export_range(0.1, 2.0, 0.05, "or_greater") var wagon_spacing_scale: float = 0.5
|
||||||
|
##override spacing using this value
|
||||||
|
@export var wagon_spacing_override: float = 0.0
|
||||||
|
##distance of the rail axes
|
||||||
@export var axes_distance: float = 3.0
|
@export var axes_distance: float = 3.0
|
||||||
|
##discance between rails
|
||||||
@export var rail_distance: float = 1.2
|
@export var rail_distance: float = 1.2
|
||||||
|
##current camera
|
||||||
@export var cameras: Node3D
|
@export var cameras: Node3D
|
||||||
|
##swing of the train during the ran
|
||||||
@export_range(0.0, 1.0) var basic_swing: float = 0.1
|
@export_range(0.0, 1.0) var basic_swing: float = 0.1
|
||||||
|
|
||||||
@export_group("Rails Bulding")
|
@export_group("Rails Bulding")
|
||||||
|
##distance between sleepers of the rails
|
||||||
@export var sleepers_distance: float = 1.0
|
@export var sleepers_distance: float = 1.0
|
||||||
|
##nodel for the sleeper of the rail
|
||||||
@export var sleepers_model: PackedScene
|
@export var sleepers_model: PackedScene
|
||||||
|
|
||||||
@export_group("Manual Controls")
|
@export_group("Manual Controls")
|
||||||
|
##max speed
|
||||||
@export var speed_max: float = 15.0
|
@export var speed_max: float = 15.0
|
||||||
|
##min speed
|
||||||
@export var speed_min: float = -5.0
|
@export var speed_min: float = -5.0
|
||||||
|
##acceleration
|
||||||
@export var manual_acceleration: float = 5.0
|
@export var manual_acceleration: float = 5.0
|
||||||
|
|
||||||
@export_group("Train Stops")
|
@export_group("Train Stops")
|
||||||
|
##if true the train stop the ran on stops
|
||||||
@export var enable_stops: bool = true
|
@export var enable_stops: bool = true
|
||||||
|
##time of stop
|
||||||
@export var stop_time: float = 4.0
|
@export var stop_time: float = 4.0
|
||||||
|
##distance when the train start to brake
|
||||||
@export var brake_distance: float = 15.0
|
@export var brake_distance: float = 15.0
|
||||||
|
##restart time
|
||||||
@export var restart_time: float = 3.0
|
@export var restart_time: float = 3.0
|
||||||
|
##scene for fireworks
|
||||||
@export var fireworks_scene: PackedScene
|
@export var fireworks_scene: PackedScene
|
||||||
|
##array of colors for fireworks
|
||||||
var fireworks_colors: Array[Color] = [
|
@export var fireworks_colors: Array[Color] = [
|
||||||
Color(1.0, 0.2, 0.2), # Rosso vivo
|
Color(1.0, 0.2, 0.2), # Rosso vivo
|
||||||
Color(0.2, 1.0, 0.2), # Verde lime
|
Color(0.2, 1.0, 0.2), # Verde lime
|
||||||
Color(0.3, 0.5, 1.0), # Blu cielo
|
Color(0.3, 0.5, 1.0), # Blu cielo
|
||||||
@@ -48,9 +77,14 @@ var stop_multiply: float = 1.0
|
|||||||
var is_restarting: bool = false
|
var is_restarting: bool = false
|
||||||
var tween_restart: Tween
|
var tween_restart: Tween
|
||||||
var environment_config: EnvironmentConfig
|
var environment_config: EnvironmentConfig
|
||||||
|
var wagon_instances: Array[Node3D] = []
|
||||||
|
var wagon_progress_offsets: Array[float] = []
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
randomize()
|
||||||
|
|
||||||
_cache_environment_config()
|
_cache_environment_config()
|
||||||
|
|
||||||
if curve != null and curve.get_baked_length() > 0:
|
if curve != null and curve.get_baked_length() > 0:
|
||||||
build_rails()
|
build_rails()
|
||||||
build_train()
|
build_train()
|
||||||
@@ -153,6 +187,8 @@ func _snap_train_to_progress() -> void:
|
|||||||
cameras.global_position = center_position
|
cameras.global_position = center_position
|
||||||
cameras.global_basis = train_instance.global_basis
|
cameras.global_basis = train_instance.global_basis
|
||||||
|
|
||||||
|
_snap_wagons_to_progress(total_length)
|
||||||
|
|
||||||
func build_rails() -> void:
|
func build_rails() -> void:
|
||||||
var mat_wood = StandardMaterial3D.new()
|
var mat_wood = StandardMaterial3D.new()
|
||||||
mat_wood.albedo_color = Color(0.35, 0.2, 0.1)
|
mat_wood.albedo_color = Color(0.35, 0.2, 0.1)
|
||||||
@@ -324,6 +360,8 @@ func train_move(delta: float) -> void:
|
|||||||
cameras.global_position = center_position
|
cameras.global_position = center_position
|
||||||
cameras.global_basis = train_instance.global_basis
|
cameras.global_basis = train_instance.global_basis
|
||||||
|
|
||||||
|
_snap_wagons_to_progress(total_length)
|
||||||
|
|
||||||
var real_speed = abs(train_speed * stop_multiply)
|
var real_speed = abs(train_speed * stop_multiply)
|
||||||
var speed_factor = clamp(real_speed / max(speed_max, 0.001), 0.0, 1.0)
|
var speed_factor = clamp(real_speed / max(speed_max, 0.001), 0.0, 1.0)
|
||||||
var dir_prev = (center_position - back_position).normalized()
|
var dir_prev = (center_position - back_position).normalized()
|
||||||
@@ -401,6 +439,34 @@ func build_train() -> void:
|
|||||||
else:
|
else:
|
||||||
build_default_train()
|
build_default_train()
|
||||||
|
|
||||||
|
var wagons = wagon_count
|
||||||
|
if wagon_random_number:
|
||||||
|
wagons = randi_range(1, wagon_count)
|
||||||
|
build_train_wagons(wagons)
|
||||||
|
|
||||||
|
func build_train_wagons(wagon_number: int) -> void:
|
||||||
|
_clear_train_wagons()
|
||||||
|
if wagon_number <= 0 or wagon_pool == null or not "available_wagons" in wagon_pool:
|
||||||
|
return
|
||||||
|
if wagon_pool.available_wagons.is_empty():
|
||||||
|
return
|
||||||
|
|
||||||
|
for i in range(wagon_number):
|
||||||
|
var wagon_scene: PackedScene = wagon_pool.available_wagons.pick_random()
|
||||||
|
if wagon_scene == null:
|
||||||
|
continue
|
||||||
|
|
||||||
|
var wagon: Node3D = wagon_scene.instantiate() as Node3D
|
||||||
|
if wagon == null:
|
||||||
|
push_warning("Wagon scene root must be a Node3D.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
add_child(wagon)
|
||||||
|
wagon_instances.append(wagon)
|
||||||
|
|
||||||
|
_update_wagon_progress_offsets()
|
||||||
|
_snap_wagons_to_progress()
|
||||||
|
|
||||||
func build_default_train() -> void:
|
func build_default_train() -> void:
|
||||||
train_instance = Node3D.new()
|
train_instance = Node3D.new()
|
||||||
add_child(train_instance)
|
add_child(train_instance)
|
||||||
@@ -435,3 +501,118 @@ func build_default_train() -> void:
|
|||||||
stack.material_override = mat_body
|
stack.material_override = mat_body
|
||||||
stack.position = Vector3(0, 1.2, 1.0)
|
stack.position = Vector3(0, 1.2, 1.0)
|
||||||
train_instance.add_child(stack)
|
train_instance.add_child(stack)
|
||||||
|
|
||||||
|
func _clear_train_wagons() -> void:
|
||||||
|
for wagon in wagon_instances:
|
||||||
|
if is_instance_valid(wagon):
|
||||||
|
wagon.queue_free()
|
||||||
|
wagon_instances.clear()
|
||||||
|
wagon_progress_offsets.clear()
|
||||||
|
|
||||||
|
func _update_wagon_progress_offsets() -> void:
|
||||||
|
wagon_progress_offsets.clear()
|
||||||
|
if train_instance == null or wagon_instances.is_empty():
|
||||||
|
return
|
||||||
|
|
||||||
|
var train_length: float = _get_vehicle_length(train_instance)
|
||||||
|
var previous_length: float = train_length
|
||||||
|
var accumulated_distance: float = 0.0
|
||||||
|
|
||||||
|
for wagon in wagon_instances:
|
||||||
|
var wagon_length: float = _get_vehicle_length(wagon)
|
||||||
|
accumulated_distance += _get_wagon_spacing(previous_length, wagon_length)
|
||||||
|
wagon_progress_offsets.append(accumulated_distance)
|
||||||
|
previous_length = wagon_length
|
||||||
|
|
||||||
|
func _get_wagon_spacing(previous_length: float, wagon_length: float) -> float:
|
||||||
|
if wagon_spacing_override > 0.0:
|
||||||
|
return wagon_spacing_override + wagon_gap
|
||||||
|
|
||||||
|
var detected_spacing: float = previous_length * 0.5 + wagon_length * 0.5
|
||||||
|
return detected_spacing * wagon_spacing_scale + wagon_gap
|
||||||
|
|
||||||
|
func _snap_wagons_to_progress(total_length: float = 0.0) -> void:
|
||||||
|
if curve == null or wagon_instances.is_empty():
|
||||||
|
return
|
||||||
|
|
||||||
|
if total_length <= 0.0:
|
||||||
|
total_length = curve.get_baked_length()
|
||||||
|
if total_length <= 0.0:
|
||||||
|
return
|
||||||
|
|
||||||
|
var direction: float = 1.0
|
||||||
|
if train_speed < 0.0:
|
||||||
|
direction = -1.0
|
||||||
|
|
||||||
|
for i in range(wagon_instances.size()):
|
||||||
|
var wagon: Node3D = wagon_instances[i]
|
||||||
|
if not is_instance_valid(wagon):
|
||||||
|
continue
|
||||||
|
|
||||||
|
var wagon_offset: float = float(i + 1) * 7.0
|
||||||
|
if i < wagon_progress_offsets.size():
|
||||||
|
wagon_offset = wagon_progress_offsets[i]
|
||||||
|
|
||||||
|
var wagon_progress: float = train_progress - direction * wagon_offset
|
||||||
|
_snap_vehicle_to_progress(wagon, wagon_progress, total_length)
|
||||||
|
|
||||||
|
func _snap_vehicle_to_progress(vehicle: Node3D, progress: float, total_length: float) -> void:
|
||||||
|
var vehicle_progress: float = wrapf(progress, 0.0, total_length)
|
||||||
|
var center_position: Vector3 = to_global(curve.sample_baked(vehicle_progress, true))
|
||||||
|
var prog_forward: float = wrapf(vehicle_progress + 2.0, 0.0, total_length)
|
||||||
|
var forward_position: Vector3 = to_global(curve.sample_baked(prog_forward, true))
|
||||||
|
|
||||||
|
vehicle.global_position = center_position
|
||||||
|
if center_position.distance_to(forward_position) > 0.01:
|
||||||
|
vehicle.look_at(forward_position, Vector3.UP)
|
||||||
|
vehicle.rotate_y(PI)
|
||||||
|
|
||||||
|
func _get_vehicle_length(vehicle: Node3D) -> float:
|
||||||
|
var bounds: AABB = _get_node_local_bounds(vehicle, vehicle)
|
||||||
|
if bounds.size == Vector3.ZERO:
|
||||||
|
return 7.0
|
||||||
|
|
||||||
|
return maxf(bounds.size.z, 0.1)
|
||||||
|
|
||||||
|
func _get_node_local_bounds(root: Node3D, node: Node) -> AABB:
|
||||||
|
var result: AABB = AABB()
|
||||||
|
var has_bounds: bool = false
|
||||||
|
|
||||||
|
var mesh_instance := node as MeshInstance3D
|
||||||
|
if mesh_instance != null and mesh_instance.mesh != null:
|
||||||
|
var mesh_bounds: AABB = mesh_instance.get_aabb()
|
||||||
|
var mesh_transform: Transform3D = root.global_transform.affine_inverse() * mesh_instance.global_transform
|
||||||
|
for corner in _get_aabb_corners(mesh_bounds):
|
||||||
|
var local_point: Vector3 = mesh_transform * corner
|
||||||
|
if has_bounds:
|
||||||
|
result = result.expand(local_point)
|
||||||
|
else:
|
||||||
|
result = AABB(local_point, Vector3.ZERO)
|
||||||
|
has_bounds = true
|
||||||
|
|
||||||
|
for child in node.get_children():
|
||||||
|
var child_bounds: AABB = _get_node_local_bounds(root, child)
|
||||||
|
if child_bounds.size == Vector3.ZERO:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if has_bounds:
|
||||||
|
result = result.merge(child_bounds)
|
||||||
|
else:
|
||||||
|
result = child_bounds
|
||||||
|
has_bounds = true
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
func _get_aabb_corners(bounds: AABB) -> Array[Vector3]:
|
||||||
|
var start: Vector3 = bounds.position
|
||||||
|
var end: Vector3 = bounds.end
|
||||||
|
return [
|
||||||
|
Vector3(start.x, start.y, start.z),
|
||||||
|
Vector3(end.x, start.y, start.z),
|
||||||
|
Vector3(start.x, end.y, start.z),
|
||||||
|
Vector3(end.x, end.y, start.z),
|
||||||
|
Vector3(start.x, start.y, end.z),
|
||||||
|
Vector3(end.x, start.y, end.z),
|
||||||
|
Vector3(start.x, end.y, end.z),
|
||||||
|
Vector3(end.x, end.y, end.z),
|
||||||
|
]
|
||||||
|
|||||||
6
core/biome_generator/wagon_pool.gd
Normal file
6
core/biome_generator/wagon_pool.gd
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
## Resource that lists the wagon scenes available for train composition.
|
||||||
|
class_name WagonPool
|
||||||
|
extends Resource
|
||||||
|
|
||||||
|
@export var name: String = "New Wagon Pool"
|
||||||
|
@export var available_wagons: Array[PackedScene] = []
|
||||||
9
core/biome_generator/wagon_pool.tres
Normal file
9
core/biome_generator/wagon_pool.tres
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[gd_resource type="Resource" script_class="WagonPool" format=3 uid="uid://bjnytgwt8tmf4"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://tgcc/train/main_train.tscn" id="1_t6q5r"]
|
||||||
|
[ext_resource type="Script" uid="uid://b6xk0gtn2pwa" path="res://core/biome_generator/wagon_pool.gd" id="2_x6bmc"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_x6bmc")
|
||||||
|
name = "Wagon Pool"
|
||||||
|
available_wagons = Array[PackedScene]([ExtResource("1_t6q5r")])
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 MiB |
BIN
core/main_menu/assets/photo_2025-08-27_17-35-14.jpg
Normal file
BIN
core/main_menu/assets/photo_2025-08-27_17-35-14.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 197 KiB |
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://buy4x63u237np"
|
uid="uid://b1wg4lif82dxp"
|
||||||
path="res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex"
|
path="res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://core/main_menu/assets/main_menu_background.png"
|
source_file="res://core/main_menu/assets/photo_2025-08-27_17-35-14.jpg"
|
||||||
dest_files=["res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex"]
|
dest_files=["res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" uid="uid://csqxuftsnv1br" path="res://core/main_menu/main_menu.gd" id="1_g1whv"]
|
[ext_resource type="Script" uid="uid://csqxuftsnv1br" path="res://core/main_menu/main_menu.gd" id="1_g1whv"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cxf8s80ivwj1p" path="res://core/game_menu/option_menu.tscn" id="1_uvy4f"]
|
[ext_resource type="PackedScene" uid="uid://cxf8s80ivwj1p" path="res://core/game_menu/option_menu.tscn" id="1_uvy4f"]
|
||||||
[ext_resource type="Texture2D" uid="uid://buy4x63u237np" path="res://core/main_menu/assets/main_menu_background.png" id="2_mloc8"]
|
[ext_resource type="Texture2D" uid="uid://b1wg4lif82dxp" path="res://core/main_menu/assets/photo_2025-08-27_17-35-14.jpg" id="2_mloc8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://caqf471x0kttc" path="res://core/game_menu/settings_menu.tscn" id="3_26agx"]
|
[ext_resource type="PackedScene" uid="uid://caqf471x0kttc" path="res://core/game_menu/settings_menu.tscn" id="3_26agx"]
|
||||||
|
|
||||||
[node name="MainMenu" type="Control" unique_id=889720172]
|
[node name="MainMenu" type="Control" unique_id=889720172]
|
||||||
|
|||||||
@@ -1,18 +1,10 @@
|
|||||||
[gd_scene format=3 uid="uid://dqvrhiqgkd3w1"]
|
[gd_scene format=3 uid="uid://dqvrhiqgkd3w1"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bnnuke5e7e1yr" path="res://core/ai/agents/human/ai_citizen_walker.tscn" id="1_a2xtd"]
|
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_a2xtd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ceqxsqfiotm5j" path="res://core/ai/agents/human/ai_farmer.tscn" id="2_n3ssi"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bbseno7clbepx" path="res://core/ai/agents/human/ai_citizen_sitter.tscn" id="3_fdj8t"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dd8wn62anbts8" path="res://core/ai/agents/cow/ai_cow.tscn" id="4_wr508"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cayakdk7gmlyg" path="res://core/ai/agents/horse/ai_horse.tscn" id="5_7kg15"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c2hg6hu2y5srb" path="res://core/ai/agents/pig/ai_pig.tscn" id="6_hw7u7"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://2md4l83fy8kr" path="res://core/ai/agents/pug/ai_pug.tscn" id="7_s6v14"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bs1bdtm7jdtgb" path="res://core/ai/agents/sheep/ai_sheep.tscn" id="8_amn6p"]
|
|
||||||
|
|
||||||
[sub_resource type="NavigationMesh" id="NavigationMesh_optuv"]
|
[sub_resource type="NavigationMesh" id="NavigationMesh_optuv"]
|
||||||
vertices = PackedVector3Array(8.984741, 0.25012434, -0.014038086, 9.234741, 0.25012434, -1.0140381, -18.015259, 0.25012434, -18.014038, 17.984741, 0.25012434, 17.985962, 10.984741, 0.25012434, 1.2359619, 9.234741, 0.25012434, 1.2359619, 10.984741, 0.25012434, -1.0140381, 17.984741, 0.25012434, -18.014038, -18.015259, 0.25012434, 17.985962, 11.234741, 0.25012434, 0.23596191)
|
vertices = PackedVector3Array(10.984741, 0.25012434, -1.0140381, 11.234741, 0.25012434, 0.23596191, 19.484741, 0.25012434, 0.23596191, 19.484741, 0.25012434, -19.514038, 9.234741, 0.25012434, -1.0140381, -19.515259, 0.25012434, -19.514038, -19.515259, 0.25012434, -0.014038086, 8.984741, 0.25012434, -0.014038086, 10.984741, 0.25012434, 1.2359619, 19.484741, 0.25012434, 19.235962, 9.234741, 0.25012434, 1.2359619, -19.515259, 0.25012434, 19.235962)
|
||||||
polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(5, 4, 3), PackedInt32Array(7, 6, 1), PackedInt32Array(5, 8, 0), PackedInt32Array(0, 8, 2), PackedInt32Array(5, 3, 8), PackedInt32Array(1, 2, 7), PackedInt32Array(3, 4, 9), PackedInt32Array(6, 7, 9), PackedInt32Array(9, 7, 3)]
|
polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 3), PackedInt32Array(6, 5, 4), PackedInt32Array(4, 5, 3), PackedInt32Array(3, 0, 4), PackedInt32Array(4, 7, 6), PackedInt32Array(1, 2, 8), PackedInt32Array(8, 2, 9), PackedInt32Array(6, 10, 11), PackedInt32Array(11, 10, 9), PackedInt32Array(10, 8, 9), PackedInt32Array(6, 7, 10)]
|
||||||
border_size = 2.0
|
|
||||||
|
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_optuv"]
|
[sub_resource type="PlaneMesh" id="PlaneMesh_optuv"]
|
||||||
|
|
||||||
@@ -49,6 +41,14 @@ mesh = SubResource("BoxMesh_lmjyn")
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Obstacle/StaticBody3D" unique_id=1663742898]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Obstacle/StaticBody3D" unique_id=1663742898]
|
||||||
shape = SubResource("BoxShape3D_lmjyn")
|
shape = SubResource("BoxShape3D_lmjyn")
|
||||||
|
|
||||||
|
[node name="AIBase" parent="." unique_id=1228675528 instance=ExtResource("1_a2xtd")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.48246834, 0.21202153, 0.11262059)
|
||||||
|
speed = 5.0
|
||||||
|
enable_state_machine = true
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="." unique_id=1148396057]
|
||||||
|
transform = Transform3D(-2.0613477e-08, 0.8818225, -0.47158146, 3.854569e-08, 0.47158146, 0.8818225, 1, -3.5527137e-15, -4.371139e-08, -18.21907, 28.71355, 0)
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1772424900]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1772424900]
|
||||||
environment = SubResource("Environment_lmjyn")
|
environment = SubResource("Environment_lmjyn")
|
||||||
|
|
||||||
@@ -92,30 +92,3 @@ Parameters:
|
|||||||
- Wait Time: Delay in seconds on the IdleState node.
|
- Wait Time: Delay in seconds on the IdleState node.
|
||||||
- Area Radius: Radius of the SphereShape3D used by PatrolRadiusShape."
|
- Area Radius: Radius of the SphereShape3D used by PatrolRadiusShape."
|
||||||
autowrap_mode = 2
|
autowrap_mode = 2
|
||||||
|
|
||||||
[node name="AiCitizenWalker" parent="." unique_id=1228675528 instance=ExtResource("1_a2xtd")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.690094, 1, -11.367183)
|
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="." unique_id=1753000680]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.42261824, 0.9063078, 0, -0.9063078, 0.42261824, 0, 18.361065, 15.377485)
|
|
||||||
|
|
||||||
[node name="AiFarmer" parent="." unique_id=1839077075 instance=ExtResource("2_n3ssi")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2447205, 0.94226265, 2.9251099)
|
|
||||||
|
|
||||||
[node name="AiCitizenSitter" parent="." unique_id=127569260 instance=ExtResource("3_fdj8t")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.074956, 1.3552468, 11.883549)
|
|
||||||
|
|
||||||
[node name="AiCow" parent="." unique_id=1021070481 instance=ExtResource("4_wr508")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.4981034, 0.94226265, 15.013644)
|
|
||||||
|
|
||||||
[node name="AiHorse" parent="." unique_id=71046494 instance=ExtResource("5_7kg15")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.385908, 0.94226265, 14.142443)
|
|
||||||
|
|
||||||
[node name="AiPig" parent="." unique_id=430569938 instance=ExtResource("6_hw7u7")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.327689, 0.94226265, 6.6309185)
|
|
||||||
|
|
||||||
[node name="AiPug" parent="." unique_id=1284695236 instance=ExtResource("7_s6v14")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4858246, 0.9422617, 9.294181)
|
|
||||||
|
|
||||||
[node name="AiSheep" parent="." unique_id=806542551 instance=ExtResource("8_amn6p")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.740941, 1.1779783, 16.328548)
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://h5yhjn1x3f4j" path="res://core/daynight/sounds/rain_2.mp3" id="21_wnhyx"]
|
[ext_resource type="AudioStream" uid="uid://h5yhjn1x3f4j" path="res://core/daynight/sounds/rain_2.mp3" id="21_wnhyx"]
|
||||||
[ext_resource type="AudioStream" uid="uid://elrjw0smm0cj" path="res://core/daynight/sounds/rain_3.mp3" id="22_53kbn"]
|
[ext_resource type="AudioStream" uid="uid://elrjw0smm0cj" path="res://core/daynight/sounds/rain_3.mp3" id="22_53kbn"]
|
||||||
[ext_resource type="Script" uid="uid://cx2tlvxhvatj5" path="res://docs/museums/daynight/control.gd" id="23_27ile"]
|
[ext_resource type="Script" uid="uid://cx2tlvxhvatj5" path="res://docs/museums/daynight/control.gd" id="23_27ile"]
|
||||||
|
[ext_resource type="Script" uid="uid://ccdd52apoh4ir" path="res://docs/museums/daynight/camera_3d.gd" id="24_sw7bt"]
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wjpfq"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wjpfq"]
|
||||||
fractal_lacunarity = 1.915
|
fractal_lacunarity = 1.915
|
||||||
@@ -148,7 +149,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|||||||
curve = SubResource("Curve3D_xtogr")
|
curve = SubResource("Curve3D_xtogr")
|
||||||
script = ExtResource("6_pypsn")
|
script = ExtResource("6_pypsn")
|
||||||
train_model = ExtResource("6_wjpfq")
|
train_model = ExtResource("6_wjpfq")
|
||||||
cameras = NodePath("../cameras")
|
cameras = NodePath("../Camera3D")
|
||||||
sleepers_model = ExtResource("8_mb5yv")
|
sleepers_model = ExtResource("8_mb5yv")
|
||||||
fireworks_scene = ExtResource("8_xtogr")
|
fireworks_scene = ExtResource("8_xtogr")
|
||||||
|
|
||||||
@@ -373,6 +374,10 @@ theme_override_colors/font_color = Color(1, 1, 1, 1)
|
|||||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||||
text = "Weather: Clear"
|
text = "Weather: Clear"
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="." unique_id=1305162994]
|
||||||
|
transform = Transform3D(0.035881948, 0.7570504, -0.65237045, -0.1472942, 0.6496678, 0.7458125, 0.9884417, 0.06932917, 0.13482046, -18.173235, 14.658583, -10.483771)
|
||||||
|
script = ExtResource("24_sw7bt")
|
||||||
|
|
||||||
[connection signal="toggled" from="Control/Snow" to="Control" method="_on_snow_toggled"]
|
[connection signal="toggled" from="Control/Snow" to="Control" method="_on_snow_toggled"]
|
||||||
[connection signal="toggled" from="Control/Rain" to="Control" method="_on_rain_toggled"]
|
[connection signal="toggled" from="Control/Rain" to="Control" method="_on_rain_toggled"]
|
||||||
[connection signal="toggled" from="Control/Wind" to="Control" method="_on_wind_toggled"]
|
[connection signal="toggled" from="Control/Wind" to="Control" method="_on_wind_toggled"]
|
||||||
|
|||||||
71
export_presets.cfg
Normal file
71
export_presets.cfg
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../tgcc.exe"
|
||||||
|
patches=PackedStringArray()
|
||||||
|
patch_delta_encoding=false
|
||||||
|
patch_delta_compression_level_zstd=19
|
||||||
|
patch_delta_min_reduction=0.1
|
||||||
|
patch_delta_include_filters="*"
|
||||||
|
patch_delta_exclude_filters=""
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
seed=0
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
script_export_mode=2
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=1
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
texture_format/s3tc_bptc=true
|
||||||
|
texture_format/etc2_astc=false
|
||||||
|
shader_baker/enabled=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
codesign/enable=false
|
||||||
|
codesign/timestamp=true
|
||||||
|
codesign/timestamp_server_url=""
|
||||||
|
codesign/digest_algorithm=1
|
||||||
|
codesign/description=""
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
application/modify_resources=true
|
||||||
|
application/icon=""
|
||||||
|
application/console_wrapper_icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/file_version=""
|
||||||
|
application/product_version=""
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name=""
|
||||||
|
application/file_description=""
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
application/export_angle=0
|
||||||
|
application/export_d3d12=0
|
||||||
|
application/d3d12_agility_sdk_multiarch=true
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||||
|
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||||
|
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||||
|
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||||
|
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||||
|
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||||
|
Start-ScheduledTask -TaskName godot_remote_debug
|
||||||
|
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||||
|
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||||
|
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||||
@@ -20,7 +20,7 @@ config/icon="uid://bfar1kk3pgq8f"
|
|||||||
|
|
||||||
UIEvents="*uid://dehu28iq27mbn"
|
UIEvents="*uid://dehu28iq27mbn"
|
||||||
GameState="*uid://b17g2w2g101o6"
|
GameState="*uid://b17g2w2g101o6"
|
||||||
CollectionManager="*uid://22orqdm34hfm"
|
CollectionManager="*uid://c3kq1qddpm8tf"
|
||||||
AudioManager="*uid://dcttbbavtwtsg"
|
AudioManager="*uid://dcttbbavtwtsg"
|
||||||
SceneManager="*uid://bw8hwkw55j675"
|
SceneManager="*uid://bw8hwkw55j675"
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://1c1ion0qnho4" path="res://tgcc/map/map_1/map_1.tscn" id="43_ysd85"]
|
[ext_resource type="PackedScene" uid="uid://1c1ion0qnho4" path="res://tgcc/map/map_1/map_1.tscn" id="43_ysd85"]
|
||||||
[ext_resource type="Script" uid="uid://dboerd4a6dwj7" path="res://core/biome_generator/rails.gd" id="44_rcqo0"]
|
[ext_resource type="Script" uid="uid://dboerd4a6dwj7" path="res://core/biome_generator/rails.gd" id="44_rcqo0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://tgcc/train/main_train.tscn" id="45_c0jxs"]
|
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://tgcc/train/main_train.tscn" id="45_c0jxs"]
|
||||||
|
[ext_resource type="Resource" uid="uid://bjnytgwt8tmf4" path="res://core/biome_generator/wagon_pool.tres" id="46_exdk1"]
|
||||||
[ext_resource type="PackedScene" uid="uid://0kgjaqijaqku" path="res://docs/museums/biome_generator/rails.tscn" id="46_lbmv2"]
|
[ext_resource type="PackedScene" uid="uid://0kgjaqijaqku" path="res://docs/museums/biome_generator/rails.tscn" id="46_lbmv2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dn1btv0e0ses7" path="res://core/fireworks.tscn" id="47_q7p65"]
|
[ext_resource type="PackedScene" uid="uid://dn1btv0e0ses7" path="res://core/fireworks.tscn" id="47_q7p65"]
|
||||||
[ext_resource type="Script" uid="uid://cx2tlvxhvatj5" path="res://docs/museums/daynight/control.gd" id="48_r5xyi"]
|
[ext_resource type="Script" uid="uid://cx2tlvxhvatj5" path="res://docs/museums/daynight/control.gd" id="48_r5xyi"]
|
||||||
@@ -195,6 +196,10 @@ transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 270,
|
|||||||
curve = SubResource("Curve3D_ndco5")
|
curve = SubResource("Curve3D_ndco5")
|
||||||
script = ExtResource("44_rcqo0")
|
script = ExtResource("44_rcqo0")
|
||||||
train_model = ExtResource("45_c0jxs")
|
train_model = ExtResource("45_c0jxs")
|
||||||
|
wagon_pool = ExtResource("46_exdk1")
|
||||||
|
wagon_count = 4
|
||||||
|
wagon_gap = 0.5
|
||||||
|
wagon_spacing_scale = 0.7999999999999999
|
||||||
cameras = NodePath("../cameras")
|
cameras = NodePath("../cameras")
|
||||||
sleepers_model = ExtResource("46_lbmv2")
|
sleepers_model = ExtResource("46_lbmv2")
|
||||||
fireworks_scene = ExtResource("47_q7p65")
|
fireworks_scene = ExtResource("47_q7p65")
|
||||||
|
|||||||
Reference in New Issue
Block a user