feat: Upgrade Editor to v2 (Sidebar, Layers, Ghost), Tiled Setup, Asset Integration
BIN
assets/.DS_Store
vendored
BIN
assets/DEMO_FAZA1/.DS_Store
vendored
BIN
assets/DEMO_FAZA1/Environment/water_tile_0.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_1.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_10.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_11.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_12.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_13.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_14.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_15.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_2.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_3.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_4.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_5.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_6.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_7.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_8.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
assets/DEMO_FAZA1/Environment/water_tile_9.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
283
assets/maps/clean_assets.tsx
Normal file
@@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" ?>
|
||||
<tileset version="1.10" tiledversion="1.11.0" name="clean_assets" tilewidth="256" tileheight="256" tilecount="93" columns="0">
|
||||
<grid orientation="orthogonal" width="1" height="1"/>
|
||||
<tile id="0">
|
||||
<image source="../DEMO_FAZA1/Obstacles/trnje.png"/>
|
||||
</tile>
|
||||
<tile id="1">
|
||||
<image source="../DEMO_FAZA1/UI/health_critical.png"/>
|
||||
</tile>
|
||||
<tile id="2">
|
||||
<image source="../DEMO_FAZA1/UI/action_btn.png"/>
|
||||
</tile>
|
||||
<tile id="3">
|
||||
<image source="../DEMO_FAZA1/UI/inventory_slot.png"/>
|
||||
</tile>
|
||||
<tile id="4">
|
||||
<image source="../DEMO_FAZA1/UI/minimap_frame.png"/>
|
||||
</tile>
|
||||
<tile id="5">
|
||||
<image source="../DEMO_FAZA1/UI/weather_icons_sheet.png"/>
|
||||
</tile>
|
||||
<tile id="6">
|
||||
<image source="../DEMO_FAZA1/UI/hotbar_background.png"/>
|
||||
</tile>
|
||||
<tile id="7">
|
||||
<image source="../DEMO_FAZA1/UI/inventory_panel.png"/>
|
||||
</tile>
|
||||
<tile id="8">
|
||||
<image source="../DEMO_FAZA1/UI/health_bar.png"/>
|
||||
</tile>
|
||||
<tile id="9">
|
||||
<image source="../DEMO_FAZA1/UI/badge_trial.png"/>
|
||||
</tile>
|
||||
<tile id="10">
|
||||
<image source="../DEMO_FAZA1/UI/weather_widget.png"/>
|
||||
</tile>
|
||||
<tile id="11">
|
||||
<image source="../DEMO_FAZA1/UI/badge_purchase.png"/>
|
||||
</tile>
|
||||
<tile id="12">
|
||||
<image source="../DEMO_FAZA1/UI/dialog_panel.png"/>
|
||||
</tile>
|
||||
<tile id="13">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_5.png"/>
|
||||
</tile>
|
||||
<tile id="14">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_4.png"/>
|
||||
</tile>
|
||||
<tile id="15">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_0.png"/>
|
||||
</tile>
|
||||
<tile id="16">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_1.png"/>
|
||||
</tile>
|
||||
<tile id="17">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_3.png"/>
|
||||
</tile>
|
||||
<tile id="18">
|
||||
<image source="../DEMO_FAZA1/Trees/tree_adult_2.png"/>
|
||||
</tile>
|
||||
<tile id="19">
|
||||
<image source="../DEMO_FAZA1/Structures/foundation_concrete.png"/>
|
||||
</tile>
|
||||
<tile id="20">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_4.png"/>
|
||||
</tile>
|
||||
<tile id="21">
|
||||
<image source="../DEMO_FAZA1/Ground/tla_trava_tekstura.png"/>
|
||||
</tile>
|
||||
<tile id="22">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_5.png"/>
|
||||
</tile>
|
||||
<tile id="23">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_7.png"/>
|
||||
</tile>
|
||||
<tile id="24">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_6.png"/>
|
||||
</tile>
|
||||
<tile id="25">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_2.png"/>
|
||||
</tile>
|
||||
<tile id="26">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_3.png"/>
|
||||
</tile>
|
||||
<tile id="27">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_1.png"/>
|
||||
</tile>
|
||||
<tile id="28">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_0.png"/>
|
||||
</tile>
|
||||
<tile id="29">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_12.png"/>
|
||||
</tile>
|
||||
<tile id="30">
|
||||
<image source="../DEMO_FAZA1/Ground/path_mud_0.png"/>
|
||||
</tile>
|
||||
<tile id="31">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_13.png"/>
|
||||
</tile>
|
||||
<tile id="32">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_11.png"/>
|
||||
</tile>
|
||||
<tile id="33">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_10.png"/>
|
||||
</tile>
|
||||
<tile id="34">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_14.png"/>
|
||||
</tile>
|
||||
<tile id="35">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_15.png"/>
|
||||
</tile>
|
||||
<tile id="36">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_8.png"/>
|
||||
</tile>
|
||||
<tile id="37">
|
||||
<image source="../DEMO_FAZA1/Ground/path_tile_9.png"/>
|
||||
</tile>
|
||||
<tile id="38">
|
||||
<image source="../DEMO_FAZA1/Ground/ground_pebbles.png"/>
|
||||
</tile>
|
||||
<tile id="39">
|
||||
<image source="../DEMO_FAZA1/Ground/ground_dirt_patch.png"/>
|
||||
</tile>
|
||||
<tile id="40">
|
||||
<image source="../DEMO_FAZA1/VFX/toxic_fog.png"/>
|
||||
</tile>
|
||||
<tile id="41">
|
||||
<image source="../DEMO_FAZA1/VFX/overlay_amnesia_blood.png"/>
|
||||
</tile>
|
||||
<tile id="42">
|
||||
<image source="../DEMO_FAZA1/Vegetation/visoka_trava_v2.png"/>
|
||||
</tile>
|
||||
<tile id="43">
|
||||
<image source="../DEMO_FAZA1/Vegetation/grass_cluster_dense.png"/>
|
||||
</tile>
|
||||
<tile id="44">
|
||||
<image source="../DEMO_FAZA1/Vegetation/trava_sop.png"/>
|
||||
</tile>
|
||||
<tile id="45">
|
||||
<image source="../DEMO_FAZA1/Vegetation/bush_hiding_spot.png"/>
|
||||
</tile>
|
||||
<tile id="46">
|
||||
<image source="../DEMO_FAZA1/Vegetation/drevo_veliko.png"/>
|
||||
</tile>
|
||||
<tile id="47">
|
||||
<image source="../DEMO_FAZA1/Vegetation/visoka_trava.png"/>
|
||||
</tile>
|
||||
<tile id="48">
|
||||
<image source="../DEMO_FAZA1/Vegetation/drevo_faza_2.png"/>
|
||||
</tile>
|
||||
<tile id="49">
|
||||
<image source="../DEMO_FAZA1/Vegetation/drevo_faza_1.png"/>
|
||||
</tile>
|
||||
<tile id="50">
|
||||
<image source="../DEMO_FAZA1/Vegetation/drevo_srednje.png"/>
|
||||
</tile>
|
||||
<tile id="51">
|
||||
<image source="../DEMO_FAZA1/Vegetation/grass_cluster_flowery.png"/>
|
||||
</tile>
|
||||
<tile id="52">
|
||||
<image source="../DEMO_FAZA1/Environment/fence_sign_2.png"/>
|
||||
</tile>
|
||||
<tile id="53">
|
||||
<image source="../DEMO_FAZA1/Environment/mud_puddle.png"/>
|
||||
</tile>
|
||||
<tile id="54">
|
||||
<image source="../DEMO_FAZA1/Environment/water_clean_patch.png"/>
|
||||
</tile>
|
||||
<tile id="55">
|
||||
<image source="../DEMO_FAZA1/Environment/sotor.png"/>
|
||||
</tile>
|
||||
<tile id="56">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_14.png"/>
|
||||
</tile>
|
||||
<tile id="57">
|
||||
<image source="../DEMO_FAZA1/Environment/fence_sign_0.png"/>
|
||||
</tile>
|
||||
<tile id="58">
|
||||
<image source="../DEMO_FAZA1/Environment/fence_sign_1.png"/>
|
||||
</tile>
|
||||
<tile id="59">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_15.png"/>
|
||||
</tile>
|
||||
<tile id="60">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_11.png"/>
|
||||
</tile>
|
||||
<tile id="61">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_10.png"/>
|
||||
</tile>
|
||||
<tile id="62">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_12.png"/>
|
||||
</tile>
|
||||
<tile id="63">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_13.png"/>
|
||||
</tile>
|
||||
<tile id="64">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_0.png"/>
|
||||
</tile>
|
||||
<tile id="65">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_1.png"/>
|
||||
</tile>
|
||||
<tile id="66">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_3.png"/>
|
||||
</tile>
|
||||
<tile id="67">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_9.png"/>
|
||||
</tile>
|
||||
<tile id="68">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_8.png"/>
|
||||
</tile>
|
||||
<tile id="69">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_2.png"/>
|
||||
</tile>
|
||||
<tile id="70">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_6.png"/>
|
||||
</tile>
|
||||
<tile id="71">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_7.png"/>
|
||||
</tile>
|
||||
<tile id="72">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_5.png"/>
|
||||
</tile>
|
||||
<tile id="73">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_4.png"/>
|
||||
</tile>
|
||||
<tile id="74">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_3.png"/>
|
||||
</tile>
|
||||
<tile id="75">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_2.png"/>
|
||||
</tile>
|
||||
<tile id="76">
|
||||
<image source="../DEMO_FAZA1/Environment/dead_nature_8.png"/>
|
||||
</tile>
|
||||
<tile id="77">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_0.png"/>
|
||||
</tile>
|
||||
<tile id="78">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_1.png"/>
|
||||
</tile>
|
||||
<tile id="79">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_5.png"/>
|
||||
</tile>
|
||||
<tile id="80">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_4.png"/>
|
||||
</tile>
|
||||
<tile id="81">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_6.png"/>
|
||||
</tile>
|
||||
<tile id="82">
|
||||
<image source="../DEMO_FAZA1/Environment/taborni_ogenj.png"/>
|
||||
</tile>
|
||||
<tile id="83">
|
||||
<image source="../DEMO_FAZA1/Environment/water_tile_7.png"/>
|
||||
</tile>
|
||||
<tile id="84">
|
||||
<image source="../DEMO_FAZA1/Environment/sign_danger.png"/>
|
||||
</tile>
|
||||
<tile id="85">
|
||||
<image source="../DEMO_FAZA1/Environment/obstacle_thorns.png"/>
|
||||
</tile>
|
||||
<tile id="86">
|
||||
<image source="../DEMO_FAZA1/Environment/stream_final_v6.png"/>
|
||||
</tile>
|
||||
<tile id="87">
|
||||
<image source="../DEMO_FAZA1/Environment/stream_final_v7.png"/>
|
||||
</tile>
|
||||
<tile id="88">
|
||||
<image source="../DEMO_FAZA1/Items/spalna_vreca.png"/>
|
||||
</tile>
|
||||
<tile id="89">
|
||||
<image source="../DEMO_FAZA1/Items/item_longboard_wheel.png"/>
|
||||
</tile>
|
||||
<tile id="90">
|
||||
<image source="../DEMO_FAZA1/Items/hay_drop_0.png"/>
|
||||
</tile>
|
||||
<tile id="91">
|
||||
<image source="../DEMO_FAZA1/Characters/Kai_Dreads.png"/>
|
||||
</tile>
|
||||
<tile id="92">
|
||||
<image source="../DEMO_FAZA1/Characters/kai_walk_sheet.png"/>
|
||||
</tile>
|
||||
</tileset>
|
||||
275
assets/maps/game_map.tmx
Normal file
@@ -0,0 +1,275 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="50" height="50" tilewidth="16" tileheight="16" infinite="0" nextlayerid="1" nextobjectid="1">
|
||||
<tileset firstgid="1" source="clean_assets.tsx"/>
|
||||
<layer id="1" name="Water" width="50" height="50">
|
||||
<data encoding="csv">
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="2" name="Ground_Dirt" width="50" height="50">
|
||||
<data encoding="csv">
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="3" name="Decorations" width="50" height="50">
|
||||
<data encoding="csv">
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="4" name="Buildings_Solid" width="50" height="50">
|
||||
<data encoding="csv">
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="5" name="Foreground_Top" width="50" height="50">
|
||||
<data encoding="csv">
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="6" name="Collision_Logic"/>
|
||||
</map>
|
||||
@@ -3,15 +3,28 @@
|
||||
"height": 4300,
|
||||
"width": 2
|
||||
},
|
||||
"activeFile": "",
|
||||
"activeFile": "assets/maps/game_map.tmx",
|
||||
"expandedProjectPaths": [
|
||||
],
|
||||
"file.lastUsedOpenFilter": "All Files (*)",
|
||||
"fileStates": {
|
||||
"assets/maps/clean_assets.tsx": {
|
||||
"scaleInDock": 0.12
|
||||
},
|
||||
"assets/maps/game_map.tmx": {
|
||||
"scale": 0.6519375,
|
||||
"selectedLayer": 1,
|
||||
"viewCenter": {
|
||||
"x": 387.3070654779025,
|
||||
"y": 558.3357300354712
|
||||
}
|
||||
}
|
||||
},
|
||||
"openFiles": [
|
||||
"assets/maps/game_map.tmx"
|
||||
],
|
||||
"project": "nova farma .tiled-project",
|
||||
"recentFiles": [
|
||||
"assets/maps/game_map.tmx"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,127 +1,144 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
🧱 GENERATE TILED TILESETS (TSX)
|
||||
Creates .tsx files for all green-screened assets with transparency configured.
|
||||
"""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
import glob
|
||||
import xml.etree.ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
|
||||
# Constants
|
||||
ASSET_ROOT = "assets"
|
||||
TILESET_OUTPUT_DIR = "assets/maps/tilesets"
|
||||
TRANSPARENT_COLOR = "00ff00" # Green Screen Color
|
||||
# Configuration
|
||||
ASSETS_DIR_REL = 'assets/DEMO_FAZA1'
|
||||
MAPS_DIR = 'assets/maps'
|
||||
TSX_NAME = 'clean_assets.tsx'
|
||||
TMX_NAME = 'game_map.tmx'
|
||||
|
||||
# XML Templates
|
||||
TSX_HEADER = """<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.10" tiledversion="1.10.2" name="{name}" tilewidth="{width}" tileheight="{height}" tilecount="{count}" columns="0">
|
||||
<grid orientation="orthogonal" width="1" height="1"/>
|
||||
"""
|
||||
# Layer Structure
|
||||
LAYERS = [
|
||||
'Water',
|
||||
'Ground_Dirt',
|
||||
'Decorations',
|
||||
'Buildings_Solid',
|
||||
'Foreground_Top',
|
||||
]
|
||||
OBJECT_LAYERS = ['Collision_Logic']
|
||||
|
||||
TILE_TEMPLATE = """ <tile id="{id}">
|
||||
<image width="{width}" height="{height}" source="{source}" trans="{trans}"/>
|
||||
</tile>
|
||||
"""
|
||||
BASE_DIR = os.getcwd()
|
||||
|
||||
TSX_FOOTER = """</tileset>
|
||||
"""
|
||||
def prettify(elem):
|
||||
"""Return a pretty-printed XML string for the Element."""
|
||||
rough_string = ET.tostring(elem, 'utf-8')
|
||||
reparsed = minidom.parseString(rough_string)
|
||||
return reparsed.toprettyxml(indent=" ")
|
||||
|
||||
def get_image_size(path):
|
||||
# Try to get image dimensions without PIL to avoid dependency if possible,
|
||||
# but since we already used PIL for green screen, we can use it here.
|
||||
try:
|
||||
from PIL import Image
|
||||
with Image.open(path) as img:
|
||||
return img.width, img.height
|
||||
except Exception:
|
||||
return 32, 32 # Default fallback
|
||||
def generate_tileset():
|
||||
# Create <tileset> root
|
||||
# version=1.10 tiledversion=1.10.2 name=clean_assets tilewidth=256 tileheight=256 tilecount=? columns=0
|
||||
# Image Collection means columns=0
|
||||
|
||||
def generate_tileset(directory, name_prefix):
|
||||
"""Generates a Collection of Images tileset for a directory"""
|
||||
# We scan for images to determine max dimensions?
|
||||
# Or just set arbitrary? For image collection, tilewidth/height in header is usually max width?
|
||||
|
||||
# Find all PNGs
|
||||
png_files = sorted(list(Path(directory).rglob("*.png")))
|
||||
if not png_files:
|
||||
return False
|
||||
root = ET.Element('tileset', {
|
||||
'version': '1.10',
|
||||
'tiledversion': '1.11.0',
|
||||
'name': 'clean_assets',
|
||||
'tilewidth': '256',
|
||||
'tileheight': '256',
|
||||
'tilecount': '0',
|
||||
'columns': '0'
|
||||
})
|
||||
|
||||
tileset_name = f"{name_prefix}_{os.path.basename(directory)}"
|
||||
tsx_content = TSX_HEADER.format(
|
||||
name=tileset_name,
|
||||
width=32, # Default (doesn't matter much for collection of images)
|
||||
height=32,
|
||||
count=len(png_files)
|
||||
)
|
||||
grid = ET.SubElement(root, 'grid', {'orientation': 'orthogonal', 'width': '1', 'height': '1'})
|
||||
|
||||
print(f"📦 Generating tileset: {tileset_name}.tsx ({len(png_files)} images)")
|
||||
# Scan files
|
||||
assets_full_path = os.path.join(BASE_DIR, ASSETS_DIR_REL)
|
||||
tile_id = 0
|
||||
|
||||
for i, img_path in enumerate(png_files):
|
||||
# Calculate relative path from tileset location to image
|
||||
# Tiled needs relative paths
|
||||
abs_img = img_path.resolve()
|
||||
abs_tileset_dir = Path(TILESET_OUTPUT_DIR).resolve()
|
||||
print(f"Scanning {assets_full_path}...")
|
||||
|
||||
try:
|
||||
rel_path = os.path.relpath(abs_img, abs_tileset_dir)
|
||||
except ValueError:
|
||||
# Fallback if on different drives (unlikely here)
|
||||
rel_path = str(abs_img)
|
||||
for root_dir, dirs, files in os.walk(assets_full_path):
|
||||
for f in files:
|
||||
if f.lower().endswith('.png') or f.lower().endswith('.jpg'):
|
||||
# Relative path from .tsx directory (assets/maps) to image
|
||||
# .tsx is in assets/maps
|
||||
# Image is in assets/DEMO_FAZA1/...
|
||||
|
||||
width, height = get_image_size(abs_img)
|
||||
# Abs path of image
|
||||
img_abs = os.path.join(root_dir, f)
|
||||
|
||||
tsx_content += TILE_TEMPLATE.format(
|
||||
id=i,
|
||||
width=width,
|
||||
height=height,
|
||||
source=rel_path,
|
||||
trans=TRANSPARENT_COLOR # THIS IS THE MAGIC PART!
|
||||
)
|
||||
# Rel path from BASE
|
||||
# rel_from_base = os.path.relpath(img_abs, BASE_DIR)
|
||||
|
||||
tsx_content += TSX_FOOTER
|
||||
# Rel path from MAPS dir
|
||||
rel_path = os.path.relpath(img_abs, os.path.join(BASE_DIR, MAPS_DIR))
|
||||
|
||||
# Save TSX
|
||||
output_path = os.path.join(TILESET_OUTPUT_DIR, f"{tileset_name}.tsx")
|
||||
with open(output_path, "w") as f:
|
||||
f.write(tsx_content)
|
||||
# Create <tile id="X">
|
||||
tile_node = ET.SubElement(root, 'tile', {'id': str(tile_id)})
|
||||
|
||||
return True
|
||||
# <image width="W" height="H" source="PATH"/>
|
||||
# We technically should read width/height, but Tiled often auto-detects if omitted or 0?
|
||||
# Best to read it if possible, but for speed let's rely on Tiled.
|
||||
# Actually, standard TMX requires image tag.
|
||||
|
||||
def main():
|
||||
print("🧱 TILED TILESET GENERATOR")
|
||||
print("=" * 50)
|
||||
print(f"Target Transparency: #{TRANSPARENT_COLOR}")
|
||||
print(f"Output Directory: {TILESET_OUTPUT_DIR}\n")
|
||||
ET.SubElement(tile_node, 'image', {
|
||||
'source': rel_path
|
||||
# 'width': '?', 'height': '?'
|
||||
})
|
||||
|
||||
os.makedirs(TILESET_OUTPUT_DIR, exist_ok=True)
|
||||
tile_id += 1
|
||||
|
||||
directories_to_process = [
|
||||
("assets/PHASE_PACKS/0_DEMO", "DEMO"),
|
||||
("assets/PHASE_PACKS/1_FAZA_1", "FAZA1"),
|
||||
("assets/PHASE_PACKS/2_FAZA_2", "FAZA2"),
|
||||
("assets/sprites", "SPRITES"),
|
||||
("assets/crops", "CROPS"),
|
||||
("assets/characters", "CHARS")
|
||||
]
|
||||
root.set('tilecount', str(tile_id))
|
||||
|
||||
total_generated = 0
|
||||
# Save
|
||||
out_path = os.path.join(BASE_DIR, MAPS_DIR, TSX_NAME)
|
||||
with open(out_path, 'w') as f:
|
||||
f.write(prettify(root))
|
||||
print(f"Generated Tileset: {out_path} with {tile_id} tiles.")
|
||||
return tile_id
|
||||
|
||||
for dir_path, prefix in directories_to_process:
|
||||
if os.path.exists(dir_path):
|
||||
# Process main directory
|
||||
if generate_tileset(dir_path, prefix):
|
||||
total_generated += 1
|
||||
def generate_map(first_gid=1):
|
||||
# <map version="1.10" tiledversion="1.11.0" orientation="orthogonal" renderorder="right-down" width="50" height="50" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="1">
|
||||
|
||||
# Optionally process subdirectories as separate tilesets if needed
|
||||
# For now, we put everything in one big tileset per main folder to be safe
|
||||
# But "sprites" is huge, let's split sprites by immediate subdirectory
|
||||
if "sprites" in dir_path:
|
||||
for subdir in Path(dir_path).iterdir():
|
||||
if subdir.is_dir():
|
||||
generate_tileset(subdir, f"SPRITE_{subdir.name.upper()}")
|
||||
root = ET.Element('map', {
|
||||
'version': '1.10',
|
||||
'tiledversion': '1.11.0',
|
||||
'orientation': 'orthogonal',
|
||||
'renderorder': 'right-down',
|
||||
'width': '50',
|
||||
'height': '50',
|
||||
'tilewidth': '16',
|
||||
'tileheight': '16', # User requested 16x16
|
||||
'infinite': '0'
|
||||
})
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print(f"✅ Generated {total_generated} main tilesets + sub-tilesets.")
|
||||
print("👉 Import these .tsx files into Tiled map to see automatic transparency!")
|
||||
# <tileset firstgid="1" source="clean_assets.tsx"/>
|
||||
ET.SubElement(root, 'tileset', {'firstgid': '1', 'source': TSX_NAME})
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
# Data is empty CSV
|
||||
# 50*50 = 2500 zeros
|
||||
empty_csv = "0," * 2499 + "0"
|
||||
|
||||
layer_id = 1
|
||||
for layer_name in LAYERS:
|
||||
layer = ET.SubElement(root, 'layer', {
|
||||
'id': str(layer_id),
|
||||
'name': layer_name,
|
||||
'width': '50',
|
||||
'height': '50'
|
||||
})
|
||||
data = ET.SubElement(layer, 'data', {'encoding': 'csv'})
|
||||
data.text = '\n' + empty_csv + '\n'
|
||||
layer_id += 1
|
||||
|
||||
for obj_layer_name in OBJECT_LAYERS:
|
||||
ET.SubElement(root, 'objectgroup', {
|
||||
'id': str(layer_id),
|
||||
'name': obj_layer_name
|
||||
})
|
||||
layer_id += 1
|
||||
|
||||
out_path = os.path.join(BASE_DIR, MAPS_DIR, TMX_NAME)
|
||||
with open(out_path, 'w') as f:
|
||||
f.write(prettify(root))
|
||||
print(f"Generated Map: {out_path}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
count = generate_tileset()
|
||||
generate_map()
|
||||
|
||||
@@ -5,6 +5,9 @@ const { app, BrowserWindow, ipcMain } = require('electron');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// CLEAN CONSOLE: Disable security warnings
|
||||
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true';
|
||||
|
||||
let mainWindow;
|
||||
|
||||
function createWindow() {
|
||||
|
||||
@@ -28,6 +28,13 @@ INPUT_FILES = [
|
||||
'output_folder': 'assets/DEMO_FAZA1/Ground',
|
||||
'mode': 'grid',
|
||||
'grid_size': 256
|
||||
},
|
||||
{
|
||||
'path': '/Users/davidkotnik/.gemini/antigravity/brain/8233d64e-0c17-43b1-b8b5-fbc41754e56b/water_texture_noir_1769717283296.png',
|
||||
'prefix': 'water_tile',
|
||||
'output_folder': 'assets/DEMO_FAZA1/Environment',
|
||||
'mode': 'grid',
|
||||
'grid_size': 256
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@@ -23,13 +23,24 @@ export default class GrassSceneClean extends Phaser.Scene {
|
||||
this.load.image('trnje', 'DEMO_FAZA1/Obstacles/trnje.png');
|
||||
|
||||
// Generated Assets (Slices)
|
||||
this.load.image('tree_adult_0', 'DEMO_FAZA1/Trees/tree_adult_0.png');
|
||||
this.load.image('tree_adult_1', 'DEMO_FAZA1/Trees/tree_adult_1.png');
|
||||
this.load.image('dead_nature_0', 'DEMO_FAZA1/Environment/dead_nature_0.png'); // Stump
|
||||
this.load.image('fence_sign_0', 'DEMO_FAZA1/Environment/fence_sign_0.png'); // Fence
|
||||
// this.load.image('path_mud_0', 'DEMO_FAZA1/Ground/path_mud_0.png'); // Old single slice
|
||||
// Trees
|
||||
for (let i = 0; i <= 5; i++) this.load.image(`tree_adult_${i}`, `DEMO_FAZA1/Trees/tree_adult_${i}.png`);
|
||||
|
||||
// Tileset (Grid Slices)
|
||||
// Environment (Dead Nature, Fence, Water)
|
||||
for (let i = 0; i <= 8; i++) this.load.image(`dead_nature_${i}`, `DEMO_FAZA1/Environment/dead_nature_${i}.png`);
|
||||
for (let i = 0; i <= 2; i++) this.load.image(`fence_sign_${i}`, `DEMO_FAZA1/Environment/fence_sign_${i}.png`);
|
||||
for (let i = 0; i < 16; i++) this.load.image(`water_tile_${i}`, `DEMO_FAZA1/Environment/water_tile_${i}.png`);
|
||||
|
||||
// Misc Env
|
||||
this.load.image('sotor', 'DEMO_FAZA1/Environment/sotor.png');
|
||||
this.load.image('campfire', 'DEMO_FAZA1/Environment/taborni_ogenj.png');
|
||||
this.load.image('sign_danger', 'DEMO_FAZA1/Environment/sign_danger.png');
|
||||
|
||||
// Vegetation
|
||||
const veg = ['bush_hiding_spot', 'drevo_faza_1', 'drevo_faza_2', 'drevo_srednje', 'drevo_veliko', 'grass_cluster_dense', 'grass_cluster_flowery', 'trava_sop'];
|
||||
veg.forEach(k => this.load.image(k, `DEMO_FAZA1/Vegetation/${k}.png`));
|
||||
|
||||
// Ground (Path)
|
||||
for (let i = 0; i < 16; i++) {
|
||||
this.load.image(`path_tile_${i}`, `DEMO_FAZA1/Ground/path_tile_${i}.png`);
|
||||
}
|
||||
@@ -117,95 +128,176 @@ export default class GrassSceneClean extends Phaser.Scene {
|
||||
this.selectedTile = 'path_tile_0';
|
||||
this.editorGroup = this.add.group(); // Saved tiles
|
||||
|
||||
// Toggle Key
|
||||
this.input.keyboard.on('keydown-E', () => {
|
||||
this.editorEnabled = !this.editorEnabled;
|
||||
this.paletteContainer.setVisible(this.editorEnabled);
|
||||
console.log("Editor Mode:", this.editorEnabled);
|
||||
});
|
||||
// Initialize Default State
|
||||
this.selectedTile = 'path_tile_0';
|
||||
this.editorEnabled = false;
|
||||
|
||||
// UI Palette (Hidden by default)
|
||||
// FIX: Use viewport dimensions for UI
|
||||
const VIEW_W = this.scale.width;
|
||||
const VIEW_H = this.scale.height;
|
||||
|
||||
this.paletteContainer = this.add.container(0, 0).setScrollFactor(0).setVisible(false).setDepth(1000);
|
||||
// --- EDITOR UI SETUP (Sidebar) ---
|
||||
const SIDEBAR_W = 320;
|
||||
const PALETTE_X = VIEW_W - SIDEBAR_W;
|
||||
|
||||
// Background for Palette (TOP OF SCREEN)
|
||||
// Moved to y=100 so it covers top 0-200px
|
||||
let bg = this.add.rectangle(VIEW_W / 2, 100, VIEW_W, 200, 0x000000, 0.7);
|
||||
this.paletteContainer.add(bg);
|
||||
// UI Container Group (for toggling visibility)
|
||||
this.editorUI = this.add.group();
|
||||
|
||||
// Generate Eraser Texture
|
||||
let g = this.make.graphics().fillStyle(0xFF0000).fillRect(0, 0, 64, 64);
|
||||
g.generateTexture('eraser_icon', 64, 64);
|
||||
g.destroy();
|
||||
// 1. Sidebar Background
|
||||
let sidebarBg = this.add.rectangle(PALETTE_X + SIDEBAR_W / 2, VIEW_H / 2, SIDEBAR_W, VIEW_H, 0x000000, 0.9)
|
||||
.setScrollFactor(0).setDepth(2000);
|
||||
this.editorUI.add(sidebarBg);
|
||||
|
||||
// Populate Palette
|
||||
// 16 Path Tiles + Fence + Stump + Eraser
|
||||
// 2. Layer Switcher (Top of Sidebar)
|
||||
this.currentLayer = 'ground';
|
||||
const layerBtns = [];
|
||||
|
||||
const createLayerBtn = (label, mode, y) => {
|
||||
let txt = this.add.text(PALETTE_X + 20, y, label, { fontSize: '18px', color: '#888', fontStyle: 'bold' })
|
||||
.setScrollFactor(0).setDepth(2002).setInteractive({ useHandCursor: true });
|
||||
txt.on('pointerdown', () => {
|
||||
this.currentLayer = mode;
|
||||
layerBtns.forEach(b => b.setColor('#888'));
|
||||
txt.setColor('#00ff00');
|
||||
console.log("Layer:", mode);
|
||||
});
|
||||
this.editorUI.add(txt);
|
||||
return txt;
|
||||
};
|
||||
|
||||
layerBtns.push(createLayerBtn("[1] Ground", 'ground', 30));
|
||||
layerBtns.push(createLayerBtn("[2] Deco", 'deco', 60));
|
||||
layerBtns.push(createLayerBtn("[3] Build", 'building', 90));
|
||||
layerBtns[0].setColor('#00ff00'); // Default
|
||||
|
||||
// 3. Palette Content (Scrollable)
|
||||
const contentY = 140; // Below buttons
|
||||
const itemContainer = this.add.container(PALETTE_X, contentY).setScrollFactor(0).setDepth(2001);
|
||||
// Note: Containers can't be added to Groups in Phaser 3 easily for visibility toggling without recursion,
|
||||
// so we handle itemContainer visibility manually.
|
||||
|
||||
// Mask for scrolling
|
||||
const maskShape = this.make.graphics();
|
||||
maskShape.fillStyle(0xffffff);
|
||||
maskShape.fillRect(PALETTE_X, contentY, SIDEBAR_W, VIEW_H - contentY);
|
||||
const mask = maskShape.createGeometryMask();
|
||||
itemContainer.setMask(mask);
|
||||
|
||||
// Prepare Palette Items
|
||||
const paletteItems = [];
|
||||
for (let i = 0; i < 16; i++) paletteItems.push(`path_tile_${i}`);
|
||||
paletteItems.push('fence_sign_0');
|
||||
paletteItems.push('eraser_icon');
|
||||
for (let i = 0; i < 16; i++) paletteItems.push(`water_tile_${i}`);
|
||||
for (let i = 0; i <= 2; i++) paletteItems.push(`fence_sign_${i}`);
|
||||
paletteItems.push('sign_danger');
|
||||
for (let i = 0; i <= 5; i++) paletteItems.push(`tree_adult_${i}`);
|
||||
for (let i = 0; i <= 8; i++) paletteItems.push(`dead_nature_${i}`);
|
||||
['bush_hiding_spot', 'drevo_faza_1', 'drevo_faza_2', 'drevo_srednje', 'drevo_veliko', 'grass_cluster_dense', 'grass_cluster_flowery', 'trava_sop'].forEach(k => paletteItems.push(k));
|
||||
paletteItems.push('sotor', 'campfire', 'eraser_icon');
|
||||
|
||||
let px = 100;
|
||||
let py = 100; // TOP
|
||||
// Grid Layout
|
||||
let col = 0, row = 0;
|
||||
const CELL_SZ = 90;
|
||||
|
||||
// Selector Highlight (Border)
|
||||
let selector = this.add.rectangle(0, 0, 80, 80).setStrokeStyle(4, 0x00ff00).setVisible(false);
|
||||
itemContainer.add(selector);
|
||||
|
||||
const icons = []; // Store references for tinting
|
||||
console.log("Palette View:", VIEW_W, VIEW_H); // Debug
|
||||
paletteItems.forEach((key) => {
|
||||
let icon = this.add.image(px, py, key).setScale(0.3).setInteractive({ useHandCursor: true });
|
||||
icons.push(icon); // Track it
|
||||
let ix = 50 + (col * CELL_SZ);
|
||||
let iy = 50 + (row * CELL_SZ);
|
||||
|
||||
let icon = this.add.image(ix, iy, key).setScale(0.3).setInteractive({ useHandCursor: true });
|
||||
itemContainer.add(icon);
|
||||
|
||||
icon.on('pointerover', () => {
|
||||
if (this.selectedTile !== key) icon.setTint(0xFFFF00); // Yellow on hover
|
||||
});
|
||||
icon.on('pointerout', () => {
|
||||
if (this.selectedTile !== key) icon.clearTint(); // Clear if not selected
|
||||
else icon.setTint(0x00FF00); // Keep Green if selected
|
||||
});
|
||||
icon.on('pointerdown', () => {
|
||||
this.selectedTile = key;
|
||||
console.log("Selected Brush:", key);
|
||||
// Visual feedback: Tint selected Green, clear others
|
||||
icons.forEach(i => i.clearTint());
|
||||
icon.setTint(0x00FF00);
|
||||
selector.setPosition(ix, iy).setVisible(true);
|
||||
// Update Ghost
|
||||
if (key === 'eraser_icon') {
|
||||
this.ghostSprite.setVisible(false);
|
||||
} else {
|
||||
this.ghostSprite.setTexture(key);
|
||||
this.ghostSprite.setScale(key.includes('path') || key.includes('water') ? 0.5 : 1.0); // Simple scaling logic
|
||||
}
|
||||
});
|
||||
this.paletteContainer.add(icon);
|
||||
px += 80;
|
||||
if (px > VIEW_W - 100) { px = 100; py += 80; } // wrap
|
||||
col++;
|
||||
if (col >= 3) { col = 0; row++; }
|
||||
});
|
||||
|
||||
// Scroll Logic
|
||||
let scrollY = 0;
|
||||
const MAX_SCROLL = Math.max(0, (row * CELL_SZ) + 150 - (VIEW_H - contentY));
|
||||
this.input.on('wheel', (ptr, gameObjs, dx, dy, dz) => {
|
||||
if (this.editorEnabled && ptr.x > PALETTE_X) {
|
||||
scrollY -= dy;
|
||||
if (scrollY > 0) scrollY = 0;
|
||||
if (scrollY < -MAX_SCROLL) scrollY = -MAX_SCROLL;
|
||||
itemContainer.y = contentY + scrollY;
|
||||
}
|
||||
});
|
||||
|
||||
// 4. Ghost Cursor
|
||||
this.ghostSprite = this.add.image(0, 0, this.selectedTile)
|
||||
.setAlpha(0.6).setDepth(3000).setVisible(false); // Topmost
|
||||
|
||||
// Toggle Visibility Helpers
|
||||
const toggleEditor = (state) => {
|
||||
this.editorEnabled = state;
|
||||
this.editorUI.setVisible(state);
|
||||
itemContainer.setVisible(state);
|
||||
this.ghostSprite.setVisible(state && this.selectedTile !== 'eraser_icon');
|
||||
console.log("Editor:", state);
|
||||
};
|
||||
toggleEditor(false); // Start hidden
|
||||
|
||||
// Toggle Key
|
||||
this.input.keyboard.on('keydown-E', () => {
|
||||
toggleEditor(!this.editorEnabled);
|
||||
});
|
||||
|
||||
this.input.on('pointermove', (pointer) => {
|
||||
if (!this.editorEnabled) return;
|
||||
|
||||
// Hide Ghost if over UI
|
||||
if (pointer.x > PALETTE_X) {
|
||||
this.ghostSprite.setVisible(false);
|
||||
return;
|
||||
} else if (this.selectedTile !== 'eraser_icon') {
|
||||
this.ghostSprite.setVisible(true);
|
||||
}
|
||||
|
||||
// Snap calculation
|
||||
const SNAP = 128;
|
||||
const sx = Math.floor(pointer.worldX / SNAP) * SNAP + (SNAP / 2);
|
||||
const sy = Math.floor(pointer.worldY / SNAP) * SNAP + (SNAP / 2);
|
||||
this.ghostSprite.setPosition(sx, sy);
|
||||
});
|
||||
|
||||
// Painting Logic
|
||||
this.input.on('pointerdown', (pointer) => {
|
||||
if (!this.editorEnabled) return;
|
||||
// Ignore clicks on UI (Check Y < 200)
|
||||
if (pointer.y < 200) return;
|
||||
// Ignore UI clicks
|
||||
if (pointer.x > PALETTE_X) return;
|
||||
|
||||
// ERASER MODE: Handled via object clicks
|
||||
if (this.selectedTile === 'eraser_icon') return;
|
||||
// ERASER
|
||||
if (this.selectedTile === 'eraser_icon') return; // Handled by object click
|
||||
|
||||
// Snap to Grid (128px for finer control, or 256px for full tiles)
|
||||
// Snap
|
||||
const SNAP = 128;
|
||||
const wx = pointer.worldX;
|
||||
const wy = pointer.worldY;
|
||||
const sx = Math.floor(wx / SNAP) * SNAP + (SNAP / 2);
|
||||
const sy = Math.floor(wy / SNAP) * SNAP + (SNAP / 2);
|
||||
const sx = Math.floor(pointer.worldX / SNAP) * SNAP + (SNAP / 2);
|
||||
const sy = Math.floor(pointer.worldY / SNAP) * SNAP + (SNAP / 2);
|
||||
|
||||
let placedStub = this.add.image(sx, sy, this.selectedTile);
|
||||
placedStub.setInteractive(); // Enable erase interaction
|
||||
|
||||
// Delete if clicked with eraser
|
||||
placedStub.setInteractive();
|
||||
placedStub.on('pointerdown', () => {
|
||||
if (this.editorEnabled && this.selectedTile === 'eraser_icon') {
|
||||
placedStub.destroy();
|
||||
// Prevent click propagation?
|
||||
}
|
||||
if (this.editorEnabled && this.selectedTile === 'eraser_icon') placedStub.destroy();
|
||||
});
|
||||
|
||||
if (this.selectedTile.includes('path')) {
|
||||
placedStub.setDepth(-40); // Above ground
|
||||
placedStub.setScale(0.5);
|
||||
// Layer Logic
|
||||
if (this.currentLayer === 'ground') {
|
||||
placedStub.setDepth(-40);
|
||||
placedStub.setScale(0.5); // Grid tiles
|
||||
} else {
|
||||
placedStub.setDepth(sy); // Y-sort
|
||||
// placedStub.setInteractive({ draggable: true }); // Draggable requires careful event handling vs eraser
|
||||
|
||||