This repository has been archived on 2025-01-17. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
blood-and-mortar/objects/player/player.tscn

897 lines
29 KiB
Text

[gd_scene load_steps=34 format=3 uid="uid://dfx8h6eplcm6t"]
[ext_resource type="Script" path="res://objects/player/player.gd" id="1_0jtcw"]
[ext_resource type="Texture2D" uid="uid://cm07m02mxkaah" path="res://textures/player/arm_back.png" id="2_ux0fy"]
[ext_resource type="Script" path="res://addons/godot_state_charts/state_chart.gd" id="2_wtq62"]
[ext_resource type="Texture2D" uid="uid://c5mdfp0haxjhw" path="res://textures/player/arm_back_hand.png" id="3_7fclw"]
[ext_resource type="Script" path="res://addons/godot_state_charts/parallel_state.gd" id="3_h5pyx"]
[ext_resource type="Texture2D" uid="uid://qfsmi63hvbwj" path="res://textures/player/arm_front.png" id="3_jvia3"]
[ext_resource type="Texture2D" uid="uid://b8mjub1y54bsp" path="res://textures/player/arm_front_hand.png" id="4_kyw60"]
[ext_resource type="Script" path="res://addons/godot_state_charts/compound_state.gd" id="4_le3t4"]
[ext_resource type="Script" path="res://addons/godot_state_charts/atomic_state.gd" id="5_8e8ei"]
[ext_resource type="Script" path="res://addons/godot_state_charts/transition.gd" id="6_d3xxl"]
[ext_resource type="Script" path="res://addons/godot_state_charts/expression_guard.gd" id="7_yp0np"]
[ext_resource type="Texture2D" uid="uid://x3q6bebo0qwg" path="res://textures/player/leg_back.png" id="8_kdi1l"]
[ext_resource type="Script" path="res://addons/godot_state_charts/not_guard.gd" id="8_qwrs2"]
[ext_resource type="Script" path="res://addons/godot_state_charts/guard.gd" id="9_0g7ju"]
[ext_resource type="Texture2D" uid="uid://dd6x23rk0jkhv" path="res://textures/player/foot_back.png" id="9_2a4p0"]
[ext_resource type="Script" path="res://scripts/debug_visualization/draw_basis.gd" id="9_x2hvg"]
[ext_resource type="Texture2D" uid="uid://damqh4mqwpv4b" path="res://textures/player/torso.png" id="10_2vegm"]
[ext_resource type="Script" path="res://addons/godot_state_charts/all_of_guard.gd" id="10_lprgf"]
[ext_resource type="Texture2D" uid="uid://cp7sodu1rhdje" path="res://textures/player/leg_front.png" id="11_6xvc8"]
[ext_resource type="Texture2D" uid="uid://c4odsqtqmj8g" path="res://textures/player/head.png" id="11_nngs1"]
[ext_resource type="Texture2D" uid="uid://d1qyuom3pxifj" path="res://textures/player/foot_front.png" id="12_dda5a"]
[ext_resource type="Texture2D" uid="uid://cssnogcrn57xv" path="res://textures/player/skirt.png" id="13_qgkik"]
[sub_resource type="Animation" id="Animation_7ampj"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Graphics/Hip:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -14)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Graphics/Hip:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Graphics/Hip/BackLeg:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Graphics/Hip/BackLeg/BackFoot:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Graphics/Hip/BackArmPivot/BackArm:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.57079]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Graphics/Hip/BackArmPivot/BackArm/BackHand:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Graphics/Hip/Torso:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Graphics/Hip/Torso/Head:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm:rotation")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.5708]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm/FrontHand:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Graphics/Hip/FrontLeg:rotation")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Graphics/Hip/FrontLeg/FrontFoot:rotation")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Graphics/Hip/Skirt:rotation")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Graphics/Hip/FrontLeg:position")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-2, 6)]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Graphics/Hip/BackLeg:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 6)]
}
[sub_resource type="Animation" id="Animation_6roai"]
resource_name = "stand"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Graphics/Hip:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -14)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Graphics/Hip:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Graphics/Hip/BackLeg:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Graphics/Hip/BackLeg/BackFoot:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Graphics/Hip/BackArmPivot/BackArm:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.57079]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Graphics/Hip/BackArmPivot/BackArm/BackHand:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Graphics/Hip/Torso:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Graphics/Hip/Torso/Head:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm:rotation")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.5708]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm/FrontHand:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Graphics/Hip/FrontLeg:rotation")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Graphics/Hip/FrontLeg/FrontFoot:rotation")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Graphics/Hip/Skirt:rotation")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Graphics/Hip/FrontLeg:position")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-2, 6)]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Graphics/Hip/BackLeg:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 6)]
}
[sub_resource type="Animation" id="Animation_eoejb"]
resource_name = "walk"
length = 0.960004
loop_mode = 1
step = 0.04
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Graphics/Hip:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.36, 0.48, 0.6, 0.72, 0.84),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, -13), Vector2(0, -12), Vector2(0, -14), Vector2(0, -15), Vector2(0, -13), Vector2(0, -12), Vector2(0, -14), Vector2(0, -15)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Graphics/Hip:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Graphics/Hip/BackLeg:rotation")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.36, 0.48, 0.6, 0.72, 0.84),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.595709, 0.637986, -0.261799, -0.648994, -0.629291, -0.971209, 0.0, 0.430862]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Graphics/Hip/BackLeg/BackFoot:rotation")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.36, 0.48, 0.6, 0.72),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.364786, 0.570075, 1.309, 0.98228, 0.0486702, 0.958074, 0.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Graphics/Hip/BackArmPivot/BackArm:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.57079]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Graphics/Hip/BackArmPivot/BackArm/BackHand:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Graphics/Hip/Torso:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Graphics/Hip/Torso/Head:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm:rotation")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.5708]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Graphics/Hip/FrontArmPivot/FrontArm/FrontHand:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Graphics/Hip/FrontLeg:rotation")
tracks/10/interp = 2
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.36, 0.48, 0.6, 0.72, 0.84),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [-0.633345, -1.02087, 0.0, 0.376222, 0.593412, 0.681726, -0.399987, -0.691819]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Graphics/Hip/FrontLeg/FrontFoot:rotation")
tracks/11/interp = 2
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.48, 0.6, 0.72, 0.84),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.023663, 1.03073, 0.0, 0.349066, 0.618152, 1.4997, 0.971881]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Graphics/Hip/Skirt:rotation")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Graphics/Hip/FrontLeg:position")
tracks/13/interp = 2
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 0.12, 0.24, 0.36, 0.48, 0.6, 0.72),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(-1, 6), Vector2(-1, 6), Vector2(-1, 6), Vector2(-1, 7), Vector2(-1, 6), Vector2(0, 6), Vector2(-1, 6)]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Graphics/Hip/BackLeg:position")
tracks/14/interp = 2
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0, 0.12, 0.36, 0.48, 0.84),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(-2.38419e-07, 6), Vector2(-2.38419e-07, 6), Vector2(-2.38419e-07, 6), Vector2(2.38419e-07, 6), Vector2(-1, 7)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_claqb"]
_data = {
"RESET": SubResource("Animation_7ampj"),
"stand": SubResource("Animation_6roai"),
"walk": SubResource("Animation_eoejb")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wydm2"]
size = Vector2(7, 32)
[sub_resource type="Resource" id="Resource_hwvj2"]
resource_name = "HoldingDirection"
script = ExtResource("7_yp0np")
expression = "player.input_dir != 0.0"
[sub_resource type="Resource" id="Resource_h756l"]
resource_name = "NotHoldingDirection"
script = ExtResource("8_qwrs2")
guard = SubResource("Resource_hwvj2")
[sub_resource type="Resource" id="Resource_42obj"]
resource_name = "HoldingSameDirection"
script = ExtResource("7_yp0np")
expression = "player.input_dir == signf(player.velocity.x)"
[sub_resource type="Resource" id="Resource_hbuhf"]
resource_name = "NotHoldingSame"
script = ExtResource("8_qwrs2")
guard = SubResource("Resource_42obj")
[sub_resource type="Resource" id="Resource_7h7ld"]
script = ExtResource("10_lprgf")
guards = Array[ExtResource("9_0g7ju")]([SubResource("Resource_hwvj2"), SubResource("Resource_hbuhf")])
[sub_resource type="Resource" id="Resource_5aa0s"]
resource_name = "HoldingTowardsVelocity"
script = ExtResource("10_lprgf")
guards = Array[ExtResource("9_0g7ju")]([SubResource("Resource_hwvj2"), SubResource("Resource_42obj")])
[node name="Player" type="CharacterBody2D"]
process_physics_priority = -100
editor_description = "Has lower physics processing priority so that state events happen first."
collision_layer = 2
floor_snap_length = 4.0
script = ExtResource("1_0jtcw")
walk_speed = 50.0
acceleration = 100.0
stopping_force = 100.0
turning_force = 200.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_claqb")
}
playback_default_blend_time = 0.25
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-0.5, -16)
shape = SubResource("RectangleShape2D_wydm2")
debug_color = Color(0.720957, 0.248475, 1, 0.42)
[node name="PickupDetector" type="Area2D" parent="."]
unique_name_in_owner = true
collision_layer = 0
collision_mask = 128
monitorable = false
[node name="Camera2D" type="Camera2D" parent="."]
[node name="Graphics" type="Node2D" parent="."]
unique_name_in_owner = true
[node name="Hip" type="Node2D" parent="Graphics"]
position = Vector2(0, -14)
[node name="BackLeg" type="Sprite2D" parent="Graphics/Hip"]
position = Vector2(1, 6)
texture = ExtResource("8_kdi1l")
offset = Vector2(0, 2)
[node name="BackFoot" type="Sprite2D" parent="Graphics/Hip/BackLeg"]
position = Vector2(0, 4)
texture = ExtResource("9_2a4p0")
offset = Vector2(0, 1)
[node name="BackArmPivot" type="Node2D" parent="Graphics/Hip"]
unique_name_in_owner = true
position = Vector2(1, -9)
rotation = 1.57079
[node name="DirectionVisualizer" type="Node2D" parent="Graphics/Hip/BackArmPivot"]
z_index = 1
script = ExtResource("9_x2hvg")
x_length = 12.0
y_length = 2.0
metadata/_edit_lock_ = true
[node name="BackArm" type="Sprite2D" parent="Graphics/Hip/BackArmPivot"]
rotation = -1.57079
texture = ExtResource("2_ux0fy")
offset = Vector2(0, 2)
[node name="BackHand" type="Sprite2D" parent="Graphics/Hip/BackArmPivot/BackArm"]
position = Vector2(0, 5)
texture = ExtResource("3_7fclw")
offset = Vector2(0, 2)
[node name="Torso" type="Sprite2D" parent="Graphics/Hip"]
texture = ExtResource("10_2vegm")
offset = Vector2(-1, -4)
[node name="Head" type="Sprite2D" parent="Graphics/Hip/Torso"]
position = Vector2(0, -10)
texture = ExtResource("11_nngs1")
offset = Vector2(-1, -4)
[node name="FrontArmPivot" type="Node2D" parent="Graphics/Hip"]
unique_name_in_owner = true
z_index = 1
position = Vector2(-3, -9)
rotation = 1.57079
[node name="DirectionVisualizer" type="Node2D" parent="Graphics/Hip/FrontArmPivot"]
z_index = 1
script = ExtResource("9_x2hvg")
x_length = 12.0
y_length = 2.0
metadata/_edit_lock_ = true
[node name="FrontArm" type="Sprite2D" parent="Graphics/Hip/FrontArmPivot"]
rotation = -1.5708
texture = ExtResource("3_jvia3")
offset = Vector2(0, 2)
[node name="FrontHand" type="Sprite2D" parent="Graphics/Hip/FrontArmPivot/FrontArm"]
position = Vector2(0, 5)
texture = ExtResource("4_kyw60")
offset = Vector2(0, 2)
[node name="HeldItemSlot" type="Node2D" parent="Graphics/Hip/FrontArmPivot/FrontArm/FrontHand"]
unique_name_in_owner = true
position = Vector2(0.999977, 5)
[node name="FrontLeg" type="Sprite2D" parent="Graphics/Hip"]
position = Vector2(-2, 6)
texture = ExtResource("11_6xvc8")
offset = Vector2(0, 2)
[node name="FrontFoot" type="Sprite2D" parent="Graphics/Hip/FrontLeg"]
position = Vector2(0, 4)
texture = ExtResource("12_dda5a")
offset = Vector2(0, 1)
[node name="Skirt" type="Sprite2D" parent="Graphics/Hip"]
texture = ExtResource("13_qgkik")
offset = Vector2(-1, 3)
[node name="StateChart" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("2_wtq62")
[node name="Root" type="Node" parent="StateChart"]
script = ExtResource("3_h5pyx")
[node name="Movement" type="Node" parent="StateChart/Root"]
editor_description = "State of character movement."
script = ExtResource("4_le3t4")
initial_state = NodePath("Active")
[node name="Active" type="Node" parent="StateChart/Root/Movement"]
process_physics_priority = 100
editor_description = "Performs movement. Has higher physics processing priority so that move_and_slide happens last."
script = ExtResource("4_le3t4")
initial_state = NodePath("Grounded")
[node name="Grounded" type="Node" parent="StateChart/Root/Movement/Active"]
script = ExtResource("4_le3t4")
initial_state = NodePath("Standing")
[node name="OnLeftGround" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
script = ExtResource("6_d3xxl")
to = NodePath("../../Airborn")
event = &"left_ground"
delay_in_seconds = "0.0"
[node name="OnAimPressed" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
script = ExtResource("6_d3xxl")
to = NodePath("../Aiming")
event = &"aim_pressed"
delay_in_seconds = "0.0"
[node name="Standing" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
editor_description = "Character is standing still."
script = ExtResource("5_8e8ei")
[node name="OnWalkStart" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Standing"]
editor_description = "A direction starts being held."
script = ExtResource("6_d3xxl")
to = NodePath("../../Walking")
event = &"input_dir_changed"
guard = SubResource("Resource_hwvj2")
delay_in_seconds = "0.0"
[node name="Walking" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
editor_description = "Character is walking in the direction being pressed."
script = ExtResource("5_8e8ei")
[node name="OnWalkStop" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Walking"]
editor_description = "A direction stops being held."
script = ExtResource("6_d3xxl")
to = NodePath("../../Stopping")
event = &"input_dir_changed"
guard = SubResource("Resource_h756l")
delay_in_seconds = "0.0"
[node name="OnTurnAround" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Walking"]
editor_description = "The opposite direction from movement is held."
script = ExtResource("6_d3xxl")
to = NodePath("../../Turning")
event = &"input_dir_changed"
guard = SubResource("Resource_7h7ld")
delay_in_seconds = "0.0"
[node name="Stopping" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
editor_description = "Player is holding no direction, character slows to stop."
script = ExtResource("5_8e8ei")
[node name="OnWalkStart" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Stopping"]
editor_description = "The original"
script = ExtResource("6_d3xxl")
to = NodePath("../../Walking")
event = &"input_dir_changed"
guard = SubResource("Resource_5aa0s")
delay_in_seconds = "0.0"
[node name="OnTurnAround" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Stopping"]
editor_description = "The opposite direction from movement is held."
script = ExtResource("6_d3xxl")
to = NodePath("../../Turning")
event = &"input_dir_changed"
guard = SubResource("Resource_7h7ld")
delay_in_seconds = "0.0"
[node name="OnStopped" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Stopping"]
editor_description = "The character has come to a stop.
(velocity.x < stop_threshold)"
script = ExtResource("6_d3xxl")
to = NodePath("../../Standing")
event = &"stopped"
delay_in_seconds = "0.0"
[node name="Turning" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
editor_description = "Character is holding opposite direction of horizontal velocity, character will more quickly turn around."
script = ExtResource("5_8e8ei")
[node name="OnWalkStart" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Turning"]
editor_description = "The player cancels turning and starts walking in the same direction again."
script = ExtResource("6_d3xxl")
to = NodePath("../../Walking")
event = &"input_dir_changed"
guard = SubResource("Resource_5aa0s")
delay_in_seconds = "0.0"
[node name="OnWalkStop" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Turning"]
editor_description = "The player cancels turning and just comes to a stop."
script = ExtResource("6_d3xxl")
to = NodePath("../../Stopping")
event = &"input_dir_changed"
guard = SubResource("Resource_h756l")
delay_in_seconds = "0.0"
[node name="OnTurnFinished" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Turning"]
editor_description = "The character has crossed the 0 velocity boundary and is facing the other direction now."
script = ExtResource("6_d3xxl")
to = NodePath("../../Walking")
event = &"turn_finished"
delay_in_seconds = "0.0"
[node name="Aiming" type="Node" parent="StateChart/Root/Movement/Active/Grounded"]
script = ExtResource("5_8e8ei")
[node name="OnAimReleased" type="Node" parent="StateChart/Root/Movement/Active/Grounded/Aiming"]
script = ExtResource("6_d3xxl")
to = NodePath("../../Standing")
event = &"aim_released"
delay_in_seconds = "0.0"
[node name="Airborn" type="Node" parent="StateChart/Root/Movement/Active"]
script = ExtResource("4_le3t4")
initial_state = NodePath("Falling")
[node name="Falling" type="Node" parent="StateChart/Root/Movement/Active/Airborn"]
script = ExtResource("5_8e8ei")
[node name="OnLanded" type="Node" parent="StateChart/Root/Movement/Active/Airborn"]
script = ExtResource("6_d3xxl")
to = NodePath("../../Grounded")
event = &"landed"
delay_in_seconds = "0.0"
[node name="Inactive" type="Node" parent="StateChart/Root/Movement"]
editor_description = "Performs no movement."
script = ExtResource("5_8e8ei")
[connection signal="area_entered" from="PickupDetector" to="." method="_on_pickup_area_entered"]
[connection signal="area_exited" from="PickupDetector" to="." method="_on_pickup_area_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active" to="." method="_active_physics_process"]
[connection signal="child_state_entered" from="StateChart/Root/Movement/Active/Grounded" to="." method="_grounded_child_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Active/Grounded/Standing" to="." method="_standing_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Active/Grounded/Walking" to="AnimationPlayer" method="play" binds= [&"walk"]]
[connection signal="state_exited" from="StateChart/Root/Movement/Active/Grounded/Walking" to="AnimationPlayer" method="play" binds= [&"stand"]]
[connection signal="state_exited" from="StateChart/Root/Movement/Active/Grounded/Walking" to="AnimationPlayer" method="set_speed_scale" binds= [1.0]]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Grounded/Walking" to="." method="_walking_process"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Grounded/Stopping" to="." method="_stopping_physics_process"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Grounded/Turning" to="." method="_turning_physics_process"]
[connection signal="state_exited" from="StateChart/Root/Movement/Active/Grounded/Aiming" to="." method="_aiming_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Grounded/Aiming" to="." method="_stopping_physics_process"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Grounded/Aiming" to="." method="_aiming_physics_process"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Active/Airborn" to="." method="_airborn_physics_process"]