From 527be3ee5def24a7226c8a1e38c7efbd515b20c0 Mon Sep 17 00:00:00 2001 From: vaporvee Date: Tue, 28 Oct 2025 03:54:41 +0100 Subject: [PATCH] better animations --- aseprite/hood_player.aseprite | Bin 4563 -> 4563 bytes aseprite/knight_player.aseprite | Bin 0 -> 4558 bytes aseprite/normal_player.aseprite | Bin 0 -> 4575 bytes aseprite/normal_player.png | Bin 2627 -> 0 bytes {aseprite => assets/textures}/heart.png | Bin ...ood_player.png.import => heart.png.import} | 8 +- assets/textures/spritesheets/hood_player.png | Bin 1765 -> 0 bytes .../textures/spritesheets/normal_player.png | Bin 0 -> 2664 bytes .../spritesheets/normal_player.png.import | 40 ++++ {aseprite => assets/textures}/ui.png | Bin assets/textures/ui.png.import | 40 ++++ scenes/levels/home.tscn | 10 +- scenes/player.tscn | 207 ++++++++++++------ scripts/interactables/chair.gd | 76 ++++--- 14 files changed, 266 insertions(+), 115 deletions(-) create mode 100644 aseprite/knight_player.aseprite create mode 100644 aseprite/normal_player.aseprite delete mode 100644 aseprite/normal_player.png rename {aseprite => assets/textures}/heart.png (100%) rename assets/textures/{spritesheets/hood_player.png.import => heart.png.import} (72%) delete mode 100644 assets/textures/spritesheets/hood_player.png create mode 100644 assets/textures/spritesheets/normal_player.png create mode 100644 assets/textures/spritesheets/normal_player.png.import rename {aseprite => assets/textures}/ui.png (100%) create mode 100644 assets/textures/ui.png.import diff --git a/aseprite/hood_player.aseprite b/aseprite/hood_player.aseprite index 9596e3148ee6f64dfa38c92ebc6bf862ebeb8a83..8eea8200b633d3e66924a36bc58c3f4fc3b344e5 100644 GIT binary patch delta 22 dcmcbtd|7#e9wQ_3WPL`N$?1$jn`0Tv1OQQa22%h4 delta 20 bcmcbtd|7#e9wQ^uWPL^%M&`{vjO_vdK`;eL diff --git a/aseprite/knight_player.aseprite b/aseprite/knight_player.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..f80ef9d105e78c9ee6a676c974b95eaedbaf3eaa GIT binary patch literal 4558 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 literal 0 HcmV?d00001 diff --git a/aseprite/normal_player.aseprite b/aseprite/normal_player.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..1682e8a410ce93f6d59f73d4f87b52d8281267c4 GIT binary patch literal 4575 zcmeHKX;hQf)(%4iMP>wKN{}L0kpvJFLjoc*C@oebs9^?Wyd(^g5M~8U3MdFDNO}dC z3`0PQpaBH}v`htzh9Xcv=1C+W7(nhzx^BOImVW=fA9t;L&U)9{>+JQOeV+H(?|$|f zl?H)+dn^os@}~d@1nK~u{~6jKft^K=6fplkMz<&k#9NW!N0k8r$ODfElppd>;SvB_ z7zC_p1I8ifaZ7CzUt_&AXT)ge;lUq#ms%cdd^Ea0`Hg=g{6uE3{WX}A{a5-X#-^rW zaQB2u!DC*z+iuyl!Uulf6Z=b*OnR|EzKzDsl6nHO;zb|B0zsQb% zXKVFc-FtsOlZ{8P_uudD?el;6ch0usUj+hyflWk#Prv;KJV_7)bUm*-gC^b#m$Ee2 z_vmL(=F_muS*c^1U__OL#Va`-vwPCov&Wo42WPF@CqLKCdd?~|ZY(c(BF?tFExOXA z?vcBmO=4cmx@h#h~wc|FT(i$-b8*AZf4?$=OdT%vI! zZ$AzOET_<7)?}XW2uqNB+HVC)DFzY?5vF8}s2*c6)v+|idQnE1Q->?f$9btUtRipJ zO)s~R=(aPV$RtlEPz-I%!&jsh@Lc>*LIrXrs2z;O8ct*uXbVOG4|z)0`eY zWC74#kl>#ni-Xhv$X@O*B`zBVer|zFXr5$F43Kmy3*80Vp0UUD6>?G0cr*V|)qHT< zvjvNGIA=yNo2P&v=)G=UU=)kwqAugz=R#*sO9-V8Yfa0=>**q)h8-)3R1pd)49Q}T z)re$c6d~F8Fk)-TjncFpf@m9xru8aE5n(px&NIuAL&6av8EW1RR5f<=ncK({3Wf1{ zv{2#mrkB~!WFZ=UsU5+98qfab3RG6w(x&Gv(TAt#h5 z#@)?2GIQhzEB-E63Vi05Z;CyI?Mk%IQ9=4M)~PFX-WEJiJqEHq&(#F@RC*7n2#R`H$eI!t6qDd$u~8MSkbZhfZ3ag4sp&YefYgNo<($g zUauVCMo(U9TDW+ub3{B~lIIqf*_GwwO2l;IT;AY0GcV9r-UxLo<)kj~(F*+~U6ldu z?%n01-APwZke%x(yHghSwyz{~;lr&U{E zA5{@%b=S$ptfS1UY0ps<-`1GM_D`CrXsxRC>9ESljO@rl7K?Bzd^GKy6o&R2&QR*2 z3X9RONSE?Vy%ZGUY^+wRn)qwIaRH3cpt^N?vXL2VM}45j3w6>7Lk3lsMJa#C=XO@Q zG;SLp!g{*GuW+X(a`4L0hn`@|-a0Mq_46O9o#HdN=L-fU|59m$InrKx8cu0~W#NYl zA=yB!kS$OsoE{!SyOV?Ws3Sahzv!vcVG(PdGx7C_igdu=FE)^D5Bsr7uzvP^-XVC~ zV}-&!mo^X0Gm0VEm_XhwnnLzLI7*$!>VjHII=F?6oH=P_l&lz;$X;*F7xwbTrFS4-2GnI< z=q%&Lkv_2j$5fOZ$4LyxSdva;;`lfKs4B+XH}181vY`!3w23uHI&W$txxb)YuK|-2 zqo`aYS(vIwhwhhYDV7{woZ-2TKf?)Hga9C)xhh)8w-l#IS-o{6qr5jl>km*cmpvTF z7;_JcRLpz0<^`BGs&8VCs%$kEz(&oxL=QT9FkqCmW>Yldm;(GY zN7qiI3ylOk-@3(|h^<1y;yB;gmCk9dvsDgxA$wT{29#E1>+WIV@09N@p|u%$`+$Gh zlB?}GDWDUysI%DmroS2CvIK5z#-4+^Tw0XYS){&5xcf3$YSkdIN{HgqLCAfmGZ4Pw z+9MB1f@bz!cB7n|QktT1tuRxf8;z9X)MCl&khZ4aElE=2ec7lkfnF7a&@3`fQfW%m zYdbAmzZY>Qo8zIoM&@F~#A0e<{hfzSXGA&4?vZf9=_C^)BG^^Y-FKoAu6;5(*=XGv z^azu_$Rx;+04z92zGP7CuG8(q4UsMpOXSL^a&9uSNd_U&IgI0+|WwS4&C()%i|N{%9O(Mg#Zm;X_4_S^HZPk+f*r3&gb9 zt60Cx_PG>s0~PY{sRws@K4#TAdCqP;bJ}?FE_DdAVFmlum%}bqa#5fd>R^$94w5Y$ zYWDWM0jH>)G|?#&Ev~NW^r9&sv7M`gV~NH+1lDlHI!BS^+~9!a$Ikio3Z(qP zK$Y@33@dVe=+vUTKQ+>It=cV?^*ZuE)|s_@4t9;obU;_;`$ASC z9=JArk?a5M6@g6H8UO7S{}Xz}=`YfE9boS7t~#~-dJ@fWpi@=@>xF`>oQ>LoQ|{e~ zNBm=N>&qi}fg-i|JIL{UP>rphv5OFe(tDrNU-#N(7@ge=yqGI#{<9UQlfhG1L`z;$ zh#G1kz@khmUh5}&mm78YT`9MYMMy4BlEdg~L#wjI$Ha6R(QRm0Eid&@02fmeNSrTP z?`S3<;Sgii@IN8`()U}U->(&4G#o+Oj*@FJ%lDYQ9(Q7OmeSCw%fV=t=^X}U{CjliAB9;|s=>|atU(+=`JeOsqS|~m*N({qJs5W(9;EY;jbhZ2kbr{&TzQ-Y2a1WPmVSBxe-PK zfdlISOkL}}r?nyVKcXnd{BzoSI4?Q`fMV_M;;1|pq`2L{aig-oSLyXi{m|8CV75FK zUE(33xE1?UHtNmFixNqkPw(}4AD6|zwcb#=YQLJ|hY#sg4eAn?lrigrjxIo7vVK9H z@R#UfJq(G^C}-+m2gVb;F^0!EmveZY1F1rK2|R$Gfm-hoEA18>h7hQ zkwM?N3|amAdSGPsG*fQD>?c8K%bPZ5&H~rje?B@%6PzKjZIfxlcJPs`{4ngM%6v@O z93rcRLDHr$Q&jaIb`7H*XdpZ5E|b)Cw`4*}HemVL4OfHnEF*vA#*~T7jni+6sZAHm zwy1w3Kend?;7d9~1+e*Ae%WfP`E?`1co+K|`zW>kUd~JZ0pdE=d70u>k8P?&)?Uub z4U5XJPP-Yd^|E%b?0RG(a-2sXXk%$=LucvW1|{_*YF%r?$#$E1*X~LKLOA(Ez_$-v F{{{Ojf8YQB literal 0 HcmV?d00001 diff --git a/aseprite/normal_player.png b/aseprite/normal_player.png deleted file mode 100644 index 9044dcd19e6833630dc7faf6315dc8470fca6b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2627 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 Hu0mjfX=P=& diff --git a/assets/textures/spritesheets/normal_player.png b/assets/textures/spritesheets/normal_player.png new file mode 100644 index 0000000000000000000000000000000000000000..52dceb294f157a15493d02c09632f1b0c0955f28 GIT binary patch literal 2664 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 W$L!nlLugk30000 void: if EventManager.current_event == EventManager.Events.PUMPKIN_CARVE: var chair: StaticBody2D = $Chair var player: Player = $Player - chair._on_interacted(player) + chair.mount_player(player) RenderingServer.set_default_clear_color(\"#0d0805\") " @@ -104,9 +104,9 @@ texture_region_size = Vector2i(32, 32) 0:0/0 = 0 1:0/0 = 0 0:1/0 = 0 -0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -4, 16, -4, 16, 16, -12, 16) +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, 5.5, 16, 5.5, 16, 16, -12, 16) 1:1/0 = 0 -1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -4, 12, -4, 12, 16, -16, 16) +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 5.5, 12, 5.5, 12, 16, -16, 16) 0:2/0 = 0 0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-11.5, -16, 16, -16, 16, -7, -2, -7, -2, 7, -8, 7) 1:2/0 = 0 @@ -125,6 +125,7 @@ y_sort_enabled = true script = SubResource("GDScript_2vl8h") [node name="TileMapLayer" type="TileMapLayer" parent="."] +z_index = -1 tile_map_data = PackedByteArray("AAAHAAYAAQABAAEAAAAHAAUAAQABAAEAAAAHAAQAAQABAAEAAAAHAAMAAQABAAEAAAAGAAYAAQABAAEAAAAGAAUAAQABAAEAAAAGAAQAAQABAAEAAAAGAAMAAQABAAEAAAAFAAYAAQABAAEAAAAFAAUAAQABAAEAAAAFAAQAAQABAAEAAAAFAAMAAQABAAEAAAAEAAYAAQABAAEAAAAEAAUAAQABAAEAAAAEAAQAAQABAAEAAAAEAAMAAQABAAEAAAADAAYAAQABAAEAAAADAAUAAQABAAEAAAADAAQAAQABAAEAAAADAAMAAQABAAEAAAACAAQAAQAAAAEAAAACAAMAAQAAAAEAAAACAAIAAQAAAAAAAAADAAIAAQABAAAAAAAEAAIAAQABAAAAAAACAAUAAQAAAAEAAAACAAYAAQAAAAEAAAAEAAcAAQABAAIAAAADAAcAAQABAAIAAAACAAcAAQAAAAIAAAAFAAIAAQAAAAMAAAAGAAIAAQABAAAAAAAGAAcAAQABAAIAAAAHAAIAAQABAAAAAAAHAAcAAQABAAIAAAAIAAMAAQACAAEAAAAIAAQAAQACAAEAAAAIAAIAAQACAAAAAAAIAAUAAQACAAEAAAAIAAYAAQACAAEAAAAIAAcAAQACAAIAAAAFAAcAAQABAAEAAAA=") tile_set = SubResource("TileSet_ikf4c") @@ -156,9 +157,6 @@ y_sort_enabled = true position = Vector2(176, 235) tilemap = NodePath("../TileMapLayer") -[node name="AnimatedSprite2D" parent="Player" index="0"] -animation = &"up" - [node name="InteractSceneswitch" parent="." instance=ExtResource("4_snitx")] position = Vector2(176, 268) scene = "res://scenes/levels/hood.tscn" diff --git a/scenes/player.tscn b/scenes/player.tscn index b0f9179..048a819 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,52 +1,163 @@ -[gd_scene load_steps=15 format=3 uid="uid://dfbomt0l6b1o4"] +[gd_scene load_steps=22 format=3 uid="uid://dfbomt0l6b1o4"] [ext_resource type="Script" uid="uid://dxvslwwnnlosy" path="res://scripts/player.gd" id="1_3vyb7"] -[ext_resource type="Texture2D" uid="uid://c12v1hnrbfjr4" path="res://assets/textures/spritesheets/hood_player.png" id="2_g2els"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_g2els"] -atlas = ExtResource("2_g2els") -region = Rect2(0, 0, 32, 32) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qhqgy"] -atlas = ExtResource("2_g2els") -region = Rect2(32, 0, 32, 32) +[ext_resource type="Texture2D" uid="uid://d06cv484ev2n3" path="res://assets/textures/spritesheets/normal_player.png" id="2_qhqgy"] [sub_resource type="AtlasTexture" id="AtlasTexture_dqkch"] -atlas = ExtResource("2_g2els") -region = Rect2(64, 0, 32, 32) +atlas = ExtResource("2_qhqgy") +region = Rect2(0, 0, 32, 32) [sub_resource type="AtlasTexture" id="AtlasTexture_qlg0r"] -atlas = ExtResource("2_g2els") -region = Rect2(0, 32, 32, 32) +atlas = ExtResource("2_qhqgy") +region = Rect2(32, 0, 32, 32) [sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"] -atlas = ExtResource("2_g2els") -region = Rect2(32, 32, 32, 32) +atlas = ExtResource("2_qhqgy") +region = Rect2(64, 0, 32, 32) [sub_resource type="AtlasTexture" id="AtlasTexture_fjrip"] -atlas = ExtResource("2_g2els") -region = Rect2(64, 32, 32, 32) +atlas = ExtResource("2_qhqgy") +region = Rect2(0, 0, 32, 32) -[sub_resource type="AtlasTexture" id="AtlasTexture_smehm"] -atlas = ExtResource("2_g2els") +[sub_resource type="AtlasTexture" id="AtlasTexture_3v2ag"] +atlas = ExtResource("2_qhqgy") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jej6c"] +atlas = ExtResource("2_qhqgy") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_f1ej7"] +atlas = ExtResource("2_qhqgy") region = Rect2(0, 96, 32, 32) -[sub_resource type="AtlasTexture" id="AtlasTexture_ur7pv"] -atlas = ExtResource("2_g2els") -region = Rect2(0, 64, 32, 32) +[sub_resource type="AtlasTexture" id="AtlasTexture_oprun"] +atlas = ExtResource("2_qhqgy") +region = Rect2(64, 32, 32, 32) -[sub_resource type="AtlasTexture" id="AtlasTexture_y4r1p"] -atlas = ExtResource("2_g2els") +[sub_resource type="AtlasTexture" id="AtlasTexture_a8ls1"] +atlas = ExtResource("2_qhqgy") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qfm1y"] +atlas = ExtResource("2_qhqgy") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fulsm"] +atlas = ExtResource("2_qhqgy") +region = Rect2(0, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4r5pv"] +atlas = ExtResource("2_qhqgy") +region = Rect2(32, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_60mlk"] +atlas = ExtResource("2_qhqgy") region = Rect2(32, 64, 32, 32) -[sub_resource type="AtlasTexture" id="AtlasTexture_d2wvv"] -atlas = ExtResource("2_g2els") +[sub_resource type="AtlasTexture" id="AtlasTexture_smehm"] +atlas = ExtResource("2_qhqgy") region = Rect2(64, 64, 32, 32) +[sub_resource type="AtlasTexture" id="AtlasTexture_g2els"] +atlas = ExtResource("2_qhqgy") +region = Rect2(64, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qhqgy"] +atlas = ExtResource("2_qhqgy") +region = Rect2(96, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ur7pv"] +atlas = ExtResource("2_qhqgy") +region = Rect2(0, 64, 32, 32) + [sub_resource type="SpriteFrames" id="SpriteFrames_qhqgy"] animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_dqkch") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qlg0r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dqkch") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tuyoq") +}], +"loop": true, +"name": &"down", +"speed": 6.5 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_fjrip") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3v2ag") +}], +"loop": true, +"name": &"hand_down", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_jej6c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_f1ej7") +}], +"loop": true, +"name": &"hand_side", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_oprun") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_a8ls1") +}], +"loop": true, +"name": &"hand_up", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_qfm1y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fulsm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qfm1y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4r5pv") +}], +"loop": true, +"name": &"side", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_60mlk") +}], +"loop": true, +"name": &"sit_down", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_smehm") +}], +"loop": true, +"name": &"sit_side", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_g2els") }, { "duration": 1.0, @@ -56,49 +167,7 @@ animations = [{ "texture": SubResource("AtlasTexture_g2els") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_dqkch") -}], -"loop": true, -"name": &"down", -"speed": 6.5 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_qlg0r") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tuyoq") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qlg0r") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_fjrip") -}], -"loop": true, -"name": &"side", -"speed": 6.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_smehm") -}], -"loop": true, -"name": &"sit", -"speed": 5.0 -}, { -"frames": [{ -"duration": 1.0, "texture": SubResource("AtlasTexture_ur7pv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_y4r1p") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ur7pv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_d2wvv") }], "loop": true, "name": &"up", diff --git a/scripts/interactables/chair.gd b/scripts/interactables/chair.gd index 771a0ad..49330d0 100644 --- a/scripts/interactables/chair.gd +++ b/scripts/interactables/chair.gd @@ -4,63 +4,67 @@ extends StaticBody2D enum Direction { LEFT, RIGHT, FRONT } @onready var sprite: Sprite2D = $Sprite2D -const SEAT_HEIGHT_OFFSET := 8 +@onready var collision_shape: CollisionShape2D = $CollisionShape2D + +var seat_height_offset = 8 var player: Player -var input_released: bool = true -var move_input: Vector2 = Vector2.ZERO +var input_released = true +var move_input = Vector2.ZERO @export var direction: Direction = Direction.RIGHT: set(value): direction = value - flip_chair() + update_chair_visuals() func _ready() -> void: - flip_chair() + update_chair_visuals() -func flip_chair() -> void: - if !sprite: +func update_chair_visuals() -> void: + if not sprite: return - var atlas_tex := sprite.texture as AtlasTexture - match direction: - Direction.LEFT: - atlas_tex.region.position.x = 32 - sprite.flip_h = true - Direction.RIGHT: - atlas_tex.region.position.x = 32 - sprite.flip_h = false - Direction.FRONT: - atlas_tex.region.position.x = -3 - sprite.flip_h = false + var atlas_tex = sprite.texture as AtlasTexture + if direction == Direction.FRONT: + atlas_tex.region.position.x = -3 + seat_height_offset = -5 + sprite.flip_h = false + else: + atlas_tex.region.position.x = 32 + seat_height_offset = 8 + sprite.flip_h = direction == Direction.LEFT func _on_interacted(p_player: Player) -> void: if player: - unmount() + unmount_player() else: - y_sort_enabled = false - player = p_player - player.z_index = 2 - input_released = move_input.length() == 0 - player.animated_sprite.animation = "sit" - player.animated_sprite.flip_h = direction == Direction.LEFT - player.position = Vector2(position.x, position.y - SEAT_HEIGHT_OFFSET) + mount_player(p_player) +func mount_player(p_player: Player) -> void: + collision_shape.disabled = true + y_sort_enabled = false + z_index = -1 + player = p_player + input_released = move_input.length() == 0 + player.animated_sprite.flip_h = direction == Direction.LEFT + player.position = Vector2(position.x, position.y - seat_height_offset) + player.animated_sprite.animation = "sit_down" if direction == Direction.FRONT else "sit_side" func _process(_delta: float) -> void: - if !Engine.is_editor_hint() && EventManager.player_free && player: - move_input = Input.get_vector("move_left","move_right","move_up","move_down") - if move_input.length() == 0: - input_released = true - elif input_released: - unmount() + if Engine.is_editor_hint() || !EventManager.player_free || !player: + return + move_input = Input.get_vector("move_left", "move_right", "move_up", "move_down") + if move_input.length() == 0: + input_released = true + elif input_released: + unmount_player() - -func unmount() -> void: +func unmount_player() -> void: if direction == Direction.FRONT: - player.position = Vector2(position.x -16, position.y) + player.position = Vector2(position.x - 16, position.y) else: player.position = Vector2(position.x, position.y + 8) player.animated_sprite.animation = "down" - player.z_index = 0 + z_index = 0 player = null input_released = true y_sort_enabled = true + collision_shape.disabled = false