diff --git a/README.md b/README.md
index d092112..c8fc5af 100644
--- a/README.md
+++ b/README.md
@@ -13,3 +13,5 @@ Game written in Godot for AI Game Jam of the RUB
- https://opengameart.org/content/space-background-1
- https://opengameart.org/content/another-space-background-track
- https://www.kenney.nl/
+- https://opengameart.org/content/creepy-forest-f
+- https://opengameart.org/content/space-parallax-background
diff --git a/assets/fonts/ComicNeue-Bold.ttf b/common/fonts/ComicNeue-Bold.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-Bold.ttf
rename to common/fonts/ComicNeue-Bold.ttf
diff --git a/assets/fonts/ComicNeue-BoldItalic.ttf b/common/fonts/ComicNeue-BoldItalic.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-BoldItalic.ttf
rename to common/fonts/ComicNeue-BoldItalic.ttf
diff --git a/assets/fonts/ComicNeue-Italic.ttf b/common/fonts/ComicNeue-Italic.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-Italic.ttf
rename to common/fonts/ComicNeue-Italic.ttf
diff --git a/assets/fonts/ComicNeue-Light.ttf b/common/fonts/ComicNeue-Light.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-Light.ttf
rename to common/fonts/ComicNeue-Light.ttf
diff --git a/assets/fonts/ComicNeue-LightItalic.ttf b/common/fonts/ComicNeue-LightItalic.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-LightItalic.ttf
rename to common/fonts/ComicNeue-LightItalic.ttf
diff --git a/assets/fonts/ComicNeue-Regular.ttf b/common/fonts/ComicNeue-Regular.ttf
similarity index 100%
rename from assets/fonts/ComicNeue-Regular.ttf
rename to common/fonts/ComicNeue-Regular.ttf
diff --git a/assets/fonts/DSEG14Classic-Bold.ttf b/common/fonts/DSEG14Classic-Bold.ttf
similarity index 100%
rename from assets/fonts/DSEG14Classic-Bold.ttf
rename to common/fonts/DSEG14Classic-Bold.ttf
diff --git a/assets/fonts/DSEG14Classic-Light.ttf b/common/fonts/DSEG14Classic-Light.ttf
similarity index 100%
rename from assets/fonts/DSEG14Classic-Light.ttf
rename to common/fonts/DSEG14Classic-Light.ttf
diff --git a/assets/fonts/DSEG14Classic-Regular.ttf b/common/fonts/DSEG14Classic-Regular.ttf
similarity index 100%
rename from assets/fonts/DSEG14Classic-Regular.ttf
rename to common/fonts/DSEG14Classic-Regular.ttf
diff --git a/common/player_head.png b/common/player_head.png
new file mode 100644
index 0000000..c5a3fd6
Binary files /dev/null and b/common/player_head.png differ
diff --git a/assets/platformerBricks.png.import b/common/player_head.png.import
similarity index 69%
rename from assets/platformerBricks.png.import
rename to common/player_head.png.import
index 5a672d4..9013a1e 100644
--- a/assets/platformerBricks.png.import
+++ b/common/player_head.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/platformerBricks.png-2e4bf2684e8ead47bc4a968f026df69b.stex"
+path="res://.import/player_head.png-18f855871bcb98ac1a162474e24ccede.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://assets/platformerBricks.png"
-dest_files=[ "res://.import/platformerBricks.png-2e4bf2684e8ead47bc4a968f026df69b.stex" ]
+source_file="res://common/player_head.png"
+dest_files=[ "res://.import/player_head.png-18f855871bcb98ac1a162474e24ccede.stex" ]
[params]
diff --git a/assets/soundeffects/alarm.wav b/common/soundeffects/alarm.wav
similarity index 100%
rename from assets/soundeffects/alarm.wav
rename to common/soundeffects/alarm.wav
diff --git a/assets/soundeffects/alarm.wav.import b/common/soundeffects/alarm.wav.import
similarity index 53%
rename from assets/soundeffects/alarm.wav.import
rename to common/soundeffects/alarm.wav.import
index 9fdd68d..021889d 100644
--- a/assets/soundeffects/alarm.wav.import
+++ b/common/soundeffects/alarm.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/alarm.wav-c3e7b25a568348a8b0830b017523029b.sample"
+path="res://.import/alarm.wav-666d7174ae6e34fdc7d914a09fcca6d5.sample"
[deps]
-source_file="res://assets/soundeffects/alarm.wav"
-dest_files=[ "res://.import/alarm.wav-c3e7b25a568348a8b0830b017523029b.sample" ]
+source_file="res://common/soundeffects/alarm.wav"
+dest_files=[ "res://.import/alarm.wav-666d7174ae6e34fdc7d914a09fcca6d5.sample" ]
[params]
diff --git a/assets/soundeffects/alarm02.wav b/common/soundeffects/alarm02.wav
similarity index 100%
rename from assets/soundeffects/alarm02.wav
rename to common/soundeffects/alarm02.wav
diff --git a/assets/soundeffects/alarm02.wav.import b/common/soundeffects/alarm02.wav.import
similarity index 53%
rename from assets/soundeffects/alarm02.wav.import
rename to common/soundeffects/alarm02.wav.import
index f12e827..f9237f9 100644
--- a/assets/soundeffects/alarm02.wav.import
+++ b/common/soundeffects/alarm02.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/alarm02.wav-66a9bdd7383ed0c90d731de14e154e13.sample"
+path="res://.import/alarm02.wav-9f54e335cb87b99d26f33fe5c822822c.sample"
[deps]
-source_file="res://assets/soundeffects/alarm02.wav"
-dest_files=[ "res://.import/alarm02.wav-66a9bdd7383ed0c90d731de14e154e13.sample" ]
+source_file="res://common/soundeffects/alarm02.wav"
+dest_files=[ "res://.import/alarm02.wav-9f54e335cb87b99d26f33fe5c822822c.sample" ]
[params]
diff --git a/assets/soundeffects/alarm03.wav b/common/soundeffects/alarm03.wav
similarity index 100%
rename from assets/soundeffects/alarm03.wav
rename to common/soundeffects/alarm03.wav
diff --git a/assets/soundeffects/alarm03.wav.import b/common/soundeffects/alarm03.wav.import
similarity index 53%
rename from assets/soundeffects/alarm03.wav.import
rename to common/soundeffects/alarm03.wav.import
index b7d8c63..0f9d68a 100644
--- a/assets/soundeffects/alarm03.wav.import
+++ b/common/soundeffects/alarm03.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/alarm03.wav-ce9ddb5cc7ad684835f58786c57c8ebb.sample"
+path="res://.import/alarm03.wav-a68e6a3b63a6beae112c76c1efb906bc.sample"
[deps]
-source_file="res://assets/soundeffects/alarm03.wav"
-dest_files=[ "res://.import/alarm03.wav-ce9ddb5cc7ad684835f58786c57c8ebb.sample" ]
+source_file="res://common/soundeffects/alarm03.wav"
+dest_files=[ "res://.import/alarm03.wav-a68e6a3b63a6beae112c76c1efb906bc.sample" ]
[params]
diff --git a/assets/soundeffects/coin01.wav b/common/soundeffects/coin01.wav
similarity index 100%
rename from assets/soundeffects/coin01.wav
rename to common/soundeffects/coin01.wav
diff --git a/assets/soundeffects/coin01.wav.import b/common/soundeffects/coin01.wav.import
similarity index 53%
rename from assets/soundeffects/coin01.wav.import
rename to common/soundeffects/coin01.wav.import
index 6e218fb..80fd903 100644
--- a/assets/soundeffects/coin01.wav.import
+++ b/common/soundeffects/coin01.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/coin01.wav-eb5fb510f0a4ea40e464ddbd6889286d.sample"
+path="res://.import/coin01.wav-0cf314e4390eff9f38e88462b1f5a741.sample"
[deps]
-source_file="res://assets/soundeffects/coin01.wav"
-dest_files=[ "res://.import/coin01.wav-eb5fb510f0a4ea40e464ddbd6889286d.sample" ]
+source_file="res://common/soundeffects/coin01.wav"
+dest_files=[ "res://.import/coin01.wav-0cf314e4390eff9f38e88462b1f5a741.sample" ]
[params]
diff --git a/assets/soundeffects/coin02.wav b/common/soundeffects/coin02.wav
similarity index 100%
rename from assets/soundeffects/coin02.wav
rename to common/soundeffects/coin02.wav
diff --git a/assets/soundeffects/coin02.wav.import b/common/soundeffects/coin02.wav.import
similarity index 53%
rename from assets/soundeffects/coin02.wav.import
rename to common/soundeffects/coin02.wav.import
index b2dbe47..51bd4e3 100644
--- a/assets/soundeffects/coin02.wav.import
+++ b/common/soundeffects/coin02.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/coin02.wav-ccb74096f80b94e087973268912a17e0.sample"
+path="res://.import/coin02.wav-ef2672d8eb3e3a7893ba3173015efd8f.sample"
[deps]
-source_file="res://assets/soundeffects/coin02.wav"
-dest_files=[ "res://.import/coin02.wav-ccb74096f80b94e087973268912a17e0.sample" ]
+source_file="res://common/soundeffects/coin02.wav"
+dest_files=[ "res://.import/coin02.wav-ef2672d8eb3e3a7893ba3173015efd8f.sample" ]
[params]
diff --git a/assets/soundeffects/coin03.wav b/common/soundeffects/coin03.wav
similarity index 100%
rename from assets/soundeffects/coin03.wav
rename to common/soundeffects/coin03.wav
diff --git a/assets/soundeffects/coin03.wav.import b/common/soundeffects/coin03.wav.import
similarity index 53%
rename from assets/soundeffects/coin03.wav.import
rename to common/soundeffects/coin03.wav.import
index c708b1c..25cfb2b 100644
--- a/assets/soundeffects/coin03.wav.import
+++ b/common/soundeffects/coin03.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/coin03.wav-4c29181cfc509568bf69b3bbc63a366d.sample"
+path="res://.import/coin03.wav-0b367626aee726606e7655fdb7bcc4c9.sample"
[deps]
-source_file="res://assets/soundeffects/coin03.wav"
-dest_files=[ "res://.import/coin03.wav-4c29181cfc509568bf69b3bbc63a366d.sample" ]
+source_file="res://common/soundeffects/coin03.wav"
+dest_files=[ "res://.import/coin03.wav-0b367626aee726606e7655fdb7bcc4c9.sample" ]
[params]
diff --git a/assets/soundeffects/jump01.wav b/common/soundeffects/jump01.wav
similarity index 100%
rename from assets/soundeffects/jump01.wav
rename to common/soundeffects/jump01.wav
diff --git a/assets/soundeffects/jump01.wav.import b/common/soundeffects/jump01.wav.import
similarity index 53%
rename from assets/soundeffects/jump01.wav.import
rename to common/soundeffects/jump01.wav.import
index c3a3094..a16a317 100644
--- a/assets/soundeffects/jump01.wav.import
+++ b/common/soundeffects/jump01.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/jump01.wav-9046ac17825df42dc198a69ec7fde8a0.sample"
+path="res://.import/jump01.wav-52ed8d3b4cc86b6a0804925e4f15b254.sample"
[deps]
-source_file="res://assets/soundeffects/jump01.wav"
-dest_files=[ "res://.import/jump01.wav-9046ac17825df42dc198a69ec7fde8a0.sample" ]
+source_file="res://common/soundeffects/jump01.wav"
+dest_files=[ "res://.import/jump01.wav-52ed8d3b4cc86b6a0804925e4f15b254.sample" ]
[params]
diff --git a/assets/soundeffects/jump02.wav b/common/soundeffects/jump02.wav
similarity index 100%
rename from assets/soundeffects/jump02.wav
rename to common/soundeffects/jump02.wav
diff --git a/assets/soundeffects/jump02.wav.import b/common/soundeffects/jump02.wav.import
similarity index 53%
rename from assets/soundeffects/jump02.wav.import
rename to common/soundeffects/jump02.wav.import
index e5958e2..d45bdcf 100644
--- a/assets/soundeffects/jump02.wav.import
+++ b/common/soundeffects/jump02.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/jump02.wav-669b2cb4cdbaddf94bc26c238e7c2142.sample"
+path="res://.import/jump02.wav-3c21c83630ed29fe0895cb310e16c82c.sample"
[deps]
-source_file="res://assets/soundeffects/jump02.wav"
-dest_files=[ "res://.import/jump02.wav-669b2cb4cdbaddf94bc26c238e7c2142.sample" ]
+source_file="res://common/soundeffects/jump02.wav"
+dest_files=[ "res://.import/jump02.wav-3c21c83630ed29fe0895cb310e16c82c.sample" ]
[params]
diff --git a/assets/soundeffects/key01.wav b/common/soundeffects/key01.wav
similarity index 100%
rename from assets/soundeffects/key01.wav
rename to common/soundeffects/key01.wav
diff --git a/assets/soundeffects/key01.wav.import b/common/soundeffects/key01.wav.import
similarity index 53%
rename from assets/soundeffects/key01.wav.import
rename to common/soundeffects/key01.wav.import
index 01835cb..4ea0933 100644
--- a/assets/soundeffects/key01.wav.import
+++ b/common/soundeffects/key01.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/key01.wav-44c05e072a71687a9c4daa259c4c8007.sample"
+path="res://.import/key01.wav-7d19ab28b10992527c76dbd5763896bd.sample"
[deps]
-source_file="res://assets/soundeffects/key01.wav"
-dest_files=[ "res://.import/key01.wav-44c05e072a71687a9c4daa259c4c8007.sample" ]
+source_file="res://common/soundeffects/key01.wav"
+dest_files=[ "res://.import/key01.wav-7d19ab28b10992527c76dbd5763896bd.sample" ]
[params]
diff --git a/assets/soundeffects/level_1.ogg.import b/common/soundeffects/level_1.ogg.import
similarity index 100%
rename from assets/soundeffects/level_1.ogg.import
rename to common/soundeffects/level_1.ogg.import
diff --git a/assets/soundeffects/select.wav b/common/soundeffects/select.wav
similarity index 100%
rename from assets/soundeffects/select.wav
rename to common/soundeffects/select.wav
diff --git a/assets/soundeffects/select.wav.import b/common/soundeffects/select.wav.import
similarity index 53%
rename from assets/soundeffects/select.wav.import
rename to common/soundeffects/select.wav.import
index 6f54a1e..9cd4955 100644
--- a/assets/soundeffects/select.wav.import
+++ b/common/soundeffects/select.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/select.wav-93359c072313fa9ee56beced414616df.sample"
+path="res://.import/select.wav-e800707a50f64e6548e23b105c9197c3.sample"
[deps]
-source_file="res://assets/soundeffects/select.wav"
-dest_files=[ "res://.import/select.wav-93359c072313fa9ee56beced414616df.sample" ]
+source_file="res://common/soundeffects/select.wav"
+dest_files=[ "res://.import/select.wav-e800707a50f64e6548e23b105c9197c3.sample" ]
[params]
diff --git a/assets/soundeffects/select02.wav b/common/soundeffects/select02.wav
similarity index 100%
rename from assets/soundeffects/select02.wav
rename to common/soundeffects/select02.wav
diff --git a/assets/soundeffects/select02.wav.import b/common/soundeffects/select02.wav.import
similarity index 50%
rename from assets/soundeffects/select02.wav.import
rename to common/soundeffects/select02.wav.import
index 6a139ea..ef6e59b 100644
--- a/assets/soundeffects/select02.wav.import
+++ b/common/soundeffects/select02.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/select02.wav-0ac0713843d003d686f934a40d1c4178.sample"
+path="res://.import/select02.wav-f3d15e17629477fb752f662b47c7e0ac.sample"
[deps]
-source_file="res://assets/soundeffects/select02.wav"
-dest_files=[ "res://.import/select02.wav-0ac0713843d003d686f934a40d1c4178.sample" ]
+source_file="res://common/soundeffects/select02.wav"
+dest_files=[ "res://.import/select02.wav-f3d15e17629477fb752f662b47c7e0ac.sample" ]
[params]
diff --git a/assets/soundeffects/stamped01.wav b/common/soundeffects/stamped01.wav
similarity index 100%
rename from assets/soundeffects/stamped01.wav
rename to common/soundeffects/stamped01.wav
diff --git a/assets/soundeffects/stamped01.wav.import b/common/soundeffects/stamped01.wav.import
similarity index 50%
rename from assets/soundeffects/stamped01.wav.import
rename to common/soundeffects/stamped01.wav.import
index ef51f6e..9140684 100644
--- a/assets/soundeffects/stamped01.wav.import
+++ b/common/soundeffects/stamped01.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/stamped01.wav-47ffa67dc046a3ac73899185fe1d8be4.sample"
+path="res://.import/stamped01.wav-7e6611b114981e8d6f750bde61dc1fcb.sample"
[deps]
-source_file="res://assets/soundeffects/stamped01.wav"
-dest_files=[ "res://.import/stamped01.wav-47ffa67dc046a3ac73899185fe1d8be4.sample" ]
+source_file="res://common/soundeffects/stamped01.wav"
+dest_files=[ "res://.import/stamped01.wav-7e6611b114981e8d6f750bde61dc1fcb.sample" ]
[params]
diff --git a/assets/soundeffects/strange.wav b/common/soundeffects/strange.wav
similarity index 100%
rename from assets/soundeffects/strange.wav
rename to common/soundeffects/strange.wav
diff --git a/assets/soundeffects/strange.wav.import b/common/soundeffects/strange.wav.import
similarity index 53%
rename from assets/soundeffects/strange.wav.import
rename to common/soundeffects/strange.wav.import
index 0393b3d..c614658 100644
--- a/assets/soundeffects/strange.wav.import
+++ b/common/soundeffects/strange.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/strange.wav-70f925f67d50a0da9495d40976efc5c0.sample"
+path="res://.import/strange.wav-06dcd6efccefaffde4371b43b0c47127.sample"
[deps]
-source_file="res://assets/soundeffects/strange.wav"
-dest_files=[ "res://.import/strange.wav-70f925f67d50a0da9495d40976efc5c0.sample" ]
+source_file="res://common/soundeffects/strange.wav"
+dest_files=[ "res://.import/strange.wav-06dcd6efccefaffde4371b43b0c47127.sample" ]
[params]
diff --git a/assets/soundeffects/type.wav b/common/soundeffects/type.wav
similarity index 100%
rename from assets/soundeffects/type.wav
rename to common/soundeffects/type.wav
diff --git a/assets/soundeffects/type.wav.import b/common/soundeffects/type.wav.import
similarity index 53%
rename from assets/soundeffects/type.wav.import
rename to common/soundeffects/type.wav.import
index 7c5a43a..de5b113 100644
--- a/assets/soundeffects/type.wav.import
+++ b/common/soundeffects/type.wav.import
@@ -2,12 +2,12 @@
importer="wav"
type="AudioStreamSample"
-path="res://.import/type.wav-9e74e8dcec4d60d14f3d5070d7dfa4cc.sample"
+path="res://.import/type.wav-955987262a77d8d6888e2d1823fc333f.sample"
[deps]
-source_file="res://assets/soundeffects/type.wav"
-dest_files=[ "res://.import/type.wav-9e74e8dcec4d60d14f3d5070d7dfa4cc.sample" ]
+source_file="res://common/soundeffects/type.wav"
+dest_files=[ "res://.import/type.wav-955987262a77d8d6888e2d1823fc333f.sample" ]
[params]
diff --git a/assets/platformerBricks.png b/common/tilemap/assets/platformerBricks.png
similarity index 100%
rename from assets/platformerBricks.png
rename to common/tilemap/assets/platformerBricks.png
diff --git a/common/tilemap/assets/platformerBricks.png.import b/common/tilemap/assets/platformerBricks.png.import
new file mode 100644
index 0000000..7c397cb
--- /dev/null
+++ b/common/tilemap/assets/platformerBricks.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/platformerBricks.png-cb7ea9a8fb04dc9481055bd24a6e4178.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://common/tilemap/assets/platformerBricks.png"
+dest_files=[ "res://.import/platformerBricks.png-cb7ea9a8fb04dc9481055bd24a6e4178.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/common/tilemap/tilemap.tres b/common/tilemap/tilemap.tres
new file mode 100644
index 0000000..e2af6d2
--- /dev/null
+++ b/common/tilemap/tilemap.tres
@@ -0,0 +1,164 @@
+[gd_resource type="TileSet" load_steps=5 format=2]
+
+[ext_resource path="res://common/tilemap/assets/platformerBricks.png" type="Texture" id=1]
+
+[sub_resource type="ConvexPolygonShape2D" id=7]
+points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
+
+[sub_resource type="ConvexPolygonShape2D" id=8]
+points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
+
+[sub_resource type="ConvexPolygonShape2D" id=9]
+points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
+
+[resource]
+0/name = "Grass"
+0/texture = ExtResource( 1 )
+0/tex_offset = Vector2( 0, 0 )
+0/modulate = Color( 1, 1, 1, 1 )
+0/region = Rect2( 0, 210, 280, 105 )
+0/tile_mode = 1
+0/autotile/bitmask_mode = 1
+0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
+0/autotile/icon_coordinate = Vector2( 0, 0 )
+0/autotile/tile_size = Vector2( 70, 105 )
+0/autotile/spacing = 0
+0/autotile/occluder_map = [ ]
+0/autotile/navpoly_map = [ ]
+0/autotile/priority_map = [ ]
+0/autotile/z_index_map = [ ]
+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 = SubResource( 7 )
+0/shape_one_way = false
+0/shape_one_way_margin = 1.0
+0/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 1, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+} ]
+0/z_index = 0
+1/name = "Grass_Bridge"
+1/texture = ExtResource( 1 )
+1/tex_offset = Vector2( 0, 0 )
+1/modulate = Color( 1, 1, 1, 1 )
+1/region = Rect2( 280, 210, 280, 105 )
+1/tile_mode = 1
+1/autotile/bitmask_mode = 1
+1/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
+1/autotile/icon_coordinate = Vector2( 0, 0 )
+1/autotile/tile_size = Vector2( 70, 105 )
+1/autotile/spacing = 0
+1/autotile/occluder_map = [ ]
+1/autotile/navpoly_map = [ ]
+1/autotile/priority_map = [ ]
+1/autotile/z_index_map = [ ]
+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 = SubResource( 8 )
+1/shape_one_way = false
+1/shape_one_way_margin = 1.0
+1/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 1, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+} ]
+1/z_index = 0
+2/name = "Wood"
+2/texture = ExtResource( 1 )
+2/tex_offset = Vector2( 0, 0 )
+2/modulate = Color( 1, 1, 1, 1 )
+2/region = Rect2( 0, 0, 280, 105 )
+2/tile_mode = 1
+2/autotile/bitmask_mode = 1
+2/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
+2/autotile/icon_coordinate = Vector2( 0, 0 )
+2/autotile/tile_size = Vector2( 70, 105 )
+2/autotile/spacing = 0
+2/autotile/occluder_map = [ ]
+2/autotile/navpoly_map = [ ]
+2/autotile/priority_map = [ ]
+2/autotile/z_index_map = [ ]
+2/occluder_offset = Vector2( 0, 0 )
+2/navigation_offset = Vector2( 0, 0 )
+2/shape_offset = Vector2( 0, 0 )
+2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+2/shape = SubResource( 9 )
+2/shape_one_way = false
+2/shape_one_way_margin = 1.0
+2/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 1, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+} ]
+2/z_index = 0
diff --git a/export_presets.cfg b/export_presets.cfg
index 8903f85..6bcf94f 100644
--- a/export_presets.cfg
+++ b/export_presets.cfg
@@ -7,7 +7,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
-export_path="../../../../Flopsy_the_Dog.exe"
+export_path="../../Flopsy_the_Dog.exe"
script_export_mode=1
script_encryption_key=""
diff --git a/icon.png b/icon.png
deleted file mode 100644
index c98fbb6..0000000
Binary files a/icon.png and /dev/null differ
diff --git a/objects/characters/monsters/01/monster_01.tscn b/objects/characters/monsters/01/monster_01.tscn
index 26d744d..cec7c91 100644
--- a/objects/characters/monsters/01/monster_01.tscn
+++ b/objects/characters/monsters/01/monster_01.tscn
@@ -15,7 +15,7 @@
[ext_resource path="res://objects/characters/monsters/01/assets/stomped/frame-3.png" type="Texture" id=13]
[ext_resource path="res://objects/characters/monsters/01/assets/stomped/frame-1.png" type="Texture" id=14]
[ext_resource path="res://objects/characters/monsters/01/assets/stomped/frame-2.png" type="Texture" id=15]
-[ext_resource path="res://assets/soundeffects/stamped01.wav" type="AudioStream" id=16]
+[ext_resource path="res://common/soundeffects/stamped01.wav" type="AudioStream" id=16]
[sub_resource type="SpriteFrames" id=1]
animations = [ {
diff --git a/objects/characters/player.tscn b/objects/characters/player.tscn
index 2ae2b15..8732c81 100644
--- a/objects/characters/player.tscn
+++ b/objects/characters/player.tscn
@@ -20,7 +20,7 @@ script = ExtResource( 11 )
[node name="Sprite" type="AnimatedSprite" parent="."]
frames = ExtResource( 1 )
animation = "idle"
-frame = 2
+frame = 8
playing = true
__meta__ = {
"_edit_lock_": true
diff --git a/objects/coin/coin.tscn b/objects/coin/coin.tscn
index 33c2376..726af2c 100644
--- a/objects/coin/coin.tscn
+++ b/objects/coin/coin.tscn
@@ -19,7 +19,7 @@
[ext_resource path="res://objects/coin/assets/gold_2.png" type="Texture" id=17]
[ext_resource path="res://objects/coin/assets/gold_3.png" type="Texture" id=18]
[ext_resource path="res://objects/coin/assets/gold_4.png" type="Texture" id=19]
-[ext_resource path="res://assets/soundeffects/coin01.wav" type="AudioStream" id=20]
+[ext_resource path="res://common/soundeffects/coin01.wav" type="AudioStream" id=20]
[sub_resource type="SpriteFrames" id=1]
animations = [ {
diff --git a/objects/speech_bubble/speech_bubble.tscn b/objects/speech_bubble/speech_bubble.tscn
index 6f13241..7270681 100644
--- a/objects/speech_bubble/speech_bubble.tscn
+++ b/objects/speech_bubble/speech_bubble.tscn
@@ -5,8 +5,8 @@
[ext_resource path="res://objects/speech_bubble/assets/side.png" type="Texture" id=3]
[ext_resource path="res://objects/speech_bubble/assets/arrow.png" type="Texture" id=4]
[ext_resource path="res://objects/speech_bubble/assets/side2.png" type="Texture" id=5]
-[ext_resource path="res://assets/fonts/ComicNeue-Bold.ttf" type="DynamicFontData" id=6]
-[ext_resource path="res://assets/soundeffects/type.wav" type="AudioStream" id=7]
+[ext_resource path="res://common/fonts/ComicNeue-Bold.ttf" type="DynamicFontData" id=6]
+[ext_resource path="res://common/soundeffects/type.wav" type="AudioStream" id=7]
[sub_resource type="DynamicFont" id=2]
size = 20
diff --git a/project.godot b/project.godot
index 5da7034..56c5a92 100644
--- a/project.godot
+++ b/project.godot
@@ -12,7 +12,7 @@ config_version=4
config/name="Flopsy the Dog"
run/main_scene="res://scenes/main.tscn"
-config/icon="res://icon.png"
+config/icon="res://common/player_head.png"
[display]
@@ -46,10 +46,6 @@ jump={
2d_physics/layer_3="world"
2d_physics/layer_4="items"
-[physics]
-
-common/enable_pause_aware_picking=true
-
[rendering]
2d/snapping/use_gpu_pixel_snap=true
diff --git a/scenes/hud.gd b/scenes/hud.gd
index 9e38795..fa5e92c 100644
--- a/scenes/hud.gd
+++ b/scenes/hud.gd
@@ -4,6 +4,10 @@ export var font_color : Color = Color(0, 0, 0)
# Called when the node enters the scene tree for the first time.
func _ready():
+ set_font_color(font_color)
+
+func set_font_color(color: Color):
+ font_color = color
$HUD_Items/ScoreLabel.add_color_override("font_color", font_color)
func set_score(value):
diff --git a/scenes/hud.tscn b/scenes/hud.tscn
index 128c45c..f7982a8 100644
--- a/scenes/hud.tscn
+++ b/scenes/hud.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=6 format=2]
-[ext_resource path="res://assets/fonts/DSEG14Classic-Bold.ttf" type="DynamicFontData" id=1]
+[ext_resource path="res://common/fonts/DSEG14Classic-Bold.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://scenes/hud.gd" type="Script" id=2]
[ext_resource path="res://objects/coin/assets/gold_1.png" type="Texture" id=3]
diff --git a/scenes/levels/00/interlude_00.gd b/scenes/levels/00/interlude_00.gd
index 58520a2..bb11c8b 100644
--- a/scenes/levels/00/interlude_00.gd
+++ b/scenes/levels/00/interlude_00.gd
@@ -1,7 +1,4 @@
-extends "res://scenes/levels/level.gd"
-onready var main = get_parent()
-const next_level = "res://scenes/levels/01/level_01.tscn"
-
+extends "res://scenes/levels/interlude.gd"
var running = true
const text = [
@@ -41,10 +38,6 @@ func _ready():
yield(get_tree().create_timer(4), "timeout")
$CanvasLayer/MonsterAnimation.play("monster1_fade")
-func _process(delta):
- if Input.is_action_just_pressed("ui_cancel"):
- main.load_level(next_level, true)
-
func _next_text():
var current_text = text.pop_front()
diff --git a/scenes/levels/00/interlude_00.tscn b/scenes/levels/00/interlude_00.tscn
index c77ce0e..43f6d97 100644
--- a/scenes/levels/00/interlude_00.tscn
+++ b/scenes/levels/00/interlude_00.tscn
@@ -147,6 +147,7 @@ script = ExtResource( 1 )
bgm_path = "res://scenes/levels/00/assets/bgm.ogg"
hud_visible = false
clear_color = Color( 0.0196078, 0.180392, 0.247059, 1 )
+next_level = "res://scenes/levels/01/level_01.tscn"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
diff --git a/scenes/levels/00/snore.tscn b/scenes/levels/00/snore.tscn
index 37ca758..f6bbad0 100644
--- a/scenes/levels/00/snore.tscn
+++ b/scenes/levels/00/snore.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=7 format=2]
-[ext_resource path="res://assets/fonts/ComicNeue-Bold.ttf" type="DynamicFontData" id=1]
+[ext_resource path="res://common/fonts/ComicNeue-Bold.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://scenes/levels/00/snore.gd" type="Script" id=2]
[sub_resource type="DynamicFont" id=4]
diff --git a/scenes/levels/01/background_01.tscn b/scenes/levels/01/background_01.tscn
index 5c98950..cddeb69 100644
--- a/scenes/levels/01/background_01.tscn
+++ b/scenes/levels/01/background_01.tscn
@@ -6,7 +6,7 @@
[ext_resource path="res://scenes/levels/01/assets/trees1.png" type="Texture" id=4]
[ext_resource path="res://scenes/levels/01/assets/grass2.png" type="Texture" id=5]
-[node name="Background_Level1" type="ParallaxBackground"]
+[node name="Background 01" type="ParallaxBackground"]
scale = Vector2( 1, 1.41421 )
transform = Transform2D( 1, 0, 0, 1.41421, 0, 0 )
scroll_ignore_camera_zoom = true
diff --git a/scenes/levels/01/interlude_01.gd b/scenes/levels/01/interlude_01.gd
index 33fab55..aa1ff84 100644
--- a/scenes/levels/01/interlude_01.gd
+++ b/scenes/levels/01/interlude_01.gd
@@ -1,7 +1,4 @@
-extends "res://scenes/levels/level.gd"
-onready var main = get_parent()
-
-const next_level = "res://scenes/levels/02/level_02.tscn"
+extends "res://scenes/levels/interlude.gd"
const text = [
["flake", "Hi there, who are you?", 0],
diff --git a/scenes/levels/01/interlude_01.tscn b/scenes/levels/01/interlude_01.tscn
index e467a68..2cfbb91 100644
--- a/scenes/levels/01/interlude_01.tscn
+++ b/scenes/levels/01/interlude_01.tscn
@@ -3,7 +3,7 @@
[ext_resource path="res://scenes/levels/01/interlude_01.gd" type="Script" id=1]
[ext_resource path="res://scenes/levels/01/assets/cloud1.png" type="Texture" id=2]
[ext_resource path="res://scenes/levels/01/assets/cloud2.png" type="Texture" id=3]
-[ext_resource path="res://assets/platformerBricks.png" type="Texture" id=4]
+[ext_resource path="res://common/tilemap/assets/platformerBricks.png" type="Texture" id=4]
[ext_resource path="res://objects/characters/flake/flake.tscn" type="PackedScene" id=5]
[ext_resource path="res://objects/characters/flopsy/flopsy.tscn" type="PackedScene" id=6]
[ext_resource path="res://objects/speech_bubble/speech_bubble.tscn" type="PackedScene" id=7]
@@ -218,6 +218,7 @@ tracks/0/keys = {
script = ExtResource( 1 )
bgm_path = "res://scenes/levels/01/assets/interlude.ogg"
hud_visible = false
+next_level = "res://scenes/levels/02/level_02.tscn"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
diff --git a/scenes/levels/01/level_01.tscn b/scenes/levels/01/level_01.tscn
index 67d112f..1bd9011 100644
--- a/scenes/levels/01/level_01.tscn
+++ b/scenes/levels/01/level_01.tscn
@@ -1,175 +1,14 @@
-[gd_scene load_steps=13 format=2]
+[gd_scene load_steps=9 format=2]
[ext_resource path="res://scenes/levels/01/background_01.tscn" type="PackedScene" id=1]
[ext_resource path="res://scenes/levels/01/level_01.gd" type="Script" id=2]
[ext_resource path="res://objects/characters/flake/flake.tscn" type="PackedScene" id=3]
-[ext_resource path="res://assets/platformerBricks.png" type="Texture" id=4]
+[ext_resource path="res://scenes/levels/01/tilemap.tscn" type="PackedScene" id=4]
[ext_resource path="res://objects/coin/coin.tscn" type="PackedScene" id=5]
[ext_resource path="res://objects/characters/monsters/01/monster_01.tscn" type="PackedScene" id=6]
[ext_resource path="res://objects/characters/player.tscn" type="PackedScene" id=7]
[ext_resource path="res://objects/lift/lift.tscn" type="PackedScene" id=8]
-[sub_resource type="ConvexPolygonShape2D" id=7]
-points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
-
-[sub_resource type="ConvexPolygonShape2D" id=8]
-points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
-
-[sub_resource type="ConvexPolygonShape2D" id=9]
-points = PoolVector2Array( 0, 0, 70, 0, 70, 105, 0, 105 )
-
-[sub_resource type="TileSet" id=6]
-0/name = "Grass"
-0/texture = ExtResource( 4 )
-0/tex_offset = Vector2( 0, 0 )
-0/modulate = Color( 1, 1, 1, 1 )
-0/region = Rect2( 0, 210, 280, 105 )
-0/tile_mode = 1
-0/autotile/bitmask_mode = 1
-0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
-0/autotile/icon_coordinate = Vector2( 0, 0 )
-0/autotile/tile_size = Vector2( 70, 105 )
-0/autotile/spacing = 0
-0/autotile/occluder_map = [ ]
-0/autotile/navpoly_map = [ ]
-0/autotile/priority_map = [ ]
-0/autotile/z_index_map = [ ]
-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 = SubResource( 7 )
-0/shape_one_way = false
-0/shape_one_way_margin = 1.0
-0/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 7 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 1, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 7 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 2, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 7 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 3, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 7 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 3, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 7 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-} ]
-0/z_index = 0
-1/name = "Grass_Bridge"
-1/texture = ExtResource( 4 )
-1/tex_offset = Vector2( 0, 0 )
-1/modulate = Color( 1, 1, 1, 1 )
-1/region = Rect2( 280, 210, 280, 105 )
-1/tile_mode = 1
-1/autotile/bitmask_mode = 1
-1/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
-1/autotile/icon_coordinate = Vector2( 0, 0 )
-1/autotile/tile_size = Vector2( 70, 105 )
-1/autotile/spacing = 0
-1/autotile/occluder_map = [ ]
-1/autotile/navpoly_map = [ ]
-1/autotile/priority_map = [ ]
-1/autotile/z_index_map = [ ]
-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 = SubResource( 8 )
-1/shape_one_way = false
-1/shape_one_way_margin = 1.0
-1/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 8 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 1, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 8 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 2, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 8 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 3, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 8 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-} ]
-1/z_index = 0
-2/name = "Wood"
-2/texture = ExtResource( 4 )
-2/tex_offset = Vector2( 0, 0 )
-2/modulate = Color( 1, 1, 1, 1 )
-2/region = Rect2( 0, 0, 280, 105 )
-2/tile_mode = 1
-2/autotile/bitmask_mode = 1
-2/autotile/bitmask_flags = [ Vector2( 0, 0 ), 16, Vector2( 1, 0 ), 48, Vector2( 2, 0 ), 56, Vector2( 3, 0 ), 24 ]
-2/autotile/icon_coordinate = Vector2( 0, 0 )
-2/autotile/tile_size = Vector2( 70, 105 )
-2/autotile/spacing = 0
-2/autotile/occluder_map = [ ]
-2/autotile/navpoly_map = [ ]
-2/autotile/priority_map = [ ]
-2/autotile/z_index_map = [ ]
-2/occluder_offset = Vector2( 0, 0 )
-2/navigation_offset = Vector2( 0, 0 )
-2/shape_offset = Vector2( 0, 0 )
-2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
-2/shape = SubResource( 9 )
-2/shape_one_way = false
-2/shape_one_way_margin = 1.0
-2/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 9 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 1, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 9 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 2, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 9 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-}, {
-"autotile_coord": Vector2( 3, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 9 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
-} ]
-2/z_index = 0
-
[node name="Level 01" type="Node2D"]
script = ExtResource( 2 )
bgm_path = "res://scenes/levels/01/assets/bgm.ogg"
@@ -179,13 +18,7 @@ position = Vector2( 105, 910 )
scale = Vector2( 0.2, 0.2 )
background_scene = ExtResource( 1 )
-[node name="Tiles" type="TileMap" parent="."]
-tile_set = SubResource( 6 )
-cell_size = Vector2( 70, 70 )
-collision_layer = 4
-collision_mask = 0
-format = 1
-tile_data = PoolIntArray( -65485, 2, 1, -65484, 2, 2, -65483, 2, 2, -65482, 2, 2, -65481, 2, 3, 131114, 2, 1, 131115, 2, 2, 131116, 2, 2, 131117, 2, 2, 131118, 2, 2, 131119, 2, 2, 131120, 2, 3, 458769, 2, 1, 458770, 2, 2, 458771, 2, 2, 458772, 2, 2, 458773, 2, 3, 589835, 2, 1, 589836, 2, 2, 589837, 2, 2, 589838, 2, 3, 720912, 2, 0, 917504, 0, 1, 917505, 0, 2, 917506, 0, 2, 917507, 0, 2, 917508, 0, 2, 917509, 0, 2, 917510, 0, 2, 917511, 0, 2, 917512, 0, 2, 917513, 0, 2, 917514, 0, 2, 917515, 0, 2, 917516, 0, 2, 917517, 0, 2, 917518, 0, 2, 917519, 0, 2, 917520, 0, 2, 917521, 0, 2, 917522, 0, 2, 917523, 0, 2, 917524, 0, 2, 917525, 0, 2, 917526, 0, 2, 917527, 0, 2, 917528, 0, 3, 917532, 0, 1, 917533, 0, 2, 917534, 0, 2, 917535, 0, 2, 917536, 0, 2, 917537, 0, 2, 917538, 0, 3 )
+[node name="Tiles" parent="." instance=ExtResource( 4 )]
[node name="monster_01" parent="." instance=ExtResource( 6 )]
position = Vector2( 1015, 945 )
diff --git a/scenes/levels/01/tilemap.tscn b/scenes/levels/01/tilemap.tscn
new file mode 100644
index 0000000..7d036e1
--- /dev/null
+++ b/scenes/levels/01/tilemap.tscn
@@ -0,0 +1,11 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://common/tilemap/tilemap.tres" type="TileSet" id=1]
+
+[node name="Tiles" type="TileMap"]
+tile_set = ExtResource( 1 )
+cell_size = Vector2( 70, 70 )
+collision_layer = 4
+collision_mask = 0
+format = 1
+tile_data = PoolIntArray( -65485, 2, 1, -65484, 2, 2, -65483, 2, 2, -65482, 2, 2, -65481, 2, 3, 131114, 2, 1, 131115, 2, 2, 131116, 2, 2, 131117, 2, 2, 131118, 2, 2, 131119, 2, 2, 131120, 2, 3, 458769, 2, 1, 458770, 2, 2, 458771, 2, 2, 458772, 2, 2, 458773, 2, 3, 589835, 2, 1, 589836, 2, 2, 589837, 2, 2, 589838, 2, 3, 720912, 2, 0, 917504, 0, 1, 917505, 0, 2, 917506, 0, 2, 917507, 0, 2, 917508, 0, 2, 917509, 0, 2, 917510, 0, 2, 917511, 0, 2, 917512, 0, 2, 917513, 0, 2, 917514, 0, 2, 917515, 0, 2, 917516, 0, 2, 917517, 0, 2, 917518, 0, 2, 917519, 0, 2, 917520, 0, 2, 917521, 0, 2, 917522, 0, 2, 917523, 0, 2, 917524, 0, 2, 917525, 0, 2, 917526, 0, 2, 917527, 0, 2, 917528, 0, 3, 917532, 0, 1, 917533, 0, 2, 917534, 0, 2, 917535, 0, 2, 917536, 0, 2, 917537, 0, 2, 917538, 0, 3 )
diff --git a/scenes/levels/02/assets/bgm.ogg b/scenes/levels/02/assets/bgm.ogg
new file mode 100644
index 0000000..317c4f4
Binary files /dev/null and b/scenes/levels/02/assets/bgm.ogg differ
diff --git a/scenes/levels/02/assets/bgm.ogg.import b/scenes/levels/02/assets/bgm.ogg.import
new file mode 100644
index 0000000..8dd0c09
--- /dev/null
+++ b/scenes/levels/02/assets/bgm.ogg.import
@@ -0,0 +1,3 @@
+[remap]
+
+importer="keep"
diff --git a/scenes/levels/02/assets/earth1.svg b/scenes/levels/02/assets/earth1.svg
new file mode 100644
index 0000000..b4c4d17
--- /dev/null
+++ b/scenes/levels/02/assets/earth1.svg
@@ -0,0 +1,72 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/earth1.svg.import b/scenes/levels/02/assets/earth1.svg.import
new file mode 100644
index 0000000..efb280a
--- /dev/null
+++ b/scenes/levels/02/assets/earth1.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/earth1.svg-d29645c457b62ba192578d6e512af592.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/earth1.svg"
+dest_files=[ "res://.import/earth1.svg-d29645c457b62ba192578d6e512af592.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/assets/grass1.svg b/scenes/levels/02/assets/grass1.svg
new file mode 100644
index 0000000..29bac19
--- /dev/null
+++ b/scenes/levels/02/assets/grass1.svg
@@ -0,0 +1,72 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/grass1.svg.import b/scenes/levels/02/assets/grass1.svg.import
new file mode 100644
index 0000000..31e8bc0
--- /dev/null
+++ b/scenes/levels/02/assets/grass1.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grass1.svg-da1e9c10c4b8fcb4315480b9780fba19.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/grass1.svg"
+dest_files=[ "res://.import/grass1.svg-da1e9c10c4b8fcb4315480b9780fba19.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/assets/grass2.svg b/scenes/levels/02/assets/grass2.svg
new file mode 100644
index 0000000..72a9e18
--- /dev/null
+++ b/scenes/levels/02/assets/grass2.svg
@@ -0,0 +1,66 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/grass2.svg.import b/scenes/levels/02/assets/grass2.svg.import
new file mode 100644
index 0000000..32a8fe1
--- /dev/null
+++ b/scenes/levels/02/assets/grass2.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grass2.svg-0f349f2d647845c19c4409adccc43a24.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/grass2.svg"
+dest_files=[ "res://.import/grass2.svg-0f349f2d647845c19c4409adccc43a24.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/assets/stars.png b/scenes/levels/02/assets/stars.png
new file mode 100644
index 0000000..ab370ea
Binary files /dev/null and b/scenes/levels/02/assets/stars.png differ
diff --git a/icon.png.import b/scenes/levels/02/assets/stars.png.import
similarity index 71%
rename from icon.png.import
rename to scenes/levels/02/assets/stars.png.import
index a4c02e6..a3d0000 100644
--- a/icon.png.import
+++ b/scenes/levels/02/assets/stars.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+path="res://.import/stars.png-cd2f838412d74e8f1a3b0637b3df8f74.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://icon.png"
-dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
+source_file="res://scenes/levels/02/assets/stars.png"
+dest_files=[ "res://.import/stars.png-cd2f838412d74e8f1a3b0637b3df8f74.stex" ]
[params]
diff --git a/scenes/levels/02/assets/trees1.svg b/scenes/levels/02/assets/trees1.svg
new file mode 100644
index 0000000..e31cf6c
--- /dev/null
+++ b/scenes/levels/02/assets/trees1.svg
@@ -0,0 +1,75 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/trees1.svg.import b/scenes/levels/02/assets/trees1.svg.import
new file mode 100644
index 0000000..67ea7b2
--- /dev/null
+++ b/scenes/levels/02/assets/trees1.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/trees1.svg-1407ae8680e712f7fc72a0f0de5e3920.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/trees1.svg"
+dest_files=[ "res://.import/trees1.svg-1407ae8680e712f7fc72a0f0de5e3920.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/assets/trees2.svg b/scenes/levels/02/assets/trees2.svg
new file mode 100644
index 0000000..76bb0e9
--- /dev/null
+++ b/scenes/levels/02/assets/trees2.svg
@@ -0,0 +1,50 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/trees2.svg.import b/scenes/levels/02/assets/trees2.svg.import
new file mode 100644
index 0000000..90e98d7
--- /dev/null
+++ b/scenes/levels/02/assets/trees2.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/trees2.svg-9f32f766191be75af9c49800c36aa82b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/trees2.svg"
+dest_files=[ "res://.import/trees2.svg-9f32f766191be75af9c49800c36aa82b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/assets/trees3.svg b/scenes/levels/02/assets/trees3.svg
new file mode 100644
index 0000000..8abe812
--- /dev/null
+++ b/scenes/levels/02/assets/trees3.svg
@@ -0,0 +1,58 @@
+
+
+
+
diff --git a/scenes/levels/02/assets/trees3.svg.import b/scenes/levels/02/assets/trees3.svg.import
new file mode 100644
index 0000000..ca1e839
--- /dev/null
+++ b/scenes/levels/02/assets/trees3.svg.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/trees3.svg-fad5948d185c2ea8bc5725fb259b3145.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://scenes/levels/02/assets/trees3.svg"
+dest_files=[ "res://.import/trees3.svg-fad5948d185c2ea8bc5725fb259b3145.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=1
+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=3.0
diff --git a/scenes/levels/02/background_02.tscn b/scenes/levels/02/background_02.tscn
new file mode 100644
index 0000000..1ed0aca
--- /dev/null
+++ b/scenes/levels/02/background_02.tscn
@@ -0,0 +1,102 @@
+[gd_scene load_steps=8 format=2]
+
+[ext_resource path="res://scenes/levels/02/assets/earth1.svg" type="Texture" id=1]
+[ext_resource path="res://scenes/levels/02/assets/grass1.svg" type="Texture" id=2]
+[ext_resource path="res://scenes/levels/02/assets/trees1.svg" type="Texture" id=3]
+[ext_resource path="res://scenes/levels/02/assets/trees2.svg" type="Texture" id=4]
+[ext_resource path="res://scenes/levels/02/assets/trees3.svg" type="Texture" id=5]
+[ext_resource path="res://scenes/levels/02/assets/grass2.svg" type="Texture" id=6]
+[ext_resource path="res://scenes/levels/02/assets/stars.png" type="Texture" id=7]
+
+[node name="Background 02" type="ParallaxBackground"]
+
+[node name="Stars" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.6, 1 )
+motion_mirroring = Vector2( 500, 500 )
+
+[node name="Sprite" type="Sprite" parent="Stars"]
+position = Vector2( 250, 250 )
+texture = ExtResource( 7 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 500, 500 )
+
+[node name="Sprite2" type="Sprite" parent="Stars"]
+position = Vector2( 250, 250 )
+texture = ExtResource( 7 )
+offset = Vector2( 500, 0 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 500, 500 )
+
+[node name="Sprite3" type="Sprite" parent="Stars"]
+position = Vector2( 250, 250 )
+texture = ExtResource( 7 )
+offset = Vector2( 1000, 0 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 500, 500 )
+
+[node name="Sprite4" type="Sprite" parent="Stars"]
+position = Vector2( 250, 250 )
+texture = ExtResource( 7 )
+offset = Vector2( 1500, 0 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 500, 500 )
+
+[node name="Grass2" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.9, 1 )
+motion_mirroring = Vector2( 1536, 0 )
+
+[node name="Sprite" type="Sprite" parent="Grass2"]
+position = Vector2( 1536, 698 )
+texture = ExtResource( 6 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 300 )
+
+[node name="Trees3" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.85, 1 )
+motion_mirroring = Vector2( 1536, 0 )
+
+[node name="Sprite" type="Sprite" parent="Trees3"]
+position = Vector2( 1536, 448 )
+texture = ExtResource( 5 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 610 )
+
+[node name="Trees2" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.8, 1 )
+motion_mirroring = Vector2( 1536, 0 )
+
+[node name="Sprite" type="Sprite" parent="Trees2"]
+position = Vector2( 1536, 592 )
+texture = ExtResource( 4 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 610 )
+
+[node name="Trees1" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.75, 1 )
+motion_mirroring = Vector2( 1536, 0 )
+
+[node name="Sprite" type="Sprite" parent="Trees1"]
+position = Vector2( 1536, 562 )
+texture = ExtResource( 3 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 610 )
+
+[node name="Grass1" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.7, 1 )
+motion_mirroring = Vector2( 3072, 0 )
+
+[node name="Sprite" type="Sprite" parent="Grass1"]
+position = Vector2( 1536, 967 )
+texture = ExtResource( 2 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 600 )
+
+[node name="Earth1" type="ParallaxLayer" parent="."]
+motion_scale = Vector2( 0.65, 1 )
+motion_mirroring = Vector2( 1536, 0 )
+
+[node name="Sprite" type="Sprite" parent="Earth1"]
+position = Vector2( 1536, 975 )
+texture = ExtResource( 1 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 3072, 342 )
diff --git a/scenes/levels/02/level_02.tscn b/scenes/levels/02/level_02.tscn
index fe4c7bf..bcdbb6d 100644
--- a/scenes/levels/02/level_02.tscn
+++ b/scenes/levels/02/level_02.tscn
@@ -1,7 +1,26 @@
-[gd_scene load_steps=2 format=2]
+[gd_scene load_steps=5 format=2]
[ext_resource path="res://scenes/levels/02/level_02.gd" type="Script" id=1]
+[ext_resource path="res://common/tilemap/tilemap.tres" type="TileSet" id=2]
+[ext_resource path="res://objects/characters/player.tscn" type="PackedScene" id=3]
+[ext_resource path="res://scenes/levels/02/background_02.tscn" type="PackedScene" id=4]
[node name="Level 02" type="Node2D"]
script = ExtResource( 1 )
+bgm_path = "res://scenes/levels/02/assets/bgm.ogg"
+hud_color = Color( 1, 1, 1, 1 )
clear_color = Color( 0.0431373, 0.298039, 0.403922, 1 )
+
+[node name="Player" parent="." instance=ExtResource( 3 )]
+modulate = Color( 0.5, 0.5, 0.5, 1 )
+position = Vector2( 136, 808 )
+scale = Vector2( 0.2, 0.2 )
+background_scene = ExtResource( 4 )
+
+[node name="Tiles" type="TileMap" parent="."]
+modulate = Color( 0.5, 0.5, 0.5, 1 )
+tile_set = ExtResource( 2 )
+collision_layer = 4
+collision_mask = 0
+format = 1
+tile_data = PoolIntArray( 917505, 0, 1, 917506, 0, 2, 917507, 0, 2, 917508, 0, 2, 917509, 0, 2, 917510, 0, 2, 917511, 0, 2, 917512, 0, 2, 917513, 0, 2, 917514, 0, 2, 917515, 0, 2, 917516, 0, 2, 917517, 0, 2, 917518, 0, 2, 917519, 0, 2, 917520, 0, 2, 917521, 0, 2, 917522, 0, 2, 917523, 0, 2, 917524, 0, 2, 917525, 0, 2, 917526, 0, 2, 917527, 0, 2, 917528, 0, 2, 917529, 0, 2, 917530, 0, 2, 917531, 0, 2, 917532, 0, 2, 917533, 0, 2, 917534, 0, 2, 917535, 0, 2, 917536, 0, 2, 917537, 0, 2, 917538, 0, 2, 917539, 0, 2, 917540, 0, 2, 917541, 0, 2, 917542, 0, 2, 917543, 0, 2, 917544, 0, 0, 983080, 0, 0, 983081, 0, 2, 983082, 0, 2, 983083, 0, 2, 983084, 0, 3 )
diff --git a/scenes/levels/interlude.gd b/scenes/levels/interlude.gd
new file mode 100644
index 0000000..f855082
--- /dev/null
+++ b/scenes/levels/interlude.gd
@@ -0,0 +1,12 @@
+extends "res://scenes/levels/level.gd"
+export(String, FILE, "*.tscn") var next_level
+
+func _process(delta):
+ if Input.is_action_just_pressed("ui_cancel"):
+ _disable_signals()
+ main.load_level(next_level, true)
+
+func _disable_signals():
+ for sig in get_signal_list():
+ for con in get_signal_connection_list(sig.name):
+ disconnect(con.signal_name, self, con.method_name)
diff --git a/scenes/levels/level.gd b/scenes/levels/level.gd
index 8efc5a4..2ca9bac 100644
--- a/scenes/levels/level.gd
+++ b/scenes/levels/level.gd
@@ -2,7 +2,10 @@ extends Node2D
export(String, FILE, "*.ogg") var bgm_path
export(bool) var hud_visible = true
+export var hud_color : Color = Color("000000")
export var clear_color : Color = Color("cfeffc")
+onready var main = get_parent()
+
func _ready():
VisualServer.set_default_clear_color(clear_color)
diff --git a/scenes/main.gd b/scenes/main.gd
index 707cb25..f42324d 100644
--- a/scenes/main.gd
+++ b/scenes/main.gd
@@ -21,6 +21,7 @@ func load_level(next_scene := level_path, fade_out : bool = false):
current_level = load(next_scene).instance()
level_path = next_scene
$HUD.hud_visible(current_level.hud_visible)
+ $HUD.set_font_color(current_level.hud_color)
add_child(current_level)
play_bgm(current_level.bgm_path)
$HUD.scene_fadein()
diff --git a/scenes/main.tscn b/scenes/main.tscn
index 88c60b2..556d900 100644
--- a/scenes/main.tscn
+++ b/scenes/main.tscn
@@ -20,7 +20,7 @@ tracks/0/keys = {
[node name="Main" type="Node2D"]
script = ExtResource( 3 )
-level_path = "res://scenes/levels/00/interlude_00.tscn"
+level_path = "res://scenes/levels/02/level_02.tscn"
[node name="HUD" parent="." instance=ExtResource( 1 )]