From b36923a1969f20254f96c52f11c6081e44ec998f Mon Sep 17 00:00:00 2001 From: vaporvee Date: Mon, 27 Oct 2025 02:54:20 +0100 Subject: [PATCH] interior tiles and scene transitions --- aseprite/hood_player.png | Bin 1765 -> 0 bytes aseprite/main_house_interior_tileset.aseprite | Bin 0 -> 879 bytes assets/textures/spritesheets/houses.png | Bin 10936 -> 22264 bytes .../tilemaps/main_house_interior_tileset.png | Bin 0 -> 849 bytes .../main_house_interior_tileset.png.import | 40 ++++++ scenes/autoloads/event_manager.tscn | 44 +++++- scenes/houses/home.tscn | 16 +-- scenes/interactable.tscn | 3 +- scenes/levels/home.tscn | 136 +++++++++--------- scenes/levels/hood.tscn | 5 +- scenes/player.tscn | 4 +- scripts/autoloads/nodes/event_manager.gd | 16 ++- scripts/interactable.gd | 7 + scripts/interactables/interact_sceneswitch.gd | 7 +- 14 files changed, 196 insertions(+), 82 deletions(-) delete mode 100644 aseprite/hood_player.png create mode 100644 aseprite/main_house_interior_tileset.aseprite create mode 100644 assets/textures/tilemaps/main_house_interior_tileset.png create mode 100644 assets/textures/tilemaps/main_house_interior_tileset.png.import diff --git a/aseprite/hood_player.png b/aseprite/hood_player.png deleted file mode 100644 index f8e13d452c3f12b0cbea3d890d5f6b309d9871f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1765 zcmVPx*pGibPRCt{2ojqtAM-<2Z4k0*(U~EztT;zNr#Hb8w1woW95I2ILBB+q7NR3je z2qA?E5mJOez$#*OQIT_@MvV>WtPp{7xD*oN9GM_UAsm9iS=?+2doH8B-MjgEGxwhM z-{`crx4*ah=3{sE%{-t{Ql0bp@yFLcEY#;;_J8#{)>-9S|42c5c@6-WIDh`s_tY0c z8sBPX-Q&ZIa53bp@?Ud>D{yyn$@CCjlFB!7KouMS?rz*V^_NPL`9{^GY(O3Gv&ElI z{U53skjx*sgDJeqkPsI@I^Vbt0D!fXss86|;m)b=^#4`o6j~Db#tzWo00ufA>dsIq z-?)mlTUqh**B=1@-hJ=-(0#LoJ9vE54SE|Wm2cGq)xlDVJKxCxhX?yOJlF>+svbq@ zlgu}Ez~iItx%ssR1BS$sRK9gdX}7Wh091RZq>Q63ebV@^yBIM!vyS<-<$-N`JIl4d z388i?D<)^w0U!xqXI1fEYPqm+f|a-0t*n@y-5R>j?)Dr>DKueI@~Lbv?gRAFH%yZ= z>-}mPN~R}H#fQcD1Hkm`maz@icR{<`b57rdk~F^eb3h|MiE{vDM@(^SD+ibuKy?9j zx95ziIOUj-$+1oCRI(Zi>TWKLeDqfPguD|`Y#2WJQ{DxQ+DEt3#11P5sL%IS->=-~ z=IW#VXNtiv6Ml>bv5@C)H55@kXz%!`(S9Lh%8#iK=kMJK>t0VG?tF1~LEI$90WoVr zNS5Mwa!kdmmHTC!{tgw$3Vx^!(ectZ28g;^gF{&@Y6(jba?8Y(o`aiIQK( zsj`U_US&YtcT{$i88Mt+$EmZ)L{{$uCa&FZ`YyDpSkz75C{E1tZ`4SRnh6?-`OZey zMGVKf5K{Og6EvtUf<(Ue1Pu@d!=44c*HA<+&(YmnLU(fsy*%$5Qdd1gO9J0%f`-zt zi3%Z`0m*#l8nF4prvuw!2Fgm|do@8XoRUlcd?N>_1NQP9 zYb#TD^5=2wz7)-XWWI3?D0@{I5vv)H%C~NU^ceZ7l0e-NO5;1VmE{ap@)nA^Y>q`w%Sch2qo8v5#z#lehyF<{^F%8xOnM`>tVb!J-day zon_X1@352@G5K}+zxMIvvyTg!oLNs=2z>dh9iT$tV-G=ue^uA8V3 zOSczWN%oR-zboRL`QQC4Ic--bN&Eby*%#+ zs>WKsUkcxN=eqbv9j+8(?S3hI?+3A}BRH z;ankr!YsQtg>1mwwQc+&!J%pt4y1Sy`myr!YY(E15OU``ub8Fc zf)qUV`u$S)PBmb9b_?0U+`zV2k#co>0KoPf+3P?(EI-uwv&kP|%BQk{ifxrYz{CKX zwexL6wSK=Tn<{@nlRqFazZr^1ELILk8H#QyTN|w$U{b{>n*oaT`%Oiazko&l0NsXB z``E7EZ_1_0U%)1RfNqDR`~}7jV(P%k*&R@_sU|9YDGH~kk`-iZi%?}uM0bVx2!gf>`7akSw5es0BK^GKR}Y$<`0k}_W1+2i*^1031Xc;K!RAt z1xZrlfW&g1C(L281P3|S0QDZAk)OQt2UN`-Y}V8?SMY^f@oEj_iEB3+2N=j}t%$0b zBI6jjJkAPw7j$#=5gvB$hdiWsc{LF!L)9BKYSgGvBkuYSB(tPnJQcZj00000NkvXX Hu0mjfX=P=& diff --git a/aseprite/main_house_interior_tileset.aseprite b/aseprite/main_house_interior_tileset.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..c1542a01dc718043fdb993f8355e659dd07b1f94 GIT binary patch literal 879 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 diff --git a/assets/textures/tilemaps/main_house_interior_tileset.png b/assets/textures/tilemaps/main_house_interior_tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..06cdf26de86e7d34cc310b72ce739322d15cbc85 GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq!^2X+?^QKos)UVz`)Gy>Eakt zG3V`E+ia0Q5r_0thkzUKFRAoeM7s)UcS zc0}gNHM?(qPkXn=*t*zHe8$}0&*tv^zR&z{j#~b=`Ty6kJZ7_P*tnQMg7ts~gBzm( zS3@9!&)#$T?0eePi@Ud9mrG_lpu&0M?(9AZ6h}goy(;ewi~uw4J`llpA;@A0xTdnB{;@l%1YrXn`+LdDv?>CLtb$K)7<)gC&JdF2$H0IOW?dfvj$c6FJY-HXya zAy%&$WABOInwR(R>y+wFZkyX!ZD#CJx6cgzV@ zstG;S&3;u5uXa^_+!31nbwz2#%L>hsOUyyn&-(U7$Gm^O=D+uG?}ZVZU0&a>xOXpo zY`V1kcY|;5brFaOhr9y(&i1Z25AwBshKS8^qc@BO-xy}Z-R+W4UdZ&TAV2jo$6LnS zdAs|jcK&zoIV#719Lp>B*Zp_xPrNb%66HNi2_h)+fegq(%l6fOSF>uk&fYFu!eEew zA_t74uU{@ES8%i!)QA~_(vbIk!QWpVCRZ#_KR>T+elf?I8qfFlx|=sB+`sp}eQtI} zL=$$)Hh&6h+0K7zLr8=9xl@UpO~90ByWe8raf7Tgko39ioB906e+(t^Pp>_*XV(Sh O5e83JKbLh*2~7Z?l3+vt literal 0 HcmV?d00001 diff --git a/assets/textures/tilemaps/main_house_interior_tileset.png.import b/assets/textures/tilemaps/main_house_interior_tileset.png.import new file mode 100644 index 0000000..c848c96 --- /dev/null +++ b/assets/textures/tilemaps/main_house_interior_tileset.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctr2whxnff2vn" +path="res://.godot/imported/main_house_interior_tileset.png-2d5b85e529c3039c8728b64174cd8c95.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/textures/tilemaps/main_house_interior_tileset.png" +dest_files=["res://.godot/imported/main_house_interior_tileset.png-2d5b85e529c3039c8728b64174cd8c95.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 diff --git a/scenes/autoloads/event_manager.tscn b/scenes/autoloads/event_manager.tscn index 679f78a..cacbf67 100644 --- a/scenes/autoloads/event_manager.tscn +++ b/scenes/autoloads/event_manager.tscn @@ -1,7 +1,44 @@ -[gd_scene load_steps=2 format=3 uid="uid://cjbbslcx6vjjy"] +[gd_scene load_steps=5 format=3 uid="uid://cjbbslcx6vjjy"] [ext_resource type="Script" uid="uid://b08q3lqbuoolb" path="res://scripts/autoloads/nodes/event_manager.gd" id="1_xplee"] +[sub_resource type="Animation" id="Animation_xplee"] +resource_name = "transition" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:self_modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(0.5, 0.5), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_swnhv"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:self_modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_gml0k"] +_data = { +&"RESET": SubResource("Animation_swnhv"), +&"transition": SubResource("Animation_xplee") +} + [node name="EventManager" type="CanvasLayer"] script = ExtResource("1_xplee") @@ -14,3 +51,8 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 color = Color(0, 0, 0, 1) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_gml0k") +} diff --git a/scenes/houses/home.tscn b/scenes/houses/home.tscn index c1c8814..73956ac 100644 --- a/scenes/houses/home.tscn +++ b/scenes/houses/home.tscn @@ -1,27 +1,27 @@ -[gd_scene load_steps=6 format=3 uid="uid://cokphmh2g8wvs"] +[gd_scene load_steps=5 format=3 uid="uid://cokphmh2g8wvs"] [ext_resource type="Texture2D" uid="uid://db4dctk13rgbm" path="res://assets/textures/spritesheets/houses.png" id="1_fltv6"] [ext_resource type="PackedScene" uid="uid://h77hilgbces" path="res://scenes/interactables/interact_sceneswitch.tscn" id="2_0afuu"] -[ext_resource type="PackedScene" uid="uid://ccfdsdgaon63m" path="res://scenes/levels/home.tscn" id="3_0afuu"] -[sub_resource type="AtlasTexture" id="AtlasTexture_0db70"] +[sub_resource type="AtlasTexture" id="AtlasTexture_fltv6"] atlas = ExtResource("1_fltv6") -region = Rect2(1, 4, 94, 89) +region = Rect2(161, 1, 158, 149) [sub_resource type="RectangleShape2D" id="RectangleShape2D_0afuu"] -size = Vector2(90, 46) +size = Vector2(152.75, 80) [node name="Home" type="StaticBody2D"] [node name="Sprite2D" type="Sprite2D" parent="."] -texture = SubResource("AtlasTexture_0db70") +position = Vector2(-2, -28) +texture = SubResource("AtlasTexture_fltv6") [node name="InteractSceneswitch" parent="." instance=ExtResource("2_0afuu")] position = Vector2(0, 25) -scene = ExtResource("3_0afuu") +scene = "res://scenes/levels/home.tscn" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] y_sort_enabled = true -position = Vector2(0, 18) +position = Vector2(-1.625, 1) shape = SubResource("RectangleShape2D_0afuu") debug_color = Color(0.8768643, 0.34231007, 0.046793222, 0.41960785) diff --git a/scenes/interactable.tscn b/scenes/interactable.tscn index ac16966..1c008c1 100644 --- a/scenes/interactable.tscn +++ b/scenes/interactable.tscn @@ -7,8 +7,9 @@ size = Vector2(32, 32) [node name="Interactable" type="Area2D"] collision_layer = 2 -collision_mask = 0 script = ExtResource("1_56v82") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("RectangleShape2D_ij5l6") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/levels/home.tscn b/scenes/levels/home.tscn index 4f43c5b..c928a3d 100644 --- a/scenes/levels/home.tscn +++ b/scenes/levels/home.tscn @@ -1,103 +1,111 @@ -[gd_scene load_steps=6 format=4 uid="uid://ccfdsdgaon63m"] +[gd_scene load_steps=8 format=4 uid="uid://ccfdsdgaon63m"] +[ext_resource type="Texture2D" uid="uid://ctr2whxnff2vn" path="res://assets/textures/tilemaps/main_house_interior_tileset.png" id="1_2vl8h"] [ext_resource type="PackedScene" uid="uid://dfbomt0l6b1o4" path="res://scenes/player.tscn" id="1_ikf4c"] -[ext_resource type="Texture2D" uid="uid://dve2b2glwitsw" path="res://assets/textures/tilemaps/grass_tilemap.png" id="1_q28r8"] [ext_resource type="PackedScene" uid="uid://bsvy3yhylfoui" path="res://scenes/interactables/chair.tscn" id="3_2vl8h"] +[ext_resource type="PackedScene" uid="uid://h77hilgbces" path="res://scenes/interactables/interact_sceneswitch.tscn" id="4_snitx"] -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2vl8h"] -texture = ExtResource("1_q28r8") +[sub_resource type="GDScript" id="GDScript_2vl8h"] +script/source = "extends Node2D + +func _ready() -> void: + RenderingServer.set_default_clear_color(\"#0d0805\") +" + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_5uvba"] +texture = ExtResource("1_2vl8h") texture_region_size = Vector2i(32, 32) 0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -16, 16, -16, 16, 11, 2, 11, 2, 16) +0:0/0/terrains_peering_bit/bottom_right_corner = 0 1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 11, -16, -16, 16, -16, 16, 11) +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 11, -16, -16, 16, -16, 16, 16, -2, 16, -2, 11) +2:0/0/terrains_peering_bit/bottom_left_corner = 0 0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(2, -16, 2, 16, -16, 16, -16, -16) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 0 +1:1/0/terrains_peering_bit/right_side = 0 +1:1/0/terrains_peering_bit/bottom_right_corner = 0 +1:1/0/terrains_peering_bit/bottom_side = 0 +1:1/0/terrains_peering_bit/bottom_left_corner = 0 +1:1/0/terrains_peering_bit/left_side = 0 +1:1/0/terrains_peering_bit/top_left_corner = 0 +1:1/0/terrains_peering_bit/top_side = 0 +1:1/0/terrains_peering_bit/top_right_corner = 0 2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -6:1/0 = 0 -7:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 16, -2, 16, -2, -16) +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(2, -16, 2, -8, 16, -8, 16, 16, -16, 16, -16, -16) +0:2/0/terrains_peering_bit/top_right_corner = 0 1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -8, 16, -8, 16, 16) +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -5:2/0 = 0 -6:2/0 = 0 -7:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-2, -8, -2, -16, 16, -16, 16, 16, -16, 16, -16, -8) +2:2/0/terrains_peering_bit/top_left_corner = 0 0:3/0 = 0 -1:3/0 = 0 -2:3/0 = 0 -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -6:3/0 = 0 -7:3/0 = 0 -0:4/0 = 0 -1:4/0 = 0 -2:4/0 = 0 -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -6:4/0 = 0 -7:4/0 = 0 -0:5/0 = 0 -1:5/0 = 0 -2:5/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -5:5/0 = 0 -6:5/0 = 0 -7:5/0 = 0 -0:6/0 = 0 -1:6/0 = 0 -2:6/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -5:6/0 = 0 -6:6/0 = 0 -7:6/0 = 0 -0:7/0 = 0 -1:7/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -6:7/0 = 0 -7:7/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 11, -16, -16, 16, -16, 16, 11) [sub_resource type="TileSet" id="TileSet_ikf4c"] tile_size = Vector2i(32, 32) -sources/0 = SubResource("TileSetAtlasSource_2vl8h") +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "Ground 0" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +sources/1 = SubResource("TileSetAtlasSource_5uvba") [node name="Home" type="Node2D"] +script = SubResource("GDScript_2vl8h") [node name="TileMapLayer" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAACAAIAAAAGAAIAAAACAAMAAAAGAAIAAAACAAUAAAAGAAIAAAACAAYAAAAGAAIAAAACAAcAAAAGAAIAAAADAAIAAAAGAAIAAAADAAMAAAAGAAIAAAADAAUAAAAGAAIAAAADAAYAAAAGAAIAAAADAAcAAAAGAAIAAAAEAAIAAAAGAAIAAAAEAAMAAAAGAAIAAAAEAAUAAAAGAAIAAAAEAAYAAAAGAAIAAAAEAAcAAAAGAAIAAAAFAAIAAAAGAAIAAAAFAAUAAAAGAAIAAAAFAAYAAAAGAAIAAAAFAAcAAAAGAAIAAAAGAAIAAAAGAAIAAAAGAAMAAAAGAAIAAAAGAAUAAAAGAAIAAAAGAAYAAAAGAAIAAAAGAAcAAAAGAAIAAAAHAAIAAAAGAAIAAAAHAAMAAAAGAAIAAAAHAAQAAAAGAAIAAAAHAAUAAAAGAAIAAAAHAAYAAAAGAAIAAAAHAAcAAAAGAAIAAAAIAAIAAAAGAAIAAAAIAAMAAAAGAAIAAAAIAAQAAAAGAAIAAAAIAAUAAAAGAAIAAAAIAAYAAAAGAAIAAAAIAAcAAAAGAAIAAAACAAQAAAAGAAIAAAADAAQAAAAGAAIAAAAEAAQAAAAGAAIAAAAFAAQAAAAGAAIAAAAGAAQAAAAGAAIAAAAFAAMAAAAGAAIAAAA=") +tile_map_data = PackedByteArray("AAAHAAYAAQABAAEAAAAHAAUAAQABAAEAAAAHAAQAAQABAAEAAAAHAAMAAQABAAEAAAAGAAYAAQABAAEAAAAGAAUAAQABAAEAAAAGAAQAAQABAAEAAAAGAAMAAQABAAEAAAAFAAYAAQABAAEAAAAFAAUAAQABAAEAAAAFAAQAAQABAAEAAAAFAAMAAQABAAEAAAAEAAYAAQABAAEAAAAEAAUAAQABAAEAAAAEAAQAAQABAAEAAAAEAAMAAQABAAEAAAADAAYAAQABAAEAAAADAAUAAQABAAEAAAADAAQAAQABAAEAAAADAAMAAQABAAEAAAACAAQAAQAAAAEAAAACAAMAAQAAAAEAAAACAAIAAQAAAAAAAAADAAIAAQABAAAAAAAEAAIAAQABAAAAAAACAAUAAQAAAAEAAAACAAYAAQAAAAEAAAAEAAcAAQABAAIAAAADAAcAAQABAAIAAAACAAcAAQAAAAIAAAAFAAIAAQAAAAMAAAAGAAIAAQABAAAAAAAGAAcAAQABAAIAAAAHAAIAAQABAAAAAAAHAAcAAQABAAIAAAAIAAMAAQACAAEAAAAIAAQAAQACAAEAAAAIAAIAAQACAAAAAAAIAAUAAQACAAEAAAAIAAYAAQACAAEAAAAIAAcAAQACAAIAAAAFAAcAAQABAAEAAAA=") tile_set = SubResource("TileSet_ikf4c") [node name="Chair" parent="." instance=ExtResource("3_2vl8h")] -position = Vector2(144, 144) +position = Vector2(144, 175) direction = 1 [node name="Chair2" parent="." instance=ExtResource("3_2vl8h")] -position = Vector2(208, 144) +position = Vector2(208, 175) direction = 0 [node name="Chair3" parent="." instance=ExtResource("3_2vl8h")] -position = Vector2(176, 112) +position = Vector2(176, 143) [node name="Player" parent="." node_paths=PackedStringArray("tilemap") instance=ExtResource("1_ikf4c")] -position = Vector2(180, 183) +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" +auto_interact = true + [editable path="Player"] diff --git a/scenes/levels/hood.tscn b/scenes/levels/hood.tscn index 564a8f0..182804d 100644 --- a/scenes/levels/hood.tscn +++ b/scenes/levels/hood.tscn @@ -230,5 +230,6 @@ tile_set = SubResource("TileSet_5rqdi") rendering_quadrant_size = 32 physics_quadrant_size = 32 -[node name="Player" parent="." instance=ExtResource("1_ge1l5")] -position = Vector2(110, 38) +[node name="Player" parent="." node_paths=PackedStringArray("tilemap") instance=ExtResource("1_ge1l5")] +position = Vector2(112, 51) +tilemap = NodePath("../Ground") diff --git a/scenes/player.tscn b/scenes/player.tscn index 876a054..b0f9179 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -106,7 +106,7 @@ animations = [{ }] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_3vyb7"] -radius = 3.0 +radius = 6.0 height = 14.0 [node name="Player" type="CharacterBody2D"] @@ -119,7 +119,7 @@ sprite_frames = SubResource("SpriteFrames_qhqgy") animation = &"down" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(0, 13) +position = Vector2(0, 10) rotation = -1.5707964 shape = SubResource("CapsuleShape2D_3vyb7") diff --git a/scripts/autoloads/nodes/event_manager.gd b/scripts/autoloads/nodes/event_manager.gd index 0f77e4e..a7e539a 100644 --- a/scripts/autoloads/nodes/event_manager.gd +++ b/scripts/autoloads/nodes/event_manager.gd @@ -3,14 +3,19 @@ extends Node var player_free: bool = true var player: Player +@onready var animation_player: AnimationPlayer = $AnimationPlayer + enum Events { NONE, PUMPKIN_CARVE, OUTSIDE_NORMAL } var current_event: Events = Events.NONE func transition_start() -> void: - pass + player_free = false + animation_player.play("transition") func transition_end() -> void: - pass + animation_player.play_backwards("transition") + await animation_player.animation_finished + player_free = true func run_event(event: Events, player_postion: Vector2 = Vector2.ZERO): current_event = event @@ -23,3 +28,10 @@ func run_event(event: Events, player_postion: Vector2 = Vector2.ZERO): await get_tree().scene_changed player.animated_sprite.animation = "sit" # should be replaced with chair interaction trigger transition_end() + +func transition_scene_file(scene: String) -> void: + if !animation_player.is_playing(): + transition_start() + get_tree().call_deferred("change_scene_to_file", scene) + await get_tree().scene_changed + transition_end() diff --git a/scripts/interactable.gd b/scripts/interactable.gd index cb66bf6..c86a58e 100644 --- a/scripts/interactable.gd +++ b/scripts/interactable.gd @@ -3,4 +3,11 @@ extends Area2D signal interacted(player: Player) +@export var auto_interact: bool = false + func interact(player: Player) -> void: interacted.emit(player) + + +func _on_body_entered(body: Node2D) -> void: + if auto_interact && body is Player: + interacted.emit(body as Player) diff --git a/scripts/interactables/interact_sceneswitch.gd b/scripts/interactables/interact_sceneswitch.gd index adfaeab..85e70c5 100644 --- a/scripts/interactables/interact_sceneswitch.gd +++ b/scripts/interactables/interact_sceneswitch.gd @@ -1,6 +1,9 @@ extends Node2D -@export var scene: PackedScene +@export_file_path("*.tscn") var scene: String +@export var auto_interact: bool = false + +func _ready() -> void: $Interactable.auto_interact = auto_interact func _on_interacted(_player: Player) -> void: - get_tree().change_scene_to_packed(scene) + EventManager.transition_scene_file(scene)