Compare commits
7 Commits
c1bf03b6c0
...
polish3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7006b2a6f0 | ||
|
|
02311f2ac5 | ||
|
|
4408e0d933 | ||
|
|
7331b71877 | ||
|
|
4bd878d2a8 | ||
|
|
c2a6b991dd | ||
| c5232d1082 |
@@ -2,7 +2,7 @@ extends CharacterBody3D
|
||||
|
||||
class_name AIBase
|
||||
|
||||
@export_group("Settings")
|
||||
@export_group("Movement")
|
||||
@export var speed: float = 4.0
|
||||
var _enable_state_machine: bool = true
|
||||
@export var enable_state_machine: bool:
|
||||
@@ -11,7 +11,10 @@ var _enable_state_machine: bool = true
|
||||
toggle_enable_state_machine()
|
||||
get:
|
||||
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")
|
||||
enum EntityType { HUMANOID, ANIMAL }
|
||||
@@ -20,9 +23,6 @@ enum EntityType { HUMANOID, ANIMAL }
|
||||
@export var allowed_biomes: Array[String] = []
|
||||
@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:
|
||||
randomize()
|
||||
@@ -48,11 +48,6 @@ func _physics_process(delta: float) -> void:
|
||||
velocity.x = direction.x * 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()
|
||||
|
||||
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://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"]
|
||||
radius = 20.0
|
||||
@@ -10,12 +16,27 @@ radius = 20.0
|
||||
script = ExtResource("1_4d1nn")
|
||||
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]
|
||||
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
|
||||
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]
|
||||
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
|
||||
|
||||
const IDLE_STATE_ID: StringName = &"idle"
|
||||
|
||||
@onready var agent: AIBase = owner
|
||||
|
||||
func enter() -> void:
|
||||
super.enter()
|
||||
run_animation()
|
||||
agent.navigate_to_random_point()
|
||||
|
||||
func physics_update(_delta) -> void:
|
||||
if agent.nav_agent.is_navigation_finished():
|
||||
transitioned.emit(self, next_state_id)
|
||||
transitioned.emit(self, IDLE_STATE_ID)
|
||||
@@ -1,30 +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"]
|
||||
|
||||
[node name="AiCow" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_p2hpa")]
|
||||
anim_player = NodePath("CowMannequin/AnimationPlayer")
|
||||
|
||||
[node name="StateMachine" parent="." index="1" 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="3" 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,69 +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="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="StateMachine" parent="." index="1" 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="3" 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,55 +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="HumanMannequin" parent="." index="3" 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=2096894453]
|
||||
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=1402189960]
|
||||
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://bod5wup7tap24" path="res://core/ai/agents/human/gather.res" id="2_3r4wv"]
|
||||
[ext_resource type="Animation" uid="uid://cp4pl635iv3g7" 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://byksuipm2bly7" 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=2096894453]
|
||||
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=1402189960]
|
||||
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=1304782348]
|
||||
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,76 +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="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="StateMachine" parent="." index="1" 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="3" 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,55 +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="StateMachine" parent="." index="1" 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="3" 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,44 +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="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="StateMachine" parent="." index="1" 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="3" 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
|
||||
|
||||
@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)
|
||||
|
||||
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:
|
||||
if exit_on_animation_finished:
|
||||
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:
|
||||
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:
|
||||
func enter() -> void:
|
||||
pass
|
||||
|
||||
func physics_update(_delta: float) -> void:
|
||||
func exit() -> void:
|
||||
pass
|
||||
|
||||
func run_animation() -> void:
|
||||
if agent.anim_player and agent.anim_player.has_animation(animation_name):
|
||||
agent.anim_player.play(animation_name)
|
||||
func update(_delta) -> void:
|
||||
pass
|
||||
|
||||
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)
|
||||
func physics_update(_delta) -> void:
|
||||
pass
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
extends Node
|
||||
|
||||
signal volume_changed(bus_name: StringName, linear_value: float)
|
||||
|
||||
const MIN_VOLUME: float = 0.0
|
||||
const MAX_VOLUME: float = 1.0
|
||||
|
||||
@@ -19,7 +17,6 @@ func set_audio_bus_volume(bus_name: StringName, linear_value: float) -> void:
|
||||
GameState.save_data.audio_bus_volumes[normalized_bus_name] = clamped_value
|
||||
_apply_audio_bus_volume(normalized_bus_name, clamped_value)
|
||||
GameState.save_game()
|
||||
volume_changed.emit(bus_name, clamped_value)
|
||||
|
||||
func get_audio_bus_volume(bus_name: StringName, default_value: float = 1.0) -> float:
|
||||
return float(GameState.save_data.audio_bus_volumes.get(str(bus_name), default_value))
|
||||
|
||||
@@ -10,6 +10,19 @@ const ENTITY_SPAWN_ANY: int = 0
|
||||
const ENTITY_SPAWN_HUMANOID_ONLY: int = 1
|
||||
const ENTITY_SPAWN_ANIMAL_ONLY: int = 2
|
||||
|
||||
const CHUNK_GENERATION_FRAME_BUDGET_USEC: int = 2000 #2 ms/frame to generate chunks
|
||||
const CHUNK_CLEANUP_FRAME_BUDGET_USEC: int = 1000 #1 ms/frame per cleanup
|
||||
const LAMPPOST_WIRE_FRAME_BUDGET_USEC: int = 1000 #1 ms/frame per i fili dei lampioni
|
||||
#(about 4 ms o work for frame)
|
||||
#Se compaiono chunk troppo lentamente davanti al treno:
|
||||
#aumentare generazione a 3000 o 4000
|
||||
#Se ci sono micro-scatti:
|
||||
#abbassare generazione a 1000 o 1500
|
||||
#Se i fili appaiono in ritardo:
|
||||
#aumentare wire a 1500 o 2000
|
||||
#Se il cleanup causa scatti:
|
||||
#abbassare cleanup a 500
|
||||
|
||||
const MAX_CHUNK_UNIQUENESS: int = 5
|
||||
const RIVER_SIDE_ORDER: Array[String] = ["north", "est", "south", "west"]
|
||||
const RIVER_DIRECTIONS: Dictionary = {
|
||||
@@ -25,20 +38,6 @@ const RIVER_NEIGHBOUR_OFFSETS: Dictionary = {
|
||||
"west": Vector2i(-1, 0),
|
||||
}
|
||||
|
||||
@export_group("Generation")
|
||||
@export var chunk_generation_frame_budget_usec: int = 1500 #2 ms/frame to generate chunks
|
||||
@export var chunk_cleanup_frame_budget_usec: int = 1000 #1 ms/frame per cleanup
|
||||
@export var lampost_wire_frame_budget_usec: int = 1000 #1 ms/frame per i fili dei lampioni
|
||||
#(about 4 ms of work for frame)
|
||||
#Se compaiono chunk troppo lentamente davanti al treno:
|
||||
#aumentare generazione a 3000 o 4000
|
||||
#Se ci sono micro-scatti:
|
||||
#abbassare generazione a 1000 o 1500
|
||||
#Se i fili appaiono in ritardo:
|
||||
#aumentare wire a 1500 o 2000
|
||||
#Se il cleanup causa scatti:
|
||||
#abbassare cleanup a 500
|
||||
|
||||
@export_group("Rails")
|
||||
@export var rail_path: Path3D #rail path
|
||||
@export var railway_pool: Resource
|
||||
@@ -484,7 +483,7 @@ func _queue_has_frame_budget(start_usec: int, budget_usec: int, processed: int)
|
||||
func _drain_generation_queue() -> void:
|
||||
var processed: int = 0
|
||||
var start_usec: int = Time.get_ticks_usec()
|
||||
while pending_generation_cursor < pending_generation_cells.size() and _queue_has_frame_budget(start_usec, chunk_generation_frame_budget_usec, processed):
|
||||
while pending_generation_cursor < pending_generation_cells.size() and _queue_has_frame_budget(start_usec, CHUNK_GENERATION_FRAME_BUDGET_USEC, processed):
|
||||
var grid_pos: Vector2i = pending_generation_cells[pending_generation_cursor]
|
||||
pending_generation_cursor += 1
|
||||
if board.has(grid_pos):
|
||||
@@ -502,7 +501,7 @@ func _drain_generation_queue() -> void:
|
||||
func _drain_cleanup_queue() -> void:
|
||||
var processed: int = 0
|
||||
var start_usec: int = Time.get_ticks_usec()
|
||||
while pending_cleanup_cursor < pending_cleanup_cells.size() and _queue_has_frame_budget(start_usec, chunk_cleanup_frame_budget_usec, processed):
|
||||
while pending_cleanup_cursor < pending_cleanup_cells.size() and _queue_has_frame_budget(start_usec, CHUNK_CLEANUP_FRAME_BUDGET_USEC, processed):
|
||||
var grid_pos: Vector2i = pending_cleanup_cells[pending_cleanup_cursor]
|
||||
pending_cleanup_cursor += 1
|
||||
if not board.has(grid_pos):
|
||||
@@ -530,7 +529,7 @@ func _queue_lamppost_wire_connection(grid_pos: Vector2i) -> void:
|
||||
func _drain_wire_queue() -> void:
|
||||
var processed: int = 0
|
||||
var start_usec: int = Time.get_ticks_usec()
|
||||
while pending_wire_cursor < pending_wire_cells.size() and _queue_has_frame_budget(start_usec, lampost_wire_frame_budget_usec, processed):
|
||||
while pending_wire_cursor < pending_wire_cells.size() and _queue_has_frame_budget(start_usec, LAMPPOST_WIRE_FRAME_BUDGET_USEC, processed):
|
||||
var grid_pos: Vector2i = pending_wire_cells[pending_wire_cursor]
|
||||
pending_wire_cursor += 1
|
||||
pending_wire_lookup.erase(grid_pos)
|
||||
|
||||
@@ -28,7 +28,6 @@ func _ready() -> void:
|
||||
slider.max_value = MAX_VOLUME
|
||||
slider.step = 0.01
|
||||
slider.value_changed.connect(_on_slider_value_changed)
|
||||
AudioManager.volume_changed.connect(_on_audio_manager_volume_changed)
|
||||
refresh()
|
||||
|
||||
func refresh() -> void:
|
||||
@@ -66,7 +65,3 @@ func _set_bus_volume(linear_value: float) -> void:
|
||||
|
||||
func _on_slider_value_changed(value: float) -> void:
|
||||
_set_bus_volume(value)
|
||||
|
||||
func _on_audio_manager_volume_changed(changed_bus_name: StringName, volume: float) -> void:
|
||||
if changed_bus_name == bus_name:
|
||||
slider.set_value_no_signal(volume)
|
||||
|
||||
@@ -5,27 +5,19 @@ extends Control
|
||||
|
||||
func _ready() -> void:
|
||||
for tab: GameMenuTab in tabs:
|
||||
tab.on_tab_selected.connect(on_tab_pressed)
|
||||
tab.on_tab_selected.connect(_on_tab_pressed)
|
||||
|
||||
on_tab_pressed(0, true)
|
||||
tabs[0].select_without_animation()
|
||||
pages[0].show()
|
||||
|
||||
func on_tab_pressed(index: int, disable_animation: bool = false) -> void:
|
||||
func _on_tab_pressed(index: int):
|
||||
for page in pages:
|
||||
page.hide()
|
||||
|
||||
for tab in tabs:
|
||||
if tab.index == index:
|
||||
if disable_animation:
|
||||
tab.select_without_animation()
|
||||
else:
|
||||
tab.select()
|
||||
tab.select()
|
||||
else:
|
||||
if disable_animation:
|
||||
tab.deselect_without_animation()
|
||||
else:
|
||||
tab.deselect()
|
||||
tab.deselect()
|
||||
|
||||
pages[index].show()
|
||||
|
||||
func _on_resume_button_on_button_pressed() -> void:
|
||||
hide()
|
||||
|
||||
@@ -20,14 +20,6 @@ grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("1_57vaj")
|
||||
|
||||
[node name="Panel" type="Panel" parent="." unique_id=992567199]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Tabs" type="HBoxContainer" parent="." unique_id=1745270897]
|
||||
layout_mode = 1
|
||||
offset_left = 1138.0
|
||||
@@ -83,8 +75,3 @@ layout_mode = 1
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
|
||||
[connection signal="on_button_pressed" from="Pages/Page3/OptionMenu/VBoxContainer/ResumeButton" to="." method="_on_resume_button_on_button_pressed"]
|
||||
|
||||
[editable path="Pages/Page3"]
|
||||
[editable path="Pages/Page3/OptionMenu"]
|
||||
|
||||
@@ -38,10 +38,6 @@ func deselect():
|
||||
func select_without_animation():
|
||||
is_selected = true
|
||||
texture.position.y = -bob_height
|
||||
|
||||
func deselect_without_animation():
|
||||
is_selected = false
|
||||
texture.position.y = 0
|
||||
|
||||
func _move_up():
|
||||
if hover_tween: hover_tween.kill()
|
||||
|
||||
@@ -6,10 +6,6 @@ signal on_game_paused
|
||||
signal on_game_resumed
|
||||
@warning_ignore("unused_signal")
|
||||
signal on_photo_highlighted(teture: Texture)
|
||||
@warning_ignore("unused_signal")
|
||||
signal on_enable_photo_mode_request
|
||||
@warning_ignore("unused_signal")
|
||||
signal on_disable_photo_mode_request
|
||||
|
||||
const SAVE_PATH: String = "user://savegame.json"
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 MiB |
@@ -1,40 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://buy4x63u237np"
|
||||
path="res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://core/main_menu/assets/main_menu_background.png"
|
||||
dest_files=["res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
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"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dldg826x1kkoe"
|
||||
path="res://.godot/imported/weather_test.png-b32f5910d510365f593b180d50dbe815.ctex"
|
||||
uid="uid://b1wg4lif82dxp"
|
||||
path="res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://core/main_scene_ui/assets/weather_test.png"
|
||||
dest_files=["res://.godot/imported/weather_test.png-b32f5910d510365f593b180d50dbe815.ctex"]
|
||||
source_file="res://core/main_menu/assets/photo_2025-08-27_17-35-14.jpg"
|
||||
dest_files=["res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"]
|
||||
|
||||
[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="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"]
|
||||
|
||||
[node name="MainMenu" type="Control" unique_id=889720172]
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
@@ -1,43 +0,0 @@
|
||||
extends Control
|
||||
|
||||
@export var radio: Radio
|
||||
|
||||
@onready var track_label: Label = $%TrackLabel
|
||||
|
||||
func _ready() -> void:
|
||||
if radio:
|
||||
radio.track_changed.connect(_on_radio_track_changed)
|
||||
if radio.stream and radio.stream.resource_path:
|
||||
track_label.text = radio.stream.resource_path.get_file().get_basename().capitalize()
|
||||
else:
|
||||
track_label.text = "Unknown Track"
|
||||
|
||||
func _on_radio_track_changed(track_name: String) -> void:
|
||||
track_label.text = track_name
|
||||
|
||||
func _on_prev_track_icon_button_on_pressed() -> void:
|
||||
if radio:
|
||||
radio.prev_track()
|
||||
|
||||
|
||||
func _on_play_pause_icon_button_on_pressed() -> void:
|
||||
radio.toggle_pause()
|
||||
#if radio.stream_paused:
|
||||
#button_pause_resume.text = "Resume"
|
||||
#else:
|
||||
#button_pause_resume.text = "Pause"
|
||||
|
||||
|
||||
func _on_next_track_icon_button_on_pressed() -> void:
|
||||
if radio:
|
||||
radio.next_track()
|
||||
|
||||
|
||||
func _on_increase_volume_icon_button_on_pressed() -> void:
|
||||
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
|
||||
AudioManager.set_audio_bus_volume("Music", current_vol + 0.1)
|
||||
|
||||
|
||||
func _on_decrease_volume_icon_button_on_pressed() -> void:
|
||||
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
|
||||
AudioManager.set_audio_bus_volume("Music", current_vol - 0.1)
|
||||
@@ -1 +0,0 @@
|
||||
uid://c4kekqicrv4m8
|
||||
@@ -1,135 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://dg4f3v0ukpmay"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c4kekqicrv4m8" path="res://core/main_scene_ui/audio_player.gd" id="1_i2mrl"]
|
||||
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="1_ucnyb"]
|
||||
|
||||
[node name="AudioPlayer" type="Control" unique_id=425192018]
|
||||
layout_mode = 3
|
||||
anchor_right = 0.15208334
|
||||
anchor_bottom = 0.10925926
|
||||
script = ExtResource("1_i2mrl")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1300382168]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer" unique_id=1923985665]
|
||||
layout_mode = 2
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="TrackLabel" type="Label" parent="HBoxContainer/VBoxContainer" unique_id=1430240022]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Test Test"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="IconButtonsRow" type="HBoxContainer" parent="HBoxContainer/VBoxContainer" unique_id=1734127019]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="PrevTrackIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=1750448019 instance=ExtResource("1_ucnyb")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton" index="0" unique_id=1071359322]
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.11538447
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.88461524
|
||||
offset_left = 116.66667
|
||||
offset_top = 122.14813
|
||||
offset_right = -116.666664
|
||||
offset_bottom = -122.14813
|
||||
|
||||
[node name="PlayPauseIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=1533336956 instance=ExtResource("1_ucnyb")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton" index="0" unique_id=1071359322]
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.11538447
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.88461524
|
||||
offset_left = 116.66667
|
||||
offset_top = 122.14813
|
||||
offset_right = -116.666664
|
||||
offset_bottom = -122.14813
|
||||
|
||||
[node name="NextTrackIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=2108379455 instance=ExtResource("1_ucnyb")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton" index="0" unique_id=1071359322]
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.11538447
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.88461524
|
||||
offset_left = 116.66667
|
||||
offset_top = 122.14813
|
||||
offset_right = -116.666664
|
||||
offset_bottom = -122.14813
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer" unique_id=1843266535]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
|
||||
[node name="IncreaseVolumeIconButton" parent="HBoxContainer/VBoxContainer2" unique_id=1788399963 instance=ExtResource("1_ucnyb")]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Texture" parent="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton" index="0" unique_id=1071359322]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
anchor_left = 0.25
|
||||
anchor_top = 0.35915482
|
||||
anchor_right = 0.75
|
||||
anchor_bottom = 0.64084494
|
||||
offset_left = 96.66667
|
||||
offset_top = 92.64813
|
||||
offset_right = -96.666664
|
||||
offset_bottom = -92.64813
|
||||
|
||||
[node name="DecreaseVolumeIconButton" parent="HBoxContainer/VBoxContainer2" unique_id=399629327 instance=ExtResource("1_ucnyb")]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Texture" parent="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton" index="0" unique_id=1071359322]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
anchor_left = 0.25
|
||||
anchor_top = 0.35915482
|
||||
anchor_right = 0.75
|
||||
anchor_bottom = 0.64084494
|
||||
offset_left = 96.66667
|
||||
offset_top = 92.64813
|
||||
offset_right = -96.666664
|
||||
offset_bottom = -92.64813
|
||||
|
||||
[connection signal="on_pressed" from="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton" to="." method="_on_prev_track_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton" to="." method="_on_play_pause_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton" to="." method="_on_next_track_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton" to="." method="_on_increase_volume_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton" to="." method="_on_decrease_volume_icon_button_on_pressed"]
|
||||
|
||||
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton"]
|
||||
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton"]
|
||||
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton"]
|
||||
[editable path="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton"]
|
||||
[editable path="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton"]
|
||||
@@ -1,23 +0,0 @@
|
||||
@tool
|
||||
extends Control
|
||||
|
||||
class_name IconButton
|
||||
|
||||
signal on_pressed
|
||||
|
||||
@export var data: String
|
||||
@export var image: Texture:
|
||||
set(value):
|
||||
image = value
|
||||
if is_inside_tree() and has_node("%Texture"):
|
||||
$%Texture.texture = image
|
||||
|
||||
|
||||
func _ready():
|
||||
if image != null and has_node("%Texture"):
|
||||
$%Texture.texture = image
|
||||
|
||||
|
||||
func _on_gui_input(event: InputEvent) -> void:
|
||||
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
|
||||
on_pressed.emit()
|
||||
@@ -1 +0,0 @@
|
||||
uid://bpbgecvan0a5k
|
||||
@@ -1,36 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://2tqofxxxnvhv"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bpbgecvan0a5k" path="res://core/main_scene_ui/icon_button.gd" id="1_r8gxt"]
|
||||
[ext_resource type="Texture2D" uid="uid://dldg826x1kkoe" path="res://core/main_scene_ui/assets/weather_test.png" id="1_upldh"]
|
||||
|
||||
[node name="IconButton" type="Control" unique_id=1750448019]
|
||||
custom_minimum_size = Vector2(160, 160)
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_r8gxt")
|
||||
image = ExtResource("1_upldh")
|
||||
|
||||
[node name="Texture" type="TextureRect" parent="." unique_id=1071359322]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(160, 160)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.45833334
|
||||
anchor_top = 0.42592594
|
||||
anchor_right = 0.5416667
|
||||
anchor_bottom = 0.5740741
|
||||
offset_left = 80.0
|
||||
offset_top = 79.99997
|
||||
offset_right = -80.0
|
||||
offset_bottom = -80.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("1_upldh")
|
||||
expand_mode = 1
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[connection signal="gui_input" from="." to="." method="_on_gui_input"]
|
||||
@@ -1,48 +0,0 @@
|
||||
extends HBoxContainer
|
||||
|
||||
signal on_option_changed(data: String)
|
||||
|
||||
@onready var current_icon_button: IconButton
|
||||
@onready var icon_buttons_options: Array[IconButton]
|
||||
|
||||
var is_menu_open: bool = false
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
for i in range(get_child_count()):
|
||||
var icon_button: IconButton = get_child(i)
|
||||
if i == 0:
|
||||
current_icon_button = icon_button
|
||||
icon_button.on_pressed.connect(on_current_icon_button_pressed)
|
||||
else:
|
||||
icon_buttons_options.append(icon_button)
|
||||
icon_button.on_pressed.connect(_on_icon_pressed_changed.bind(icon_button))
|
||||
|
||||
|
||||
func _on_icon_pressed_changed(in_icon_button: IconButton):
|
||||
for icon_button in icon_buttons_options:
|
||||
if icon_button == in_icon_button:
|
||||
current_icon_button.image = in_icon_button.image
|
||||
current_icon_button.data = in_icon_button.data
|
||||
on_option_changed.emit(icon_button.data)
|
||||
break
|
||||
hide_options()
|
||||
|
||||
|
||||
func on_current_icon_button_pressed() -> void:
|
||||
if is_menu_open:
|
||||
hide_options()
|
||||
else:
|
||||
show_options()
|
||||
|
||||
|
||||
func show_options() -> void:
|
||||
for icon_button in icon_buttons_options:
|
||||
icon_button.show()
|
||||
is_menu_open = true
|
||||
|
||||
|
||||
func hide_options() -> void:
|
||||
for icon_button in icon_buttons_options:
|
||||
icon_button.hide()
|
||||
is_menu_open = false
|
||||
@@ -1 +0,0 @@
|
||||
uid://cpf5rwmd0kaa6
|
||||
@@ -1,43 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://ir8nke8o6ssm"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="1_lnxme"]
|
||||
[ext_resource type="Script" uid="uid://cpf5rwmd0kaa6" path="res://core/main_scene_ui/icon_buttons_row.gd" id="1_xq3mw"]
|
||||
|
||||
[node name="IconButtonsRow" type="HBoxContainer" unique_id=1734127019]
|
||||
custom_minimum_size = Vector2(800, 0)
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource("1_xq3mw")
|
||||
|
||||
[node name="IconButton" parent="." unique_id=1750448019 instance=ExtResource("1_lnxme")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="IconButton2" parent="." unique_id=638856991 instance=ExtResource("1_lnxme")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="IconButton3" parent="." unique_id=1662483962 instance=ExtResource("1_lnxme")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="IconButton4" parent="." unique_id=1375190490 instance=ExtResource("1_lnxme")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="IconButton5" parent="." unique_id=315412403 instance=ExtResource("1_lnxme")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
@@ -1,47 +0,0 @@
|
||||
extends Control
|
||||
|
||||
enum Weather {RAIN, SNOW}
|
||||
|
||||
@onready var game_menu: Control = $%GameMenu
|
||||
|
||||
func _on_menu_icon_button_on_pressed() -> void:
|
||||
game_menu.show()
|
||||
|
||||
|
||||
func _on_photo_icon_button_on_pressed() -> void:
|
||||
GameState.on_enable_photo_mode_request.emit()
|
||||
|
||||
|
||||
func _on_collectible_icon_button_on_pressed() -> void:
|
||||
game_menu.on_tab_pressed(1, true)
|
||||
game_menu.show()
|
||||
|
||||
|
||||
func _on_time_of_day_row_on_option_changed(data: String) -> void:
|
||||
match data:
|
||||
"Sunrise":
|
||||
UIEvents.time_option_item_changed.emit(0)
|
||||
"Day":
|
||||
UIEvents.time_option_item_changed.emit(1)
|
||||
"Sunset":
|
||||
UIEvents.time_option_item_changed.emit(2)
|
||||
"Night":
|
||||
UIEvents.time_option_item_changed.emit(3)
|
||||
_:
|
||||
pass
|
||||
|
||||
|
||||
func _on_weather_row_on_option_changed(data: String) -> void:
|
||||
match data:
|
||||
"Snow":
|
||||
UIEvents.toggle_snow.emit(true)
|
||||
"Rain":
|
||||
UIEvents.toggle_rain.emit(true)
|
||||
"Storm":
|
||||
UIEvents.toggle_storm.emit(true)
|
||||
"Wind":
|
||||
UIEvents.toggle_wind.emit(true)
|
||||
"Random":
|
||||
pass
|
||||
_:
|
||||
pass
|
||||
@@ -1 +0,0 @@
|
||||
uid://bhad1id8jr8jw
|
||||
@@ -1,127 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://bei7fscn77p1p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://ir8nke8o6ssm" path="res://core/main_scene_ui/icon_buttons_row.tscn" id="1_87dkt"]
|
||||
[ext_resource type="Script" uid="uid://bhad1id8jr8jw" path="res://core/main_scene_ui/main_menu_ui.gd" id="1_aurcl"]
|
||||
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="1_fjauj"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqm4o8j45tr6" path="res://core/game_menu/game_menu.tscn" id="4_7q818"]
|
||||
[ext_resource type="PackedScene" uid="uid://cpeyt1dgrtglc" path="res://core/radio/radio.tscn" id="5_21kh1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dg4f3v0ukpmay" path="res://core/main_scene_ui/audio_player.tscn" id="6_1h1a0"]
|
||||
[ext_resource type="AudioStream" uid="uid://70cc8she43re" path="res://docs/gyms/radio/lofi_01.ogg" id="6_vhlrw"]
|
||||
|
||||
[node name="MainMenuUi" type="Control" unique_id=1359391222]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_aurcl")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=2071886807]
|
||||
custom_minimum_size = Vector2(160, 320)
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -320.0
|
||||
offset_right = 160.0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="TimeOfDayRow" parent="VBoxContainer" unique_id=1734127019 instance=ExtResource("1_87dkt")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="IconButton2" parent="VBoxContainer/TimeOfDayRow" index="1" unique_id=638856991]
|
||||
data = "Sunrise"
|
||||
|
||||
[node name="IconButton3" parent="VBoxContainer/TimeOfDayRow" index="2" unique_id=1662483962]
|
||||
data = "Day"
|
||||
|
||||
[node name="IconButton4" parent="VBoxContainer/TimeOfDayRow" index="3" unique_id=1375190490]
|
||||
data = "Sunset"
|
||||
|
||||
[node name="IconButton5" parent="VBoxContainer/TimeOfDayRow" index="4" unique_id=315412403]
|
||||
data = "Night"
|
||||
|
||||
[node name="WeatherRow" parent="VBoxContainer" unique_id=1803637359 instance=ExtResource("1_87dkt")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="IconButton2" parent="VBoxContainer/WeatherRow" index="1" unique_id=638856991]
|
||||
data = "Snow"
|
||||
|
||||
[node name="IconButton3" parent="VBoxContainer/WeatherRow" index="2" unique_id=1662483962]
|
||||
data = "Rain"
|
||||
|
||||
[node name="IconButton4" parent="VBoxContainer/WeatherRow" index="3" unique_id=1375190490]
|
||||
data = "Storm"
|
||||
|
||||
[node name="IconButton5" parent="VBoxContainer/WeatherRow" index="4" unique_id=315412403]
|
||||
data = "Wind"
|
||||
|
||||
[node name="IconButton6" parent="VBoxContainer/WeatherRow" unique_id=218253485 instance=ExtResource("1_fjauj")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
data = "Random"
|
||||
|
||||
[node name="MenuIconButton" parent="." unique_id=707872474 instance=ExtResource("1_fjauj")]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_bottom = 0.0
|
||||
offset_left = -160.0
|
||||
offset_bottom = 160.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 1
|
||||
|
||||
[node name="CollectionOptions" type="VBoxContainer" parent="." unique_id=542153805]
|
||||
layout_mode = 1
|
||||
anchors_preset = 6
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -40.0
|
||||
offset_top = -20.0
|
||||
offset_bottom = 20.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="PhotoIconButton" parent="CollectionOptions" unique_id=1863476241 instance=ExtResource("1_fjauj")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CollectibleIconButton" parent="CollectionOptions" unique_id=520235552 instance=ExtResource("1_fjauj")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="GameMenu" parent="." unique_id=2124096517 instance=ExtResource("4_7q818")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
|
||||
[node name="Radio" parent="." unique_id=1234112225 instance=ExtResource("5_21kh1")]
|
||||
playlist = Array[AudioStream]([ExtResource("6_vhlrw")])
|
||||
|
||||
[node name="AudioPlayer" parent="." unique_id=425192018 node_paths=PackedStringArray("radio") instance=ExtResource("6_1h1a0")]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -146.0
|
||||
offset_top = -57.0
|
||||
offset_right = -146.0
|
||||
offset_bottom = -57.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
radio = NodePath("../Radio")
|
||||
|
||||
[connection signal="on_option_changed" from="VBoxContainer/TimeOfDayRow" to="." method="_on_time_of_day_row_on_option_changed"]
|
||||
[connection signal="on_option_changed" from="VBoxContainer/WeatherRow" to="." method="_on_weather_row_on_option_changed"]
|
||||
[connection signal="on_pressed" from="MenuIconButton" to="." method="_on_menu_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="CollectionOptions/PhotoIconButton" to="." method="_on_photo_icon_button_on_pressed"]
|
||||
[connection signal="on_pressed" from="CollectionOptions/CollectibleIconButton" to="." method="_on_collectible_icon_button_on_pressed"]
|
||||
|
||||
[editable path="VBoxContainer/TimeOfDayRow"]
|
||||
[editable path="VBoxContainer/WeatherRow"]
|
||||
@@ -9,48 +9,32 @@ extends Node3D
|
||||
|
||||
@export_group("Ref")
|
||||
@export var rotation_target: Node3D
|
||||
@export var iso_camera: Node3D
|
||||
|
||||
@onready var camera: Camera3D = $%Camera3D
|
||||
|
||||
var total_yaw: float = 0.0
|
||||
var total_pitch: float = 0.0
|
||||
var orbit_distance: float = 0.0
|
||||
var current_pan: Vector2 = Vector2.ZERO
|
||||
var is_active: bool = false
|
||||
var previous_camera: Camera3D
|
||||
|
||||
var initial_local_pos: Vector3
|
||||
var initial_local_basis: Basis
|
||||
|
||||
func _ready() -> void:
|
||||
GameState.on_enable_photo_mode_request.connect(enable_photo_mode)
|
||||
GameState.on_disable_photo_mode_request.connect(disable_photo_mode)
|
||||
total_yaw = global_rotation.y
|
||||
total_pitch = global_rotation.x
|
||||
|
||||
initial_local_pos = position
|
||||
initial_local_basis = basis
|
||||
if rotation_target:
|
||||
orbit_distance = global_position.distance_to(rotation_target.global_position)
|
||||
|
||||
func enable_photo_mode() -> void:
|
||||
is_active = true
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
previous_camera = get_viewport().get_camera_3d()
|
||||
|
||||
total_yaw = 0.0
|
||||
current_pan = Vector2.ZERO
|
||||
|
||||
if camera:
|
||||
camera.make_current()
|
||||
|
||||
func disable_photo_mode() -> void:
|
||||
is_active = false
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
if previous_camera:
|
||||
previous_camera.make_current()
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("toggle_photo_mode"):
|
||||
if not is_active:
|
||||
enable_photo_mode()
|
||||
is_active = !is_active
|
||||
|
||||
#get_tree().paused = is_active
|
||||
|
||||
if !is_active:
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
else:
|
||||
disable_photo_mode()
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
if event is InputEventMouseMotion and is_active:
|
||||
total_yaw -= event.relative.x * rotation_speed
|
||||
@@ -59,12 +43,14 @@ func _input(event: InputEvent) -> void:
|
||||
take_photo_async()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if not is_active:
|
||||
if not rotation_target:
|
||||
return
|
||||
|
||||
var pan_input = Input.get_vector("photo_pan_left", "photo_pan_right", "photo_pan_up", "photo_pan_down")
|
||||
|
||||
if pan_input != Vector2.ZERO:
|
||||
var pan_input = Input.get_vector("photo_pan_left", "photo_pan_right", "photo_pan_up", "photo_pan_down")
|
||||
var rot_basis = Basis.from_euler(Vector3(total_pitch, total_yaw, 0))
|
||||
|
||||
if pan_input != Vector2.ZERO and is_active:
|
||||
current_pan.x += pan_input.x * pan_speed * delta
|
||||
current_pan.y += -pan_input.y * pan_speed * delta
|
||||
|
||||
@@ -72,13 +58,15 @@ func _process(delta: float) -> void:
|
||||
current_pan.x = clampf(current_pan.x, movement_bounds.position.x, movement_bounds.position.x + movement_bounds.size.x)
|
||||
current_pan.y = clampf(current_pan.y, movement_bounds.position.y, movement_bounds.position.y + movement_bounds.size.y)
|
||||
|
||||
var rotated_basis = Basis(Vector3.UP, total_yaw) * initial_local_basis
|
||||
var rotated_pos = Basis(Vector3.UP, total_yaw) * initial_local_pos
|
||||
var right_dir = rot_basis.x.normalized()
|
||||
var up_dir = rot_basis.y.normalized()
|
||||
|
||||
var local_pos = rotated_pos + (rotated_basis.x * current_pan.x) + (rotated_basis.y * current_pan.y)
|
||||
var final_pan_offset = (right_dir * current_pan.x) + (up_dir * current_pan.y)
|
||||
|
||||
position = local_pos
|
||||
basis = rotated_basis.orthonormalized()
|
||||
var orbit_pos = rotation_target.global_position + (rot_basis * Vector3(0, 0, orbit_distance))
|
||||
|
||||
global_position = orbit_pos + final_pan_offset
|
||||
global_basis = rot_basis
|
||||
|
||||
func take_photo_async() -> void:
|
||||
if !is_active:
|
||||
|
||||
@@ -5,13 +5,6 @@
|
||||
[node name="PhotoModeController" type="Node3D" unique_id=695158870]
|
||||
process_mode = 3
|
||||
script = ExtResource("1_uhpya")
|
||||
movement_bounds = AABB(-20, -20, 0, 40, 30, 0)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="." unique_id=1044424562]
|
||||
[node name="Camera3D" type="Camera3D" parent="." unique_id=1369039645]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 0.99999994, 0, 0, 0)
|
||||
projection = 1
|
||||
fov = 96.6
|
||||
size = 35.0
|
||||
near = 0.001
|
||||
far = 500.0
|
||||
|
||||
@@ -2,16 +2,11 @@ extends AudioStreamPlayer
|
||||
|
||||
class_name Radio
|
||||
|
||||
signal track_changed(track_name: String)
|
||||
|
||||
|
||||
@export var playlist: Array[AudioStream] = []
|
||||
var current_track_index: int = 0
|
||||
|
||||
func _ready():
|
||||
finished.connect(next_track)
|
||||
#if !playlist.is_empty():
|
||||
#play_track(0)
|
||||
|
||||
func play_track(index: int = current_track_index):
|
||||
if playlist.is_empty():
|
||||
@@ -19,10 +14,6 @@ func play_track(index: int = current_track_index):
|
||||
|
||||
current_track_index = posmod(index, playlist.size())
|
||||
stream = playlist[current_track_index]
|
||||
if stream and stream.resource_path:
|
||||
track_changed.emit(stream.resource_path.get_file().get_basename().capitalize())
|
||||
else:
|
||||
track_changed.emit("Unknown Track")
|
||||
play()
|
||||
stream_paused = false
|
||||
|
||||
|
||||
@@ -3,4 +3,5 @@ extends Resource
|
||||
|
||||
enum SceneName { MAIN_MENU, GAME }
|
||||
|
||||
@export var scenes: Dictionary[SceneName, PackedScene]
|
||||
@export var scenes: Dictionary[SceneName, PackedScene] = {
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://btcpge7cj2041" path="res://core/main_menu/main_menu.tscn" id="1_72aup"]
|
||||
[ext_resource type="Script" uid="uid://bbgyhmb8a17i7" path="res://core/scene_manager/scene_config.gd" id="1_km45g"]
|
||||
[ext_resource type="PackedScene" uid="uid://vjf4bdxd8saj" path="res://tgcc/main_scene.tscn" id="2_prsyo"]
|
||||
[ext_resource type="PackedScene" uid="uid://cae0mnf353dy3" path="res://docs/museums/biome_generator/museum_biome_generator.tscn" id="2_prsyo"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_km45g")
|
||||
|
||||
@@ -1,18 +1,10 @@
|
||||
[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://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"]
|
||||
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_a2xtd"]
|
||||
|
||||
[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)
|
||||
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)]
|
||||
border_size = 2.0
|
||||
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(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)]
|
||||
|
||||
[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]
|
||||
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]
|
||||
environment = SubResource("Environment_lmjyn")
|
||||
|
||||
@@ -92,30 +92,3 @@ Parameters:
|
||||
- Wait Time: Delay in seconds on the IdleState node.
|
||||
- Area Radius: Radius of the SphereShape3D used by PatrolRadiusShape."
|
||||
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)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="3_ncg1s"]
|
||||
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://core/daynight/edge_detection_compositor.gd" id="4_5uio4"]
|
||||
[ext_resource type="PackedScene" uid="uid://ujv2f1l4d2ps" path="res://core/biome_generator/biome_generator.tscn" id="5_yeh4a"]
|
||||
[ext_resource type="Resource" uid="uid://nrm040srfjwo" path="res://core/biome_generator/railway_pool.tres" id="6_awm2r"]
|
||||
[ext_resource type="Script" uid="uid://wv6kcqkibium" path="res://core/biome_generator/biome.gd" id="6_s3jnv"]
|
||||
[ext_resource type="PackedScene" uid="uid://crlk31ecl480n" path="res://tgcc/chunk/countryside/scene/chunk_country_corner_03.tscn" id="7_4elh6"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8blm6bwintf7" path="res://tgcc/chunk/countryside/scene/chunk_country_empty_01.tscn" id="7_xgfli"]
|
||||
@@ -144,7 +145,7 @@ data = PackedByteArray("//vQZAAOhpd2PgtGR7JsJPfgYSYSJ6387g9rgIGKF+EZgxxoAM4TYIWm
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_ndco5"]
|
||||
closed = true
|
||||
bake_interval = 50.0
|
||||
bake_interval = 150.82
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, -4.372, 0, 140, 0, 0, 0, 0, 0, 0, -20.963, 0, 160, 0, 0, 0, 0, 0, 0, -40.62518, 0, 168.52754, 0, 0, 0, 0, 0, 0, -60, 0, 170, 0, 0, 0, 0, 0, 0, -80, 0, 170, 0, 0, 0, 0, 0, 0, -100, 0, 170, 0, 0, 0, 0, 0, 0, -120.42937, 0, 171.50279, 0, 0, 0, 0, 0, 0, -141.41747, 7.6293945e-06, 180.5982, 0, 0, 0, 0, 0, 0, -155.77005, 7.6293945e-06, 198.35184, 0, 0, 0, 0, 0, 0, -160.14105, 7.6293945e-06, 219.80951, 0, 0, 0, 0, 0, 0, -163.99007, 7.6293945e-06, 239.36005, 0, 0, 0, 0, 0, 0, -175.77509, 7.6293945e-06, 256.16028, 0, 0, 0, 0, 0, 0, -195.62283, 7.6293945e-06, 267.46912, 0, 0, 0, 0, 0, 0, -219.9999, 7.6293945e-06, 270.11758, 0, 0, 0, 0, 0, 0, -240, 0, 270.118, 0, 0, 0, 0, 0, 0, -260, 0, 270.118, 0, 0, 0, 0, 0, 0, -275.19666, 7.6293945e-06, 270.55228, 0, 0, 0, 0, 0, 0, -294.2925, 7.6293945e-06, 276.05307, 0, 0, 0, 0, 0, 0, -307.19006, 7.6293945e-06, 286.9095, 0, 0, 0, 0, 0, 0, -317.32443, 7.6293945e-06, 303.14682, 0, 0, 0, 0, 0, 0, -320, 0, 320, 0, 0, 0, 0, 0, 0, -320, 0, 340, 0, 0, 0, 0, 0, 0, -320, 0, 360, 0, 0, 0, 0, 0, 0, -320, 0, 380, 0, 0, 0, 0, 0, 0, -316.78876, 7.6293945e-06, 396.91193, 0, 0, 0, 0, 0, 0, -307.68207, 7.6293945e-06, 412.70596, 0, 0, 0, 0, 0, 0, -291.08273, 7.6293945e-06, 424.7491, 0, 0, 0, 0, 0, 0, -270, 0, 429.994, 0, 0, 0, 0, 0, 0, -250, 0, 429.994, 0, 0, 0, 0, 0, 0, -229.90146, 7.6293945e-06, 433.90823, 0, 0, 0, 0, 0, 0, -217.15442, 7.6293945e-06, 442.98242, 0, 0, 0, 0, 0, 0, -204.60803, 7.6293945e-06, 459.93704, 0, 0, 0, 0, 0, 0, -200, 0, 480, 0, 0, 0, 0, 0, 0, -200, 0, 500, 0, 0, 0, 0, 0, 0, -195.5338, 7.6293945e-06, 520.0368, 0, 0, 0, 0, 0, 0, -184.9173, 7.6293945e-06, 535.07776, 0, 0, 0, 0, 0, 0, -170.36423, 7.6293945e-06, 545.0799, 0, 0, 0, 0, 0, 0, -150.56184, 0, 549.8127, 0, 0, 0, 0, 0, 0, -130, 0, 550, 0, 0, 0, 0, 0, 0, -110, 0, 550, 0, 0, 0, 0, 0, 0, -90, 0, 550, 0, 0, 0, 0, 0, 0, -70, 0, 550, 0, 0, 0, 0, 0, 0, -50, 0, 550, 0, 0, 0, 0, 0, 0, -29.862535, 7.6293945e-06, 545.3371, 0, 0, 0, 0, 0, 0, -13.215244, 7.6293945e-06, 533.0626, 0, 0, 0, 0, 0, 0, -4.098665, 7.6293945e-06, 519.6814, 0, 0, 0, 0, 0, 0, -0.048213482, 7.6293945e-06, 500.107, 0, 0, 0, 0, 0, 0, 3.7920675, 7.6293945e-06, 480.64902, 0, 0, 0, 0, 0, 0, 13.513225, 7.6293945e-06, 465.9133, 0, 0, 0, 0, 0, 0, 29.76715, 7.6293945e-06, 454.41486, 0, 0, 0, 0, 0, 0, 49.711926, 7.6293945e-06, 450.12488, 0, 0, 0, 0, 0, 0, 70, 0, 450, 0, 0, 0, 0, 0, 0, 90, 0, 450, 0, 0, 0, 0, 0, 0, 110.055405, 7.6293945e-06, 445.42627, 0, 0, 0, 0, 0, 0, 126.975784, 7.6293945e-06, 432.8683, 0, 0, 0, 0, 0, 0, 136.95703, 7.6293945e-06, 417.5506, 0, 0, 0, 0, 0, 0, 140, 0, 400, 0, 0, 0, 0, 0, 0, 140, 0, 380, 0, 0, 0, 0, 0, 0, 140, 0, 360, 0, 0, 0, 0, 0, 0, 140, 0, 340, 0, 0, 0, 0, 0, 0, 140, 0, 320, 0, 0, 0, 0, 0, 0, 140, 0, 300, 0, 0, 0, 0, 0, 0, 140, 0, 280, 0, 0, 0, 0, 0, 0, 140, 0, 260, 0, 0, 0, 0, 0, 0, 140, 0, 240, 0, 0, 0, 0, 0, 0, 140, 0, 220, 0, 0, 0, 0, 0, 0, 140, 0, 200, 0, 0, 0, 0, 0, 0, 140, 0, 180, 0, 0, 0, 0, 0, 0, 140, 0, 160, 0, 0, 0, 0, 0, 0, 140, 0, 140, 0, 0, 0, 0, 0, 0, 140, 0, 120, 0, 0, 0, 0, 0, 0, 140, 0, 100, 0, 0, 0, 0, 0, 0, 140, 0, 80, 0, 0, 0, 0, 0, 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, 140, 0, 40, 0, 0, 0, 0, 0, 0, 140, 0, 20, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 136.2151, 7.6293945e-06, -18.930761, 0, 0, 0, 0, 0, 0, 124.47424, 7.6293945e-06, -35.771675, 0, 0, 0, 0, 0, 0, 109.556854, 7.6293945e-06, -45.911987, 0, 0, 0, 0, 0, 0, 90, 0, -50, 0, 0, 0, 0, 0, 0, 70, 0, -50, 0, 0, 0, 0, 0, 0, 50, 0, -50, 0, 0, 0, 0, 0, 0, 30.626865, 7.6293945e-06, -46.35706, 0, 0, 0, 0, 0, 0, 14.519331, 7.6293945e-06, -35.468895, 0, 0, 0, 0, 0, 0, 3.52941, 7.6293945e-06, -19.590664),
|
||||
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
@@ -160,9 +161,10 @@ compositor = SubResource("Compositor_mb5yv")
|
||||
|
||||
[node name="biome_generator" parent="." unique_id=1861369341 node_paths=PackedStringArray("rail_path") instance=ExtResource("5_yeh4a")]
|
||||
rail_path = NodePath("../rail")
|
||||
railway_pool = ExtResource("6_awm2r")
|
||||
biome_list = Array[ExtResource("6_s3jnv")]([SubResource("Resource_3qrd0")])
|
||||
entity_pool = ExtResource("35_hmtvu")
|
||||
eye_line = 4
|
||||
eye_line = 5
|
||||
|
||||
[node name="Terrain" type="MeshInstance3D" parent="." unique_id=219178561]
|
||||
visible = false
|
||||
|
||||
@@ -11,7 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="tgcc"
|
||||
run/main_scene="uid://vjf4bdxd8saj"
|
||||
run/main_scene="uid://38qpxwbpvd28"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
run/max_fps=60
|
||||
config/icon="uid://bfar1kk3pgq8f"
|
||||
@@ -20,7 +20,7 @@ config/icon="uid://bfar1kk3pgq8f"
|
||||
|
||||
UIEvents="*uid://dehu28iq27mbn"
|
||||
GameState="*uid://b17g2w2g101o6"
|
||||
CollectionManager="*uid://22orqdm34hfm"
|
||||
CollectionManager="*uid://c3kq1qddpm8tf"
|
||||
AudioManager="*uid://dcttbbavtwtsg"
|
||||
SceneManager="*uid://bw8hwkw55j675"
|
||||
|
||||
|
||||
@@ -57,16 +57,16 @@ script = ExtResource("2_yfmnf")
|
||||
south = true
|
||||
west = true
|
||||
|
||||
[node name="Argini" parent="." index="0" unique_id=357182272]
|
||||
[node name="Argini" parent="." index="0" unique_id=487109030]
|
||||
surface_material_override/0 = ExtResource("2_02qm6")
|
||||
|
||||
[node name="Sentieri" parent="." index="1" unique_id=1704203551 groups=["weather_node"]]
|
||||
[node name="Sentieri" parent="." index="1" unique_id=320924856 groups=["weather_node"]]
|
||||
surface_material_override/0 = ExtResource("3_yfmnf")
|
||||
|
||||
[node name="Terreno" parent="." index="2" unique_id=1478648388]
|
||||
[node name="Terreno" parent="." index="2" unique_id=1980435075]
|
||||
surface_material_override/0 = ExtResource("2_02qm6")
|
||||
|
||||
[node name="Water" parent="." index="3" unique_id=415433510]
|
||||
[node name="Water" parent="." index="3" unique_id=424969495]
|
||||
surface_material_override/0 = ExtResource("4_x1bjv")
|
||||
|
||||
[node name="grass" type="Node3D" parent="." index="4" unique_id=543668848 groups=["weather_vegetables_node", "wind_node"]]
|
||||
|
||||
BIN
tgcc/chunk/prop/pylon/Lantern_2.fbx
Normal file
BIN
tgcc/chunk/prop/pylon/Lantern_2.fbx
Normal file
Binary file not shown.
44
tgcc/chunk/prop/pylon/Lantern_2.fbx.import
Normal file
44
tgcc/chunk/prop/pylon/Lantern_2.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dsvlxc3l5i1vk"
|
||||
path="res://.godot/imported/Lantern_2.fbx-4aa3960da9dcc2d67f606c4b71816ef7.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tgcc/chunk/prop/pylon/Lantern_2.fbx"
|
||||
dest_files=["res://.godot/imported/Lantern_2.fbx-4aa3960da9dcc2d67f606c4b71816ef7.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user