diff --git a/Graphics/TileMaps/kenney_rpgUrbanKit/Preview.png.import b/Graphics/TileMaps/kenney_rpgUrbanKit/Preview.png.import index ce47e37..4597557 100644 --- a/Graphics/TileMaps/kenney_rpgUrbanKit/Preview.png.import +++ b/Graphics/TileMaps/kenney_rpgUrbanKit/Preview.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Preview.png-9c5c3131b145a46e92681901d20d4bf6. compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/Graphics/TileMaps/kenney_rpgUrbanKit/Sample.png.import b/Graphics/TileMaps/kenney_rpgUrbanKit/Sample.png.import index 82fbdce..0ffc6b5 100644 --- a/Graphics/TileMaps/kenney_rpgUrbanKit/Sample.png.import +++ b/Graphics/TileMaps/kenney_rpgUrbanKit/Sample.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Sample.png-1129fc92b4c89bc54f7f47ad10c7df55.c compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap.png.import b/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap.png.import index 2ab3773..8b03059 100644 --- a/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap.png.import +++ b/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/tilemap.png-d8cbb982f0981dbbc74d5b5938d1223b. compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap_packed.png.import b/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap_packed.png.import index fb5576f..b3b081c 100644 --- a/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap_packed.png.import +++ b/Graphics/TileMaps/kenney_rpgUrbanKit/Tilemap/tilemap_packed.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/tilemap_packed.png-ce0553dba3bdbd49325cac4ebe compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/Resource/UrbanKitTileMap.tres b/Resource/UrbanKitTileMap.tres index 2cc3fd7..0a1f02e 100644 --- a/Resource/UrbanKitTileMap.tres +++ b/Resource/UrbanKitTileMap.tres @@ -124,12 +124,19 @@ separation = Vector2i(1, 1) 15:0/0/terrain = 3 15:0/0/terrains_peering_bit/bottom_side = 3 16:0/0 = 0 +16:0/0/custom_data_0 = true 17:0/0 = 0 +17:0/0/custom_data_0 = true 18:0/0 = 0 +18:0/0/custom_data_0 = true 19:0/0 = 0 +19:0/0/custom_data_0 = true 20:0/0 = 0 +20:0/0/custom_data_0 = true 21:0/0 = 0 +21:0/0/custom_data_0 = true 22:0/0 = 0 +22:0/0/custom_data_0 = true 23:0/0 = 0 24:0/0 = 0 25:0/0 = 0 @@ -259,12 +266,19 @@ separation = Vector2i(1, 1) 15:1/0/terrains_peering_bit/bottom_side = 3 15:1/0/terrains_peering_bit/top_side = 3 16:1/0 = 0 +16:1/0/custom_data_0 = true 17:1/0 = 0 +17:1/0/custom_data_0 = true 18:1/0 = 0 +18:1/0/custom_data_0 = true 19:1/0 = 0 +19:1/0/custom_data_0 = true 20:1/0 = 0 +20:1/0/custom_data_0 = true 21:1/0 = 0 +21:1/0/custom_data_0 = true 22:1/0 = 0 +22:1/0/custom_data_0 = true 23:1/0 = 0 24:1/0 = 0 25:1/0 = 0 @@ -350,12 +364,19 @@ separation = Vector2i(1, 1) 15:2/0/terrain = 3 15:2/0/terrains_peering_bit/top_side = 3 16:2/0 = 0 +16:2/0/custom_data_0 = true 17:2/0 = 0 +17:2/0/custom_data_0 = true 18:2/0 = 0 +18:2/0/custom_data_0 = true 19:2/0 = 0 +19:2/0/custom_data_0 = true 20:2/0 = 0 +20:2/0/custom_data_0 = true 21:2/0 = 0 +21:2/0/custom_data_0 = true 22:2/0 = 0 +22:2/0/custom_data_0 = true 23:2/0 = 0 24:2/0 = 0 25:2/0 = 0 @@ -364,25 +385,30 @@ separation = Vector2i(1, 1) 0:3/0/terrain_set = 0 0:3/0/terrains_peering_bit/right_side = 4 0:3/0/terrains_peering_bit/bottom_side = 4 +0:3/0/custom_data_0 = true 1:3/0 = 0 1:3/0/terrain_set = 0 1:3/0/terrain = 4 1:3/0/terrains_peering_bit/right_side = 4 1:3/0/terrains_peering_bit/bottom_side = 4 1:3/0/terrains_peering_bit/left_side = 4 +1:3/0/custom_data_0 = true 2:3/0 = 0 2:3/0/terrain_set = 0 2:3/0/terrain = 4 2:3/0/terrains_peering_bit/bottom_side = 4 2:3/0/terrains_peering_bit/left_side = 4 +2:3/0/custom_data_0 = true 3:3/0 = 0 3:3/0/terrain_set = 0 3:3/0/terrains_peering_bit/right_side = 4 3:3/0/terrains_peering_bit/bottom_side = 4 +3:3/0/custom_data_0 = true 4:3/0 = 0 4:3/0/terrain_set = 0 4:3/0/terrains_peering_bit/bottom_side = 4 4:3/0/terrains_peering_bit/left_side = 4 +4:3/0/custom_data_0 = true 5:3/0 = 0 5:3/0/terrain_set = 0 5:3/0/terrains_peering_bit/right_side = 4 @@ -395,29 +421,43 @@ separation = Vector2i(1, 1) 7:3/0/terrain_set = 0 7:3/0/terrain = 4 7:3/0/terrains_peering_bit/bottom_side = 4 +7:3/0/custom_data_0 = true 8:3/0 = 0 8:3/0/terrain_set = 0 +8:3/0/custom_data_0 = true 9:3/0 = 0 9:3/0/terrain_set = 0 +9:3/0/custom_data_0 = true 10:3/0 = 0 10:3/0/terrain_set = 0 +10:3/0/custom_data_0 = true 11:3/0 = 0 11:3/0/terrain_set = 0 +11:3/0/custom_data_0 = true 12:3/0 = 0 12:3/0/terrain_set = 0 +12:3/0/custom_data_0 = true 13:3/0 = 0 13:3/0/terrain_set = 0 14:3/0 = 0 14:3/0/terrain_set = 0 15:3/0 = 0 15:3/0/terrain_set = 0 +15:3/0/custom_data_0 = true 16:3/0 = 0 +16:3/0/custom_data_0 = true 17:3/0 = 0 +17:3/0/custom_data_0 = true 18:3/0 = 0 +18:3/0/custom_data_0 = true 19:3/0 = 0 +19:3/0/custom_data_0 = true 20:3/0 = 0 +20:3/0/custom_data_0 = true 21:3/0 = 0 +21:3/0/custom_data_0 = true 22:3/0 = 0 +22:3/0/custom_data_0 = true 23:3/0 = 0 24:3/0 = 0 25:3/0 = 0 @@ -428,6 +468,7 @@ separation = Vector2i(1, 1) 0:4/0/terrains_peering_bit/right_side = 4 0:4/0/terrains_peering_bit/bottom_side = 4 0:4/0/terrains_peering_bit/top_side = 4 +0:4/0/custom_data_0 = true 1:4/0 = 0 1:4/0/terrain_set = 0 1:4/0/terrain = 4 @@ -441,14 +482,17 @@ separation = Vector2i(1, 1) 2:4/0/terrains_peering_bit/bottom_side = 4 2:4/0/terrains_peering_bit/left_side = 4 2:4/0/terrains_peering_bit/top_side = 4 +2:4/0/custom_data_0 = true 3:4/0 = 0 3:4/0/terrain_set = 0 3:4/0/terrains_peering_bit/right_side = 4 3:4/0/terrains_peering_bit/top_side = 4 +3:4/0/custom_data_0 = true 4:4/0 = 0 4:4/0/terrain_set = 0 4:4/0/terrains_peering_bit/left_side = 4 4:4/0/terrains_peering_bit/top_side = 4 +4:4/0/custom_data_0 = true 5:4/0 = 0 5:4/0/terrain_set = 0 5:4/0/terrains_peering_bit/right_side = 4 @@ -462,29 +506,42 @@ separation = Vector2i(1, 1) 7:4/0/terrain = 4 7:4/0/terrains_peering_bit/bottom_side = 4 7:4/0/terrains_peering_bit/top_side = 4 +7:4/0/custom_data_0 = true 8:4/0 = 0 8:4/0/terrain_set = 0 +8:4/0/custom_data_0 = true 9:4/0 = 0 9:4/0/terrain_set = 0 10:4/0 = 0 10:4/0/terrain_set = 0 +10:4/0/custom_data_0 = true 11:4/0 = 0 11:4/0/terrain_set = 0 +11:4/0/custom_data_0 = true 12:4/0 = 0 12:4/0/terrain_set = 0 +12:4/0/custom_data_0 = true 13:4/0 = 0 13:4/0/terrain_set = 0 14:4/0 = 0 14:4/0/terrain_set = 0 15:4/0 = 0 15:4/0/terrain_set = 0 +15:4/0/custom_data_0 = true 16:4/0 = 0 +16:4/0/custom_data_0 = true 17:4/0 = 0 +17:4/0/custom_data_0 = true 18:4/0 = 0 +18:4/0/custom_data_0 = true 19:4/0 = 0 +19:4/0/custom_data_0 = true 20:4/0 = 0 +20:4/0/custom_data_0 = true 21:4/0 = 0 +21:4/0/custom_data_0 = true 22:4/0 = 0 +22:4/0/custom_data_0 = true 23:4/0 = 0 24:4/0 = 0 25:4/0 = 0 @@ -494,61 +551,84 @@ separation = Vector2i(1, 1) 0:5/0/terrain = 4 0:5/0/terrains_peering_bit/right_side = 4 0:5/0/terrains_peering_bit/top_side = 4 +0:5/0/custom_data_0 = true 1:5/0 = 0 1:5/0/terrain_set = 0 1:5/0/terrain = 4 1:5/0/terrains_peering_bit/right_side = 4 1:5/0/terrains_peering_bit/left_side = 4 1:5/0/terrains_peering_bit/top_side = 4 +1:5/0/custom_data_0 = true 2:5/0 = 0 2:5/0/terrain_set = 0 2:5/0/terrain = 4 2:5/0/terrains_peering_bit/left_side = 4 2:5/0/terrains_peering_bit/top_side = 4 +2:5/0/custom_data_0 = true 3:5/0 = 0 3:5/0/terrain_set = 0 3:5/0/terrain = 4 3:5/0/terrains_peering_bit/right_side = 4 +3:5/0/custom_data_0 = true 4:5/0 = 0 4:5/0/terrain_set = 0 4:5/0/terrain = 4 4:5/0/terrains_peering_bit/right_side = 4 4:5/0/terrains_peering_bit/left_side = 4 +4:5/0/custom_data_0 = true 5:5/0 = 0 5:5/0/terrain_set = 0 5:5/0/terrain = 4 5:5/0/terrains_peering_bit/left_side = 4 +5:5/0/custom_data_0 = true 6:5/0 = 0 6:5/0/terrain_set = 0 6:5/0/terrain = 4 +6:5/0/custom_data_0 = true 7:5/0 = 0 7:5/0/terrain_set = 0 7:5/0/terrain = 4 7:5/0/terrains_peering_bit/top_side = 4 +7:5/0/custom_data_0 = true 8:5/0 = 0 8:5/0/terrain_set = 0 +8:5/0/custom_data_0 = true 9:5/0 = 0 9:5/0/terrain_set = 0 +9:5/0/custom_data_0 = true 10:5/0 = 0 10:5/0/terrain_set = 0 +10:5/0/custom_data_0 = true 11:5/0 = 0 11:5/0/terrain_set = 0 +11:5/0/custom_data_0 = true 12:5/0 = 0 12:5/0/terrain_set = 0 +12:5/0/custom_data_0 = true 13:5/0 = 0 13:5/0/terrain_set = 0 +13:5/0/custom_data_0 = true 14:5/0 = 0 14:5/0/terrain_set = 0 +14:5/0/custom_data_0 = true 15:5/0 = 0 15:5/0/terrain_set = 0 +15:5/0/custom_data_0 = true 16:5/0 = 0 16:5/0/terrain_set = 0 +16:5/0/custom_data_0 = true 17:5/0 = 0 +17:5/0/custom_data_0 = true 18:5/0 = 0 +18:5/0/custom_data_0 = true 19:5/0 = 0 +19:5/0/custom_data_0 = true 20:5/0 = 0 +20:5/0/custom_data_0 = true 21:5/0 = 0 +21:5/0/custom_data_0 = true 22:5/0 = 0 +22:5/0/custom_data_0 = true 23:5/0 = 0 24:5/0 = 0 25:5/0 = 0 @@ -566,6 +646,7 @@ separation = Vector2i(1, 1) 8:6/0/terrain = 2 8:6/0/terrains_peering_bit/right_side = 2 8:6/0/terrains_peering_bit/bottom_side = 2 +8:6/0/custom_data_0 = true 9:6/0 = 0 9:6/0/terrain_set = 0 9:6/0/terrain = 2 @@ -573,38 +654,52 @@ separation = Vector2i(1, 1) 9:6/0/terrains_peering_bit/bottom_side = 2 9:6/0/terrains_peering_bit/left_side = 2 9:6/0/terrains_peering_bit/top_side = 2 +9:6/0/custom_data_0 = true 10:6/0 = 0 10:6/0/terrain_set = 0 10:6/0/terrain = 2 10:6/0/terrains_peering_bit/bottom_side = 2 10:6/0/terrains_peering_bit/left_side = 2 +10:6/0/custom_data_0 = true 11:6/0 = 0 11:6/0/terrain_set = 0 11:6/0/terrains_peering_bit/right_side = 2 11:6/0/terrains_peering_bit/bottom_side = 2 +11:6/0/custom_data_0 = true 12:6/0 = 0 12:6/0/terrain_set = 0 12:6/0/terrains_peering_bit/bottom_side = 2 12:6/0/terrains_peering_bit/left_side = 2 +12:6/0/custom_data_0 = true 13:6/0 = 0 13:6/0/terrain_set = 0 13:6/0/terrains_peering_bit/right_side = 2 13:6/0/terrains_peering_bit/bottom_side = 2 +13:6/0/custom_data_0 = true 14:6/0 = 0 14:6/0/terrain_set = 0 14:6/0/terrains_peering_bit/bottom_side = 2 14:6/0/terrains_peering_bit/left_side = 2 +14:6/0/custom_data_0 = true 15:6/0 = 0 15:6/0/terrain_set = 0 15:6/0/terrain = 2 15:6/0/terrains_peering_bit/bottom_side = 2 +15:6/0/custom_data_0 = true 16:6/0 = 0 +16:6/0/custom_data_0 = true 17:6/0 = 0 +17:6/0/custom_data_0 = true 18:6/0 = 0 +18:6/0/custom_data_0 = true 19:6/0 = 0 +19:6/0/custom_data_0 = true 20:6/0 = 0 +20:6/0/custom_data_0 = true 21:6/0 = 0 +21:6/0/custom_data_0 = true 22:6/0 = 0 +22:6/0/custom_data_0 = true 23:6/0 = 0 24:6/0 = 0 25:6/0 = 0 @@ -623,6 +718,7 @@ separation = Vector2i(1, 1) 8:7/0/terrains_peering_bit/right_side = 2 8:7/0/terrains_peering_bit/bottom_side = 2 8:7/0/terrains_peering_bit/top_side = 2 +8:7/0/custom_data_0 = true 9:7/0 = 0 9:7/0/terrain_set = 0 9:7/0/terrain = 2 @@ -630,40 +726,54 @@ separation = Vector2i(1, 1) 9:7/0/terrains_peering_bit/bottom_side = 2 9:7/0/terrains_peering_bit/left_side = 2 9:7/0/terrains_peering_bit/top_side = 2 +9:7/0/custom_data_0 = true 10:7/0 = 0 10:7/0/terrain_set = 0 10:7/0/terrain = 2 10:7/0/terrains_peering_bit/bottom_side = 2 10:7/0/terrains_peering_bit/left_side = 2 10:7/0/terrains_peering_bit/top_side = 2 +10:7/0/custom_data_0 = true 11:7/0 = 0 11:7/0/terrain_set = 0 11:7/0/terrains_peering_bit/right_side = 2 11:7/0/terrains_peering_bit/top_side = 2 +11:7/0/custom_data_0 = true 12:7/0 = 0 12:7/0/terrain_set = 0 12:7/0/terrains_peering_bit/left_side = 2 12:7/0/terrains_peering_bit/top_side = 2 +12:7/0/custom_data_0 = true 13:7/0 = 0 13:7/0/terrain_set = 0 13:7/0/terrains_peering_bit/right_side = 2 13:7/0/terrains_peering_bit/top_side = 2 +13:7/0/custom_data_0 = true 14:7/0 = 0 14:7/0/terrain_set = 0 14:7/0/terrains_peering_bit/left_side = 2 14:7/0/terrains_peering_bit/top_side = 2 +14:7/0/custom_data_0 = true 15:7/0 = 0 15:7/0/terrain_set = 0 15:7/0/terrain = 2 15:7/0/terrains_peering_bit/bottom_side = 2 15:7/0/terrains_peering_bit/top_side = 2 +15:7/0/custom_data_0 = true 16:7/0 = 0 +16:7/0/custom_data_0 = true 17:7/0 = 0 +17:7/0/custom_data_0 = true 18:7/0 = 0 +18:7/0/custom_data_0 = true 19:7/0 = 0 +19:7/0/custom_data_0 = true 20:7/0 = 0 +20:7/0/custom_data_0 = true 21:7/0 = 0 +21:7/0/custom_data_0 = true 22:7/0 = 0 +22:7/0/custom_data_0 = true 23:7/0 = 0 24:7/0 = 0 25:7/0 = 0 @@ -681,37 +791,45 @@ separation = Vector2i(1, 1) 8:8/0/terrain = 2 8:8/0/terrains_peering_bit/right_side = 2 8:8/0/terrains_peering_bit/top_side = 2 +8:8/0/custom_data_0 = true 9:8/0 = 0 9:8/0/terrain_set = 0 9:8/0/terrain = 2 9:8/0/terrains_peering_bit/right_side = 2 9:8/0/terrains_peering_bit/left_side = 2 9:8/0/terrains_peering_bit/top_side = 2 +9:8/0/custom_data_0 = true 10:8/0 = 0 10:8/0/terrain_set = 0 10:8/0/terrain = 2 10:8/0/terrains_peering_bit/left_side = 2 10:8/0/terrains_peering_bit/top_side = 2 +10:8/0/custom_data_0 = true 11:8/0 = 0 11:8/0/terrain_set = 0 11:8/0/terrain = 2 11:8/0/terrains_peering_bit/right_side = 2 +11:8/0/custom_data_0 = true 12:8/0 = 0 12:8/0/terrain_set = 0 12:8/0/terrain = 2 12:8/0/terrains_peering_bit/right_side = 2 12:8/0/terrains_peering_bit/left_side = 2 +12:8/0/custom_data_0 = true 13:8/0 = 0 13:8/0/terrain_set = 0 13:8/0/terrain = 2 13:8/0/terrains_peering_bit/left_side = 2 +13:8/0/custom_data_0 = true 14:8/0 = 0 14:8/0/terrain_set = 0 14:8/0/terrain = 2 +14:8/0/custom_data_0 = true 15:8/0 = 0 15:8/0/terrain_set = 0 15:8/0/terrain = 2 15:8/0/terrains_peering_bit/top_side = 2 +15:8/0/custom_data_0 = true 16:8/0 = 0 17:8/0 = 0 18:8/0 = 0 @@ -1008,6 +1126,8 @@ terrain_set_0/terrain_3/color = Color(0.835294, 0.831373, 0.870588, 1) terrain_set_0/terrain_4/name = "Roof_1" terrain_set_0/terrain_4/color = Color(0.886275, 0.870588, 0.811765, 1) navigation_layer_0/layers = 1 +custom_data_layer_0/name = "obstacle" +custom_data_layer_0/type = 1 sources/1 = SubResource("TileSetAtlasSource_vqaso") pattern_0 = SubResource("TileMapPattern_vrbvq") pattern_1 = SubResource("TileMapPattern_07llt") diff --git a/Scenes/Main/cursor.gd b/Scenes/Main/cursor.gd index f4e1b0d..dd27e70 100644 --- a/Scenes/Main/cursor.gd +++ b/Scenes/Main/cursor.gd @@ -17,23 +17,19 @@ signal moved(new_cell) ## Coordinates of the current cell the cursor is hovering. var cell := Vector2.ZERO: set(value): - print("Setting cell to: ", value) # We first clamp the cell coordinates and ensure that we aren't # trying to move outside the grid boundaries var new_cell: Vector2 = grid.clamp(value) - print("New cell: ", new_cell) if new_cell.is_equal_approx(cell): return cell = new_cell - print("Cell is ", cell) # If we move to a new cell, we update the cursor's position, emit # a signal, and start the cooldown timer that will limit the rate # at which the cursor moves when we keep the direction key held # down - # global_position = grid.calculateMapPosition(cell) + global_position = GroundLayer.map_to_local(cell) - print("Position is ", position) emit_signal("moved", cell) _timer.start() @@ -54,7 +50,7 @@ func _ready() -> void: func _unhandled_input(event: InputEvent) -> void: # Navigating cells with the mouse. if event is InputEventMouseMotion: - cell = grid.calculateGridCoordinates(event.position) + cell = GroundLayer.local_to_map(event.position) # Trying to select something in a cell. elif event.is_action_pressed("Select") or event.is_action_pressed("ui_accept"): emit_signal("accept_pressed", cell) diff --git a/Scenes/Main/grid_display.gd b/Scenes/Main/grid_display.gd new file mode 100644 index 0000000..ac42909 --- /dev/null +++ b/Scenes/Main/grid_display.gd @@ -0,0 +1,17 @@ +extends Control + +var grid: AStarGrid2D: + set(v): grid = v; queue_redraw() +var show_grid_display: bool: + set(v): show_grid_display = v; queue_redraw() + +func toggle_grid_display(on: bool): + show_grid_display = on + +func _draw(): + if not grid or not show_grid_display: return + for x in grid.region.size.x: + for y in grid.region.size.y: + var p = Vector2(x, y) + var col = Color(1,0,0,0.3) if grid.is_point_solid(p) else Color(0,1,0,0.3) + draw_rect(Rect2(p*grid.cell_size, grid.cell_size), col) diff --git a/Scenes/Main/grid_display.gd.uid b/Scenes/Main/grid_display.gd.uid new file mode 100644 index 0000000..131ee40 --- /dev/null +++ b/Scenes/Main/grid_display.gd.uid @@ -0,0 +1 @@ +uid://dtme43jtijpok diff --git a/Scenes/Main/main.gd b/Scenes/Main/main.gd index 22247fa..07fd5f8 100644 --- a/Scenes/Main/main.gd +++ b/Scenes/Main/main.gd @@ -18,6 +18,9 @@ var _MovingMarker: Node2D = _MovingMarkerScene.instantiate() @onready var GroundLayer: TileMapLayer = $Map/Ground +var aStarGrid: AStarGrid2D: + set(v): aStarGrid = v; + # Called when the node enters the scene tree for the first time. func _ready() -> void: # add_child(_MovingMarker) @@ -26,7 +29,7 @@ func _ready() -> void: # create unit at local position (50, 50) => eg mouse position _createUnit(GroundLayer.local_to_map(Vector2i(50, 50))) # create unit at map position (50, 50) => tile x = 50, y = 50 in the map - _createUnit(GroundLayer.map_to_local(Vector2i(50,50))) + _createUnit(GroundLayer.map_to_local(Vector2i(25,25))) for unit in _Units: add_child(unit) @@ -36,9 +39,6 @@ func _ready() -> void: # if firstUnit.is_node_ready(): # UnitCamera.target = _Units[0].get_path_to(get_parent()) # UnitCamera.target_node = _Units[0] - - pass - # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: @@ -63,3 +63,20 @@ func _getScreenCenter(): func _getMousePosition(event: InputEvent): return get_viewport().get_camera_2d().make_input_local(event) + + +#func prepareAStarGrid(): +# var astarGrid = AStarGrid2D.new() +# astarGrid.cell_size = GroundLayer.tile_set.tile_size +# astarGrid.region = Rect2(Vector2.ZERO, ceil(get_viewport_rect().size / astarGrid.cell_size)) +# astarGrid.update() +# +# for id in ObstacleLayer.get_used_cells(): +# var data: TileData = ObstacleLayer.get_cell_tile_data(id) +# if data and data.get_custom_data('obstacle'): +# astarGrid.set_point_solid(id) +# +# %GridDisplay.grid = astarGrid + +func get_cell_information(cell): + print(cell) diff --git a/Scenes/Main/main.tscn b/Scenes/Main/main.tscn index 596e1b6..6419de7 100644 --- a/Scenes/Main/main.tscn +++ b/Scenes/Main/main.tscn @@ -7,7 +7,7 @@ [ext_resource type="Script" uid="uid://dukn3yshfepum" path="res://Scenes/Main/grid_debug.gd" id="5_y3v7k"] [ext_resource type="PackedScene" uid="uid://b1d6lktijxy3s" path="res://Scenes/Unit/move/unit.tscn" id="6_2a143"] [ext_resource type="Script" uid="uid://cidjtc27oj1gn" path="res://Scenes/Main/cursor.gd" id="7_y3v7k"] -[ext_resource type="Texture2D" uid="uid://bckknh8k5fh1s" path="res://Graphics/TileMaps/kenney_rpgUrbanKit/Tiles/tile_0448.png" id="8_hryqi"] +[ext_resource type="Script" uid="uid://dtme43jtijpok" path="res://Scenes/Main/grid_display.gd" id="8_y3v7k"] [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_y3v7k"] @@ -26,10 +26,12 @@ script = ExtResource("5_y3v7k") grid = ExtResource("5_p6jpk") [node name="Unit" parent="GameBoard" instance=ExtResource("6_2a143")] -visible = false position = Vector2(400, 224) grid = ExtResource("5_p6jpk") +[node name="Sprite2D" parent="GameBoard/Unit/PathFollow2D" index="1"] +texture = null + [node name="Cursor" type="Node2D" parent="GameBoard"] position = Vector2(8, 8) script = ExtResource("7_y3v7k") @@ -37,7 +39,6 @@ grid = ExtResource("5_p6jpk") [node name="Sprite2D" type="Sprite2D" parent="GameBoard/Cursor"] position = Vector2(10, -10) -texture = ExtResource("8_hryqi") [node name="Timer" type="Timer" parent="GameBoard/Cursor"] wait_time = 0.1 @@ -46,3 +47,30 @@ wait_time = 0.1 position = Vector2(50, 50) scale = Vector2(2, 2) texture = SubResource("PlaceholderTexture2D_y3v7k") + +[node name="HUD" type="CanvasLayer" parent="."] + +[node name="GridDisplay" type="Control" parent="HUD"] +unique_name_in_owner = true +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("8_y3v7k") + +[node name="MarginContainer" type="MarginContainer" parent="HUD/GridDisplay"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="PanelContainer" type="PanelContainer" parent="HUD/GridDisplay/MarginContainer"] +layout_mode = 2 + +[node name="ShowGrid" type="CheckBox" parent="HUD/GridDisplay/MarginContainer/PanelContainer"] +layout_mode = 2 +text = "Show Grid" + +[connection signal="accept_pressed" from="GameBoard/Cursor" to="." method="get_cell_information"] +[connection signal="toggled" from="HUD/GridDisplay/MarginContainer/PanelContainer/ShowGrid" to="HUD/GridDisplay" method="toggle_grid_display"] + +[editable path="GameBoard/Unit"] diff --git a/Scenes/Map/map.tscn b/Scenes/Map/map.tscn index cbc193b..94b3f2b 100644 --- a/Scenes/Map/map.tscn +++ b/Scenes/Map/map.tscn @@ -1,10 +1,10 @@ [gd_scene load_steps=3 format=4 uid="uid://cywuuce71rmgb"] -[ext_resource type="Script" uid="uid://dneqmqsd8yj4p" path="res://Scenes/Map/Map.gd" id="1_anho1"] +[ext_resource type="Script" uid="uid://dlnu7a7viuh8a" path="res://Scenes/Map/map_new.gd" id="1_jolfa"] [ext_resource type="TileSet" uid="uid://duodt2t14xjc8" path="res://Resource/UrbanKitTileMap.tres" id="2_fyo8k"] -[node name="Map" type="Node"] -script = ExtResource("1_anho1") +[node name="Map" type="Node2D"] +script = ExtResource("1_jolfa") [node name="Ground" type="TileMapLayer" parent="."] tile_map_data = PackedByteArray("AAAxABsAAQACAAIAAAAxABoAAQACAAEAAAAxABkAAQACAAEAAAAxABgAAQACAAEAAAAxABcAAQACAAEAAAAxABYAAQACAAEAAAAxABUAAQACAAEAAAAxABQAAQACAAEAAAAxABMAAQACAAEAAAAxABIAAQACAAEAAAAxABEAAQACAAEAAAAxABAAAQACAAEAAAAxAA8AAQACAAEAAAAxAA4AAQACAAEAAAAxAA0AAQACAAEAAAAxAAwAAQACAAEAAAAxAAsAAQACAAEAAAAxAAoAAQACAAEAAAAxAAkAAQACAAEAAAAxAAgAAQACAAEAAAAxAAcAAQACAAEAAAAxAAYAAQACAAEAAAAxAAUAAQACAAEAAAAxAAQAAQACAAEAAAAxAAMAAQACAAEAAAAxAAIAAQACAAEAAAAxAAEAAQACAAEAAAAxAAAAAQACAAAAAAAwABsAAQABAAIAAAAwABoAAQABAAEAAAAwABkAAQABAAEAAAAwABgAAQABAAEAAAAwABcAAQABAAEAAAAwABYAAQABAAEAAAAwABUAAQABAAEAAAAwABQAAQABAAEAAAAwABMAAQABAAEAAAAwABIAAQABAAEAAAAwABEAAQABAAEAAAAwABAAAQABAAEAAAAwAA8AAQABAAEAAAAwAA4AAQABAAEAAAAwAA0AAQABAAEAAAAwAAwAAQABAAEAAAAwAAsAAQABAAEAAAAwAAoAAQABAAEAAAAwAAkAAQABAAEAAAAwAAgAAQABAAEAAAAwAAcAAQABAAEAAAAwAAYAAQABAAEAAAAwAAUAAQABAAEAAAAwAAQAAQABAAEAAAAwAAMAAQABAAEAAAAwAAIAAQABAAEAAAAwAAEAAQABAAEAAAAwAAAAAQABAAAAAAAvABsAAQABAAIAAAAvABoAAQABAAEAAAAvABkAAQABAAEAAAAvABgAAQABAAEAAAAvABcAAQABAAEAAAAvABYAAQABAAEAAAAvABUAAQABAAEAAAAvABQAAQABAAEAAAAvABMAAQABAAEAAAAvABIAAQABAAEAAAAvABEAAQABAAEAAAAvABAAAQABAAEAAAAvAA8AAQABAAEAAAAvAA4AAQABAAEAAAAvAA0AAQABAAEAAAAvAAwAAQABAAEAAAAvAAsAAQABAAEAAAAvAAoAAQABAAEAAAAvAAkAAQABAAEAAAAvAAgAAQABAAEAAAAvAAcAAQABAAEAAAAvAAYAAQABAAEAAAAvAAUAAQABAAEAAAAvAAQAAQABAAEAAAAvAAMAAQABAAEAAAAvAAIAAQABAAEAAAAvAAEAAQABAAEAAAAvAAAAAQABAAAAAAAuABsAAQABAAIAAAAuABoAAQABAAEAAAAuABkAAQABAAEAAAAuABgAAQABAAEAAAAuABcAAQABAAEAAAAuABYAAQABAAEAAAAuABUAAQABAAEAAAAuABQAAQABAAEAAAAuABMAAQABAAEAAAAuABIAAQABAAEAAAAuABEAAQABAAEAAAAuABAAAQABAAEAAAAuAA8AAQABAAEAAAAuAA4AAQABAAEAAAAuAA0AAQABAAEAAAAuAAwAAQABAAEAAAAuAAsAAQABAAEAAAAuAAoAAQABAAEAAAAuAAkAAQABAAEAAAAuAAgAAQABAAEAAAAuAAcAAQABAAEAAAAuAAYAAQABAAEAAAAuAAUAAQABAAEAAAAuAAQAAQABAAEAAAAuAAMAAQABAAEAAAAuAAIAAQABAAEAAAAuAAEAAQABAAEAAAAuAAAAAQABAAAAAAAtABsAAQABAAIAAAAtABoAAQABAAEAAAAtABkAAQABAAEAAAAtABgAAQABAAEAAAAtABcAAQABAAEAAAAtABYAAQABAAEAAAAtABUAAQABAAEAAAAtABQAAQABAAEAAAAtABMAAQABAAEAAAAtABIAAQABAAEAAAAtABEAAQABAAEAAAAtABAAAQABAAEAAAAtAA8AAQABAAEAAAAtAA4AAQABAAEAAAAtAA0AAQABAAEAAAAtAAwAAQABAAEAAAAtAAsAAQABAAEAAAAtAAoAAQABAAEAAAAtAAkAAQABAAEAAAAtAAgAAQABAAEAAAAtAAcAAQABAAEAAAAtAAYAAQABAAEAAAAtAAUAAQABAAEAAAAtAAQAAQABAAEAAAAtAAMAAQABAAEAAAAtAAIAAQABAAEAAAAtAAEAAQABAAEAAAAtAAAAAQABAAAAAAAsABsAAQABAAIAAAAsABoAAQABAAEAAAAsABkAAQABAAEAAAAsABgAAQABAAEAAAAsABcAAQABAAEAAAAsABYAAQABAAEAAAAsABUAAQABAAEAAAAsABQAAQABAAEAAAAsABMAAQABAAEAAAAsABIAAQABAAEAAAAsABEAAQABAAEAAAAsABAAAQABAAEAAAAsAA8AAQABAAEAAAAsAA4AAQABAAEAAAAsAA0AAQABAAEAAAAsAAwAAQABAAEAAAAsAAsAAQABAAEAAAAsAAoAAQABAAEAAAAsAAkAAQABAAEAAAAsAAgAAQABAAEAAAAsAAcAAQABAAEAAAAsAAYAAQABAAEAAAAsAAUAAQABAAEAAAAsAAQAAQABAAEAAAAsAAMAAQABAAEAAAAsAAIAAQABAAEAAAAsAAEAAQABAAEAAAAsAAAAAQABAAAAAAArABsAAQABAAIAAAArABoAAQABAAEAAAArABkAAQABAAEAAAArABgAAQABAAEAAAArABcAAQABAAEAAAArABYAAQABAAEAAAArABUAAQABAAEAAAArABQAAQABAAEAAAArABMAAQABAAEAAAArABIAAQABAAEAAAArABEAAQABAAEAAAArABAAAQABAAEAAAArAA8AAQABAAEAAAArAA4AAQABAAEAAAArAA0AAQABAAEAAAArAAwAAQABAAEAAAArAAsAAQABAAEAAAArAAoAAQABAAEAAAArAAkAAQABAAEAAAArAAgAAQABAAEAAAArAAcAAQABAAEAAAArAAYAAQABAAEAAAArAAUAAQABAAEAAAArAAQAAQABAAEAAAArAAMAAQABAAEAAAArAAIAAQABAAEAAAArAAEAAQABAAEAAAArAAAAAQABAAAAAAAqABsAAQABAAIAAAAqABoAAQABAAEAAAAqABkAAQABAAEAAAAqABcAAQABAAEAAAAqABYAAQABAAEAAAAqABUAAQABAAEAAAAqABQAAQABAAEAAAAqABMAAQABAAEAAAAqABIAAQABAAEAAAAqABEAAQABAAEAAAAqABAAAQABAAEAAAAqAA8AAQABAAEAAAAqAA4AAQABAAEAAAAqAA0AAQABAAEAAAAqAAwAAQABAAEAAAAqAAsAAQABAAEAAAAqAAoAAQABAAEAAAAqAAkAAQABAAEAAAAqAAgAAQABAAEAAAAqAAcAAQABAAEAAAAqAAYAAQABAAEAAAAqAAUAAQABAAEAAAAqAAQAAQABAAEAAAAqAAMAAQABAAEAAAAqAAIAAQABAAEAAAAqAAEAAQABAAEAAAAqAAAAAQABAAAAAAApABsAAQABAAIAAAApABoAAQABAAEAAAApABcAAQABAAEAAAApABYAAQABAAEAAAApABUAAQABAAEAAAApABQAAQABAAEAAAApABMAAQABAAEAAAApABIAAQABAAEAAAApABEAAQABAAEAAAApABAAAQABAAEAAAApAA8AAQABAAEAAAApAA4AAQABAAEAAAApAA0AAQABAAEAAAApAAwAAQABAAEAAAApAAsAAQABAAEAAAApAAoAAQABAAEAAAApAAkAAQABAAEAAAApAAgAAQABAAEAAAApAAcAAQABAAEAAAApAAYAAQABAAEAAAApAAUAAQABAAEAAAApAAQAAQABAAEAAAApAAMAAQABAAEAAAApAAIAAQABAAEAAAApAAEAAQABAAEAAAApAAAAAQABAAAAAAAoABYAAQABAAEAAAAoABUAAQABAAEAAAAoABQAAQABAAEAAAAoABMAAQABAAEAAAAoABIAAQABAAEAAAAoABEAAQABAAEAAAAoABAAAQABAAEAAAAoAA8AAQABAAEAAAAoAA4AAQABAAEAAAAoAA0AAQABAAEAAAAoAAwAAQABAAEAAAAoAAsAAQABAAEAAAAoAAoAAQABAAEAAAAoAAkAAQABAAEAAAAoAAgAAQABAAEAAAAoAAcAAQABAAEAAAAoAAYAAQABAAEAAAAoAAUAAQABAAEAAAAoAAQAAQABAAEAAAAoAAMAAQABAAEAAAAoAAIAAQABAAEAAAAoAAEAAQABAAEAAAAoAAAAAQABAAAAAAAnABsAAQABAAIAAAAnABoAAQABAAEAAAAnABcAAQABAAEAAAAnABYAAQABAAEAAAAnABUAAQABAAEAAAAnABQAAQABAAEAAAAnABMAAQABAAEAAAAnABIAAQABAAEAAAAnABEAAQABAAEAAAAnABAAAQABAAEAAAAnAA8AAQABAAEAAAAnAA4AAQABAAEAAAAnAA0AAQABAAEAAAAnAAwAAQABAAEAAAAnAAsAAQABAAEAAAAnAAoAAQABAAEAAAAnAAkAAQABAAEAAAAnAAgAAQABAAEAAAAnAAcAAQABAAEAAAAnAAYAAQABAAEAAAAnAAUAAQABAAEAAAAnAAQAAQABAAEAAAAnAAMAAQABAAEAAAAnAAIAAQABAAEAAAAnAAEAAQABAAEAAAAnAAAAAQABAAAAAAAmABsAAQABAAIAAAAmABoAAQABAAEAAAAmABkAAQABAAEAAAAmABcAAQABAAEAAAAmABYAAQABAAEAAAAmABUAAQABAAEAAAAmABQAAQABAAEAAAAmABMAAQABAAEAAAAmABIAAQABAAEAAAAmABEAAQABAAEAAAAmABAAAQABAAEAAAAmAA8AAQABAAEAAAAmAA4AAQABAAEAAAAmAA0AAQABAAEAAAAmAAwAAQABAAEAAAAmAAsAAQABAAEAAAAmAAoAAQABAAEAAAAmAAkAAQABAAEAAAAmAAgAAQABAAEAAAAmAAcAAQABAAEAAAAmAAYAAQABAAEAAAAmAAUAAQABAAEAAAAmAAQAAQABAAEAAAAmAAMAAQABAAEAAAAmAAIAAQABAAEAAAAmAAEAAQABAAEAAAAmAAAAAQABAAAAAAAlABsAAQABAAIAAAAlABoAAQABAAEAAAAlABkAAQABAAEAAAAlABgAAQABAAEAAAAlABcAAQABAAEAAAAlABYAAQABAAEAAAAlABUAAQABAAEAAAAlABQAAQABAAEAAAAlABMAAQABAAEAAAAlABIAAQABAAEAAAAlABEAAQABAAEAAAAlABAAAQABAAEAAAAlAA8AAQABAAEAAAAlAA4AAQABAAEAAAAlAA0AAQABAAEAAAAlAAwAAQABAAEAAAAlAAsAAQABAAEAAAAlAAoAAQABAAEAAAAlAAkAAQABAAEAAAAlAAgAAQABAAEAAAAlAAcAAQABAAEAAAAlAAYAAQABAAEAAAAlAAUAAQABAAEAAAAlAAQAAQABAAEAAAAlAAMAAQABAAEAAAAlAAIAAQABAAEAAAAlAAEAAQABAAEAAAAlAAAAAQABAAAAAAAkABsAAQABAAIAAAAkABoAAQABAAEAAAAkABkAAQABAAEAAAAkABgAAQABAAEAAAAkABcAAQABAAEAAAAkABYAAQABAAEAAAAkABUAAQABAAEAAAAkABQAAQABAAEAAAAkABMAAQABAAEAAAAkABIAAQABAAEAAAAkABEAAQABAAEAAAAkABAAAQABAAEAAAAkAA8AAQABAAEAAAAkAA4AAQABAAEAAAAkAA0AAQABAAEAAAAkAAwAAQABAAEAAAAkAAsAAQABAAEAAAAkAAoAAQABAAEAAAAkAAkAAQABAAEAAAAkAAgAAQABAAEAAAAkAAcAAQABAAEAAAAkAAYAAQABAAEAAAAkAAUAAQABAAEAAAAkAAQAAQABAAEAAAAkAAMAAQABAAEAAAAkAAIAAQABAAEAAAAkAAEAAQABAAEAAAAkAAAAAQABAAAAAAAjABsAAQABAAIAAAAjABoAAQABAAEAAAAjABkAAQABAAEAAAAjABgAAQABAAEAAAAjABcAAQABAAEAAAAjABYAAQABAAEAAAAjABUAAQABAAEAAAAjABQAAQABAAEAAAAjABMAAQABAAEAAAAjABIAAQABAAEAAAAjABEAAQABAAEAAAAjABAAAQABAAEAAAAjAA8AAQABAAEAAAAjAA4AAQABAAEAAAAjAA0AAQABAAEAAAAjAAwAAQABAAEAAAAjAAsAAQABAAEAAAAjAAoAAQABAAEAAAAjAAkAAQABAAEAAAAjAAgAAQABAAEAAAAjAAcAAQABAAEAAAAjAAYAAQABAAEAAAAjAAUAAQABAAEAAAAjAAQAAQABAAEAAAAjAAMAAQABAAEAAAAjAAIAAQABAAEAAAAjAAEAAQABAAEAAAAjAAAAAQABAAAAAAAiABsAAQABAAIAAAAiABoAAQABAAEAAAAiABkAAQABAAEAAAAiABgAAQABAAEAAAAiABcAAQABAAEAAAAiABMAAQABAAEAAAAiABIAAQABAAEAAAAiABEAAQABAAEAAAAiABAAAQABAAEAAAAiAA8AAQABAAEAAAAiAA4AAQABAAEAAAAiAA0AAQABAAEAAAAiAAwAAQABAAEAAAAiAAsAAQABAAEAAAAiAAoAAQABAAEAAAAiAAkAAQABAAEAAAAiAAgAAQABAAEAAAAiAAcAAQABAAEAAAAiAAYAAQABAAEAAAAiAAUAAQABAAEAAAAiAAQAAQABAAEAAAAiAAMAAQABAAEAAAAiAAIAAQABAAEAAAAiAAEAAQABAAEAAAAiAAAAAQABAAAAAAAhABsAAQABAAIAAAAhABoAAQABAAEAAAAhABkAAQABAAEAAAAhABgAAQABAAEAAAAhABcAAQABAAEAAAAhABMAAQABAAEAAAAhABIAAQABAAEAAAAhABEAAQABAAEAAAAhABAAAQABAAEAAAAhAA8AAQABAAEAAAAhAA4AAQABAAEAAAAhAA0AAQABAAEAAAAhAAwAAQABAAEAAAAhAAsAAQABAAEAAAAhAAoAAQABAAEAAAAhAAkAAQABAAEAAAAhAAgAAQABAAEAAAAhAAcAAQABAAEAAAAhAAYAAQABAAEAAAAhAAUAAQABAAEAAAAhAAQAAQABAAEAAAAhAAMAAQABAAEAAAAhAAIAAQABAAEAAAAhAAEAAQABAAEAAAAhAAAAAQABAAAAAAAgABsAAQABAAIAAAAgABoAAQABAAEAAAAgABkAAQABAAEAAAAgABgAAQABAAEAAAAgABcAAQABAAEAAAAgABMAAQABAAEAAAAgABIAAQABAAEAAAAgABEAAQABAAEAAAAgABAAAQABAAEAAAAgAA8AAQABAAEAAAAgAA4AAQABAAEAAAAgAA0AAQABAAEAAAAgAAwAAQABAAEAAAAgAAsAAQABAAEAAAAgAAoAAQABAAEAAAAgAAkAAQABAAEAAAAgAAgAAQABAAEAAAAgAAcAAQABAAEAAAAgAAYAAQABAAEAAAAgAAUAAQABAAEAAAAgAAQAAQABAAEAAAAgAAMAAQABAAEAAAAgAAIAAQABAAEAAAAgAAEAAQABAAEAAAAgAAAAAQABAAAAAAAfABsAAQABAAIAAAAfABoAAQABAAEAAAAfABkAAQABAAEAAAAfABgAAQABAAEAAAAfABcAAQABAAEAAAAfABMAAQABAAEAAAAfABIAAQABAAEAAAAfABEAAQABAAEAAAAfABAAAQABAAEAAAAfAA8AAQABAAEAAAAfAA4AAQABAAEAAAAfAA0AAQABAAEAAAAfAAwAAQABAAEAAAAfAAsAAQABAAEAAAAfAAoAAQABAAEAAAAfAAkAAQABAAEAAAAfAAgAAQABAAEAAAAfAAcAAQABAAEAAAAfAAYAAQABAAEAAAAfAAUAAQABAAEAAAAfAAQAAQABAAEAAAAfAAMAAQABAAEAAAAfAAIAAQABAAEAAAAfAAEAAQABAAEAAAAfAAAAAQABAAAAAAAeABsAAQABAAIAAAAeABoAAQABAAEAAAAeABkAAQABAAEAAAAeABgAAQABAAEAAAAeABcAAQABAAEAAAAeABMAAQABAAEAAAAeABIAAQABAAEAAAAeABEAAQABAAEAAAAeABAAAQABAAEAAAAeAA8AAQABAAEAAAAeAA4AAQABAAEAAAAeAA0AAQABAAEAAAAeAAwAAQABAAEAAAAeAAsAAQABAAEAAAAeAAoAAQABAAEAAAAeAAkAAQABAAEAAAAeAAgAAQABAAEAAAAeAAcAAQABAAEAAAAeAAYAAQABAAEAAAAeAAUAAQABAAEAAAAeAAQAAQABAAEAAAAeAAMAAQABAAEAAAAeAAIAAQABAAEAAAAeAAEAAQABAAEAAAAeAAAAAQABAAAAAAAdABsAAQABAAIAAAAdABoAAQABAAEAAAAdABkAAQABAAEAAAAdABgAAQABAAEAAAAdABcAAQABAAEAAAAdABYAAQABAAEAAAAdABUAAQABAAEAAAAdABQAAQABAAEAAAAdABMAAQABAAEAAAAdABIAAQABAAEAAAAdABEAAQABAAEAAAAdABAAAQABAAEAAAAdAA8AAQABAAEAAAAdAA4AAQABAAEAAAAdAA0AAQABAAEAAAAdAAwAAQABAAEAAAAdAAsAAQABAAEAAAAdAAoAAQABAAEAAAAdAAkAAQABAAEAAAAdAAgAAQABAAEAAAAdAAcAAQABAAEAAAAdAAYAAQABAAEAAAAdAAUAAQABAAEAAAAdAAQAAQABAAEAAAAdAAMAAQABAAEAAAAdAAIAAQABAAEAAAAdAAEAAQABAAEAAAAdAAAAAQABAAAAAAAcABsAAQABAAIAAAAcABoAAQABAAEAAAAcABkAAQABAAEAAAAcABgAAQABAAEAAAAcABcAAQABAAEAAAAcABYAAQABAAEAAAAcABUAAQABAAEAAAAcABQAAQABAAEAAAAcABMAAQABAAEAAAAcABIAAQABAAEAAAAcABEAAQABAAEAAAAcABAAAQABAAEAAAAcAA8AAQABAAEAAAAcAA4AAQABAAEAAAAcAA0AAQABAAEAAAAcAAwAAQABAAEAAAAcAAsAAQABAAEAAAAcAAoAAQABAAEAAAAcAAkAAQABAAEAAAAcAAgAAQABAAEAAAAcAAcAAQABAAEAAAAcAAYAAQABAAEAAAAcAAUAAQABAAEAAAAcAAQAAQABAAEAAAAcAAMAAQABAAEAAAAcAAIAAQABAAEAAAAcAAEAAQABAAEAAAAcAAAAAQABAAAAAAAbABsAAQABAAIAAAAbABoAAQABAAEAAAAbABkAAQABAAEAAAAbABgAAQABAAEAAAAbABcAAQABAAEAAAAbABYAAQABAAEAAAAbABUAAQABAAEAAAAbABQAAQABAAEAAAAbABMAAQABAAEAAAAbABIAAQABAAEAAAAbABEAAQABAAEAAAAbABAAAQABAAEAAAAbAA8AAQABAAEAAAAbAA4AAQABAAEAAAAbAA0AAQABAAEAAAAbAAwAAQABAAEAAAAbAAsAAQABAAEAAAAbAAoAAQABAAEAAAAbAAkAAQABAAEAAAAbAAgAAQABAAEAAAAbAAcAAQABAAEAAAAbAAYAAQABAAEAAAAbAAUAAQABAAEAAAAbAAQAAQABAAEAAAAbAAMAAQABAAEAAAAbAAIAAQABAAEAAAAbAAEAAQABAAEAAAAbAAAAAQABAAAAAAAaABsAAQABAAIAAAAaABoAAQABAAEAAAAaABkAAQABAAEAAAAaABgAAQABAAEAAAAaABcAAQABAAEAAAAaABYAAQABAAEAAAAaABUAAQABAAEAAAAaABQAAQABAAEAAAAaABMAAQABAAEAAAAaABIAAQABAAEAAAAaABEAAQABAAEAAAAaABAAAQABAAEAAAAaAA8AAQABAAEAAAAaAA4AAQABAAEAAAAaAA0AAQABAAEAAAAaAAwAAQABAAEAAAAaAAsAAQABAAEAAAAaAAoAAQABAAEAAAAaAAkAAQABAAEAAAAaAAgAAQABAAEAAAAaAAcAAQABAAEAAAAaAAYAAQABAAEAAAAaAAUAAQABAAEAAAAaAAQAAQABAAEAAAAaAAMAAQABAAEAAAAaAAIAAQABAAEAAAAaAAEAAQABAAEAAAAaAAAAAQABAAAAAAAZABsAAQABAAIAAAAZABoAAQABAAEAAAAZABkAAQABAAEAAAAZABgAAQABAAEAAAAZABcAAQABAAEAAAAZABYAAQABAAEAAAAZABUAAQABAAEAAAAZABQAAQABAAEAAAAZABMAAQABAAEAAAAZABIAAQABAAEAAAAZABEAAQABAAEAAAAZABAAAQABAAEAAAAZAA8AAQABAAEAAAAZAA4AAQABAAEAAAAZAA0AAQABAAEAAAAZAAwAAQABAAEAAAAZAAsAAQABAAEAAAAZAAoAAQABAAEAAAAZAAkAAQABAAEAAAAZAAgAAQABAAEAAAAZAAcAAQABAAEAAAAZAAYAAQABAAEAAAAZAAUAAQABAAEAAAAZAAQAAQABAAEAAAAZAAMAAQABAAEAAAAZAAIAAQABAAEAAAAZAAEAAQABAAEAAAAZAAAAAQABAAAAAAAYABsAAQABAAIAAAAYABoAAQABAAEAAAAYABkAAQABAAEAAAAYABgAAQABAAEAAAAYABcAAQABAAEAAAAYABYAAQABAAEAAAAYABUAAQABAAEAAAAYABQAAQABAAEAAAAYABMAAQABAAEAAAAYABIAAQABAAEAAAAYABEAAQABAAEAAAAYABAAAQABAAEAAAAYAA8AAQABAAEAAAAYAA4AAQABAAEAAAAYAA0AAQABAAEAAAAYAAwAAQABAAEAAAAYAAsAAQABAAEAAAAYAAoAAQABAAEAAAAYAAkAAQABAAEAAAAYAAgAAQABAAEAAAAYAAcAAQABAAEAAAAYAAYAAQABAAEAAAAYAAUAAQABAAEAAAAYAAQAAQABAAEAAAAYAAMAAQABAAEAAAAYAAIAAQABAAEAAAAYAAEAAQABAAEAAAAYAAAAAQABAAAAAAAXABsAAQABAAIAAAAXABoAAQABAAEAAAAXABkAAQABAAEAAAAXABgAAQABAAEAAAAXABcAAQABAAEAAAAXABYAAQABAAEAAAAXABUAAQABAAEAAAAXABQAAQABAAEAAAAXABMAAQABAAEAAAAXABIAAQABAAEAAAAXABEAAQABAAEAAAAXABAAAQABAAEAAAAXAA8AAQABAAEAAAAXAA4AAQABAAEAAAAXAA0AAQABAAEAAAAXAAwAAQABAAEAAAAXAAsAAQABAAEAAAAXAAoAAQABAAEAAAAXAAkAAQABAAEAAAAXAAgAAQABAAEAAAAXAAcAAQABAAEAAAAXAAYAAQABAAEAAAAXAAUAAQABAAEAAAAXAAQAAQABAAEAAAAXAAMAAQABAAEAAAAXAAIAAQABAAEAAAAXAAEAAQABAAEAAAAXAAAAAQABAAAAAAAWABsAAQABAAIAAAAWABoAAQABAAEAAAAWABkAAQABAAEAAAAWABgAAQABAAEAAAAWABcAAQABAAEAAAAWABYAAQABAAEAAAAWABUAAQABAAEAAAAWABQAAQABAAEAAAAWABMAAQABAAEAAAAWABIAAQABAAEAAAAWABEAAQABAAEAAAAWABAAAQABAAEAAAAWAA8AAQABAAEAAAAWAA4AAQABAAEAAAAWAA0AAQABAAEAAAAWAAwAAQABAAEAAAAWAAsAAQABAAEAAAAWAAoAAQABAAEAAAAWAAkAAQABAAEAAAAWAAgAAQABAAEAAAAWAAcAAQABAAEAAAAWAAYAAQABAAEAAAAWAAUAAQABAAEAAAAWAAQAAQABAAEAAAAWAAMAAQABAAEAAAAWAAIAAQABAAEAAAAWAAEAAQABAAEAAAAWAAAAAQABAAAAAAAVABsAAQABAAIAAAAVABoAAQABAAEAAAAVABkAAQABAAEAAAAVABgAAQABAAEAAAAVABcAAQABAAEAAAAVABYAAQABAAEAAAAVABUAAQABAAEAAAAVABQAAQABAAEAAAAVABMAAQABAAEAAAAVABIAAQABAAEAAAAVABEAAQABAAEAAAAVABAAAQABAAEAAAAVAA8AAQABAAEAAAAVAA4AAQABAAEAAAAVAA0AAQABAAEAAAAVAAwAAQABAAEAAAAVAAsAAQABAAEAAAAVAAoAAQABAAEAAAAVAAkAAQABAAEAAAAVAAgAAQABAAEAAAAVAAcAAQABAAEAAAAVAAYAAQABAAEAAAAVAAUAAQABAAEAAAAVAAQAAQABAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAEAAAAVAAEAAQABAAEAAAAVAAAAAQABAAAAAAAUABsAAQABAAIAAAAUABoAAQABAAEAAAAUABkAAQABAAEAAAAUABgAAQABAAEAAAAUABcAAQABAAEAAAAUABYAAQABAAEAAAAUABUAAQABAAEAAAAUABQAAQABAAEAAAAUABMAAQABAAEAAAAUABIAAQABAAEAAAAUABEAAQABAAEAAAAUABAAAQABAAEAAAAUAA8AAQABAAEAAAAUAA4AAQABAAEAAAAUAA0AAQABAAEAAAAUAAwAAQABAAEAAAAUAAsAAQABAAEAAAAUAAoAAQABAAEAAAAUAAkAAQABAAEAAAAUAAgAAQABAAEAAAAUAAcAAQABAAEAAAAUAAYAAQABAAEAAAAUAAUAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAAUAAIAAQABAAEAAAAUAAEAAQABAAEAAAAUAAAAAQABAAAAAAATABsAAQABAAIAAAATABoAAQABAAEAAAATABkAAQABAAEAAAATABgAAQABAAEAAAATABcAAQABAAEAAAATABYAAQABAAEAAAATABUAAQABAAEAAAATABQAAQABAAEAAAATABMAAQABAAEAAAATABIAAQABAAEAAAATABEAAQABAAEAAAATABAAAQABAAEAAAATAA8AAQABAAEAAAATAA4AAQABAAEAAAATAA0AAQABAAEAAAATAAwAAQABAAEAAAATAAsAAQABAAEAAAATAAoAAQABAAEAAAATAAkAAQABAAEAAAATAAgAAQABAAEAAAATAAcAAQABAAEAAAATAAYAAQABAAEAAAATAAUAAQABAAEAAAATAAQAAQABAAEAAAATAAMAAQABAAEAAAATAAIAAQABAAEAAAATAAEAAQABAAEAAAATAAAAAQABAAAAAAASABsAAQABAAIAAAASABoAAQABAAEAAAASABkAAQABAAEAAAASABgAAQABAAEAAAASABcAAQABAAEAAAASABYAAQABAAEAAAASABUAAQABAAEAAAASABQAAQABAAEAAAASABMAAQABAAEAAAASABIAAQABAAEAAAASABEAAQABAAEAAAASABAAAQABAAEAAAASAA8AAQABAAEAAAASAA4AAQABAAEAAAASAA0AAQABAAEAAAASAAwAAQABAAEAAAASAAsAAQABAAEAAAASAAoAAQABAAEAAAASAAkAAQABAAEAAAASAAgAAQABAAEAAAASAAcAAQABAAEAAAASAAYAAQABAAEAAAASAAUAAQABAAEAAAASAAQAAQABAAEAAAASAAMAAQABAAEAAAASAAIAAQABAAEAAAASAAEAAQABAAEAAAASAAAAAQABAAAAAAARABsAAQABAAIAAAARABoAAQABAAEAAAARABkAAQABAAEAAAARABgAAQABAAEAAAARABcAAQABAAEAAAARABYAAQABAAEAAAARABUAAQABAAEAAAARABQAAQABAAEAAAARABMAAQABAAEAAAARABIAAQABAAEAAAARABEAAQABAAEAAAARABAAAQABAAEAAAARAA8AAQABAAEAAAARAA4AAQABAAEAAAARAA0AAQABAAEAAAARAAwAAQABAAEAAAARAAsAAQABAAEAAAARAAoAAQABAAEAAAARAAkAAQABAAEAAAARAAgAAQABAAEAAAARAAcAAQABAAEAAAARAAYAAQABAAEAAAARAAUAAQABAAEAAAARAAQAAQABAAEAAAARAAMAAQABAAEAAAARAAIAAQABAAEAAAARAAEAAQABAAEAAAARAAAAAQABAAAAAAAQABsAAQABAAIAAAAQABoAAQABAAEAAAAQABkAAQABAAEAAAAQABgAAQABAAEAAAAQABcAAQABAAEAAAAQABYAAQABAAEAAAAQABUAAQABAAEAAAAQABQAAQABAAEAAAAQABMAAQABAAEAAAAQABIAAQABAAEAAAAQABEAAQABAAEAAAAQABAAAQABAAEAAAAQAA8AAQABAAEAAAAQAA4AAQABAAEAAAAQAA0AAQABAAEAAAAQAAwAAQABAAEAAAAQAAsAAQABAAEAAAAQAAoAAQABAAEAAAAQAAkAAQABAAEAAAAQAAgAAQABAAEAAAAQAAcAAQABAAEAAAAQAAYAAQABAAEAAAAQAAUAAQABAAEAAAAQAAQAAQABAAEAAAAQAAMAAQABAAEAAAAQAAIAAQABAAEAAAAQAAEAAQABAAEAAAAQAAAAAQABAAAAAAAPABsAAQABAAIAAAAPABoAAQABAAEAAAAPABkAAQABAAEAAAAPABgAAQABAAEAAAAPABcAAQABAAEAAAAPABYAAQABAAEAAAAPABUAAQABAAEAAAAPABQAAQABAAEAAAAPABMAAQABAAEAAAAPABIAAQABAAEAAAAPABEAAQABAAEAAAAPABAAAQABAAEAAAAPAA8AAQABAAEAAAAPAA4AAQABAAEAAAAPAA0AAQABAAEAAAAPAAwAAQABAAEAAAAPAAsAAQABAAEAAAAPAAoAAQABAAEAAAAPAAkAAQABAAEAAAAPAAgAAQABAAEAAAAPAAcAAQABAAEAAAAPAAYAAQABAAEAAAAPAAUAAQABAAEAAAAPAAQAAQABAAEAAAAPAAMAAQABAAEAAAAPAAIAAQABAAEAAAAPAAEAAQABAAEAAAAPAAAAAQABAAAAAAAOABsAAQABAAIAAAAOABoAAQABAAEAAAAOABkAAQABAAEAAAAOABgAAQABAAEAAAAOABcAAQABAAEAAAAOABYAAQABAAEAAAAOABUAAQABAAEAAAAOABQAAQABAAEAAAAOABMAAQABAAEAAAAOABIAAQABAAEAAAAOABEAAQABAAEAAAAOABAAAQABAAEAAAAOAA8AAQABAAEAAAAOAA4AAQABAAEAAAAOAA0AAQABAAEAAAAOAAwAAQABAAEAAAAOAAsAAQABAAEAAAAOAAoAAQABAAEAAAAOAAkAAQABAAEAAAAOAAgAAQABAAEAAAAOAAcAAQABAAEAAAAOAAYAAQABAAEAAAAOAAUAAQABAAEAAAAOAAQAAQABAAEAAAAOAAMAAQABAAEAAAAOAAIAAQABAAEAAAAOAAEAAQABAAEAAAAOAAAAAQABAAAAAAANABsAAQABAAIAAAANABoAAQABAAEAAAANABkAAQABAAEAAAANABgAAQABAAEAAAANABcAAQABAAEAAAANABYAAQABAAEAAAANABUAAQABAAEAAAANABQAAQABAAEAAAANABMAAQABAAEAAAANABIAAQABAAEAAAANABEAAQABAAEAAAANABAAAQABAAEAAAANAA8AAQABAAEAAAANAA4AAQABAAEAAAANAA0AAQABAAEAAAANAAwAAQABAAEAAAANAAsAAQABAAEAAAANAAoAAQABAAEAAAANAAkAAQABAAEAAAANAAgAAQABAAEAAAANAAcAAQABAAEAAAANAAYAAQABAAEAAAANAAUAAQABAAEAAAANAAQAAQABAAEAAAANAAMAAQABAAEAAAANAAIAAQABAAEAAAANAAEAAQABAAEAAAANAAAAAQABAAAAAAAMABsAAQABAAIAAAAMABoAAQABAAEAAAAMABkAAQABAAEAAAAMABgAAQABAAEAAAAMABcAAQABAAEAAAAMABYAAQABAAEAAAAMABUAAQABAAEAAAAMABQAAQABAAEAAAAMABMAAQABAAEAAAAMABIAAQABAAEAAAAMABEAAQABAAEAAAAMABAAAQABAAEAAAAMAA8AAQABAAEAAAAMAA4AAQABAAEAAAAMAA0AAQABAAEAAAAMAAwAAQABAAEAAAAMAAsAAQABAAEAAAAMAAoAAQABAAEAAAAMAAkAAQABAAEAAAAMAAgAAQABAAEAAAAMAAcAAQABAAEAAAAMAAYAAQABAAEAAAAMAAUAAQABAAEAAAAMAAQAAQABAAEAAAAMAAMAAQABAAEAAAAMAAIAAQABAAEAAAAMAAEAAQABAAEAAAAMAAAAAQABAAAAAAALABsAAQABAAIAAAALABoAAQABAAEAAAALABkAAQABAAEAAAALABgAAQABAAEAAAALABcAAQABAAEAAAALABYAAQABAAEAAAALABUAAQABAAEAAAALABQAAQABAAEAAAALABMAAQABAAEAAAALABIAAQABAAEAAAALABEAAQABAAEAAAALABAAAQABAAEAAAALAA8AAQABAAEAAAALAA4AAQABAAEAAAALAA0AAQABAAEAAAALAAwAAQABAAEAAAALAAsAAQABAAEAAAALAAoAAQABAAEAAAALAAkAAQABAAEAAAALAAgAAQABAAEAAAALAAcAAQABAAEAAAALAAYAAQABAAEAAAALAAUAAQABAAEAAAALAAQAAQABAAEAAAALAAMAAQABAAEAAAALAAIAAQABAAEAAAALAAEAAQABAAEAAAALAAAAAQABAAAAAAAKABsAAQABAAIAAAAKABoAAQABAAEAAAAKABkAAQABAAEAAAAKABgAAQABAAEAAAAKABcAAQABAAEAAAAKABYAAQABAAEAAAAKABUAAQABAAEAAAAKABQAAQABAAEAAAAKABMAAQABAAEAAAAKABIAAQABAAEAAAAKABEAAQABAAEAAAAKABAAAQABAAEAAAAKAA8AAQABAAEAAAAKAA4AAQABAAEAAAAKAA0AAQABAAEAAAAKAAwAAQABAAEAAAAKAAsAAQABAAEAAAAKAAoAAQABAAEAAAAKAAkAAQABAAEAAAAKAAgAAQABAAEAAAAKAAcAAQABAAEAAAAKAAYAAQABAAEAAAAKAAUAAQABAAEAAAAKAAQAAQABAAEAAAAKAAMAAQABAAEAAAAKAAIAAQABAAEAAAAKAAEAAQABAAEAAAAKAAAAAQABAAAAAAAJABsAAQABAAIAAAAJABoAAQABAAEAAAAJABkAAQABAAEAAAAJABgAAQABAAEAAAAJABcAAQABAAEAAAAJABYAAQABAAEAAAAJABUAAQABAAEAAAAJABQAAQABAAEAAAAJABMAAQABAAEAAAAJABIAAQABAAEAAAAJABEAAQABAAEAAAAJABAAAQABAAEAAAAJAA8AAQABAAEAAAAJAA4AAQABAAEAAAAJAA0AAQABAAEAAAAJAAwAAQABAAEAAAAJAAsAAQABAAEAAAAJAAoAAQABAAEAAAAJAAkAAQABAAEAAAAJAAgAAQABAAEAAAAJAAcAAQABAAEAAAAJAAYAAQABAAEAAAAJAAUAAQABAAEAAAAJAAQAAQABAAEAAAAJAAMAAQABAAEAAAAJAAIAAQABAAEAAAAJAAEAAQABAAEAAAAJAAAAAQABAAAAAAAIABsAAQABAAIAAAAIABoAAQABAAEAAAAIABkAAQABAAEAAAAIABgAAQABAAEAAAAIABcAAQABAAEAAAAIABYAAQABAAEAAAAIABUAAQABAAEAAAAIABQAAQABAAEAAAAIABMAAQABAAEAAAAIABIAAQABAAEAAAAIABEAAQABAAEAAAAIABAAAQABAAEAAAAIAA8AAQABAAEAAAAIAA4AAQABAAEAAAAIAA0AAQABAAEAAAAIAAwAAQABAAEAAAAIAAsAAQABAAEAAAAIAAoAAQABAAEAAAAIAAkAAQABAAEAAAAIAAgAAQABAAEAAAAIAAcAAQABAAEAAAAIAAYAAQABAAEAAAAIAAUAAQABAAEAAAAIAAQAAQABAAEAAAAIAAMAAQABAAEAAAAIAAIAAQABAAEAAAAIAAEAAQABAAEAAAAIAAAAAQABAAAAAAAHABsAAQABAAIAAAAHABoAAQABAAEAAAAHABkAAQABAAEAAAAHABgAAQABAAEAAAAHABcAAQABAAEAAAAHABYAAQABAAEAAAAHABUAAQABAAEAAAAHABQAAQABAAEAAAAHABMAAQABAAEAAAAHABIAAQABAAEAAAAHABEAAQABAAEAAAAHABAAAQABAAEAAAAHAA8AAQABAAEAAAAHAA4AAQABAAEAAAAHAA0AAQABAAEAAAAHAAwAAQABAAEAAAAHAAsAAQABAAEAAAAHAAoAAQABAAEAAAAHAAkAAQABAAEAAAAHAAgAAQABAAEAAAAHAAcAAQABAAEAAAAHAAYAAQABAAEAAAAHAAUAAQABAAEAAAAHAAQAAQABAAEAAAAHAAMAAQABAAEAAAAHAAIAAQABAAEAAAAHAAEAAQABAAEAAAAHAAAAAQABAAAAAAAGABsAAQABAAIAAAAGABoAAQABAAEAAAAGABkAAQABAAEAAAAGABgAAQABAAEAAAAGABcAAQABAAEAAAAGABYAAQABAAEAAAAGABUAAQABAAEAAAAGABQAAQABAAEAAAAGABMAAQABAAEAAAAGABIAAQABAAEAAAAGABEAAQABAAEAAAAGABAAAQABAAEAAAAGAA8AAQABAAEAAAAGAA4AAQABAAEAAAAGAA0AAQABAAEAAAAGAAwAAQABAAEAAAAGAAsAAQABAAEAAAAGAAoAAQABAAEAAAAGAAkAAQABAAEAAAAGAAgAAQABAAEAAAAGAAcAAQABAAEAAAAGAAYAAQABAAEAAAAGAAUAAQABAAEAAAAGAAQAAQABAAEAAAAGAAMAAQABAAEAAAAGAAIAAQABAAEAAAAGAAEAAQABAAEAAAAGAAAAAQABAAAAAAAFABsAAQABAAIAAAAFABoAAQABAAEAAAAFABkAAQABAAEAAAAFABgAAQABAAEAAAAFABcAAQABAAEAAAAFABYAAQABAAEAAAAFABUAAQABAAEAAAAFABQAAQABAAEAAAAFABMAAQABAAEAAAAFABIAAQABAAEAAAAFABEAAQABAAEAAAAFABAAAQABAAEAAAAFAA8AAQABAAEAAAAFAA4AAQABAAEAAAAFAA0AAQABAAEAAAAFAAwAAQABAAEAAAAFAAsAAQABAAEAAAAFAAoAAQABAAEAAAAFAAkAAQABAAEAAAAFAAgAAQABAAEAAAAFAAcAAQABAAEAAAAFAAYAAQABAAEAAAAFAAUAAQABAAEAAAAFAAQAAQABAAEAAAAFAAMAAQABAAEAAAAFAAIAAQABAAEAAAAFAAEAAQABAAEAAAAFAAAAAQABAAAAAAAEABsAAQABAAIAAAAEABoAAQABAAEAAAAEABkAAQABAAEAAAAEABgAAQABAAEAAAAEABcAAQABAAEAAAAEABYAAQABAAEAAAAEABUAAQABAAEAAAAEABQAAQABAAEAAAAEABMAAQABAAEAAAAEABIAAQABAAEAAAAEABEAAQABAAEAAAAEABAAAQABAAEAAAAEAA8AAQABAAEAAAAEAA4AAQABAAEAAAAEAA0AAQABAAEAAAAEAAwAAQABAAEAAAAEAAsAAQABAAEAAAAEAAoAAQABAAEAAAAEAAkAAQABAAEAAAAEAAgAAQABAAEAAAAEAAcAAQABAAEAAAAEAAYAAQABAAEAAAAEAAUAAQABAAEAAAAEAAQAAQABAAEAAAAEAAMAAQABAAEAAAAEAAIAAQABAAEAAAAEAAEAAQABAAEAAAAEAAAAAQABAAAAAAADABsAAQABAAIAAAADABoAAQABAAEAAAADABkAAQABAAEAAAADABgAAQABAAEAAAADABcAAQABAAEAAAADABYAAQABAAEAAAADABUAAQABAAEAAAADABQAAQABAAEAAAADABMAAQABAAEAAAADABIAAQABAAEAAAADABEAAQABAAEAAAADABAAAQABAAEAAAADAA8AAQABAAEAAAADAA4AAQABAAEAAAADAA0AAQABAAEAAAADAAwAAQABAAEAAAADAAsAAQABAAEAAAADAAoAAQABAAEAAAADAAkAAQABAAEAAAADAAgAAQABAAEAAAADAAcAAQABAAEAAAADAAYAAQABAAEAAAADAAUAAQABAAEAAAADAAQAAQABAAEAAAADAAMAAQABAAEAAAADAAIAAQABAAEAAAADAAEAAQABAAEAAAADAAAAAQABAAAAAAACABsAAQABAAIAAAACABoAAQABAAEAAAACABkAAQABAAEAAAACABgAAQABAAEAAAACABcAAQABAAEAAAACABYAAQABAAEAAAACABUAAQABAAEAAAACABQAAQABAAEAAAACABMAAQABAAEAAAACABIAAQABAAEAAAACABEAAQABAAEAAAACABAAAQABAAEAAAACAA8AAQABAAEAAAACAA4AAQABAAEAAAACAA0AAQABAAEAAAACAAwAAQABAAEAAAACAAsAAQABAAEAAAACAAoAAQABAAEAAAACAAkAAQABAAEAAAACAAgAAQABAAEAAAACAAcAAQABAAEAAAACAAYAAQABAAEAAAACAAUAAQABAAEAAAACAAQAAQABAAEAAAACAAMAAQABAAEAAAACAAIAAQABAAEAAAACAAEAAQABAAEAAAACAAAAAQABAAAAAAABABsAAQABAAIAAAABABoAAQABAAEAAAABABkAAQABAAEAAAABABgAAQABAAEAAAABABcAAQABAAEAAAABABYAAQABAAEAAAABABUAAQABAAEAAAABABQAAQABAAEAAAABABMAAQABAAEAAAABABIAAQABAAEAAAABABEAAQABAAEAAAABABAAAQABAAEAAAABAA8AAQABAAEAAAABAA4AAQABAAEAAAABAA0AAQABAAEAAAABAAwAAQABAAEAAAABAAsAAQABAAEAAAABAAoAAQABAAEAAAABAAkAAQABAAEAAAABAAgAAQABAAEAAAABAAcAAQABAAEAAAABAAYAAQABAAEAAAABAAUAAQABAAEAAAABAAQAAQABAAEAAAABAAMAAQABAAEAAAABAAIAAQABAAEAAAABAAEAAQABAAEAAAABAAAAAQABAAAAAAAAABsAAQAAAAIAAAAAABoAAQAAAAEAAAAAABkAAQAAAAEAAAAAABgAAQAAAAEAAAAAABcAAQAAAAEAAAAAABYAAQAAAAEAAAAAABUAAQAAAAEAAAAAABQAAQAAAAEAAAAAABMAAQAAAAEAAAAAABIAAQAGAAAAAAAAABEAAQAGAAEAAAAAABAAAQAAAAEAAAAAAA8AAQAAAAEAAAAAAA4AAQAAAAEAAAAAAA0AAQAAAAEAAAAAAAwAAQAAAAEAAAAAAAsAAQAAAAEAAAAAAAoAAQAAAAEAAAAAAAkAAQAAAAEAAAAAAAgAAQAAAAEAAAAAAAcAAQAAAAEAAAAAAAYAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAAAAQAAAAAAAAAoABcAAQABAAEAAAAoABgAAQABAAEAAAAoABkAAQABAAEAAAAoABoAAQABAAEAAAAoABsAAQABAAIAAAApABkAAQABAAEAAAAnABkAAQABAAEAAAAmABgAAQABAAEAAAAnABgAAQABAAEAAAApABgAAQABAAEAAAAqABgAAQABAAEAAAAiABQAAQABAAEAAAAhABQAAQABAAEAAAAgABQAAQABAAEAAAAfABQAAQABAAEAAAAeABQAAQABAAEAAAAeABUAAQABAAEAAAAfABUAAQABAAEAAAAgABUAAQABAAEAAAAhABUAAQABAAEAAAAiABUAAQABAAEAAAAiABYAAQABAAEAAAAhABYAAQABAAEAAAAgABYAAQABAAEAAAAfABYAAQABAAEAAAAeABYAAQABAAEAAADv/xMAAQACAAIAAADv/xIAAQAFAAAAAADv/xEAAQAFAAEAAADv/xAAAQACAAAAAADu/xMAAQABAAIAAADu/xIAAQAGAAEAAADu/xEAAQAGAAAAAADu/xAAAQABAAAAAADt/xMAAQABAAIAAADt/xIAAQAFAAEAAADt/xEAAQAFAAAAAADt/xAAAQABAAAAAADs/xMAAQAAAAIAAADs/xIAAQAAAAEAAADs/xEAAQAAAAEAAADs/xAAAQAAAAAAAAD2/xIAAQACAAIAAAD2/xEAAQACAAAAAAD1/xIAAQABAAIAAAD1/xEAAQABAAAAAAD0/xIAAQABAAIAAAD0/xEAAQABAAAAAADz/xIAAQABAAIAAADz/xEAAQABAAAAAADy/xIAAQABAAIAAADy/xEAAQABAAAAAADx/xIAAQABAAIAAADx/xEAAQABAAAAAADw/xIAAQABAAIAAADw/xEAAQABAAAAAAD//xIAAQABAAIAAAD//xEAAQABAAAAAAD+/xIAAQABAAIAAAD+/xEAAQABAAAAAAD9/xIAAQABAAIAAAD9/xEAAQABAAAAAAD8/xIAAQABAAIAAAD8/xEAAQABAAAAAAD7/xIAAQABAAIAAAD7/xEAAQABAAAAAAD6/xIAAQAAAAIAAAD6/xEAAQAAAAAAAAA=") @@ -16,28 +16,30 @@ tile_map_data = PackedByteArray("AAAxAAYAAQAKAAIAAAAwAAYAAQAJAAIAAAAvAAYAAQAJAAI tile_set = ExtResource("2_fyo8k") metadata/_edit_lock_ = true -[node name="Water" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAAcAAEAAQAIAAYAAAAdAAEAAQAJAAYAAAAeAAEAAQAJAAYAAAAfAAEAAQAJAAYAAAAgAAEAAQAJAAYAAAAhAAEAAQAJAAYAAAAiAAEAAQAJAAYAAAAjAAEAAQAJAAYAAAAkAAEAAQAJAAYAAAAlAAEAAQAJAAYAAAAmAAEAAQAJAAYAAAAnAAEAAQAJAAYAAAAoAAEAAQAJAAYAAAApAAEAAQAJAAYAAAAqAAEAAQAJAAYAAAArAAEAAQAJAAYAAAAsAAEAAQAJAAYAAAAtAAEAAQAJAAYAAAAuAAEAAQAJAAYAAAAvAAEAAQAJAAYAAAAwAAEAAQAKAAYAAAAwAAIAAQAKAAcAAAAwAAMAAQAKAAcAAAAvAAMAAQAJAAcAAAAvAAQAAQAJAAcAAAAwAAQAAQAKAAcAAAAwAAUAAQAKAAgAAAAvAAUAAQAJAAgAAAAuAAUAAQAJAAgAAAAtAAUAAQAJAAgAAAAsAAUAAQAJAAgAAAArAAUAAQAJAAgAAAAqAAUAAQAJAAgAAAApAAUAAQAJAAgAAAAoAAUAAQAJAAgAAAAnAAUAAQAJAAgAAAAmAAUAAQAJAAgAAAAlAAUAAQAJAAgAAAAkAAUAAQAJAAgAAAAjAAUAAQAJAAgAAAAiAAUAAQAJAAgAAAAhAAUAAQAJAAgAAAAgAAUAAQAJAAgAAAAfAAUAAQAJAAgAAAAeAAUAAQAJAAgAAAAdAAUAAQAJAAgAAAAcAAUAAQAIAAgAAAAcAAQAAQAIAAcAAAAcAAMAAQAIAAcAAAAcAAIAAQAIAAcAAAAdAAIAAQAJAAcAAAAeAAIAAQAJAAcAAAAfAAIAAQAJAAcAAAAgAAIAAQAJAAcAAAAhAAIAAQAJAAcAAAAiAAIAAQAJAAcAAAAjAAIAAQAJAAcAAAAkAAIAAQAJAAcAAAAlAAIAAQAJAAcAAAAmAAIAAQAJAAcAAAAnAAIAAQAJAAcAAAAoAAIAAQAJAAcAAAApAAIAAQAJAAcAAAAqAAIAAQAJAAcAAAArAAIAAQAJAAcAAAAsAAIAAQAJAAcAAAAtAAIAAQAJAAcAAAAuAAIAAQAJAAcAAAAvAAIAAQAJAAcAAAAuAAMAAQAJAAcAAAAtAAMAAQAJAAcAAAAsAAMAAQAJAAcAAAArAAMAAQAJAAcAAAAqAAMAAQAJAAcAAAApAAMAAQAJAAcAAAAoAAMAAQAJAAcAAAAnAAMAAQAJAAcAAAAmAAMAAQAJAAcAAAAlAAMAAQAJAAcAAAAkAAMAAQAJAAcAAAAjAAMAAQAJAAcAAAAiAAMAAQAJAAcAAAAhAAMAAQAJAAcAAAAgAAMAAQAJAAcAAAAfAAMAAQAJAAcAAAAeAAMAAQAJAAcAAAAdAAMAAQAJAAcAAAAuAAQAAQAJAAcAAAAtAAQAAQAJAAcAAAAsAAQAAQAJAAcAAAArAAQAAQAJAAcAAAAqAAQAAQAJAAcAAAApAAQAAQAJAAcAAAAoAAQAAQAJAAcAAAAnAAQAAQAJAAcAAAAmAAQAAQAJAAcAAAAlAAQAAQAJAAcAAAAkAAQAAQAJAAcAAAAjAAQAAQAJAAcAAAAiAAQAAQAJAAcAAAAhAAQAAQAJAAcAAAAgAAQAAQAJAAcAAAAfAAQAAQAJAAcAAAAeAAQAAQAJAAcAAAAdAAQAAQAJAAcAAAA=") -tile_set = ExtResource("2_fyo8k") -metadata/_edit_lock_ = true - [node name="Roads" type="TileMapLayer" parent="."] texture_filter = 1 tile_map_data = PackedByteArray("AAAJAAcAAQABAA8AAAAJAAgAAQABABAAAAAJAAkAAQABABEAAAAKAAcAAQABAA8AAAAKAAgAAQABABAAAAAKAAkAAQABABEAAAALAAcAAQABAA8AAAALAAgAAQABABAAAAALAAkAAQABABEAAAAMAAcAAQABAA8AAAAMAAgAAQABABAAAAAMAAkAAQABABEAAAANAAcAAQABAA8AAAANAAgAAQABABAAAAANAAkAAQABABEAAAAOAAcAAQABAA8AAAAOAAgAAQABABAAAAAOAAkAAQABABEAAAAPAAcAAQABAA8AAAAPAAgAAQABABAAAAAPAAkAAQABABEAAAAQAAcAAQABAA8AAAAQAAgAAQABABAAAAAQAAkAAQABABEAAAARAAcAAQABAA8AAAARAAgAAQABABAAAAARAAkAAQABABEAAAASAAcAAQABAA8AAAASAAgAAQABABAAAAASAAkAAQABABEAAAATAAcAAQABAA8AAAATAAgAAQABABAAAAATAAkAAQABABEAAAAUAAcAAQABAA8AAAAUAAgAAQABABAAAAAUAAkAAQABABEAAAAVAAcAAQABAA8AAAAVAAgAAQABABAAAAAVAAkAAQABABEAAAAWAAcAAQABAA8AAAAWAAgAAQABABAAAAAWAAkAAQABABEAAAAYAAcAAQAIABEAAAAYAAgAAQAJABEAAAAYAAkAAQAIABAAAAAZAAcAAQAJABAAAAAZAAgAAQACAA8AAAAZAAkAAQAJABEAAAAaAAcAAQAHABEAAAAaAAgAAQAJABEAAAAaAAkAAQAHABAAAAAbAAcAAQAAAA8AAAAbAAgAAQAAABAAAAAbAAkAAQAAABEAAAAcAAcAAQABAA8AAAAcAAgAAQABABAAAAAcAAkAAQABABEAAAAdAAcAAQABAA8AAAAdAAgAAQABABAAAAAdAAkAAQABABEAAAAeAAcAAQABAA8AAAAeAAgAAQABABAAAAAeAAkAAQABABEAAAAfAAcAAQABAA8AAAAfAAgAAQABABAAAAAfAAkAAQABABEAAAAgAAcAAQABAA8AAAAgAAgAAQABABAAAAAgAAkAAQABABEAAAAhAAcAAQABAA8AAAAhAAgAAQABABAAAAAhAAkAAQABABEAAAAiAAcAAQABAA8AAAAiAAgAAQABABAAAAAiAAkAAQABABEAAAAjAAcAAQABAA8AAAAjAAgAAQABABAAAAAjAAkAAQABABEAAAAkAAcAAQABAA8AAAAkAAgAAQABABAAAAAkAAkAAQABABEAAAAlAAcAAQABAA8AAAAlAAgAAQABABAAAAAlAAkAAQABABEAAAAmAAcAAQABAA8AAAAmAAgAAQABABAAAAAmAAkAAQABABEAAAAnAAcAAQABAA8AAAAnAAgAAQABABAAAAAnAAkAAQABABEAAAAoAAcAAQABAA8AAAAoAAgAAQAJABEAAAAoAAkAAQAIABAAAAApAAcAAQABAA8AAAApAAgAAQAJABEAAAApAAkAAQAJABEAAAAqAAcAAQABAA8AAAAqAAgAAQAJABEAAAAqAAkAAQAHABAAAAArAAcAAQABAA8AAAArAAgAAQABABAAAAArAAkAAQABABEAAAAsAAcAAQABAA8AAAAsAAgAAQABABAAAAAsAAkAAQABABEAAAAYAAIAAQACABEAAAAZAAIAAQADABEAAAAaAAIAAQAEABEAAAAYAAMAAQACABEAAAAZAAMAAQADABEAAAAaAAMAAQAEABEAAAAYAAQAAQACABEAAAAZAAQAAQADABEAAAAaAAQAAQAEABEAAAAYAAUAAQACABEAAAAZAAUAAQADABEAAAAaAAUAAQAEABEAAAAYAAYAAQACABAAAAAZAAYAAQADABAAAAAaAAYAAQAEABAAAAAYAAsAAQACABEAAAAZAAsAAQADABEAAAAaAAsAAQAEABEAAAAYAAwAAQACABEAAAAZAAwAAQADABEAAAAaAAwAAQAEABEAAAAYAA0AAQACABEAAAAZAA0AAQADABEAAAAaAA0AAQAEABEAAAAYAA4AAQACABEAAAAZAA4AAQADABEAAAAaAA4AAQAEABEAAAAYAA8AAQACABEAAAAZAA8AAQADABEAAAAaAA8AAQAEABEAAAAYABAAAQACABEAAAAZABAAAQADABEAAAAaABAAAQAEABEAAAAYABEAAQACABEAAAAZABEAAQADABEAAAAaABEAAQAEABEAAAAYABIAAQACABEAAAAZABIAAQADABEAAAAaABIAAQAEABEAAAAYABMAAQACABEAAAAZABMAAQADABEAAAAaABMAAQAEABEAAAAYABQAAQACABEAAAAZABQAAQADABEAAAAaABQAAQAEABEAAAAYABUAAQACABEAAAAZABUAAQADABEAAAAaABUAAQAEABEAAAAYABYAAQACABEAAAAZABYAAQADABEAAAAaABYAAQAEABEAAAAYABcAAQACABEAAAAZABcAAQADABEAAAAaABcAAQAEABEAAAAYABgAAQACABEAAAAZABgAAQADABEAAAAaABgAAQAEABEAAAAYABkAAQACABEAAAAZABkAAQADABEAAAAaABkAAQAEABEAAAAYAAAAAQACABEAAAAZAAAAAQADABEAAAAaAAAAAQAEABEAAAAYAAEAAQACABEAAAAZAAEAAQADABEAAAAaAAEAAQAEABEAAAAYABoAAQACABEAAAAZABoAAQADABEAAAAaABoAAQAEABEAAAAYABsAAQACABEAAAAZABsAAQADABEAAAAaABsAAQAEABEAAAAAAAcAAQABAA8AAAAAAAgAAQABABAAAAAAAAkAAQABABEAAAABAAcAAQABAA8AAAABAAgAAQABABAAAAABAAkAAQABABEAAAACAAcAAQABAA8AAAACAAgAAQABABAAAAACAAkAAQABABEAAAADAAcAAQABAA8AAAADAAgAAQABABAAAAADAAkAAQABABEAAAAEAAcAAQABAA8AAAAEAAgAAQABABAAAAAEAAkAAQABABEAAAAFAAcAAQABAA8AAAAFAAgAAQABABAAAAAFAAkAAQABABEAAAAGAAcAAQABAA8AAAAGAAgAAQABABAAAAAGAAkAAQABABEAAAAHAAcAAQABAA8AAAAHAAgAAQABABAAAAAHAAkAAQABABEAAAAIAAcAAQABAA8AAAAIAAgAAQABABAAAAAIAAkAAQABABEAAAAtAAcAAQABAA8AAAAtAAgAAQABABAAAAAtAAkAAQABABEAAAAuAAcAAQABAA8AAAAuAAgAAQABABAAAAAuAAkAAQABABEAAAAvAAcAAQABAA8AAAAvAAgAAQABABAAAAAvAAkAAQABABEAAAAwAAcAAQABAA8AAAAwAAgAAQABABAAAAAwAAkAAQABABEAAAAxAAcAAQABAA8AAAAxAAgAAQABABAAAAAxAAkAAQABABEAAAAYAAoAAQACABAAAAAZAAoAAQADABAAAAAaAAoAAQAEABAAAAAXAAcAAQAAAA8AAAAXAAgAAQAAABAAAAAXAAkAAQAAABEAAAAoAAoAAQACABEAAAAoAAsAAQACABAAAAAoABQAAQACABAAAAAoABUAAQACABEAAAApAAoAAQAJABEAAAApAAsAAQADABAAAAApABQAAQADABAAAAApABUAAQADABEAAAAqAAoAAQAEABEAAAAqAAsAAQAEABAAAAAqABQAAQAEABAAAAAqABUAAQAEABEAAAAoABgAAQACABEAAAAqABgAAQAEABEAAAAoABoAAQACABEAAAAqABoAAQAEABEAAAApABoAAQADABEAAAApABgAAQADABEAAAAoABkAAQACABEAAAAqABkAAQAEABEAAAAoABYAAQACABEAAAApABYAAQADABEAAAAqABYAAQAEABEAAAAoABcAAQACABEAAAApABcAAQADABEAAAAqABcAAQAEABEAAAAmAAwAAQAKABAAAAAmAA0AAQAKABAAAAAmAA4AAQAKABAAAAAmAA8AAQAKABAAAAAmABAAAQAKABAAAAAmABEAAQAKABAAAAAmABIAAQAKABAAAAAmABMAAQAKABAAAAAnAAwAAQABABEAAAAnAA0AAQABABEAAAAnAA4AAQABABEAAAAnAA8AAQABABEAAAAnABAAAQABABEAAAAnABEAAQABABEAAAAnABIAAQABABEAAAAnABMAAQABABEAAAAoAAwAAQACABEAAAAoAA0AAQACABEAAAAoAA4AAQACABEAAAAoAA8AAQACABEAAAAoABAAAQACABEAAAAoABEAAQACABEAAAAoABIAAQACABEAAAAoABMAAQACABEAAAApAAwAAQADABEAAAApAA0AAQADABEAAAApAA4AAQADABEAAAApAA8AAQADABEAAAApABAAAQADABEAAAApABEAAQADABEAAAApABIAAQADABEAAAApABMAAQADABEAAAAqAAwAAQAEABEAAAAqAA0AAQAEABEAAAAqAA4AAQAEABEAAAAqAA8AAQAEABEAAAAqABAAAQAEABEAAAAqABEAAQAEABEAAAAqABIAAQAEABEAAAAqABMAAQAEABEAAAArAAwAAQABABEAAAArAA0AAQABABEAAAArAA4AAQABABEAAAArAA8AAQABABEAAAArABAAAQABABEAAAArABEAAQABABEAAAArABIAAQABABEAAAArABMAAQABABEAAAAsAAwAAQAKABAAAAAsAA0AAQAKABAAAAAsAA4AAQAKABAAAAAsAA8AAQAKABAAAAAsABAAAQAKABAAAAAsABEAAQAKABAAAAAsABIAAQAKABAAAAAsABMAAQAKABAAAAAmABUAAQAKABAAAAAmABYAAQAKABAAAAAmABcAAQAKABAAAAAmABgAAQAKABAAAAAmABkAAQAKABAAAAAmABoAAQAKABAAAAAmABsAAQAKABAAAAAmABwAAQAKABAAAAAnABUAAQABABEAAAAnABYAAQABABEAAAAnABcAAQABABEAAAAnABgAAQABABEAAAAnABkAAQABABEAAAAnABoAAQABABEAAAAnABsAAQABABEAAAAnABwAAQABABEAAAAoABsAAQACABEAAAAoABwAAQACABEAAAApABkAAQADABEAAAApABsAAQADABEAAAApABwAAQADABEAAAAqABsAAQAEABEAAAAqABwAAQAEABEAAAArABUAAQABABEAAAArABYAAQABABEAAAArABcAAQABABEAAAArABgAAQABABEAAAArABkAAQABABEAAAArABoAAQABABEAAAArABsAAQABABEAAAArABwAAQABABEAAAAsABUAAQAKABAAAAAsABYAAQAKABAAAAAsABcAAQAKABAAAAAsABgAAQAKABAAAAAsABkAAQAKABAAAAAsABoAAQAKABAAAAAsABsAAQAKABAAAAAsABwAAQAKABAAAAA=") tile_set = ExtResource("2_fyo8k") metadata/_edit_lock_ = true -[node name="Buildings" type="TileMapLayer" parent="."] +[node name="Obstacles" type="TileMapLayer" parent="."] + +[node name="Water" type="TileMapLayer" parent="Obstacles"] +tile_map_data = PackedByteArray("AAAcAAEAAQAIAAYAAAAdAAEAAQAJAAYAAAAeAAEAAQAJAAYAAAAfAAEAAQAJAAYAAAAgAAEAAQAJAAYAAAAhAAEAAQAJAAYAAAAiAAEAAQAJAAYAAAAjAAEAAQAJAAYAAAAkAAEAAQAJAAYAAAAlAAEAAQAJAAYAAAAmAAEAAQAJAAYAAAAnAAEAAQAJAAYAAAAoAAEAAQAJAAYAAAApAAEAAQAJAAYAAAAqAAEAAQAJAAYAAAArAAEAAQAJAAYAAAAsAAEAAQAJAAYAAAAtAAEAAQAJAAYAAAAuAAEAAQAJAAYAAAAvAAEAAQAJAAYAAAAwAAEAAQAKAAYAAAAwAAIAAQAKAAcAAAAwAAMAAQAKAAcAAAAvAAMAAQAJAAcAAAAvAAQAAQAJAAcAAAAwAAQAAQAKAAcAAAAwAAUAAQAKAAgAAAAvAAUAAQAJAAgAAAAuAAUAAQAJAAgAAAAtAAUAAQAJAAgAAAAsAAUAAQAJAAgAAAArAAUAAQAJAAgAAAAqAAUAAQAJAAgAAAApAAUAAQAJAAgAAAAoAAUAAQAJAAgAAAAnAAUAAQAJAAgAAAAmAAUAAQAJAAgAAAAlAAUAAQAJAAgAAAAkAAUAAQAJAAgAAAAjAAUAAQAJAAgAAAAiAAUAAQAJAAgAAAAhAAUAAQAJAAgAAAAgAAUAAQAJAAgAAAAfAAUAAQAJAAgAAAAeAAUAAQAJAAgAAAAdAAUAAQAJAAgAAAAcAAUAAQAIAAgAAAAcAAQAAQAIAAcAAAAcAAMAAQAIAAcAAAAcAAIAAQAIAAcAAAAdAAIAAQAJAAcAAAAeAAIAAQAJAAcAAAAfAAIAAQAJAAcAAAAgAAIAAQAJAAcAAAAhAAIAAQAJAAcAAAAiAAIAAQAJAAcAAAAjAAIAAQAJAAcAAAAkAAIAAQAJAAcAAAAlAAIAAQAJAAcAAAAmAAIAAQAJAAcAAAAnAAIAAQAJAAcAAAAoAAIAAQAJAAcAAAApAAIAAQAJAAcAAAAqAAIAAQAJAAcAAAArAAIAAQAJAAcAAAAsAAIAAQAJAAcAAAAtAAIAAQAJAAcAAAAuAAIAAQAJAAcAAAAvAAIAAQAJAAcAAAAuAAMAAQAJAAcAAAAtAAMAAQAJAAcAAAAsAAMAAQAJAAcAAAArAAMAAQAJAAcAAAAqAAMAAQAJAAcAAAApAAMAAQAJAAcAAAAoAAMAAQAJAAcAAAAnAAMAAQAJAAcAAAAmAAMAAQAJAAcAAAAlAAMAAQAJAAcAAAAkAAMAAQAJAAcAAAAjAAMAAQAJAAcAAAAiAAMAAQAJAAcAAAAhAAMAAQAJAAcAAAAgAAMAAQAJAAcAAAAfAAMAAQAJAAcAAAAeAAMAAQAJAAcAAAAdAAMAAQAJAAcAAAAuAAQAAQAJAAcAAAAtAAQAAQAJAAcAAAAsAAQAAQAJAAcAAAArAAQAAQAJAAcAAAAqAAQAAQAJAAcAAAApAAQAAQAJAAcAAAAoAAQAAQAJAAcAAAAnAAQAAQAJAAcAAAAmAAQAAQAJAAcAAAAlAAQAAQAJAAcAAAAkAAQAAQAJAAcAAAAjAAQAAQAJAAcAAAAiAAQAAQAJAAcAAAAhAAQAAQAJAAcAAAAgAAQAAQAJAAcAAAAfAAQAAQAJAAcAAAAeAAQAAQAJAAcAAAAdAAQAAQAJAAcAAAA=") +tile_set = ExtResource("2_fyo8k") +metadata/_edit_lock_ = true + +[node name="Buildings" type="TileMapLayer" parent="Obstacles"] tile_map_data = PackedByteArray("AAAgAAsAAQAAAAMAAAAgAAwAAQAAAAQAAAAgAA0AAQAAAAUAAAAgAA4AAQAQAAQAAAAgAA8AAQAQAAUAAAAgABAAAQAQAAYAAAAgABEAAQAQAAYAAAAgABIAAQAQAAYAAAAgABMAAQAQAAcAAAAhAAsAAQABAAMAAAAhAAwAAQABAAQAAAAhAA0AAQABAAUAAAAhAA4AAQASAAQAAAAhAA8AAQASAAYAAAAhABAAAQASAAYAAAAhABEAAQASAAYAAAAhABIAAQASAAYAAAAhABMAAQASAAcAAAAiAAsAAQABAAMAAAAiAAwAAQABAAQAAAAiAA0AAQABAAUAAAAiAA4AAQASAAQAAAAiAA8AAQASAAYAAAAiABAAAQASAAYAAAAiABEAAQASAAYAAAAiABIAAQASAAYAAAAiABMAAQASAAcAAAAjAAsAAQABAAMAAAAjAAwAAQABAAQAAAAjAA0AAQABAAUAAAAjAA4AAQASAAQAAAAjAA8AAQASAAYAAAAjABAAAQASAAYAAAAjABEAAQASAAYAAAAjABIAAQASAAYAAAAjABMAAQASAAcAAAAkAAsAAQACAAMAAAAkAAwAAQACAAQAAAAkAA0AAQACAAUAAAAkAA4AAQAQAAQAAAAkAA8AAQAQAAYAAAAkABAAAQAQAAUAAAAkABEAAQAQAAYAAAAkABIAAQAQAAUAAAAkABMAAQAQAAcAAAAwAAsAAQAAAAMAAAAwAAwAAQAAAAQAAAAwAA0AAQAAAAUAAAAwAA4AAQAQAAQAAAAwAA8AAQAQAAUAAAAwABAAAQAQAAYAAAAwABEAAQAQAAYAAAAwABIAAQAQAAYAAAAxAAsAAQABAAMAAAAxAAwAAQABAAQAAAAxAA0AAQABAAUAAAAxAA4AAQASAAQAAAAxAA8AAQASAAYAAAAxABAAAQASAAYAAAAxABEAAQASAAYAAAAxABIAAQASAAYAAAAyAAsAAQABAAMAAAAyAAwAAQABAAQAAAAyAA0AAQABAAUAAAAyAA4AAQASAAQAAAAyAA8AAQASAAYAAAAyABAAAQASAAYAAAAyABEAAQASAAYAAAAyABIAAQASAAYAAAAzAAsAAQABAAMAAAAzAAwAAQABAAQAAAAzAA0AAQABAAUAAAAzAA4AAQASAAQAAAAzAA8AAQASAAYAAAAzABAAAQASAAYAAAAzABEAAQASAAYAAAAzABIAAQASAAYAAAA0AAsAAQACAAMAAAA0AAwAAQACAAQAAAA0AA0AAQACAAUAAAA0AA4AAQAQAAQAAAA0AA8AAQAQAAYAAAA0ABAAAQAQAAUAAAA0ABEAAQAQAAYAAAA0ABIAAQAQAAUAAAAwABMAAQAQAAcAAAAxABMAAQASAAcAAAAyABMAAQASAAcAAAAzABMAAQASAAcAAAA0ABMAAQAQAAcAAAA=") tile_set = ExtResource("2_fyo8k") metadata/_edit_lock_ = true -[node name="Details" type="TileMapLayer" parent="Buildings"] +[node name="Details" type="TileMapLayer" parent="Obstacles/Buildings"] tile_map_data = PackedByteArray("AAAiABMAAQAPAAwAAAAgAA8AAQAOAA8AAAAgABAAAQAOABAAAAAgABEAAQAOABAAAAAgABIAAQAOABEAAAAkAA8AAQAOAA8AAAAkABAAAQAOABAAAAAkABEAAQAOABAAAAAkABIAAQAOABEAAAAhAA4AAQALABAAAAAjAA4AAQALABAAAAAiAA8AAQANABAAAAAiABEAAQANABAAAAA=") tile_set = ExtResource("2_fyo8k") metadata/_edit_lock_ = true -[node name="TileMapLayer" type="TileMapLayer" parent="Buildings"] +[node name="TileMapLayer" type="TileMapLayer" parent="Obstacles/Buildings"] tile_map_data = PackedByteArray("AAAgAA4AAQAKAAwAAAAkAA4AAQAKAAwAAAAiAA8AAQAHAAwAAAAiABEAAQAHAAwAAAAhAA4AAQAHAAwAAAAjAA4AAQAHAAwAAAAgAAwAAQAAAAgAAAAkAAwAAQAEAAgAAAAhAAwAAQABAAkAAAAiAAwAAQACAAkAAAAjAAwAAQADAAkAAAAhABMAAQAGAAoAAAAjABMAAQAGAAoAAAA=") tile_set = ExtResource("2_fyo8k") diff --git a/Scenes/Map/map_new.gd b/Scenes/Map/map_new.gd new file mode 100644 index 0000000..8acb5fc --- /dev/null +++ b/Scenes/Map/map_new.gd @@ -0,0 +1,45 @@ +extends Node2D + +@onready var GroundLayer: TileMapLayer = $Ground +@onready var ObstacleLayer: TileMapLayer = $Obstacles +# Maybe a SubClass that is a Singleton, so we can create one grid +# and then change it per Map +var astarGrid: AStarGrid2D + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + #astarGrid = generateSimpleGrid() + astarGrid = generateObstacleGrid() + %GridDisplay.grid = astarGrid + +func generateSimpleGrid() -> AStarGrid2D: + var grid = AStarGrid2D.new() + grid.cell_size = Vector2(GroundLayer.tile_set.tile_size) + grid.region = GroundLayer.get_used_rect() + grid.update() + + for id in GroundLayer.get_used_cells(): + var data: TileData = GroundLayer.get_cell_tile_data(id) + if data and data.get_custom_data('obstacle'): + grid.set_point_solid(id) + + return grid + +func generateObstacleGrid() -> AStarGrid2D: + astarGrid = AStarGrid2D.new() + astarGrid.cell_size = Vector2(GroundLayer.tile_set.tile_size) + astarGrid.region = GroundLayer.get_used_rect() + astarGrid.update() + + var layers = ObstacleLayer.get_children() + for layer in layers: + for id in layer.get_used_cells(): + var data: TileData = layer.get_cell_tile_data(id) + if data and data.get_custom_data('obstacle'): + astarGrid.set_point_solid(id) + + return astarGrid + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/Scenes/Map/map_new.gd.uid b/Scenes/Map/map_new.gd.uid new file mode 100644 index 0000000..692271e --- /dev/null +++ b/Scenes/Map/map_new.gd.uid @@ -0,0 +1 @@ +uid://dlnu7a7viuh8a diff --git a/addons/smartcamera2D/Camera2D.svg b/addons/smartcamera2D/Camera2D.svg index e51e3c6..468f171 100644 --- a/addons/smartcamera2D/Camera2D.svg +++ b/addons/smartcamera2D/Camera2D.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + \ No newline at end of file diff --git a/addons/smartcamera2D/Camera2D.svg.import b/addons/smartcamera2D/Camera2D.svg.import index ce48fae..2f16264 100644 --- a/addons/smartcamera2D/Camera2D.svg.import +++ b/addons/smartcamera2D/Camera2D.svg.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Camera2D.svg-e2316bbab95f65a3786cbb6cb8741380 compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/addons/smartcamera2D/plugin.cfg b/addons/smartcamera2D/plugin.cfg index 3563927..6e9ffe6 100644 --- a/addons/smartcamera2D/plugin.cfg +++ b/addons/smartcamera2D/plugin.cfg @@ -1,7 +1,7 @@ [plugin] -name="smartcamera2D" -description="A plug-and-play camera controller with smooth follow, screen shake, zoom" -author="Async Studio" -version="1.0" -script="plugin.gd" +name = "smartcamera2D" +description = "A plug-and-play camera controller with smooth follow, screen shake, zoom" +author = "Async Studio" +version = "1.0" +script = "plugin.gd" diff --git a/game_icon.png b/game_icon.png new file mode 100644 index 0000000..e825a1d Binary files /dev/null and b/game_icon.png differ diff --git a/game_icon.png.import b/game_icon.png.import new file mode 100644 index 0000000..a539d11 --- /dev/null +++ b/game_icon.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dorwg1gp5fr41" +path="res://.godot/imported/game_icon.png-389b50e564fffef90defc972f4d00b12.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://game_icon.png" +dest_files=["res://.godot/imported/game_icon.png-389b50e564fffef90defc972f4d00b12.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/icon.svg b/icon.svg index 9d8b7fa..9e66748 100644 --- a/icon.svg +++ b/icon.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import index 6083460..844d98b 100644 --- a/icon.svg.import +++ b/icon.svg.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.cte compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/project.godot b/project.godot index f763368..8d181a8 100644 --- a/project.godot +++ b/project.godot @@ -13,7 +13,7 @@ config_version=5 config/name="TurnBasedStrategyGame" run/main_scene="uid://d05j5yuhlsxp0" config/features=PackedStringArray("4.5", "GL Compatibility") -config/icon="res://icon.svg" +config/icon="uid://dorwg1gp5fr41" [autoload] @@ -73,11 +73,13 @@ SetMarker={ ZoomIn={ "deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":43,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } ZoomOut={ "deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":47,"key_label":0,"unicode":45,"location":0,"echo":false,"script":null) ] }