commit 417044bfda9714975d3ae9cdb18c3ecfa43f839d Author: Nathan Anderson Date: Thu Aug 4 10:50:28 2022 -0600 Added all the things diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f48ad7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ diff --git a/10-pixel-art-square-mike-taylor.jpg b/10-pixel-art-square-mike-taylor.jpg new file mode 100644 index 0000000..4fc5bfb Binary files /dev/null and b/10-pixel-art-square-mike-taylor.jpg differ diff --git a/10-pixel-art-square-mike-taylor.jpg.import b/10-pixel-art-square-mike-taylor.jpg.import new file mode 100644 index 0000000..4d4999f --- /dev/null +++ b/10-pixel-art-square-mike-taylor.jpg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/10-pixel-art-square-mike-taylor.jpg-885b8df56355b977dcb318a4e8ff3a07.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://10-pixel-art-square-mike-taylor.jpg" +dest_files=[ "res://.import/10-pixel-art-square-mike-taylor.jpg-885b8df56355b977dcb318a4e8ff3a07.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..4ac6389 --- /dev/null +++ b/project.godot @@ -0,0 +1,59 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "KinematicBody2D", +"class": "Neighbor", +"language": "GDScript", +"path": "res://scripts/neighbor.gd" +}, { +"base": "KinematicBody2D", +"class": "Player", +"language": "GDScript", +"path": "res://scripts/player.gd" +}, { +"base": "KinematicBody2D", +"class": "Trolley", +"language": "GDScript", +"path": "res://scripts/trolley.gd" +} ] +_global_script_class_icons={ +"Neighbor": "", +"Player": "", +"Trolley": "" +} + +[application] + +config/name="roger" +run/main_scene="res://scenes/stage.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=1280 +window/size/height=960 + +[layer_names] + +2d_physics/layer_1="player" +2d_physics/layer_2="npc" +2d_physics/layer_3="obstacle" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/scenes/house.tscn b/scenes/house.tscn new file mode 100644 index 0000000..e0bd038 --- /dev/null +++ b/scenes/house.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scripts/house.gd" type="Script" id=1] +[ext_resource path="res://roger-roger/chadHouse.png" type="Texture" id=2] + +[sub_resource type="CapsuleShape2D" id=3] +radius = 12.2857 +height = 2.57142 + +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 86, 63.5 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 3.5, 2 ) + +[node name="House" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -125 ) +scale = Vector2( 5, 5 ) +texture = ExtResource( 2 ) + +[node name="HouseBody" type="StaticBody2D" parent="."] +collision_layer = 4 +collision_mask = 7 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -7, -90 ) +scale = Vector2( 7, 7 ) +shape = SubResource( 3 ) + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -6, -49.5 ) +shape = SubResource( 4 ) + +[node name="DoorBody" type="StaticBody2D" parent="."] +scale = Vector2( 7, 7 ) +collision_layer = 4 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DoorBody"] +position = Vector2( -0.857143, 1.57143 ) +shape = SubResource( 2 ) diff --git a/scenes/neighbor.tscn b/scenes/neighbor.tscn new file mode 100644 index 0000000..463a1a1 --- /dev/null +++ b/scenes/neighbor.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=14 format=2] + +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinFinal.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin2.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin5.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin6.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin4.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin3.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinStart.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/LadyAberlin.png" type="Texture" id=9] +[ext_resource path="res://scripts/neighbor.gd" type="Script" id=10] + +[sub_resource type="CircleShape2D" id=3] +radius = 215.037 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 9 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 2 ), ExtResource( 6 ), ExtResource( 5 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 1 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +}, { +"frames": [ ExtResource( 7 ), ExtResource( 2 ), ExtResource( 9 ) ], +"loop": true, +"name": "walk", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 12.0 +height = 10.0 + +[node name="Neighbor" type="KinematicBody2D"] +script = ExtResource( 10 ) + +[node name="RogerArea2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RogerArea2D"] +shape = SubResource( 3 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 1, -29 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "walk" +frame = 2 +playing = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( -1, 0 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="WanderTimer" type="Timer" parent="."] + +[connection signal="body_entered" from="RogerArea2D" to="." method="_on_RogerArea2D_body_entered"] +[connection signal="timeout" from="WanderTimer" to="." method="_on_WanderTimer_timeout"] diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..675a8e7 --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://roger-roger/runningSprites/Rogers5.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/Rogers4.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/Rogers6.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/Rogers2.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/Rogers3.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/RogersFinal.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/Rogers1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/RogersStart.png" type="Texture" id=8] +[ext_resource path="res://scripts/player.gd" type="Script" id=9] +[ext_resource path="res://roger-roger/mrRogers.png" type="Texture" id=10] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 13.0 +height = 10.0001 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 10 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 2 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 6 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +} ] + +[node name="Player" type="KinematicBody2D"] +collision_mask = 7 +script = ExtResource( 9 ) +ACCELERATION = 2000 +FRICTION = 2500 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, 4 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 2, -25 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "idle" +playing = true + +[node name="Camera2D" type="Camera2D" parent="."] +current = true diff --git a/scenes/stage.tscn b/scenes/stage.tscn new file mode 100644 index 0000000..19e0611 --- /dev/null +++ b/scenes/stage.tscn @@ -0,0 +1,180 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=1] +[ext_resource path="res://scripts/stage.gd" type="Script" id=2] +[ext_resource path="res://scenes/house.tscn" type="PackedScene" id=3] +[ext_resource path="res://scenes/trolley.tscn" type="PackedScene" id=4] +[ext_resource path="res://scenes/neighbor.tscn" type="PackedScene" id=5] +[ext_resource path="res://roger-roger/tilemap/streetSideTop.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalLeft.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/tilemap/streetSideBottom.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/tilemap/sidewalk.png" type="Texture" id=9] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalRight.png" type="Texture" id=10] +[ext_resource path="res://roger-roger/tilemap/grass1.png" type="Texture" id=11] +[ext_resource path="res://roger-roger/tilemap/justRoad.png" type="Texture" id=12] +[ext_resource path="res://scenes/tree.tscn" type="PackedScene" id=13] + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="TileSet" id=2] +0/name = "StreetVerticalRight.png 0" +0/texture = ExtResource( 10 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 16, 16 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "StreetVerticalLeft.png 1" +1/texture = ExtResource( 7 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 0, 16, 16 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +3/name = "sidewalk.png 3" +3/texture = ExtResource( 9 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 0, 16, 16 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape_one_way = false +3/shape_one_way_margin = 0.0 +3/shapes = [ ] +3/z_index = 0 +5/name = "streetSideBottom.png 5" +5/texture = ExtResource( 8 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 0, 0, 16, 16 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape_one_way = false +5/shape_one_way_margin = 0.0 +5/shapes = [ ] +5/z_index = 0 +6/name = "streetSideTop.png 6" +6/texture = ExtResource( 6 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 0, 0, 16, 16 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shape_offset = Vector2( 0, 0 ) +6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +6/shape_one_way = false +6/shape_one_way_margin = 0.0 +6/shapes = [ ] +6/z_index = 0 +7/name = "grass1.png 7" +7/texture = ExtResource( 11 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 0, 0, 16, 16 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shape_offset = Vector2( 0, 0 ) +7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +7/shape = SubResource( 3 ) +7/shape_one_way = false +7/shape_one_way_margin = 1.0 +7/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +7/z_index = 0 +8/name = "justRoad.png 8" +8/texture = ExtResource( 12 ) +8/tex_offset = Vector2( 0, 0 ) +8/modulate = Color( 1, 1, 1, 1 ) +8/region = Rect2( 0, 0, 16, 16 ) +8/tile_mode = 0 +8/occluder_offset = Vector2( 0, 0 ) +8/navigation_offset = Vector2( 0, 0 ) +8/shape_offset = Vector2( 0, 0 ) +8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +8/shape_one_way = false +8/shape_one_way_margin = 0.0 +8/shapes = [ ] +8/z_index = 0 + +[node name="Stage" type="Node2D"] +script = ExtResource( 2 ) + +[node name="TileMap" type="TileMap" parent="."] +scale = Vector2( 5, 5 ) +tile_set = SubResource( 2 ) +cell_size = Vector2( 16, 16 ) +show_collision = true +format = 1 +tile_data = PoolIntArray( -13, 7, 0, -12, 7, 0, -11, 3, 0, -10, 1, 0, -9, 0, 0, -8, 3, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65517, 7, 0, -65516, 7, 0, -65515, 7, 0, -65514, 7, 0, -65513, 7, 0, -65512, 7, 0, -65511, 7, 0, -65510, 7, 0, 65523, 7, 0, 65524, 7, 0, 65525, 3, 0, 65526, 1, 0, 65527, 0, 0, 65528, 3, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 3, 0, 6, 3, 0, 7, 8, 0, 8, 8, 0, 9, 3, 0, 10, 3, 0, 11, 3, 0, 12, 3, 0, 13, 3, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 19, 7, 0, 20, 3, 0, 21, 3, 0, 22, 3, 0, 23, 3, 0, 24, 7, 0, 25, 7, 0, 26, 7, 0, 131059, 3, 0, 131060, 3, 0, 131061, 3, 0, 131062, 1, 0, 131063, 0, 0, 131064, 3, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 3, 0, 65543, 1, 0, 65544, 0, 0, 65545, 3, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 3, 0, 65550, 3, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65555, 7, 0, 65556, 3, 0, 65557, 1, 0, 65558, 0, 0, 65559, 3, 0, 65560, 7, 0, 65561, 7, 0, 65562, 7, 0, 196595, 6, 0, 196596, 6, 0, 196597, 6, 0, 196598, 8, 0, 196599, 8, 0, 196600, 3, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 3, 0, 131079, 1, 0, 131080, 0, 0, 131081, 3, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 3, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131091, 7, 0, 131092, 3, 0, 131093, 1, 0, 131094, 0, 0, 131095, 3, 0, 131096, 7, 0, 131097, 7, 0, 131098, 7, 0, 262131, 5, 0, 262132, 5, 0, 262133, 5, 0, 262134, 8, 0, 262135, 8, 0, 262136, 3, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 3, 0, 196615, 1, 0, 196616, 0, 0, 196617, 3, 0, 196618, 7, 0, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 3, 0, 196623, 3, 0, 196624, 3, 0, 196625, 3, 0, 196626, 3, 0, 196627, 3, 0, 196628, 3, 0, 196629, 1, 0, 196630, 0, 0, 196631, 3, 0, 196632, 7, 0, 196633, 7, 0, 196634, 7, 0, 327667, 3, 0, 327668, 3, 0, 327669, 3, 0, 327670, 3, 0, 327671, 3, 0, 327672, 3, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 3, 0, 262151, 1, 0, 262152, 0, 0, 262153, 3, 0, 262154, 7, 0, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 3, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262163, 7, 0, 262164, 3, 0, 262165, 1, 0, 262166, 0, 0, 262167, 3, 0, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 3, 0, 327687, 1, 0, 327688, 0, 0, 327689, 3, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 3, 0, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327699, 7, 0, 327700, 3, 0, 327701, 1, 0, 327702, 0, 0, 327703, 3, 0, 327704, 7, 0, 327705, 7, 0, 327706, 7, 0, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 3, 0, 393223, 1, 0, 393224, 0, 0, 393225, 3, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 3, 0, 393231, 7, 0, 393232, 3, 0, 393233, 3, 0, 393234, 3, 0, 393235, 3, 0, 393236, 3, 0, 393237, 8, 0, 393238, 8, 0, 393239, 3, 0, 393240, 3, 0, 393241, 3, 0, 393242, 7, 0, 524275, 7, 0, 524276, 7, 0, 524277, 7, 0, 524278, 7, 0, 524279, 7, 0, 524280, 7, 0, 524281, 7, 0, 524282, 7, 0, 524283, 7, 0, 524284, 7, 0, 524285, 7, 0, 524286, 7, 0, 524287, 7, 0, 458752, 7, 0, 458753, 7, 0, 458754, 7, 0, 458755, 7, 0, 458756, 7, 0, 458757, 7, 0, 458758, 3, 0, 458759, 1, 0, 458760, 0, 0, 458761, 3, 0, 458762, 7, 0, 458763, 7, 0, 458764, 7, 0, 458765, 7, 0, 458766, 3, 0, 458767, 7, 0, 458768, 3, 0, 458769, 8, 0, 458770, 6, 0, 458771, 6, 0, 458772, 6, 0, 458773, 8, 0, 458774, 8, 0, 458775, 6, 0, 458776, 8, 0, 458777, 3, 0, 458778, 7, 0, 589811, 7, 0, 589812, 7, 0, 589813, 7, 0, 589814, 7, 0, 589815, 7, 0, 589816, 7, 0, 589817, 7, 0, 589818, 7, 0, 589819, 3, 0, 589820, 3, 0, 589821, 3, 0, 589822, 3, 0, 589823, 3, 0, 524288, 3, 0, 524289, 3, 0, 524290, 3, 0, 524291, 3, 0, 524292, 3, 0, 524293, 3, 0, 524294, 3, 0, 524295, 1, 0, 524296, 0, 0, 524297, 3, 0, 524298, 3, 0, 524299, 3, 0, 524300, 3, 0, 524301, 3, 0, 524302, 3, 0, 524303, 3, 0, 524304, 3, 0, 524305, 8, 0, 524306, 5, 0, 524307, 5, 0, 524308, 5, 0, 524309, 8, 0, 524310, 8, 0, 524311, 5, 0, 524312, 8, 0, 524313, 3, 0, 524314, 7, 0, 655347, 7, 0, 655348, 7, 0, 655349, 7, 0, 655350, 7, 0, 655351, 7, 0, 655352, 7, 0, 655353, 7, 0, 655354, 7, 0, 655355, 3, 0, 655356, 8, 0, 655357, 6, 0, 655358, 6, 0, 655359, 6, 0, 589824, 6, 0, 589825, 6, 0, 589826, 6, 0, 589827, 6, 0, 589828, 6, 0, 589829, 6, 0, 589830, 6, 0, 589831, 8, 0, 589832, 8, 0, 589833, 3, 0, 589834, 3, 0, 589835, 3, 0, 589836, 3, 0, 589837, 3, 0, 589838, 3, 0, 589839, 3, 0, 589840, 3, 0, 589841, 3, 0, 589842, 3, 0, 589843, 3, 0, 589844, 3, 0, 589845, 1, 0, 589846, 0, 0, 589847, 3, 0, 589848, 3, 0, 589849, 3, 0, 589850, 7, 0, 720883, 7, 0, 720884, 7, 0, 720885, 7, 0, 720886, 7, 0, 720887, 7, 0, 720888, 7, 0, 720889, 7, 0, 720890, 7, 0, 720891, 3, 0, 720892, 8, 0, 720893, 5, 0, 720894, 5, 0, 720895, 5, 0, 655360, 5, 0, 655361, 5, 0, 655362, 5, 0, 655363, 5, 0, 655364, 5, 0, 655365, 5, 0, 655366, 5, 0, 655367, 8, 0, 655368, 8, 0, 655369, 3, 0, 655370, 7, 0, 655371, 7, 0, 655372, 7, 0, 655373, 7, 0, 655374, 7, 0, 655375, 7, 0, 655376, 7, 0, 655377, 7, 0, 655378, 7, 0, 655379, 7, 0, 655380, 3, 0, 655381, 1, 0, 655382, 0, 0, 655383, 3, 0, 655384, 7, 0, 655385, 7, 0, 655386, 7, 0, 786419, 7, 0, 786420, 7, 0, 786421, 7, 0, 786422, 7, 0, 786423, 7, 0, 786424, 7, 0, 786425, 7, 0, 786426, 7, 0, 786427, 3, 0, 786428, 3, 0, 786429, 3, 0, 786430, 3, 0, 786431, 3, 0, 720896, 3, 0, 720897, 3, 0, 720898, 3, 0, 720899, 3, 0, 720900, 3, 0, 720901, 3, 0, 720902, 3, 0, 720903, 1, 0, 720904, 0, 0, 720905, 3, 0, 720906, 7, 0, 720907, 7, 0, 720908, 7, 0, 720909, 7, 0, 720910, 7, 0, 720911, 7, 0, 720912, 7, 0, 720913, 7, 0, 720914, 7, 0, 720915, 7, 0, 720916, 3, 0, 720917, 1, 0, 720918, 0, 0, 720919, 3, 0, 720920, 7, 0, 720921, 7, 0, 720922, 7, 0, 851955, 7, 0, 851956, 7, 0, 851957, 7, 0, 851958, 7, 0, 851959, 7, 0, 851960, 7, 0, 851961, 7, 0, 851962, 7, 0, 851963, 7, 0, 851964, 7, 0, 851965, 7, 0, 851966, 7, 0, 851967, 7, 0, 786432, 7, 0, 786433, 3, 0, 786434, 3, 0, 786435, 7, 0, 786436, 7, 0, 786437, 7, 0, 786438, 3, 0, 786439, 1, 0, 786440, 0, 0, 786441, 3, 0, 786442, 3, 0, 786443, 3, 0, 786444, 3, 0, 786445, 7, 0, 786446, 7, 0, 786447, 7, 0, 786448, 7, 0, 786449, 7, 0, 786450, 7, 0, 786451, 7, 0, 786452, 3, 0, 786453, 1, 0, 786454, 0, 0, 786455, 3, 0, 786456, 7, 0, 786457, 7, 0, 786458, 7, 0, 917491, 7, 0, 917492, 7, 0, 917493, 7, 0, 917494, 7, 0, 917495, 7, 0, 917496, 7, 0, 917497, 7, 0, 917498, 3, 0, 917499, 3, 0, 917500, 3, 0, 917501, 3, 0, 917502, 3, 0, 917503, 3, 0, 851968, 3, 0, 851969, 3, 0, 851970, 3, 0, 851971, 3, 0, 851972, 3, 0, 851973, 3, 0, 851974, 3, 0, 851975, 1, 0, 851976, 0, 0, 851977, 3, 0, 851978, 3, 0, 851979, 3, 0, 851980, 3, 0, 851981, 3, 0, 851982, 7, 0, 851983, 7, 0, 851984, 7, 0, 851985, 7, 0, 851986, 7, 0, 851987, 7, 0, 851988, 3, 0, 851989, 1, 0, 851990, 0, 0, 851991, 3, 0, 851992, 7, 0, 851993, 7, 0, 851994, 7, 0, 983027, 7, 0, 983028, 7, 0, 983029, 7, 0, 983030, 7, 0, 983031, 7, 0, 983032, 7, 0, 983033, 7, 0, 983034, 3, 0, 983035, 3, 0, 983036, 3, 0, 983037, 3, 0, 983038, 3, 0, 983039, 3, 0, 917504, 3, 0, 917505, 3, 0, 917506, 3, 0, 917507, 7, 0, 917508, 7, 0, 917509, 7, 0, 917510, 3, 0, 917511, 1, 0, 917512, 0, 0, 917513, 3, 0, 917514, 7, 0, 917515, 7, 0, 917516, 3, 0, 917517, 3, 0, 917518, 3, 0, 917519, 7, 0, 917520, 7, 0, 917521, 7, 0, 917522, 7, 0, 917523, 7, 0, 917524, 3, 0, 917525, 1, 0, 917526, 0, 0, 917527, 3, 0, 917528, 7, 0, 917529, 7, 0, 917530, 7, 0, 1048563, 7, 0, 1048564, 7, 0, 1048565, 7, 0, 1048566, 7, 0, 1048567, 7, 0, 1048568, 7, 0, 1048569, 7, 0, 1048570, 3, 0, 1048571, 8, 0, 1048572, 8, 0, 1048573, 3, 0, 1048574, 7, 0, 1048575, 7, 0, 983040, 7, 0, 983041, 3, 0, 983042, 3, 0, 983043, 7, 0, 983044, 7, 0, 983045, 7, 0, 983046, 3, 0, 983047, 1, 0, 983048, 0, 0, 983049, 3, 0, 983050, 7, 0, 983051, 7, 0, 983052, 7, 0, 983053, 3, 0, 983054, 3, 0, 983055, 3, 0, 983056, 7, 0, 983057, 7, 0, 983058, 7, 0, 983059, 7, 0, 983060, 3, 0, 983061, 1, 0, 983062, 0, 0, 983063, 3, 0, 983064, 7, 0, 983065, 7, 0, 983066, 7, 0, 1114099, 7, 0, 1114100, 7, 0, 1114101, 7, 0, 1114102, 7, 0, 1114103, 7, 0, 1114104, 7, 0, 1114105, 7, 0, 1114106, 3, 0, 1114107, 1, 0, 1114108, 0, 0, 1114109, 3, 0, 1114110, 7, 0, 1114111, 7, 0, 1048576, 7, 0, 1048577, 3, 0, 1048578, 3, 0, 1048579, 7, 0, 1048580, 7, 0, 1048581, 7, 0, 1048582, 3, 0, 1048583, 1, 0, 1048584, 0, 0, 1048585, 3, 0, 1048586, 7, 0, 1048587, 7, 0, 1048588, 7, 0, 1048589, 7, 0, 1048590, 3, 0, 1048591, 3, 0, 1048592, 3, 0, 1048593, 7, 0, 1048594, 7, 0, 1048595, 7, 0, 1048596, 3, 0, 1048597, 1, 0, 1048598, 0, 0, 1048599, 3, 0, 1048600, 7, 0, 1048601, 7, 0, 1048602, 7, 0, 1179635, 7, 0, 1179636, 7, 0, 1179637, 7, 0, 1179638, 7, 0, 1179639, 7, 0, 1179640, 7, 0, 1179641, 7, 0, 1179642, 3, 0, 1179643, 1, 0, 1179644, 0, 0, 1179645, 3, 0, 1179646, 7, 0, 1179647, 7, 0, 1114112, 7, 0, 1114113, 3, 0, 1114114, 3, 0, 1114115, 7, 0, 1114116, 7, 0, 1114117, 7, 0, 1114118, 3, 0, 1114119, 1, 0, 1114120, 0, 0, 1114121, 3, 0, 1114122, 7, 0, 1114123, 7, 0, 1114124, 7, 0, 1114125, 7, 0, 1114126, 7, 0, 1114127, 3, 0, 1114128, 3, 0, 1114129, 3, 0, 1114130, 7, 0, 1114131, 7, 0, 1114132, 3, 0, 1114133, 1, 0, 1114134, 0, 0, 1114135, 3, 0, 1114136, 7, 0, 1114137, 7, 0, 1114138, 7, 0, 1245171, 7, 0, 1245172, 7, 0, 1245173, 7, 0, 1245174, 7, 0, 1245175, 7, 0, 1245176, 7, 0, 1245177, 7, 0, 1245178, 3, 0, 1245179, 1, 0, 1245180, 0, 0, 1245181, 3, 0, 1245182, 7, 0, 1245183, 7, 0, 1179648, 7, 0, 1179649, 7, 0, 1179650, 7, 0, 1179651, 7, 0, 1179652, 7, 0, 1179653, 7, 0, 1179654, 3, 0, 1179655, 1, 0, 1179656, 0, 0, 1179657, 3, 0, 1179658, 7, 0, 1179659, 7, 0, 1179660, 7, 0, 1179661, 7, 0, 1179662, 7, 0, 1179663, 7, 0, 1179664, 3, 0, 1179665, 3, 0, 1179666, 3, 0, 1179667, 7, 0, 1179668, 3, 0, 1179669, 1, 0, 1179670, 0, 0, 1179671, 3, 0, 1179672, 7, 0, 1179673, 7, 0, 1179674, 7, 0, 1310707, 3, 0, 1310708, 3, 0, 1310709, 3, 0, 1310710, 3, 0, 1310711, 7, 0, 1310712, 7, 0, 1310713, 7, 0, 1310714, 3, 0, 1310715, 1, 0, 1310716, 0, 0, 1310717, 3, 0, 1310718, 3, 0, 1310719, 3, 0, 1245184, 3, 0, 1245185, 3, 0, 1245186, 3, 0, 1245187, 3, 0, 1245188, 3, 0, 1245189, 3, 0, 1245190, 3, 0, 1245191, 1, 0, 1245192, 0, 0, 1245193, 3, 0, 1245194, 3, 0, 1245195, 3, 0, 1245196, 3, 0, 1245197, 3, 0, 1245198, 3, 0, 1245199, 3, 0, 1245200, 3, 0, 1245201, 3, 0, 1245202, 3, 0, 1245203, 3, 0, 1245204, 3, 0, 1245205, 1, 0, 1245206, 0, 0, 1245207, 3, 0, 1245208, 7, 0, 1245209, 7, 0, 1245210, 7, 0, 1376243, 6, 0, 1376244, 6, 0, 1376245, 8, 0, 1376246, 3, 0, 1376247, 7, 0, 1376248, 7, 0, 1376249, 7, 0, 1376250, 3, 0, 1376251, 8, 0, 1376252, 8, 0, 1376253, 6, 0, 1376254, 6, 0, 1376255, 6, 0, 1310720, 6, 0, 1310721, 6, 0, 1310722, 6, 0, 1310723, 6, 0, 1310724, 6, 0, 1310725, 6, 0, 1310726, 6, 0, 1310727, 8, 0, 1310728, 8, 0, 1310729, 6, 0, 1310730, 6, 0, 1310731, 6, 0, 1310732, 6, 0, 1310733, 6, 0, 1310734, 6, 0, 1310735, 6, 0, 1310736, 6, 0, 1310737, 6, 0, 1310738, 6, 0, 1310739, 6, 0, 1310740, 6, 0, 1310741, 8, 0, 1310742, 8, 0, 1310743, 3, 0, 1310744, 7, 0, 1310745, 7, 0, 1310746, 7, 0, 1441779, 5, 0, 1441780, 5, 0, 1441781, 8, 0, 1441782, 3, 0, 1441783, 7, 0, 1441784, 7, 0, 1441785, 7, 0, 1441786, 3, 0, 1441787, 8, 0, 1441788, 8, 0, 1441789, 5, 0, 1441790, 5, 0, 1441791, 5, 0, 1376256, 5, 0, 1376257, 5, 0, 1376258, 5, 0, 1376259, 5, 0, 1376260, 5, 0, 1376261, 5, 0, 1376262, 5, 0, 1376263, 8, 0, 1376264, 8, 0, 1376265, 5, 0, 1376266, 5, 0, 1376267, 5, 0, 1376268, 5, 0, 1376269, 5, 0, 1376270, 5, 0, 1376271, 5, 0, 1376272, 5, 0, 1376273, 5, 0, 1376274, 5, 0, 1376275, 5, 0, 1376276, 5, 0, 1376277, 8, 0, 1376278, 8, 0, 1376279, 3, 0, 1376280, 7, 0, 1376281, 7, 0, 1376282, 7, 0, 1507315, 3, 0, 1507316, 3, 0, 1507317, 3, 0, 1507318, 3, 0, 1507319, 7, 0, 1507320, 7, 0, 1507321, 7, 0, 1507322, 3, 0, 1507323, 3, 0, 1507324, 3, 0, 1507325, 3, 0, 1507326, 3, 0, 1507327, 3, 0, 1441792, 8, 0, 1441793, 8, 0, 1441794, 3, 0, 1441795, 3, 0, 1441796, 3, 0, 1441797, 3, 0, 1441798, 3, 0, 1441799, 3, 0, 1441800, 3, 0, 1441801, 3, 0, 1441802, 3, 0, 1441803, 3, 0, 1441804, 3, 0, 1441805, 3, 0, 1441806, 3, 0, 1441807, 3, 0, 1441808, 3, 0, 1441809, 3, 0, 1441810, 3, 0, 1441811, 3, 0, 1441812, 3, 0, 1441813, 8, 0, 1441814, 8, 0, 1441815, 3, 0, 1441816, 7, 0, 1441817, 7, 0, 1441818, 7, 0, 1572851, 7, 0, 1572852, 7, 0, 1572853, 7, 0, 1572854, 7, 0, 1572855, 7, 0, 1572856, 7, 0, 1572857, 7, 0, 1572858, 3, 0, 1572859, 3, 0, 1572860, 7, 0, 1572861, 7, 0, 1572862, 7, 0, 1572863, 3, 0, 1507328, 8, 0, 1507329, 8, 0, 1507330, 3, 0, 1507331, 7, 0, 1507332, 7, 0, 1507333, 7, 0, 1507334, 7, 0, 1507335, 7, 0, 1507336, 7, 0, 1507337, 7, 0, 1507338, 7, 0, 1507339, 7, 0, 1507340, 7, 0, 1507341, 7, 0, 1507342, 7, 0, 1507343, 7, 0, 1507344, 7, 0, 1507345, 7, 0, 1507346, 7, 0, 1507347, 7, 0, 1507348, 3, 0, 1507349, 8, 0, 1507350, 8, 0, 1507351, 3, 0, 1507352, 7, 0, 1507353, 7, 0, 1507354, 7, 0, 1638387, 7, 0, 1638388, 7, 0, 1638389, 7, 0, 1638390, 7, 0, 1638391, 7, 0, 1638392, 3, 0, 1638393, 3, 0, 1638394, 3, 0, 1638395, 3, 0, 1638396, 7, 0, 1638397, 7, 0, 1638398, 7, 0, 1638399, 3, 0, 1572864, 8, 0, 1572865, 8, 0, 1572866, 3, 0, 1572867, 7, 0, 1572868, 7, 0, 1572869, 7, 0, 1572870, 7, 0, 1572871, 7, 0, 1572872, 7, 0, 1572873, 7, 0, 1572874, 7, 0, 1572875, 7, 0, 1572876, 7, 0, 1572877, 7, 0, 1572878, 7, 0, 1572879, 7, 0, 1572880, 7, 0, 1572881, 7, 0, 1572882, 7, 0, 1572883, 7, 0, 1572884, 3, 0, 1572885, 8, 0, 1572886, 8, 0, 1572887, 3, 0, 1572888, 3, 0, 1572889, 3, 0, 1572890, 7, 0, 1703923, 7, 0, 1703924, 7, 0, 1703925, 7, 0, 1703926, 7, 0, 1703927, 7, 0, 1703928, 3, 0, 1703929, 3, 0, 1703930, 3, 0, 1703931, 3, 0, 1703932, 7, 0, 1703933, 7, 0, 1703934, 7, 0, 1703935, 3, 0, 1638400, 3, 0, 1638401, 3, 0, 1638402, 3, 0, 1638403, 7, 0, 1638404, 7, 0, 1638405, 7, 0, 1638406, 7, 0, 1638407, 7, 0, 1638408, 7, 0, 1638409, 7, 0, 1638410, 7, 0, 1638411, 7, 0, 1638412, 7, 0, 1638413, 7, 0, 1638414, 7, 0, 1638415, 7, 0, 1638416, 7, 0, 1638417, 7, 0, 1638418, 7, 0, 1638419, 7, 0, 1638420, 3, 0, 1638421, 3, 0, 1638422, 3, 0, 1638423, 3, 0, 1638424, 3, 0, 1638425, 3, 0, 1638426, 7, 0, 1769459, 7, 0, 1769460, 7, 0, 1769461, 7, 0, 1769462, 7, 0, 1769463, 7, 0, 1769464, 7, 0, 1769465, 7, 0, 1769466, 7, 0, 1769467, 7, 0, 1769468, 7, 0, 1769469, 7, 0, 1769470, 7, 0, 1769471, 7, 0, 1703936, 7, 0, 1703937, 7, 0, 1703938, 7, 0, 1703939, 7, 0, 1703940, 7, 0, 1703941, 7, 0, 1703942, 7, 0, 1703943, 7, 0, 1703944, 7, 0, 1703945, 7, 0, 1703946, 7, 0, 1703947, 7, 0, 1703948, 7, 0, 1703949, 7, 0, 1703950, 7, 0, 1703951, 7, 0, 1703952, 7, 0, 1703953, 7, 0, 1703954, 7, 0, 1703955, 7, 0, 1703956, 7, 0, 1703957, 7, 0, 1703958, 7, 0, 1703959, 7, 0, 1703960, 7, 0, 1703961, 7, 0, 1703962, 7, 0, 1834995, 7, 0, 1834996, 7, 0, 1834997, 7, 0, 1834998, 7, 0, 1834999, 7, 0, 1835000, 7, 0, 1835001, 7, 0, 1835002, 7, 0, 1835003, 7, 0, 1835004, 7, 0, 1835005, 7, 0, 1835006, 7, 0, 1835007, 7, 0, 1769472, 7, 0, 1769473, 7, 0, 1769474, 7, 0, 1769475, 7, 0, 1769476, 7, 0, 1769477, 7, 0, 1769478, 7, 0, 1769479, 7, 0, 1769480, 7, 0, 1769481, 7, 0, 1769482, 7, 0, 1769483, 7, 0, 1769484, 7, 0, 1769485, 7, 0, 1769486, 7, 0, 1769487, 7, 0, 1769488, 7, 0, 1769489, 7, 0, 1769490, 7, 0, 1769491, 7, 0, 1769492, 7, 0, 1769493, 7, 0, 1769494, 7, 0, 1769495, 7, 0, 1769496, 7, 0, 1769497, 7, 0, 1769498, 7, 0 ) + +[node name="YSort" type="YSort" parent="."] + +[node name="Tree" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 412.655, 542.278 ) + +[node name="Tree2" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 862.175, 801.526 ) + +[node name="Tree3" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1506.73, 1272.45 ) + +[node name="Tree4" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1045.31, 479.251 ) + +[node name="Tree5" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -64.6703, 908.108 ) + +[node name="Tree6" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -68.0338, 1333.6 ) + +[node name="Tree7" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 935.996, 1365.56 ) + +[node name="Trolley" parent="YSort" instance=ExtResource( 4 )] +position = Vector2( 111.946, -51.4683 ) + +[node name="Player" parent="YSort" instance=ExtResource( 1 )] +position = Vector2( 521.375, 114 ) + +[node name="House" parent="YSort" instance=ExtResource( 3 )] +position = Vector2( 1972.13, 1965.82 ) + +[node name="Neighbor" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 760.201, 407.292 ) + +[node name="Neighbor2" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 521.578, 319.171 ) + +[node name="Neighbor3" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 477.85, 707.714 ) + +[node name="Neighbor4" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( -324.858, 684.091 ) diff --git a/scenes/tree.tscn b/scenes/tree.tscn new file mode 100644 index 0000000..7d0f7f7 --- /dev/null +++ b/scenes/tree.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://roger-roger/tree.png" type="Texture" id=1] + +[node name="Tree" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) diff --git a/scenes/trolley.tscn b/scenes/trolley.tscn new file mode 100644 index 0000000..beeb0ab --- /dev/null +++ b/scenes/trolley.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://roger-roger/trolley-lg.png" type="Texture" id=1] +[ext_resource path="res://scripts/trolley.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 38, 10 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 44.5, 8.25 ) + +[node name="Trolley" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="TrolleySeatArea" type="Area2D" parent="."] +collision_layer = 0 + +[node name="SeatAreaShape" type="CollisionShape2D" parent="TrolleySeatArea"] +position = Vector2( -1, -41 ) +shape = SubResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -70 ) +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) + +[node name="TrolleyShape" type="CollisionPolygon2D" parent="."] +position = Vector2( 0, -64 ) +scale = Vector2( 0.8, 0.8 ) +polygon = PoolVector2Array( 172, -5, 198, 106, 150, 106, 122, 127, 74, 109, 46, 83, 43.75, 16.25, -46.25, 16.25, -48, 48, -48, 84, -78, 110, -114, 127, -148, 107, -197, 107, -163, 5, -163, -72, 165, -72 ) + +[node name="TrolleyClosedShape" type="CollisionShape2D" parent="."] +position = Vector2( 0, -2.25 ) +shape = SubResource( 3 ) + +[connection signal="body_entered" from="TrolleySeatArea" to="." method="_on_TrolleySeatArea_body_entered"] diff --git a/scripts/house.gd b/scripts/house.gd new file mode 100644 index 0000000..79a86d5 --- /dev/null +++ b/scripts/house.gd @@ -0,0 +1,6 @@ +extends Node2D + +onready var sprite = $Sprite + +func _ready() -> void: + sprite.set_modulate(Color(1.0, 0.0, 0.0)) diff --git a/scripts/neighbor.gd b/scripts/neighbor.gd new file mode 100644 index 0000000..234f8ea --- /dev/null +++ b/scripts/neighbor.gd @@ -0,0 +1,127 @@ +extends KinematicBody2D + +class_name Neighbor + +signal neighbor_following_roger + +onready var roger_area := $RogerArea2D +onready var sprite := $AnimatedSprite +onready var wander_timer := $WanderTimer + +export var MAX_SPEED := 225 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var state = State.IDLE +var neighbor_velocity := Vector2.ZERO +var leader: KinematicBody2D +var follower: KinematicBody2D +var rng := RandomNumberGenerator.new() +var is_wandering := false +var wander_direction := Vector2.ZERO + +enum State { + MOVE, + WANDER, + IDLE +} + +func reset_leads() -> void: + if follower != null: + follower.reset_leads() + leader = null + follower = null + +func _ready() -> void: + sprite.set_modulate(Color(.5,0,0)) + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.WANDER: + wander_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: +# var player := get_parent().get_node("Player") as Player +# leader.follower = self + if leader == null: + state = State.IDLE + return + var result_vector := leader.global_position - global_position + if result_vector.length() > 100: + move_neighbor(result_vector) + else: + state = State.IDLE + if result_vector.length() > 250: + leader.follower = null + leader = null + if follower != null: + follower.reset_leads() + follower = null + state = State.IDLE + +func wander_state(delta: float) -> void: + if leader != null: + state = State.MOVE + return + move_neighbor(wander_direction, true) + + +func move_neighbor(direction_vector: Vector2, is_wander: bool = false) -> void: + sprite.play("run") if not is_wander else sprite.play("walk") + var move_vector := Vector2(direction_vector).normalized() + if move_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif move_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + if move_vector != Vector2.ZERO: + var velocity := move_vector * MAX_SPEED if not is_wander else move_vector * MAX_SPEED / 3 + neighbor_velocity = neighbor_velocity.move_toward(velocity, ACCELERATION * get_physics_process_delta_time()) + else: + neighbor_velocity = neighbor_velocity.move_toward(Vector2.ZERO, FRICTION * get_physics_process_delta_time()) + + neighbor_velocity = move_and_slide(neighbor_velocity) + + +func idle_state(delta: float) -> void: + if wander_timer.is_stopped(): + wander_timer.start(rng.randf_range(0, 1.5)) + sprite.play("idle") + for body in roger_area.get_overlapping_bodies(): + if body.is_class("KinematicBody2D") and not body is Trolley and leader == null and body.follower == null and body.leader != null: + leader = body + leader.follower = self + if leader != null: + state = State.MOVE + +func _on_RogerArea2D_body_entered(body: Node) -> void: + if body != self and leader == null: + if body is Player and body.follower == null: + body.follower = self + leader = body + elif body.is_class("KinematicBody2D") and not body is Trolley and body.follower == null: + print('Got neighbor body') + if body.leader != null: + print('Following the leader') + leader = body + leader.follower = self + + +func _on_WanderTimer_timeout() -> void: + if state == State.IDLE: + print('wander timer done') + var rand_x = rng.randf_range(-1.0, 1.0) + var rand_y = rng.randf_range(-1.0, 1.0) + var wander_time = rng.randf_range(1.0, 1.5) + state = State.WANDER + wander_direction = Vector2(rand_x, rand_y) + wander_timer.start(wander_time) + elif state == State.WANDER: + print('Done wandering') + var wait_time = rng.randf_range(1.0, 5.5) + state = State.IDLE + wander_timer.start(wait_time) + diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..75b3160 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,63 @@ +extends KinematicBody2D + +class_name Player + +export var MAX_SPEED := 300 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var player_velocity = Vector2.ZERO +var state = State.IDLE +var follower : KinematicBody2D + +onready var sprite := $AnimatedSprite + +enum State { + MOVE, + IDLE +} + + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: + var input_vector := Vector2.ZERO + input_vector.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left") + input_vector.y = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up") + input_vector.normalized() + + if input_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif input_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + + + if input_vector != Vector2.ZERO: + player_velocity = player_velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta) + else: + player_velocity = player_velocity.move_toward(Vector2.ZERO, FRICTION * delta) + + player_velocity = move_and_slide(player_velocity) + + if player_velocity == Vector2.ZERO: + state = State.IDLE + +func idle_state(delta: float) -> void: + if Input.is_action_just_pressed("ui_up") or Input.is_action_just_pressed("ui_down") or Input.is_action_just_pressed("ui_left") or Input.is_action_just_pressed("ui_right"): + sprite.set_animation("run") + state = State.MOVE + else: + sprite.set_animation("idle") +# if Input.is_action_pressed("ui_up"): +# speed.y -= ACCELERATION +# elif Input.is_action_pressed("ui_right"): +# print("right") +# elif Input.is_action_pressed("ui_left"): +# print("left") +# elif Input.is_action_pressed("ui_down"): +# print("down") diff --git a/scripts/stage.gd b/scripts/stage.gd new file mode 100644 index 0000000..3eb6c96 --- /dev/null +++ b/scripts/stage.gd @@ -0,0 +1,2 @@ +extends Node2D + diff --git a/scripts/trolley.gd b/scripts/trolley.gd new file mode 100644 index 0000000..ac7d185 --- /dev/null +++ b/scripts/trolley.gd @@ -0,0 +1,33 @@ +extends KinematicBody2D + +class_name Trolley + +export var TIME = 60 +onready var trolley_closed_shape = $TrolleyClosedShape +export var MAX_VELOCITY = .3 + +var velocity := Vector2.ZERO +var has_roger := false + +func _ready() -> void: + trolley_closed_shape.set_deferred("disabled", true) + +func _physics_process(delta: float) -> void: + velocity.x = move_toward(velocity.x, MAX_VELOCITY, delta if not has_roger else delta * 10) + var collision := move_and_collide(velocity) + if collision: + var collider = collision.get_collider() + if collider.get_class() == "KinematicBody2D": + if has_roger: + MAX_VELOCITY = 10 + collider.move_and_collide(velocity * 3) + + + + +func _on_TrolleySeatArea_body_entered(body: Node) -> void: + if body is Player: + has_roger = true + print('closing trolley') + trolley_closed_shape.set_deferred("disabled", false) +