diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b3cffd9..26d0d5fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,18 +1,14 @@ cmake_minimum_required(VERSION 3.10) project(Spelunky_PSP) -option(WITH_DEV_TOOLS "Tools meant to be run only on host (development) system." FALSE) - include(cmake/CurrentPlatform.cmake) +option(SPELUNKY_PSP_USE_VIRTUAL_FILESYSTEM "Whether to resource-compile assets within the executable" ON) + spelunky_psp_detect_platform() spelunky_psp_add_platform_dependencies() -if (WITH_DEV_TOOLS) - add_subdirectory(tools) -endif() - -set(ASSETS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets) +set(SPELUNKY_PSP_ASSETS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets) if (SPELUNKY_PSP_PLATFORM_ANDROID) # On Android, libSpelunky_PSP.so is copied into the final .APK file and SDL2's Java activity @@ -23,6 +19,7 @@ else() endif () add_subdirectory(vendor) +add_subdirectory(src/assets) add_subdirectory(src/entity-registry) add_subdirectory(src/viewport) add_subdirectory(src/video) @@ -39,6 +36,7 @@ add_subdirectory(src/collisions) add_subdirectory(src/patterns) target_link_libraries(Spelunky_PSP PRIVATE + Assets Logger Video Audio diff --git a/assets/audio/arrowtrap.wav b/assets/development/audio/arrowtrap.wav similarity index 100% rename from assets/audio/arrowtrap.wav rename to assets/development/audio/arrowtrap.wav diff --git a/assets/audio/bat.wav b/assets/development/audio/bat.wav similarity index 100% rename from assets/audio/bat.wav rename to assets/development/audio/bat.wav diff --git a/assets/audio/cave.wav b/assets/development/audio/cave.wav similarity index 100% rename from assets/audio/cave.wav rename to assets/development/audio/cave.wav diff --git a/assets/audio/chestopen.wav b/assets/development/audio/chestopen.wav similarity index 100% rename from assets/audio/chestopen.wav rename to assets/development/audio/chestopen.wav diff --git a/assets/audio/climb1.wav b/assets/development/audio/climb1.wav similarity index 100% rename from assets/audio/climb1.wav rename to assets/development/audio/climb1.wav diff --git a/assets/audio/climb2.wav b/assets/development/audio/climb2.wav similarity index 100% rename from assets/audio/climb2.wav rename to assets/development/audio/climb2.wav diff --git a/assets/audio/coin.wav b/assets/development/audio/coin.wav similarity index 100% rename from assets/audio/coin.wav rename to assets/development/audio/coin.wav diff --git a/assets/audio/die.wav b/assets/development/audio/die.wav similarity index 100% rename from assets/audio/die.wav rename to assets/development/audio/die.wav diff --git a/assets/audio/entering_door.wav b/assets/development/audio/entering_door.wav similarity index 100% rename from assets/audio/entering_door.wav rename to assets/development/audio/entering_door.wav diff --git a/assets/audio/explosion.wav b/assets/development/audio/explosion.wav similarity index 100% rename from assets/audio/explosion.wav rename to assets/development/audio/explosion.wav diff --git a/assets/audio/gem.wav b/assets/development/audio/gem.wav similarity index 100% rename from assets/audio/gem.wav rename to assets/development/audio/gem.wav diff --git a/assets/audio/hit.wav b/assets/development/audio/hit.wav similarity index 100% rename from assets/audio/hit.wav rename to assets/development/audio/hit.wav diff --git a/assets/audio/hurt.wav b/assets/development/audio/hurt.wav similarity index 100% rename from assets/audio/hurt.wav rename to assets/development/audio/hurt.wav diff --git a/assets/audio/jetpack.wav b/assets/development/audio/jetpack.wav similarity index 100% rename from assets/audio/jetpack.wav rename to assets/development/audio/jetpack.wav diff --git a/assets/audio/jump.wav b/assets/development/audio/jump.wav similarity index 100% rename from assets/audio/jump.wav rename to assets/development/audio/jump.wav diff --git a/assets/audio/kiss.wav b/assets/development/audio/kiss.wav similarity index 100% rename from assets/audio/kiss.wav rename to assets/development/audio/kiss.wav diff --git a/assets/audio/pickup.wav b/assets/development/audio/pickup.wav similarity index 100% rename from assets/audio/pickup.wav rename to assets/development/audio/pickup.wav diff --git a/assets/audio/shotgun.wav b/assets/development/audio/shotgun.wav similarity index 100% rename from assets/audio/shotgun.wav rename to assets/development/audio/shotgun.wav diff --git a/assets/audio/throw.wav b/assets/development/audio/throw.wav similarity index 100% rename from assets/audio/throw.wav rename to assets/development/audio/throw.wav diff --git a/assets/audio/title.wav b/assets/development/audio/title.wav similarity index 100% rename from assets/audio/title.wav rename to assets/development/audio/title.wav diff --git a/assets/audio/whip.wav b/assets/development/audio/whip.wav similarity index 100% rename from assets/audio/whip.wav rename to assets/development/audio/whip.wav diff --git a/assets/metadata/background.png b/assets/development/metadata/background.png similarity index 100% rename from assets/metadata/background.png rename to assets/development/metadata/background.png diff --git a/assets/metadata/icon.png b/assets/development/metadata/icon.png similarity index 100% rename from assets/metadata/icon.png rename to assets/development/metadata/icon.png diff --git a/assets/tilesheets/collectibles/0.png b/assets/development/tilesheets/collectibles/0.png similarity index 100% rename from assets/tilesheets/collectibles/0.png rename to assets/development/tilesheets/collectibles/0.png diff --git a/assets/tilesheets/collectibles/1.png b/assets/development/tilesheets/collectibles/1.png similarity index 100% rename from assets/tilesheets/collectibles/1.png rename to assets/development/tilesheets/collectibles/1.png diff --git a/assets/tilesheets/collectibles/10.png b/assets/development/tilesheets/collectibles/10.png similarity index 100% rename from assets/tilesheets/collectibles/10.png rename to assets/development/tilesheets/collectibles/10.png diff --git a/assets/tilesheets/collectibles/100.png b/assets/development/tilesheets/collectibles/100.png similarity index 100% rename from assets/tilesheets/collectibles/100.png rename to assets/development/tilesheets/collectibles/100.png diff --git a/assets/tilesheets/collectibles/101.png b/assets/development/tilesheets/collectibles/101.png similarity index 100% rename from assets/tilesheets/collectibles/101.png rename to assets/development/tilesheets/collectibles/101.png diff --git a/assets/tilesheets/collectibles/102.png b/assets/development/tilesheets/collectibles/102.png similarity index 100% rename from assets/tilesheets/collectibles/102.png rename to assets/development/tilesheets/collectibles/102.png diff --git a/assets/tilesheets/collectibles/103.png b/assets/development/tilesheets/collectibles/103.png similarity index 100% rename from assets/tilesheets/collectibles/103.png rename to assets/development/tilesheets/collectibles/103.png diff --git a/assets/tilesheets/collectibles/104.png b/assets/development/tilesheets/collectibles/104.png similarity index 100% rename from assets/tilesheets/collectibles/104.png rename to assets/development/tilesheets/collectibles/104.png diff --git a/assets/tilesheets/collectibles/105.png b/assets/development/tilesheets/collectibles/105.png similarity index 100% rename from assets/tilesheets/collectibles/105.png rename to assets/development/tilesheets/collectibles/105.png diff --git a/assets/tilesheets/collectibles/106.png b/assets/development/tilesheets/collectibles/106.png similarity index 100% rename from assets/tilesheets/collectibles/106.png rename to assets/development/tilesheets/collectibles/106.png diff --git a/assets/tilesheets/collectibles/107.png b/assets/development/tilesheets/collectibles/107.png similarity index 100% rename from assets/tilesheets/collectibles/107.png rename to assets/development/tilesheets/collectibles/107.png diff --git a/assets/tilesheets/collectibles/108.png b/assets/development/tilesheets/collectibles/108.png similarity index 100% rename from assets/tilesheets/collectibles/108.png rename to assets/development/tilesheets/collectibles/108.png diff --git a/assets/tilesheets/collectibles/109.png b/assets/development/tilesheets/collectibles/109.png similarity index 100% rename from assets/tilesheets/collectibles/109.png rename to assets/development/tilesheets/collectibles/109.png diff --git a/assets/tilesheets/collectibles/11.png b/assets/development/tilesheets/collectibles/11.png similarity index 100% rename from assets/tilesheets/collectibles/11.png rename to assets/development/tilesheets/collectibles/11.png diff --git a/assets/tilesheets/collectibles/110.png b/assets/development/tilesheets/collectibles/110.png similarity index 100% rename from assets/tilesheets/collectibles/110.png rename to assets/development/tilesheets/collectibles/110.png diff --git a/assets/tilesheets/collectibles/111.png b/assets/development/tilesheets/collectibles/111.png similarity index 100% rename from assets/tilesheets/collectibles/111.png rename to assets/development/tilesheets/collectibles/111.png diff --git a/assets/tilesheets/collectibles/112.png b/assets/development/tilesheets/collectibles/112.png similarity index 100% rename from assets/tilesheets/collectibles/112.png rename to assets/development/tilesheets/collectibles/112.png diff --git a/assets/tilesheets/collectibles/113.png b/assets/development/tilesheets/collectibles/113.png similarity index 100% rename from assets/tilesheets/collectibles/113.png rename to assets/development/tilesheets/collectibles/113.png diff --git a/assets/tilesheets/collectibles/114.png b/assets/development/tilesheets/collectibles/114.png similarity index 100% rename from assets/tilesheets/collectibles/114.png rename to assets/development/tilesheets/collectibles/114.png diff --git a/assets/tilesheets/collectibles/115.png b/assets/development/tilesheets/collectibles/115.png similarity index 100% rename from assets/tilesheets/collectibles/115.png rename to assets/development/tilesheets/collectibles/115.png diff --git a/assets/tilesheets/collectibles/116.png b/assets/development/tilesheets/collectibles/116.png similarity index 100% rename from assets/tilesheets/collectibles/116.png rename to assets/development/tilesheets/collectibles/116.png diff --git a/assets/tilesheets/collectibles/117.png b/assets/development/tilesheets/collectibles/117.png similarity index 100% rename from assets/tilesheets/collectibles/117.png rename to assets/development/tilesheets/collectibles/117.png diff --git a/assets/tilesheets/collectibles/118.png b/assets/development/tilesheets/collectibles/118.png similarity index 100% rename from assets/tilesheets/collectibles/118.png rename to assets/development/tilesheets/collectibles/118.png diff --git a/assets/tilesheets/collectibles/119.png b/assets/development/tilesheets/collectibles/119.png similarity index 100% rename from assets/tilesheets/collectibles/119.png rename to assets/development/tilesheets/collectibles/119.png diff --git a/assets/tilesheets/collectibles/12.png b/assets/development/tilesheets/collectibles/12.png similarity index 100% rename from assets/tilesheets/collectibles/12.png rename to assets/development/tilesheets/collectibles/12.png diff --git a/assets/tilesheets/collectibles/120.png b/assets/development/tilesheets/collectibles/120.png similarity index 100% rename from assets/tilesheets/collectibles/120.png rename to assets/development/tilesheets/collectibles/120.png diff --git a/assets/tilesheets/collectibles/121.png b/assets/development/tilesheets/collectibles/121.png similarity index 100% rename from assets/tilesheets/collectibles/121.png rename to assets/development/tilesheets/collectibles/121.png diff --git a/assets/tilesheets/collectibles/122.png b/assets/development/tilesheets/collectibles/122.png similarity index 100% rename from assets/tilesheets/collectibles/122.png rename to assets/development/tilesheets/collectibles/122.png diff --git a/assets/tilesheets/collectibles/123.png b/assets/development/tilesheets/collectibles/123.png similarity index 100% rename from assets/tilesheets/collectibles/123.png rename to assets/development/tilesheets/collectibles/123.png diff --git a/assets/tilesheets/collectibles/13.png b/assets/development/tilesheets/collectibles/13.png similarity index 100% rename from assets/tilesheets/collectibles/13.png rename to assets/development/tilesheets/collectibles/13.png diff --git a/assets/tilesheets/collectibles/14.png b/assets/development/tilesheets/collectibles/14.png similarity index 100% rename from assets/tilesheets/collectibles/14.png rename to assets/development/tilesheets/collectibles/14.png diff --git a/assets/tilesheets/collectibles/15.png b/assets/development/tilesheets/collectibles/15.png similarity index 100% rename from assets/tilesheets/collectibles/15.png rename to assets/development/tilesheets/collectibles/15.png diff --git a/assets/tilesheets/collectibles/16.png b/assets/development/tilesheets/collectibles/16.png similarity index 100% rename from assets/tilesheets/collectibles/16.png rename to assets/development/tilesheets/collectibles/16.png diff --git a/assets/tilesheets/collectibles/17.png b/assets/development/tilesheets/collectibles/17.png similarity index 100% rename from assets/tilesheets/collectibles/17.png rename to assets/development/tilesheets/collectibles/17.png diff --git a/assets/tilesheets/collectibles/18.png b/assets/development/tilesheets/collectibles/18.png similarity index 100% rename from assets/tilesheets/collectibles/18.png rename to assets/development/tilesheets/collectibles/18.png diff --git a/assets/tilesheets/collectibles/19.png b/assets/development/tilesheets/collectibles/19.png similarity index 100% rename from assets/tilesheets/collectibles/19.png rename to assets/development/tilesheets/collectibles/19.png diff --git a/assets/tilesheets/collectibles/2.png b/assets/development/tilesheets/collectibles/2.png similarity index 100% rename from assets/tilesheets/collectibles/2.png rename to assets/development/tilesheets/collectibles/2.png diff --git a/assets/tilesheets/collectibles/20.png b/assets/development/tilesheets/collectibles/20.png similarity index 100% rename from assets/tilesheets/collectibles/20.png rename to assets/development/tilesheets/collectibles/20.png diff --git a/assets/tilesheets/collectibles/21.png b/assets/development/tilesheets/collectibles/21.png similarity index 100% rename from assets/tilesheets/collectibles/21.png rename to assets/development/tilesheets/collectibles/21.png diff --git a/assets/tilesheets/collectibles/22.png b/assets/development/tilesheets/collectibles/22.png similarity index 100% rename from assets/tilesheets/collectibles/22.png rename to assets/development/tilesheets/collectibles/22.png diff --git a/assets/tilesheets/collectibles/23.png b/assets/development/tilesheets/collectibles/23.png similarity index 100% rename from assets/tilesheets/collectibles/23.png rename to assets/development/tilesheets/collectibles/23.png diff --git a/assets/tilesheets/collectibles/24.png b/assets/development/tilesheets/collectibles/24.png similarity index 100% rename from assets/tilesheets/collectibles/24.png rename to assets/development/tilesheets/collectibles/24.png diff --git a/assets/tilesheets/collectibles/25.png b/assets/development/tilesheets/collectibles/25.png similarity index 100% rename from assets/tilesheets/collectibles/25.png rename to assets/development/tilesheets/collectibles/25.png diff --git a/assets/tilesheets/collectibles/26.png b/assets/development/tilesheets/collectibles/26.png similarity index 100% rename from assets/tilesheets/collectibles/26.png rename to assets/development/tilesheets/collectibles/26.png diff --git a/assets/tilesheets/collectibles/27.png b/assets/development/tilesheets/collectibles/27.png similarity index 100% rename from assets/tilesheets/collectibles/27.png rename to assets/development/tilesheets/collectibles/27.png diff --git a/assets/tilesheets/collectibles/28.png b/assets/development/tilesheets/collectibles/28.png similarity index 100% rename from assets/tilesheets/collectibles/28.png rename to assets/development/tilesheets/collectibles/28.png diff --git a/assets/tilesheets/collectibles/29.png b/assets/development/tilesheets/collectibles/29.png similarity index 100% rename from assets/tilesheets/collectibles/29.png rename to assets/development/tilesheets/collectibles/29.png diff --git a/assets/tilesheets/collectibles/3.png b/assets/development/tilesheets/collectibles/3.png similarity index 100% rename from assets/tilesheets/collectibles/3.png rename to assets/development/tilesheets/collectibles/3.png diff --git a/assets/tilesheets/collectibles/30.png b/assets/development/tilesheets/collectibles/30.png similarity index 100% rename from assets/tilesheets/collectibles/30.png rename to assets/development/tilesheets/collectibles/30.png diff --git a/assets/tilesheets/collectibles/31.png b/assets/development/tilesheets/collectibles/31.png similarity index 100% rename from assets/tilesheets/collectibles/31.png rename to assets/development/tilesheets/collectibles/31.png diff --git a/assets/tilesheets/collectibles/32.png b/assets/development/tilesheets/collectibles/32.png similarity index 100% rename from assets/tilesheets/collectibles/32.png rename to assets/development/tilesheets/collectibles/32.png diff --git a/assets/tilesheets/collectibles/33.png b/assets/development/tilesheets/collectibles/33.png similarity index 100% rename from assets/tilesheets/collectibles/33.png rename to assets/development/tilesheets/collectibles/33.png diff --git a/assets/tilesheets/collectibles/34.png b/assets/development/tilesheets/collectibles/34.png similarity index 100% rename from assets/tilesheets/collectibles/34.png rename to assets/development/tilesheets/collectibles/34.png diff --git a/assets/tilesheets/collectibles/35.png b/assets/development/tilesheets/collectibles/35.png similarity index 100% rename from assets/tilesheets/collectibles/35.png rename to assets/development/tilesheets/collectibles/35.png diff --git a/assets/tilesheets/collectibles/36.png b/assets/development/tilesheets/collectibles/36.png similarity index 100% rename from assets/tilesheets/collectibles/36.png rename to assets/development/tilesheets/collectibles/36.png diff --git a/assets/tilesheets/collectibles/37.png b/assets/development/tilesheets/collectibles/37.png similarity index 100% rename from assets/tilesheets/collectibles/37.png rename to assets/development/tilesheets/collectibles/37.png diff --git a/assets/tilesheets/collectibles/38.png b/assets/development/tilesheets/collectibles/38.png similarity index 100% rename from assets/tilesheets/collectibles/38.png rename to assets/development/tilesheets/collectibles/38.png diff --git a/assets/tilesheets/collectibles/39.png b/assets/development/tilesheets/collectibles/39.png similarity index 100% rename from assets/tilesheets/collectibles/39.png rename to assets/development/tilesheets/collectibles/39.png diff --git a/assets/tilesheets/collectibles/4.png b/assets/development/tilesheets/collectibles/4.png similarity index 100% rename from assets/tilesheets/collectibles/4.png rename to assets/development/tilesheets/collectibles/4.png diff --git a/assets/tilesheets/collectibles/40.png b/assets/development/tilesheets/collectibles/40.png similarity index 100% rename from assets/tilesheets/collectibles/40.png rename to assets/development/tilesheets/collectibles/40.png diff --git a/assets/tilesheets/collectibles/41.png b/assets/development/tilesheets/collectibles/41.png similarity index 100% rename from assets/tilesheets/collectibles/41.png rename to assets/development/tilesheets/collectibles/41.png diff --git a/assets/tilesheets/collectibles/42.png b/assets/development/tilesheets/collectibles/42.png similarity index 100% rename from assets/tilesheets/collectibles/42.png rename to assets/development/tilesheets/collectibles/42.png diff --git a/assets/tilesheets/collectibles/43.png b/assets/development/tilesheets/collectibles/43.png similarity index 100% rename from assets/tilesheets/collectibles/43.png rename to assets/development/tilesheets/collectibles/43.png diff --git a/assets/tilesheets/collectibles/44.png b/assets/development/tilesheets/collectibles/44.png similarity index 100% rename from assets/tilesheets/collectibles/44.png rename to assets/development/tilesheets/collectibles/44.png diff --git a/assets/tilesheets/collectibles/45.png b/assets/development/tilesheets/collectibles/45.png similarity index 100% rename from assets/tilesheets/collectibles/45.png rename to assets/development/tilesheets/collectibles/45.png diff --git a/assets/tilesheets/collectibles/46.png b/assets/development/tilesheets/collectibles/46.png similarity index 100% rename from assets/tilesheets/collectibles/46.png rename to assets/development/tilesheets/collectibles/46.png diff --git a/assets/tilesheets/collectibles/47.png b/assets/development/tilesheets/collectibles/47.png similarity index 100% rename from assets/tilesheets/collectibles/47.png rename to assets/development/tilesheets/collectibles/47.png diff --git a/assets/tilesheets/collectibles/48.png b/assets/development/tilesheets/collectibles/48.png similarity index 100% rename from assets/tilesheets/collectibles/48.png rename to assets/development/tilesheets/collectibles/48.png diff --git a/assets/tilesheets/collectibles/49.png b/assets/development/tilesheets/collectibles/49.png similarity index 100% rename from assets/tilesheets/collectibles/49.png rename to assets/development/tilesheets/collectibles/49.png diff --git a/assets/tilesheets/collectibles/5.png b/assets/development/tilesheets/collectibles/5.png similarity index 100% rename from assets/tilesheets/collectibles/5.png rename to assets/development/tilesheets/collectibles/5.png diff --git a/assets/tilesheets/collectibles/50.png b/assets/development/tilesheets/collectibles/50.png similarity index 100% rename from assets/tilesheets/collectibles/50.png rename to assets/development/tilesheets/collectibles/50.png diff --git a/assets/tilesheets/collectibles/51.png b/assets/development/tilesheets/collectibles/51.png similarity index 100% rename from assets/tilesheets/collectibles/51.png rename to assets/development/tilesheets/collectibles/51.png diff --git a/assets/tilesheets/collectibles/52.png b/assets/development/tilesheets/collectibles/52.png similarity index 100% rename from assets/tilesheets/collectibles/52.png rename to assets/development/tilesheets/collectibles/52.png diff --git a/assets/tilesheets/collectibles/53.png b/assets/development/tilesheets/collectibles/53.png similarity index 100% rename from assets/tilesheets/collectibles/53.png rename to assets/development/tilesheets/collectibles/53.png diff --git a/assets/tilesheets/collectibles/54.png b/assets/development/tilesheets/collectibles/54.png similarity index 100% rename from assets/tilesheets/collectibles/54.png rename to assets/development/tilesheets/collectibles/54.png diff --git a/assets/tilesheets/collectibles/55.png b/assets/development/tilesheets/collectibles/55.png similarity index 100% rename from assets/tilesheets/collectibles/55.png rename to assets/development/tilesheets/collectibles/55.png diff --git a/assets/tilesheets/collectibles/56.png b/assets/development/tilesheets/collectibles/56.png similarity index 100% rename from assets/tilesheets/collectibles/56.png rename to assets/development/tilesheets/collectibles/56.png diff --git a/assets/tilesheets/collectibles/57.png b/assets/development/tilesheets/collectibles/57.png similarity index 100% rename from assets/tilesheets/collectibles/57.png rename to assets/development/tilesheets/collectibles/57.png diff --git a/assets/tilesheets/collectibles/58.png b/assets/development/tilesheets/collectibles/58.png similarity index 100% rename from assets/tilesheets/collectibles/58.png rename to assets/development/tilesheets/collectibles/58.png diff --git a/assets/tilesheets/collectibles/59.png b/assets/development/tilesheets/collectibles/59.png similarity index 100% rename from assets/tilesheets/collectibles/59.png rename to assets/development/tilesheets/collectibles/59.png diff --git a/assets/tilesheets/collectibles/6.png b/assets/development/tilesheets/collectibles/6.png similarity index 100% rename from assets/tilesheets/collectibles/6.png rename to assets/development/tilesheets/collectibles/6.png diff --git a/assets/tilesheets/collectibles/60.png b/assets/development/tilesheets/collectibles/60.png similarity index 100% rename from assets/tilesheets/collectibles/60.png rename to assets/development/tilesheets/collectibles/60.png diff --git a/assets/tilesheets/collectibles/61.png b/assets/development/tilesheets/collectibles/61.png similarity index 100% rename from assets/tilesheets/collectibles/61.png rename to assets/development/tilesheets/collectibles/61.png diff --git a/assets/tilesheets/collectibles/62.png b/assets/development/tilesheets/collectibles/62.png similarity index 100% rename from assets/tilesheets/collectibles/62.png rename to assets/development/tilesheets/collectibles/62.png diff --git a/assets/tilesheets/collectibles/63.png b/assets/development/tilesheets/collectibles/63.png similarity index 100% rename from assets/tilesheets/collectibles/63.png rename to assets/development/tilesheets/collectibles/63.png diff --git a/assets/tilesheets/collectibles/64.png b/assets/development/tilesheets/collectibles/64.png similarity index 100% rename from assets/tilesheets/collectibles/64.png rename to assets/development/tilesheets/collectibles/64.png diff --git a/assets/tilesheets/collectibles/65.png b/assets/development/tilesheets/collectibles/65.png similarity index 100% rename from assets/tilesheets/collectibles/65.png rename to assets/development/tilesheets/collectibles/65.png diff --git a/assets/tilesheets/collectibles/66.png b/assets/development/tilesheets/collectibles/66.png similarity index 100% rename from assets/tilesheets/collectibles/66.png rename to assets/development/tilesheets/collectibles/66.png diff --git a/assets/tilesheets/collectibles/67.png b/assets/development/tilesheets/collectibles/67.png similarity index 100% rename from assets/tilesheets/collectibles/67.png rename to assets/development/tilesheets/collectibles/67.png diff --git a/assets/tilesheets/collectibles/68.png b/assets/development/tilesheets/collectibles/68.png similarity index 100% rename from assets/tilesheets/collectibles/68.png rename to assets/development/tilesheets/collectibles/68.png diff --git a/assets/tilesheets/collectibles/69.png b/assets/development/tilesheets/collectibles/69.png similarity index 100% rename from assets/tilesheets/collectibles/69.png rename to assets/development/tilesheets/collectibles/69.png diff --git a/assets/tilesheets/collectibles/7.png b/assets/development/tilesheets/collectibles/7.png similarity index 100% rename from assets/tilesheets/collectibles/7.png rename to assets/development/tilesheets/collectibles/7.png diff --git a/assets/tilesheets/collectibles/70.png b/assets/development/tilesheets/collectibles/70.png similarity index 100% rename from assets/tilesheets/collectibles/70.png rename to assets/development/tilesheets/collectibles/70.png diff --git a/assets/tilesheets/collectibles/71.png b/assets/development/tilesheets/collectibles/71.png similarity index 100% rename from assets/tilesheets/collectibles/71.png rename to assets/development/tilesheets/collectibles/71.png diff --git a/assets/tilesheets/collectibles/72.png b/assets/development/tilesheets/collectibles/72.png similarity index 100% rename from assets/tilesheets/collectibles/72.png rename to assets/development/tilesheets/collectibles/72.png diff --git a/assets/tilesheets/collectibles/73.png b/assets/development/tilesheets/collectibles/73.png similarity index 100% rename from assets/tilesheets/collectibles/73.png rename to assets/development/tilesheets/collectibles/73.png diff --git a/assets/tilesheets/collectibles/74.png b/assets/development/tilesheets/collectibles/74.png similarity index 100% rename from assets/tilesheets/collectibles/74.png rename to assets/development/tilesheets/collectibles/74.png diff --git a/assets/tilesheets/collectibles/75.png b/assets/development/tilesheets/collectibles/75.png similarity index 100% rename from assets/tilesheets/collectibles/75.png rename to assets/development/tilesheets/collectibles/75.png diff --git a/assets/tilesheets/collectibles/76.png b/assets/development/tilesheets/collectibles/76.png similarity index 100% rename from assets/tilesheets/collectibles/76.png rename to assets/development/tilesheets/collectibles/76.png diff --git a/assets/tilesheets/collectibles/77.png b/assets/development/tilesheets/collectibles/77.png similarity index 100% rename from assets/tilesheets/collectibles/77.png rename to assets/development/tilesheets/collectibles/77.png diff --git a/assets/tilesheets/collectibles/78.png b/assets/development/tilesheets/collectibles/78.png similarity index 100% rename from assets/tilesheets/collectibles/78.png rename to assets/development/tilesheets/collectibles/78.png diff --git a/assets/tilesheets/collectibles/79.png b/assets/development/tilesheets/collectibles/79.png similarity index 100% rename from assets/tilesheets/collectibles/79.png rename to assets/development/tilesheets/collectibles/79.png diff --git a/assets/tilesheets/collectibles/8.png b/assets/development/tilesheets/collectibles/8.png similarity index 100% rename from assets/tilesheets/collectibles/8.png rename to assets/development/tilesheets/collectibles/8.png diff --git a/assets/tilesheets/collectibles/80.png b/assets/development/tilesheets/collectibles/80.png similarity index 100% rename from assets/tilesheets/collectibles/80.png rename to assets/development/tilesheets/collectibles/80.png diff --git a/assets/tilesheets/collectibles/81.png b/assets/development/tilesheets/collectibles/81.png similarity index 100% rename from assets/tilesheets/collectibles/81.png rename to assets/development/tilesheets/collectibles/81.png diff --git a/assets/tilesheets/collectibles/82.png b/assets/development/tilesheets/collectibles/82.png similarity index 100% rename from assets/tilesheets/collectibles/82.png rename to assets/development/tilesheets/collectibles/82.png diff --git a/assets/tilesheets/collectibles/83.png b/assets/development/tilesheets/collectibles/83.png similarity index 100% rename from assets/tilesheets/collectibles/83.png rename to assets/development/tilesheets/collectibles/83.png diff --git a/assets/tilesheets/collectibles/84.png b/assets/development/tilesheets/collectibles/84.png similarity index 100% rename from assets/tilesheets/collectibles/84.png rename to assets/development/tilesheets/collectibles/84.png diff --git a/assets/tilesheets/collectibles/85.png b/assets/development/tilesheets/collectibles/85.png similarity index 100% rename from assets/tilesheets/collectibles/85.png rename to assets/development/tilesheets/collectibles/85.png diff --git a/assets/tilesheets/collectibles/86.png b/assets/development/tilesheets/collectibles/86.png similarity index 100% rename from assets/tilesheets/collectibles/86.png rename to assets/development/tilesheets/collectibles/86.png diff --git a/assets/tilesheets/collectibles/87.png b/assets/development/tilesheets/collectibles/87.png similarity index 100% rename from assets/tilesheets/collectibles/87.png rename to assets/development/tilesheets/collectibles/87.png diff --git a/assets/tilesheets/collectibles/88.png b/assets/development/tilesheets/collectibles/88.png similarity index 100% rename from assets/tilesheets/collectibles/88.png rename to assets/development/tilesheets/collectibles/88.png diff --git a/assets/tilesheets/collectibles/89.png b/assets/development/tilesheets/collectibles/89.png similarity index 100% rename from assets/tilesheets/collectibles/89.png rename to assets/development/tilesheets/collectibles/89.png diff --git a/assets/tilesheets/collectibles/9.png b/assets/development/tilesheets/collectibles/9.png similarity index 100% rename from assets/tilesheets/collectibles/9.png rename to assets/development/tilesheets/collectibles/9.png diff --git a/assets/tilesheets/collectibles/90.png b/assets/development/tilesheets/collectibles/90.png similarity index 100% rename from assets/tilesheets/collectibles/90.png rename to assets/development/tilesheets/collectibles/90.png diff --git a/assets/tilesheets/collectibles/91.png b/assets/development/tilesheets/collectibles/91.png similarity index 100% rename from assets/tilesheets/collectibles/91.png rename to assets/development/tilesheets/collectibles/91.png diff --git a/assets/tilesheets/collectibles/92.png b/assets/development/tilesheets/collectibles/92.png similarity index 100% rename from assets/tilesheets/collectibles/92.png rename to assets/development/tilesheets/collectibles/92.png diff --git a/assets/tilesheets/collectibles/93.png b/assets/development/tilesheets/collectibles/93.png similarity index 100% rename from assets/tilesheets/collectibles/93.png rename to assets/development/tilesheets/collectibles/93.png diff --git a/assets/tilesheets/collectibles/94.png b/assets/development/tilesheets/collectibles/94.png similarity index 100% rename from assets/tilesheets/collectibles/94.png rename to assets/development/tilesheets/collectibles/94.png diff --git a/assets/tilesheets/collectibles/95.png b/assets/development/tilesheets/collectibles/95.png similarity index 100% rename from assets/tilesheets/collectibles/95.png rename to assets/development/tilesheets/collectibles/95.png diff --git a/assets/tilesheets/collectibles/96.png b/assets/development/tilesheets/collectibles/96.png similarity index 100% rename from assets/tilesheets/collectibles/96.png rename to assets/development/tilesheets/collectibles/96.png diff --git a/assets/tilesheets/collectibles/97.png b/assets/development/tilesheets/collectibles/97.png similarity index 100% rename from assets/tilesheets/collectibles/97.png rename to assets/development/tilesheets/collectibles/97.png diff --git a/assets/tilesheets/collectibles/98.png b/assets/development/tilesheets/collectibles/98.png similarity index 100% rename from assets/tilesheets/collectibles/98.png rename to assets/development/tilesheets/collectibles/98.png diff --git a/assets/tilesheets/collectibles/99.png b/assets/development/tilesheets/collectibles/99.png similarity index 100% rename from assets/tilesheets/collectibles/99.png rename to assets/development/tilesheets/collectibles/99.png diff --git a/assets/tilesheets/font/0.png b/assets/development/tilesheets/font/0.png similarity index 100% rename from assets/tilesheets/font/0.png rename to assets/development/tilesheets/font/0.png diff --git a/assets/tilesheets/font/1.png b/assets/development/tilesheets/font/1.png similarity index 100% rename from assets/tilesheets/font/1.png rename to assets/development/tilesheets/font/1.png diff --git a/assets/tilesheets/font/10.png b/assets/development/tilesheets/font/10.png similarity index 100% rename from assets/tilesheets/font/10.png rename to assets/development/tilesheets/font/10.png diff --git a/assets/tilesheets/font/100.png b/assets/development/tilesheets/font/100.png similarity index 100% rename from assets/tilesheets/font/100.png rename to assets/development/tilesheets/font/100.png diff --git a/assets/tilesheets/font/101.png b/assets/development/tilesheets/font/101.png similarity index 100% rename from assets/tilesheets/font/101.png rename to assets/development/tilesheets/font/101.png diff --git a/assets/tilesheets/font/102.png b/assets/development/tilesheets/font/102.png similarity index 100% rename from assets/tilesheets/font/102.png rename to assets/development/tilesheets/font/102.png diff --git a/assets/tilesheets/font/103.png b/assets/development/tilesheets/font/103.png similarity index 100% rename from assets/tilesheets/font/103.png rename to assets/development/tilesheets/font/103.png diff --git a/assets/tilesheets/font/104.png b/assets/development/tilesheets/font/104.png similarity index 100% rename from assets/tilesheets/font/104.png rename to assets/development/tilesheets/font/104.png diff --git a/assets/tilesheets/font/105.png b/assets/development/tilesheets/font/105.png similarity index 100% rename from assets/tilesheets/font/105.png rename to assets/development/tilesheets/font/105.png diff --git a/assets/tilesheets/font/106.png b/assets/development/tilesheets/font/106.png similarity index 100% rename from assets/tilesheets/font/106.png rename to assets/development/tilesheets/font/106.png diff --git a/assets/tilesheets/font/107.png b/assets/development/tilesheets/font/107.png similarity index 100% rename from assets/tilesheets/font/107.png rename to assets/development/tilesheets/font/107.png diff --git a/assets/tilesheets/font/108.png b/assets/development/tilesheets/font/108.png similarity index 100% rename from assets/tilesheets/font/108.png rename to assets/development/tilesheets/font/108.png diff --git a/assets/tilesheets/font/109.png b/assets/development/tilesheets/font/109.png similarity index 100% rename from assets/tilesheets/font/109.png rename to assets/development/tilesheets/font/109.png diff --git a/assets/tilesheets/font/11.png b/assets/development/tilesheets/font/11.png similarity index 100% rename from assets/tilesheets/font/11.png rename to assets/development/tilesheets/font/11.png diff --git a/assets/tilesheets/font/110.png b/assets/development/tilesheets/font/110.png similarity index 100% rename from assets/tilesheets/font/110.png rename to assets/development/tilesheets/font/110.png diff --git a/assets/tilesheets/font/111.png b/assets/development/tilesheets/font/111.png similarity index 100% rename from assets/tilesheets/font/111.png rename to assets/development/tilesheets/font/111.png diff --git a/assets/tilesheets/font/112.png b/assets/development/tilesheets/font/112.png similarity index 100% rename from assets/tilesheets/font/112.png rename to assets/development/tilesheets/font/112.png diff --git a/assets/tilesheets/font/113.png b/assets/development/tilesheets/font/113.png similarity index 100% rename from assets/tilesheets/font/113.png rename to assets/development/tilesheets/font/113.png diff --git a/assets/tilesheets/font/114.png b/assets/development/tilesheets/font/114.png similarity index 100% rename from assets/tilesheets/font/114.png rename to assets/development/tilesheets/font/114.png diff --git a/assets/tilesheets/font/115.png b/assets/development/tilesheets/font/115.png similarity index 100% rename from assets/tilesheets/font/115.png rename to assets/development/tilesheets/font/115.png diff --git a/assets/tilesheets/font/116.png b/assets/development/tilesheets/font/116.png similarity index 100% rename from assets/tilesheets/font/116.png rename to assets/development/tilesheets/font/116.png diff --git a/assets/tilesheets/font/117.png b/assets/development/tilesheets/font/117.png similarity index 100% rename from assets/tilesheets/font/117.png rename to assets/development/tilesheets/font/117.png diff --git a/assets/tilesheets/font/12.png b/assets/development/tilesheets/font/12.png similarity index 100% rename from assets/tilesheets/font/12.png rename to assets/development/tilesheets/font/12.png diff --git a/assets/tilesheets/font/13.png b/assets/development/tilesheets/font/13.png similarity index 100% rename from assets/tilesheets/font/13.png rename to assets/development/tilesheets/font/13.png diff --git a/assets/tilesheets/font/14.png b/assets/development/tilesheets/font/14.png similarity index 100% rename from assets/tilesheets/font/14.png rename to assets/development/tilesheets/font/14.png diff --git a/assets/tilesheets/font/15.png b/assets/development/tilesheets/font/15.png similarity index 100% rename from assets/tilesheets/font/15.png rename to assets/development/tilesheets/font/15.png diff --git a/assets/tilesheets/font/16.png b/assets/development/tilesheets/font/16.png similarity index 100% rename from assets/tilesheets/font/16.png rename to assets/development/tilesheets/font/16.png diff --git a/assets/tilesheets/font/17.png b/assets/development/tilesheets/font/17.png similarity index 100% rename from assets/tilesheets/font/17.png rename to assets/development/tilesheets/font/17.png diff --git a/assets/tilesheets/font/18.png b/assets/development/tilesheets/font/18.png similarity index 100% rename from assets/tilesheets/font/18.png rename to assets/development/tilesheets/font/18.png diff --git a/assets/tilesheets/font/19.png b/assets/development/tilesheets/font/19.png similarity index 100% rename from assets/tilesheets/font/19.png rename to assets/development/tilesheets/font/19.png diff --git a/assets/tilesheets/font/2.png b/assets/development/tilesheets/font/2.png similarity index 100% rename from assets/tilesheets/font/2.png rename to assets/development/tilesheets/font/2.png diff --git a/assets/tilesheets/font/20.png b/assets/development/tilesheets/font/20.png similarity index 100% rename from assets/tilesheets/font/20.png rename to assets/development/tilesheets/font/20.png diff --git a/assets/tilesheets/font/21.png b/assets/development/tilesheets/font/21.png similarity index 100% rename from assets/tilesheets/font/21.png rename to assets/development/tilesheets/font/21.png diff --git a/assets/tilesheets/font/22.png b/assets/development/tilesheets/font/22.png similarity index 100% rename from assets/tilesheets/font/22.png rename to assets/development/tilesheets/font/22.png diff --git a/assets/tilesheets/font/23.png b/assets/development/tilesheets/font/23.png similarity index 100% rename from assets/tilesheets/font/23.png rename to assets/development/tilesheets/font/23.png diff --git a/assets/tilesheets/font/24.png b/assets/development/tilesheets/font/24.png similarity index 100% rename from assets/tilesheets/font/24.png rename to assets/development/tilesheets/font/24.png diff --git a/assets/tilesheets/font/25.png b/assets/development/tilesheets/font/25.png similarity index 100% rename from assets/tilesheets/font/25.png rename to assets/development/tilesheets/font/25.png diff --git a/assets/tilesheets/font/26.png b/assets/development/tilesheets/font/26.png similarity index 100% rename from assets/tilesheets/font/26.png rename to assets/development/tilesheets/font/26.png diff --git a/assets/tilesheets/font/27.png b/assets/development/tilesheets/font/27.png similarity index 100% rename from assets/tilesheets/font/27.png rename to assets/development/tilesheets/font/27.png diff --git a/assets/tilesheets/font/28.png b/assets/development/tilesheets/font/28.png similarity index 100% rename from assets/tilesheets/font/28.png rename to assets/development/tilesheets/font/28.png diff --git a/assets/tilesheets/font/29.png b/assets/development/tilesheets/font/29.png similarity index 100% rename from assets/tilesheets/font/29.png rename to assets/development/tilesheets/font/29.png diff --git a/assets/tilesheets/font/3.png b/assets/development/tilesheets/font/3.png similarity index 100% rename from assets/tilesheets/font/3.png rename to assets/development/tilesheets/font/3.png diff --git a/assets/tilesheets/font/30.png b/assets/development/tilesheets/font/30.png similarity index 100% rename from assets/tilesheets/font/30.png rename to assets/development/tilesheets/font/30.png diff --git a/assets/tilesheets/font/31.png b/assets/development/tilesheets/font/31.png similarity index 100% rename from assets/tilesheets/font/31.png rename to assets/development/tilesheets/font/31.png diff --git a/assets/tilesheets/font/32.png b/assets/development/tilesheets/font/32.png similarity index 100% rename from assets/tilesheets/font/32.png rename to assets/development/tilesheets/font/32.png diff --git a/assets/tilesheets/font/33.png b/assets/development/tilesheets/font/33.png similarity index 100% rename from assets/tilesheets/font/33.png rename to assets/development/tilesheets/font/33.png diff --git a/assets/tilesheets/font/34.png b/assets/development/tilesheets/font/34.png similarity index 100% rename from assets/tilesheets/font/34.png rename to assets/development/tilesheets/font/34.png diff --git a/assets/tilesheets/font/35.png b/assets/development/tilesheets/font/35.png similarity index 100% rename from assets/tilesheets/font/35.png rename to assets/development/tilesheets/font/35.png diff --git a/assets/tilesheets/font/36.png b/assets/development/tilesheets/font/36.png similarity index 100% rename from assets/tilesheets/font/36.png rename to assets/development/tilesheets/font/36.png diff --git a/assets/tilesheets/font/37.png b/assets/development/tilesheets/font/37.png similarity index 100% rename from assets/tilesheets/font/37.png rename to assets/development/tilesheets/font/37.png diff --git a/assets/tilesheets/font/38.png b/assets/development/tilesheets/font/38.png similarity index 100% rename from assets/tilesheets/font/38.png rename to assets/development/tilesheets/font/38.png diff --git a/assets/tilesheets/font/39.png b/assets/development/tilesheets/font/39.png similarity index 100% rename from assets/tilesheets/font/39.png rename to assets/development/tilesheets/font/39.png diff --git a/assets/tilesheets/font/4.png b/assets/development/tilesheets/font/4.png similarity index 100% rename from assets/tilesheets/font/4.png rename to assets/development/tilesheets/font/4.png diff --git a/assets/tilesheets/font/40.png b/assets/development/tilesheets/font/40.png similarity index 100% rename from assets/tilesheets/font/40.png rename to assets/development/tilesheets/font/40.png diff --git a/assets/tilesheets/font/41.png b/assets/development/tilesheets/font/41.png similarity index 100% rename from assets/tilesheets/font/41.png rename to assets/development/tilesheets/font/41.png diff --git a/assets/tilesheets/font/42.png b/assets/development/tilesheets/font/42.png similarity index 100% rename from assets/tilesheets/font/42.png rename to assets/development/tilesheets/font/42.png diff --git a/assets/tilesheets/font/43.png b/assets/development/tilesheets/font/43.png similarity index 100% rename from assets/tilesheets/font/43.png rename to assets/development/tilesheets/font/43.png diff --git a/assets/tilesheets/font/44.png b/assets/development/tilesheets/font/44.png similarity index 100% rename from assets/tilesheets/font/44.png rename to assets/development/tilesheets/font/44.png diff --git a/assets/tilesheets/font/45.png b/assets/development/tilesheets/font/45.png similarity index 100% rename from assets/tilesheets/font/45.png rename to assets/development/tilesheets/font/45.png diff --git a/assets/tilesheets/font/46.png b/assets/development/tilesheets/font/46.png similarity index 100% rename from assets/tilesheets/font/46.png rename to assets/development/tilesheets/font/46.png diff --git a/assets/tilesheets/font/47.png b/assets/development/tilesheets/font/47.png similarity index 100% rename from assets/tilesheets/font/47.png rename to assets/development/tilesheets/font/47.png diff --git a/assets/tilesheets/font/48.png b/assets/development/tilesheets/font/48.png similarity index 100% rename from assets/tilesheets/font/48.png rename to assets/development/tilesheets/font/48.png diff --git a/assets/tilesheets/font/49.png b/assets/development/tilesheets/font/49.png similarity index 100% rename from assets/tilesheets/font/49.png rename to assets/development/tilesheets/font/49.png diff --git a/assets/tilesheets/font/5.png b/assets/development/tilesheets/font/5.png similarity index 100% rename from assets/tilesheets/font/5.png rename to assets/development/tilesheets/font/5.png diff --git a/assets/tilesheets/font/50.png b/assets/development/tilesheets/font/50.png similarity index 100% rename from assets/tilesheets/font/50.png rename to assets/development/tilesheets/font/50.png diff --git a/assets/tilesheets/font/51.png b/assets/development/tilesheets/font/51.png similarity index 100% rename from assets/tilesheets/font/51.png rename to assets/development/tilesheets/font/51.png diff --git a/assets/tilesheets/font/52.png b/assets/development/tilesheets/font/52.png similarity index 100% rename from assets/tilesheets/font/52.png rename to assets/development/tilesheets/font/52.png diff --git a/assets/tilesheets/font/53.png b/assets/development/tilesheets/font/53.png similarity index 100% rename from assets/tilesheets/font/53.png rename to assets/development/tilesheets/font/53.png diff --git a/assets/tilesheets/font/54.png b/assets/development/tilesheets/font/54.png similarity index 100% rename from assets/tilesheets/font/54.png rename to assets/development/tilesheets/font/54.png diff --git a/assets/tilesheets/font/55.png b/assets/development/tilesheets/font/55.png similarity index 100% rename from assets/tilesheets/font/55.png rename to assets/development/tilesheets/font/55.png diff --git a/assets/tilesheets/font/56.png b/assets/development/tilesheets/font/56.png similarity index 100% rename from assets/tilesheets/font/56.png rename to assets/development/tilesheets/font/56.png diff --git a/assets/tilesheets/font/57.png b/assets/development/tilesheets/font/57.png similarity index 100% rename from assets/tilesheets/font/57.png rename to assets/development/tilesheets/font/57.png diff --git a/assets/tilesheets/font/58.png b/assets/development/tilesheets/font/58.png similarity index 100% rename from assets/tilesheets/font/58.png rename to assets/development/tilesheets/font/58.png diff --git a/assets/tilesheets/font/59.png b/assets/development/tilesheets/font/59.png similarity index 100% rename from assets/tilesheets/font/59.png rename to assets/development/tilesheets/font/59.png diff --git a/assets/tilesheets/font/6.png b/assets/development/tilesheets/font/6.png similarity index 100% rename from assets/tilesheets/font/6.png rename to assets/development/tilesheets/font/6.png diff --git a/assets/tilesheets/font/60.png b/assets/development/tilesheets/font/60.png similarity index 100% rename from assets/tilesheets/font/60.png rename to assets/development/tilesheets/font/60.png diff --git a/assets/tilesheets/font/61.png b/assets/development/tilesheets/font/61.png similarity index 100% rename from assets/tilesheets/font/61.png rename to assets/development/tilesheets/font/61.png diff --git a/assets/tilesheets/font/62.png b/assets/development/tilesheets/font/62.png similarity index 100% rename from assets/tilesheets/font/62.png rename to assets/development/tilesheets/font/62.png diff --git a/assets/tilesheets/font/63.png b/assets/development/tilesheets/font/63.png similarity index 100% rename from assets/tilesheets/font/63.png rename to assets/development/tilesheets/font/63.png diff --git a/assets/tilesheets/font/64.png b/assets/development/tilesheets/font/64.png similarity index 100% rename from assets/tilesheets/font/64.png rename to assets/development/tilesheets/font/64.png diff --git a/assets/tilesheets/font/65.png b/assets/development/tilesheets/font/65.png similarity index 100% rename from assets/tilesheets/font/65.png rename to assets/development/tilesheets/font/65.png diff --git a/assets/tilesheets/font/66.png b/assets/development/tilesheets/font/66.png similarity index 100% rename from assets/tilesheets/font/66.png rename to assets/development/tilesheets/font/66.png diff --git a/assets/tilesheets/font/67.png b/assets/development/tilesheets/font/67.png similarity index 100% rename from assets/tilesheets/font/67.png rename to assets/development/tilesheets/font/67.png diff --git a/assets/tilesheets/font/68.png b/assets/development/tilesheets/font/68.png similarity index 100% rename from assets/tilesheets/font/68.png rename to assets/development/tilesheets/font/68.png diff --git a/assets/tilesheets/font/69.png b/assets/development/tilesheets/font/69.png similarity index 100% rename from assets/tilesheets/font/69.png rename to assets/development/tilesheets/font/69.png diff --git a/assets/tilesheets/font/7.png b/assets/development/tilesheets/font/7.png similarity index 100% rename from assets/tilesheets/font/7.png rename to assets/development/tilesheets/font/7.png diff --git a/assets/tilesheets/font/70.png b/assets/development/tilesheets/font/70.png similarity index 100% rename from assets/tilesheets/font/70.png rename to assets/development/tilesheets/font/70.png diff --git a/assets/tilesheets/font/71.png b/assets/development/tilesheets/font/71.png similarity index 100% rename from assets/tilesheets/font/71.png rename to assets/development/tilesheets/font/71.png diff --git a/assets/tilesheets/font/72.png b/assets/development/tilesheets/font/72.png similarity index 100% rename from assets/tilesheets/font/72.png rename to assets/development/tilesheets/font/72.png diff --git a/assets/tilesheets/font/73.png b/assets/development/tilesheets/font/73.png similarity index 100% rename from assets/tilesheets/font/73.png rename to assets/development/tilesheets/font/73.png diff --git a/assets/tilesheets/font/74.png b/assets/development/tilesheets/font/74.png similarity index 100% rename from assets/tilesheets/font/74.png rename to assets/development/tilesheets/font/74.png diff --git a/assets/tilesheets/font/75.png b/assets/development/tilesheets/font/75.png similarity index 100% rename from assets/tilesheets/font/75.png rename to assets/development/tilesheets/font/75.png diff --git a/assets/tilesheets/font/76.png b/assets/development/tilesheets/font/76.png similarity index 100% rename from assets/tilesheets/font/76.png rename to assets/development/tilesheets/font/76.png diff --git a/assets/tilesheets/font/77.png b/assets/development/tilesheets/font/77.png similarity index 100% rename from assets/tilesheets/font/77.png rename to assets/development/tilesheets/font/77.png diff --git a/assets/tilesheets/font/78.png b/assets/development/tilesheets/font/78.png similarity index 100% rename from assets/tilesheets/font/78.png rename to assets/development/tilesheets/font/78.png diff --git a/assets/tilesheets/font/79.png b/assets/development/tilesheets/font/79.png similarity index 100% rename from assets/tilesheets/font/79.png rename to assets/development/tilesheets/font/79.png diff --git a/assets/tilesheets/font/8.png b/assets/development/tilesheets/font/8.png similarity index 100% rename from assets/tilesheets/font/8.png rename to assets/development/tilesheets/font/8.png diff --git a/assets/tilesheets/font/80.png b/assets/development/tilesheets/font/80.png similarity index 100% rename from assets/tilesheets/font/80.png rename to assets/development/tilesheets/font/80.png diff --git a/assets/tilesheets/font/81.png b/assets/development/tilesheets/font/81.png similarity index 100% rename from assets/tilesheets/font/81.png rename to assets/development/tilesheets/font/81.png diff --git a/assets/tilesheets/font/82.png b/assets/development/tilesheets/font/82.png similarity index 100% rename from assets/tilesheets/font/82.png rename to assets/development/tilesheets/font/82.png diff --git a/assets/tilesheets/font/83.png b/assets/development/tilesheets/font/83.png similarity index 100% rename from assets/tilesheets/font/83.png rename to assets/development/tilesheets/font/83.png diff --git a/assets/tilesheets/font/84.png b/assets/development/tilesheets/font/84.png similarity index 100% rename from assets/tilesheets/font/84.png rename to assets/development/tilesheets/font/84.png diff --git a/assets/tilesheets/font/85.png b/assets/development/tilesheets/font/85.png similarity index 100% rename from assets/tilesheets/font/85.png rename to assets/development/tilesheets/font/85.png diff --git a/assets/tilesheets/font/86.png b/assets/development/tilesheets/font/86.png similarity index 100% rename from assets/tilesheets/font/86.png rename to assets/development/tilesheets/font/86.png diff --git a/assets/tilesheets/font/87.png b/assets/development/tilesheets/font/87.png similarity index 100% rename from assets/tilesheets/font/87.png rename to assets/development/tilesheets/font/87.png diff --git a/assets/tilesheets/font/88.png b/assets/development/tilesheets/font/88.png similarity index 100% rename from assets/tilesheets/font/88.png rename to assets/development/tilesheets/font/88.png diff --git a/assets/tilesheets/font/89.png b/assets/development/tilesheets/font/89.png similarity index 100% rename from assets/tilesheets/font/89.png rename to assets/development/tilesheets/font/89.png diff --git a/assets/tilesheets/font/9.png b/assets/development/tilesheets/font/9.png similarity index 100% rename from assets/tilesheets/font/9.png rename to assets/development/tilesheets/font/9.png diff --git a/assets/tilesheets/font/90.png b/assets/development/tilesheets/font/90.png similarity index 100% rename from assets/tilesheets/font/90.png rename to assets/development/tilesheets/font/90.png diff --git a/assets/tilesheets/font/91.png b/assets/development/tilesheets/font/91.png similarity index 100% rename from assets/tilesheets/font/91.png rename to assets/development/tilesheets/font/91.png diff --git a/assets/tilesheets/font/92.png b/assets/development/tilesheets/font/92.png similarity index 100% rename from assets/tilesheets/font/92.png rename to assets/development/tilesheets/font/92.png diff --git a/assets/tilesheets/font/93.png b/assets/development/tilesheets/font/93.png similarity index 100% rename from assets/tilesheets/font/93.png rename to assets/development/tilesheets/font/93.png diff --git a/assets/tilesheets/font/94.png b/assets/development/tilesheets/font/94.png similarity index 100% rename from assets/tilesheets/font/94.png rename to assets/development/tilesheets/font/94.png diff --git a/assets/tilesheets/font/95.png b/assets/development/tilesheets/font/95.png similarity index 100% rename from assets/tilesheets/font/95.png rename to assets/development/tilesheets/font/95.png diff --git a/assets/tilesheets/font/96.png b/assets/development/tilesheets/font/96.png similarity index 100% rename from assets/tilesheets/font/96.png rename to assets/development/tilesheets/font/96.png diff --git a/assets/tilesheets/font/97.png b/assets/development/tilesheets/font/97.png similarity index 100% rename from assets/tilesheets/font/97.png rename to assets/development/tilesheets/font/97.png diff --git a/assets/tilesheets/font/98.png b/assets/development/tilesheets/font/98.png similarity index 100% rename from assets/tilesheets/font/98.png rename to assets/development/tilesheets/font/98.png diff --git a/assets/tilesheets/font/99.png b/assets/development/tilesheets/font/99.png similarity index 100% rename from assets/tilesheets/font/99.png rename to assets/development/tilesheets/font/99.png diff --git a/assets/tilesheets/hud/0.png b/assets/development/tilesheets/hud/0.png similarity index 100% rename from assets/tilesheets/hud/0.png rename to assets/development/tilesheets/hud/0.png diff --git a/assets/tilesheets/hud/1.png b/assets/development/tilesheets/hud/1.png similarity index 100% rename from assets/tilesheets/hud/1.png rename to assets/development/tilesheets/hud/1.png diff --git a/assets/tilesheets/hud/10.png b/assets/development/tilesheets/hud/10.png similarity index 100% rename from assets/tilesheets/hud/10.png rename to assets/development/tilesheets/hud/10.png diff --git a/assets/tilesheets/hud/11.png b/assets/development/tilesheets/hud/11.png similarity index 100% rename from assets/tilesheets/hud/11.png rename to assets/development/tilesheets/hud/11.png diff --git a/assets/tilesheets/hud/12.png b/assets/development/tilesheets/hud/12.png similarity index 100% rename from assets/tilesheets/hud/12.png rename to assets/development/tilesheets/hud/12.png diff --git a/assets/tilesheets/hud/13.png b/assets/development/tilesheets/hud/13.png similarity index 100% rename from assets/tilesheets/hud/13.png rename to assets/development/tilesheets/hud/13.png diff --git a/assets/tilesheets/hud/14.png b/assets/development/tilesheets/hud/14.png similarity index 100% rename from assets/tilesheets/hud/14.png rename to assets/development/tilesheets/hud/14.png diff --git a/assets/tilesheets/hud/15.png b/assets/development/tilesheets/hud/15.png similarity index 100% rename from assets/tilesheets/hud/15.png rename to assets/development/tilesheets/hud/15.png diff --git a/assets/tilesheets/hud/16.png b/assets/development/tilesheets/hud/16.png similarity index 100% rename from assets/tilesheets/hud/16.png rename to assets/development/tilesheets/hud/16.png diff --git a/assets/tilesheets/hud/17.png b/assets/development/tilesheets/hud/17.png similarity index 100% rename from assets/tilesheets/hud/17.png rename to assets/development/tilesheets/hud/17.png diff --git a/assets/tilesheets/hud/18.png b/assets/development/tilesheets/hud/18.png similarity index 100% rename from assets/tilesheets/hud/18.png rename to assets/development/tilesheets/hud/18.png diff --git a/assets/tilesheets/hud/19.png b/assets/development/tilesheets/hud/19.png similarity index 100% rename from assets/tilesheets/hud/19.png rename to assets/development/tilesheets/hud/19.png diff --git a/assets/tilesheets/hud/2.png b/assets/development/tilesheets/hud/2.png similarity index 100% rename from assets/tilesheets/hud/2.png rename to assets/development/tilesheets/hud/2.png diff --git a/assets/tilesheets/hud/20.png b/assets/development/tilesheets/hud/20.png similarity index 100% rename from assets/tilesheets/hud/20.png rename to assets/development/tilesheets/hud/20.png diff --git a/assets/tilesheets/hud/21.png b/assets/development/tilesheets/hud/21.png similarity index 100% rename from assets/tilesheets/hud/21.png rename to assets/development/tilesheets/hud/21.png diff --git a/assets/tilesheets/hud/3.png b/assets/development/tilesheets/hud/3.png similarity index 100% rename from assets/tilesheets/hud/3.png rename to assets/development/tilesheets/hud/3.png diff --git a/assets/tilesheets/hud/4.png b/assets/development/tilesheets/hud/4.png similarity index 100% rename from assets/tilesheets/hud/4.png rename to assets/development/tilesheets/hud/4.png diff --git a/assets/tilesheets/hud/5.png b/assets/development/tilesheets/hud/5.png similarity index 100% rename from assets/tilesheets/hud/5.png rename to assets/development/tilesheets/hud/5.png diff --git a/assets/tilesheets/hud/6.png b/assets/development/tilesheets/hud/6.png similarity index 100% rename from assets/tilesheets/hud/6.png rename to assets/development/tilesheets/hud/6.png diff --git a/assets/tilesheets/hud/7.png b/assets/development/tilesheets/hud/7.png similarity index 100% rename from assets/tilesheets/hud/7.png rename to assets/development/tilesheets/hud/7.png diff --git a/assets/tilesheets/hud/8.png b/assets/development/tilesheets/hud/8.png similarity index 100% rename from assets/tilesheets/hud/8.png rename to assets/development/tilesheets/hud/8.png diff --git a/assets/tilesheets/hud/9.png b/assets/development/tilesheets/hud/9.png similarity index 100% rename from assets/tilesheets/hud/9.png rename to assets/development/tilesheets/hud/9.png diff --git a/assets/tilesheets/level-tiles/0.png b/assets/development/tilesheets/level-tiles/0.png similarity index 100% rename from assets/tilesheets/level-tiles/0.png rename to assets/development/tilesheets/level-tiles/0.png diff --git a/assets/tilesheets/level-tiles/1.png b/assets/development/tilesheets/level-tiles/1.png similarity index 100% rename from assets/tilesheets/level-tiles/1.png rename to assets/development/tilesheets/level-tiles/1.png diff --git a/assets/tilesheets/level-tiles/10.png b/assets/development/tilesheets/level-tiles/10.png similarity index 100% rename from assets/tilesheets/level-tiles/10.png rename to assets/development/tilesheets/level-tiles/10.png diff --git a/assets/tilesheets/level-tiles/11.png b/assets/development/tilesheets/level-tiles/11.png similarity index 100% rename from assets/tilesheets/level-tiles/11.png rename to assets/development/tilesheets/level-tiles/11.png diff --git a/assets/tilesheets/level-tiles/12.png b/assets/development/tilesheets/level-tiles/12.png similarity index 100% rename from assets/tilesheets/level-tiles/12.png rename to assets/development/tilesheets/level-tiles/12.png diff --git a/assets/tilesheets/level-tiles/13.png b/assets/development/tilesheets/level-tiles/13.png similarity index 100% rename from assets/tilesheets/level-tiles/13.png rename to assets/development/tilesheets/level-tiles/13.png diff --git a/assets/tilesheets/level-tiles/14.png b/assets/development/tilesheets/level-tiles/14.png similarity index 100% rename from assets/tilesheets/level-tiles/14.png rename to assets/development/tilesheets/level-tiles/14.png diff --git a/assets/tilesheets/level-tiles/15.png b/assets/development/tilesheets/level-tiles/15.png similarity index 100% rename from assets/tilesheets/level-tiles/15.png rename to assets/development/tilesheets/level-tiles/15.png diff --git a/assets/tilesheets/level-tiles/16.png b/assets/development/tilesheets/level-tiles/16.png similarity index 100% rename from assets/tilesheets/level-tiles/16.png rename to assets/development/tilesheets/level-tiles/16.png diff --git a/assets/tilesheets/level-tiles/17.png b/assets/development/tilesheets/level-tiles/17.png similarity index 100% rename from assets/tilesheets/level-tiles/17.png rename to assets/development/tilesheets/level-tiles/17.png diff --git a/assets/tilesheets/level-tiles/18.png b/assets/development/tilesheets/level-tiles/18.png similarity index 100% rename from assets/tilesheets/level-tiles/18.png rename to assets/development/tilesheets/level-tiles/18.png diff --git a/assets/tilesheets/level-tiles/19.png b/assets/development/tilesheets/level-tiles/19.png similarity index 100% rename from assets/tilesheets/level-tiles/19.png rename to assets/development/tilesheets/level-tiles/19.png diff --git a/assets/tilesheets/level-tiles/2.png b/assets/development/tilesheets/level-tiles/2.png similarity index 100% rename from assets/tilesheets/level-tiles/2.png rename to assets/development/tilesheets/level-tiles/2.png diff --git a/assets/tilesheets/level-tiles/20.png b/assets/development/tilesheets/level-tiles/20.png similarity index 100% rename from assets/tilesheets/level-tiles/20.png rename to assets/development/tilesheets/level-tiles/20.png diff --git a/assets/tilesheets/level-tiles/21.png b/assets/development/tilesheets/level-tiles/21.png similarity index 100% rename from assets/tilesheets/level-tiles/21.png rename to assets/development/tilesheets/level-tiles/21.png diff --git a/assets/tilesheets/level-tiles/22.png b/assets/development/tilesheets/level-tiles/22.png similarity index 100% rename from assets/tilesheets/level-tiles/22.png rename to assets/development/tilesheets/level-tiles/22.png diff --git a/assets/tilesheets/level-tiles/23.png b/assets/development/tilesheets/level-tiles/23.png similarity index 100% rename from assets/tilesheets/level-tiles/23.png rename to assets/development/tilesheets/level-tiles/23.png diff --git a/assets/tilesheets/level-tiles/24.png b/assets/development/tilesheets/level-tiles/24.png similarity index 100% rename from assets/tilesheets/level-tiles/24.png rename to assets/development/tilesheets/level-tiles/24.png diff --git a/assets/tilesheets/level-tiles/25.png b/assets/development/tilesheets/level-tiles/25.png similarity index 100% rename from assets/tilesheets/level-tiles/25.png rename to assets/development/tilesheets/level-tiles/25.png diff --git a/assets/tilesheets/level-tiles/26.png b/assets/development/tilesheets/level-tiles/26.png similarity index 100% rename from assets/tilesheets/level-tiles/26.png rename to assets/development/tilesheets/level-tiles/26.png diff --git a/assets/tilesheets/level-tiles/27.png b/assets/development/tilesheets/level-tiles/27.png similarity index 100% rename from assets/tilesheets/level-tiles/27.png rename to assets/development/tilesheets/level-tiles/27.png diff --git a/assets/tilesheets/level-tiles/28.png b/assets/development/tilesheets/level-tiles/28.png similarity index 100% rename from assets/tilesheets/level-tiles/28.png rename to assets/development/tilesheets/level-tiles/28.png diff --git a/assets/tilesheets/level-tiles/29.png b/assets/development/tilesheets/level-tiles/29.png similarity index 100% rename from assets/tilesheets/level-tiles/29.png rename to assets/development/tilesheets/level-tiles/29.png diff --git a/assets/tilesheets/level-tiles/3.png b/assets/development/tilesheets/level-tiles/3.png similarity index 100% rename from assets/tilesheets/level-tiles/3.png rename to assets/development/tilesheets/level-tiles/3.png diff --git a/assets/tilesheets/level-tiles/30.png b/assets/development/tilesheets/level-tiles/30.png similarity index 100% rename from assets/tilesheets/level-tiles/30.png rename to assets/development/tilesheets/level-tiles/30.png diff --git a/assets/tilesheets/level-tiles/31.png b/assets/development/tilesheets/level-tiles/31.png similarity index 100% rename from assets/tilesheets/level-tiles/31.png rename to assets/development/tilesheets/level-tiles/31.png diff --git a/assets/tilesheets/level-tiles/32.png b/assets/development/tilesheets/level-tiles/32.png similarity index 100% rename from assets/tilesheets/level-tiles/32.png rename to assets/development/tilesheets/level-tiles/32.png diff --git a/assets/tilesheets/level-tiles/33.png b/assets/development/tilesheets/level-tiles/33.png similarity index 100% rename from assets/tilesheets/level-tiles/33.png rename to assets/development/tilesheets/level-tiles/33.png diff --git a/assets/tilesheets/level-tiles/34.png b/assets/development/tilesheets/level-tiles/34.png similarity index 100% rename from assets/tilesheets/level-tiles/34.png rename to assets/development/tilesheets/level-tiles/34.png diff --git a/assets/tilesheets/level-tiles/35.png b/assets/development/tilesheets/level-tiles/35.png similarity index 100% rename from assets/tilesheets/level-tiles/35.png rename to assets/development/tilesheets/level-tiles/35.png diff --git a/assets/tilesheets/level-tiles/36.png b/assets/development/tilesheets/level-tiles/36.png similarity index 100% rename from assets/tilesheets/level-tiles/36.png rename to assets/development/tilesheets/level-tiles/36.png diff --git a/assets/tilesheets/level-tiles/37.png b/assets/development/tilesheets/level-tiles/37.png similarity index 100% rename from assets/tilesheets/level-tiles/37.png rename to assets/development/tilesheets/level-tiles/37.png diff --git a/assets/tilesheets/level-tiles/38.png b/assets/development/tilesheets/level-tiles/38.png similarity index 100% rename from assets/tilesheets/level-tiles/38.png rename to assets/development/tilesheets/level-tiles/38.png diff --git a/assets/tilesheets/level-tiles/39.png b/assets/development/tilesheets/level-tiles/39.png similarity index 100% rename from assets/tilesheets/level-tiles/39.png rename to assets/development/tilesheets/level-tiles/39.png diff --git a/assets/tilesheets/level-tiles/4.png b/assets/development/tilesheets/level-tiles/4.png similarity index 100% rename from assets/tilesheets/level-tiles/4.png rename to assets/development/tilesheets/level-tiles/4.png diff --git a/assets/tilesheets/level-tiles/40.png b/assets/development/tilesheets/level-tiles/40.png similarity index 100% rename from assets/tilesheets/level-tiles/40.png rename to assets/development/tilesheets/level-tiles/40.png diff --git a/assets/tilesheets/level-tiles/41.png b/assets/development/tilesheets/level-tiles/41.png similarity index 100% rename from assets/tilesheets/level-tiles/41.png rename to assets/development/tilesheets/level-tiles/41.png diff --git a/assets/tilesheets/level-tiles/42.png b/assets/development/tilesheets/level-tiles/42.png similarity index 100% rename from assets/tilesheets/level-tiles/42.png rename to assets/development/tilesheets/level-tiles/42.png diff --git a/assets/tilesheets/level-tiles/43.png b/assets/development/tilesheets/level-tiles/43.png similarity index 100% rename from assets/tilesheets/level-tiles/43.png rename to assets/development/tilesheets/level-tiles/43.png diff --git a/assets/tilesheets/level-tiles/44.png b/assets/development/tilesheets/level-tiles/44.png similarity index 100% rename from assets/tilesheets/level-tiles/44.png rename to assets/development/tilesheets/level-tiles/44.png diff --git a/assets/tilesheets/level-tiles/45.png b/assets/development/tilesheets/level-tiles/45.png similarity index 100% rename from assets/tilesheets/level-tiles/45.png rename to assets/development/tilesheets/level-tiles/45.png diff --git a/assets/tilesheets/level-tiles/46.png b/assets/development/tilesheets/level-tiles/46.png similarity index 100% rename from assets/tilesheets/level-tiles/46.png rename to assets/development/tilesheets/level-tiles/46.png diff --git a/assets/tilesheets/level-tiles/5.png b/assets/development/tilesheets/level-tiles/5.png similarity index 100% rename from assets/tilesheets/level-tiles/5.png rename to assets/development/tilesheets/level-tiles/5.png diff --git a/assets/tilesheets/level-tiles/6.png b/assets/development/tilesheets/level-tiles/6.png similarity index 100% rename from assets/tilesheets/level-tiles/6.png rename to assets/development/tilesheets/level-tiles/6.png diff --git a/assets/tilesheets/level-tiles/7.png b/assets/development/tilesheets/level-tiles/7.png similarity index 100% rename from assets/tilesheets/level-tiles/7.png rename to assets/development/tilesheets/level-tiles/7.png diff --git a/assets/tilesheets/level-tiles/8.png b/assets/development/tilesheets/level-tiles/8.png similarity index 100% rename from assets/tilesheets/level-tiles/8.png rename to assets/development/tilesheets/level-tiles/8.png diff --git a/assets/tilesheets/level-tiles/9.png b/assets/development/tilesheets/level-tiles/9.png similarity index 100% rename from assets/tilesheets/level-tiles/9.png rename to assets/development/tilesheets/level-tiles/9.png diff --git a/assets/tilesheets/main-dude/0.png b/assets/development/tilesheets/main-dude/0.png similarity index 100% rename from assets/tilesheets/main-dude/0.png rename to assets/development/tilesheets/main-dude/0.png diff --git a/assets/tilesheets/main-dude/1.png b/assets/development/tilesheets/main-dude/1.png similarity index 100% rename from assets/tilesheets/main-dude/1.png rename to assets/development/tilesheets/main-dude/1.png diff --git a/assets/tilesheets/main-dude/10.png b/assets/development/tilesheets/main-dude/10.png similarity index 100% rename from assets/tilesheets/main-dude/10.png rename to assets/development/tilesheets/main-dude/10.png diff --git a/assets/tilesheets/main-dude/11.png b/assets/development/tilesheets/main-dude/11.png similarity index 100% rename from assets/tilesheets/main-dude/11.png rename to assets/development/tilesheets/main-dude/11.png diff --git a/assets/tilesheets/main-dude/12.png b/assets/development/tilesheets/main-dude/12.png similarity index 100% rename from assets/tilesheets/main-dude/12.png rename to assets/development/tilesheets/main-dude/12.png diff --git a/assets/tilesheets/main-dude/13.png b/assets/development/tilesheets/main-dude/13.png similarity index 100% rename from assets/tilesheets/main-dude/13.png rename to assets/development/tilesheets/main-dude/13.png diff --git a/assets/tilesheets/main-dude/14.png b/assets/development/tilesheets/main-dude/14.png similarity index 100% rename from assets/tilesheets/main-dude/14.png rename to assets/development/tilesheets/main-dude/14.png diff --git a/assets/tilesheets/main-dude/15.png b/assets/development/tilesheets/main-dude/15.png similarity index 100% rename from assets/tilesheets/main-dude/15.png rename to assets/development/tilesheets/main-dude/15.png diff --git a/assets/tilesheets/main-dude/16.png b/assets/development/tilesheets/main-dude/16.png similarity index 100% rename from assets/tilesheets/main-dude/16.png rename to assets/development/tilesheets/main-dude/16.png diff --git a/assets/tilesheets/main-dude/17.png b/assets/development/tilesheets/main-dude/17.png similarity index 100% rename from assets/tilesheets/main-dude/17.png rename to assets/development/tilesheets/main-dude/17.png diff --git a/assets/tilesheets/main-dude/18.png b/assets/development/tilesheets/main-dude/18.png similarity index 100% rename from assets/tilesheets/main-dude/18.png rename to assets/development/tilesheets/main-dude/18.png diff --git a/assets/tilesheets/main-dude/19.png b/assets/development/tilesheets/main-dude/19.png similarity index 100% rename from assets/tilesheets/main-dude/19.png rename to assets/development/tilesheets/main-dude/19.png diff --git a/assets/tilesheets/main-dude/2.png b/assets/development/tilesheets/main-dude/2.png similarity index 100% rename from assets/tilesheets/main-dude/2.png rename to assets/development/tilesheets/main-dude/2.png diff --git a/assets/tilesheets/main-dude/20.png b/assets/development/tilesheets/main-dude/20.png similarity index 100% rename from assets/tilesheets/main-dude/20.png rename to assets/development/tilesheets/main-dude/20.png diff --git a/assets/tilesheets/main-dude/21.png b/assets/development/tilesheets/main-dude/21.png similarity index 100% rename from assets/tilesheets/main-dude/21.png rename to assets/development/tilesheets/main-dude/21.png diff --git a/assets/tilesheets/main-dude/22.png b/assets/development/tilesheets/main-dude/22.png similarity index 100% rename from assets/tilesheets/main-dude/22.png rename to assets/development/tilesheets/main-dude/22.png diff --git a/assets/tilesheets/main-dude/23.png b/assets/development/tilesheets/main-dude/23.png similarity index 100% rename from assets/tilesheets/main-dude/23.png rename to assets/development/tilesheets/main-dude/23.png diff --git a/assets/tilesheets/main-dude/24.png b/assets/development/tilesheets/main-dude/24.png similarity index 100% rename from assets/tilesheets/main-dude/24.png rename to assets/development/tilesheets/main-dude/24.png diff --git a/assets/tilesheets/main-dude/25.png b/assets/development/tilesheets/main-dude/25.png similarity index 100% rename from assets/tilesheets/main-dude/25.png rename to assets/development/tilesheets/main-dude/25.png diff --git a/assets/tilesheets/main-dude/26.png b/assets/development/tilesheets/main-dude/26.png similarity index 100% rename from assets/tilesheets/main-dude/26.png rename to assets/development/tilesheets/main-dude/26.png diff --git a/assets/tilesheets/main-dude/27.png b/assets/development/tilesheets/main-dude/27.png similarity index 100% rename from assets/tilesheets/main-dude/27.png rename to assets/development/tilesheets/main-dude/27.png diff --git a/assets/tilesheets/main-dude/28.png b/assets/development/tilesheets/main-dude/28.png similarity index 100% rename from assets/tilesheets/main-dude/28.png rename to assets/development/tilesheets/main-dude/28.png diff --git a/assets/tilesheets/main-dude/29.png b/assets/development/tilesheets/main-dude/29.png similarity index 100% rename from assets/tilesheets/main-dude/29.png rename to assets/development/tilesheets/main-dude/29.png diff --git a/assets/tilesheets/main-dude/3.png b/assets/development/tilesheets/main-dude/3.png similarity index 100% rename from assets/tilesheets/main-dude/3.png rename to assets/development/tilesheets/main-dude/3.png diff --git a/assets/tilesheets/main-dude/30.png b/assets/development/tilesheets/main-dude/30.png similarity index 100% rename from assets/tilesheets/main-dude/30.png rename to assets/development/tilesheets/main-dude/30.png diff --git a/assets/tilesheets/main-dude/31.png b/assets/development/tilesheets/main-dude/31.png similarity index 100% rename from assets/tilesheets/main-dude/31.png rename to assets/development/tilesheets/main-dude/31.png diff --git a/assets/tilesheets/main-dude/32.png b/assets/development/tilesheets/main-dude/32.png similarity index 100% rename from assets/tilesheets/main-dude/32.png rename to assets/development/tilesheets/main-dude/32.png diff --git a/assets/tilesheets/main-dude/33.png b/assets/development/tilesheets/main-dude/33.png similarity index 100% rename from assets/tilesheets/main-dude/33.png rename to assets/development/tilesheets/main-dude/33.png diff --git a/assets/tilesheets/main-dude/34.png b/assets/development/tilesheets/main-dude/34.png similarity index 100% rename from assets/tilesheets/main-dude/34.png rename to assets/development/tilesheets/main-dude/34.png diff --git a/assets/tilesheets/main-dude/35.png b/assets/development/tilesheets/main-dude/35.png similarity index 100% rename from assets/tilesheets/main-dude/35.png rename to assets/development/tilesheets/main-dude/35.png diff --git a/assets/tilesheets/main-dude/36.png b/assets/development/tilesheets/main-dude/36.png similarity index 100% rename from assets/tilesheets/main-dude/36.png rename to assets/development/tilesheets/main-dude/36.png diff --git a/assets/tilesheets/main-dude/37.png b/assets/development/tilesheets/main-dude/37.png similarity index 100% rename from assets/tilesheets/main-dude/37.png rename to assets/development/tilesheets/main-dude/37.png diff --git a/assets/tilesheets/main-dude/38.png b/assets/development/tilesheets/main-dude/38.png similarity index 100% rename from assets/tilesheets/main-dude/38.png rename to assets/development/tilesheets/main-dude/38.png diff --git a/assets/tilesheets/main-dude/39.png b/assets/development/tilesheets/main-dude/39.png similarity index 100% rename from assets/tilesheets/main-dude/39.png rename to assets/development/tilesheets/main-dude/39.png diff --git a/assets/tilesheets/main-dude/4.png b/assets/development/tilesheets/main-dude/4.png similarity index 100% rename from assets/tilesheets/main-dude/4.png rename to assets/development/tilesheets/main-dude/4.png diff --git a/assets/tilesheets/main-dude/40.png b/assets/development/tilesheets/main-dude/40.png similarity index 100% rename from assets/tilesheets/main-dude/40.png rename to assets/development/tilesheets/main-dude/40.png diff --git a/assets/tilesheets/main-dude/41.png b/assets/development/tilesheets/main-dude/41.png similarity index 100% rename from assets/tilesheets/main-dude/41.png rename to assets/development/tilesheets/main-dude/41.png diff --git a/assets/tilesheets/main-dude/42.png b/assets/development/tilesheets/main-dude/42.png similarity index 100% rename from assets/tilesheets/main-dude/42.png rename to assets/development/tilesheets/main-dude/42.png diff --git a/assets/tilesheets/main-dude/43.png b/assets/development/tilesheets/main-dude/43.png similarity index 100% rename from assets/tilesheets/main-dude/43.png rename to assets/development/tilesheets/main-dude/43.png diff --git a/assets/tilesheets/main-dude/44.png b/assets/development/tilesheets/main-dude/44.png similarity index 100% rename from assets/tilesheets/main-dude/44.png rename to assets/development/tilesheets/main-dude/44.png diff --git a/assets/tilesheets/main-dude/45.png b/assets/development/tilesheets/main-dude/45.png similarity index 100% rename from assets/tilesheets/main-dude/45.png rename to assets/development/tilesheets/main-dude/45.png diff --git a/assets/tilesheets/main-dude/46.png b/assets/development/tilesheets/main-dude/46.png similarity index 100% rename from assets/tilesheets/main-dude/46.png rename to assets/development/tilesheets/main-dude/46.png diff --git a/assets/tilesheets/main-dude/47.png b/assets/development/tilesheets/main-dude/47.png similarity index 100% rename from assets/tilesheets/main-dude/47.png rename to assets/development/tilesheets/main-dude/47.png diff --git a/assets/tilesheets/main-dude/48.png b/assets/development/tilesheets/main-dude/48.png similarity index 100% rename from assets/tilesheets/main-dude/48.png rename to assets/development/tilesheets/main-dude/48.png diff --git a/assets/tilesheets/main-dude/49.png b/assets/development/tilesheets/main-dude/49.png similarity index 100% rename from assets/tilesheets/main-dude/49.png rename to assets/development/tilesheets/main-dude/49.png diff --git a/assets/tilesheets/main-dude/5.png b/assets/development/tilesheets/main-dude/5.png similarity index 100% rename from assets/tilesheets/main-dude/5.png rename to assets/development/tilesheets/main-dude/5.png diff --git a/assets/tilesheets/main-dude/50.png b/assets/development/tilesheets/main-dude/50.png similarity index 100% rename from assets/tilesheets/main-dude/50.png rename to assets/development/tilesheets/main-dude/50.png diff --git a/assets/tilesheets/main-dude/51.png b/assets/development/tilesheets/main-dude/51.png similarity index 100% rename from assets/tilesheets/main-dude/51.png rename to assets/development/tilesheets/main-dude/51.png diff --git a/assets/tilesheets/main-dude/52.png b/assets/development/tilesheets/main-dude/52.png similarity index 100% rename from assets/tilesheets/main-dude/52.png rename to assets/development/tilesheets/main-dude/52.png diff --git a/assets/tilesheets/main-dude/53.png b/assets/development/tilesheets/main-dude/53.png similarity index 100% rename from assets/tilesheets/main-dude/53.png rename to assets/development/tilesheets/main-dude/53.png diff --git a/assets/tilesheets/main-dude/54.png b/assets/development/tilesheets/main-dude/54.png similarity index 100% rename from assets/tilesheets/main-dude/54.png rename to assets/development/tilesheets/main-dude/54.png diff --git a/assets/tilesheets/main-dude/55.png b/assets/development/tilesheets/main-dude/55.png similarity index 100% rename from assets/tilesheets/main-dude/55.png rename to assets/development/tilesheets/main-dude/55.png diff --git a/assets/tilesheets/main-dude/56.png b/assets/development/tilesheets/main-dude/56.png similarity index 100% rename from assets/tilesheets/main-dude/56.png rename to assets/development/tilesheets/main-dude/56.png diff --git a/assets/tilesheets/main-dude/57.png b/assets/development/tilesheets/main-dude/57.png similarity index 100% rename from assets/tilesheets/main-dude/57.png rename to assets/development/tilesheets/main-dude/57.png diff --git a/assets/tilesheets/main-dude/58.png b/assets/development/tilesheets/main-dude/58.png similarity index 100% rename from assets/tilesheets/main-dude/58.png rename to assets/development/tilesheets/main-dude/58.png diff --git a/assets/tilesheets/main-dude/59.png b/assets/development/tilesheets/main-dude/59.png similarity index 100% rename from assets/tilesheets/main-dude/59.png rename to assets/development/tilesheets/main-dude/59.png diff --git a/assets/tilesheets/main-dude/6.png b/assets/development/tilesheets/main-dude/6.png similarity index 100% rename from assets/tilesheets/main-dude/6.png rename to assets/development/tilesheets/main-dude/6.png diff --git a/assets/tilesheets/main-dude/60.png b/assets/development/tilesheets/main-dude/60.png similarity index 100% rename from assets/tilesheets/main-dude/60.png rename to assets/development/tilesheets/main-dude/60.png diff --git a/assets/tilesheets/main-dude/61.png b/assets/development/tilesheets/main-dude/61.png similarity index 100% rename from assets/tilesheets/main-dude/61.png rename to assets/development/tilesheets/main-dude/61.png diff --git a/assets/tilesheets/main-dude/62.png b/assets/development/tilesheets/main-dude/62.png similarity index 100% rename from assets/tilesheets/main-dude/62.png rename to assets/development/tilesheets/main-dude/62.png diff --git a/assets/tilesheets/main-dude/63.png b/assets/development/tilesheets/main-dude/63.png similarity index 100% rename from assets/tilesheets/main-dude/63.png rename to assets/development/tilesheets/main-dude/63.png diff --git a/assets/tilesheets/main-dude/64.png b/assets/development/tilesheets/main-dude/64.png similarity index 100% rename from assets/tilesheets/main-dude/64.png rename to assets/development/tilesheets/main-dude/64.png diff --git a/assets/tilesheets/main-dude/65.png b/assets/development/tilesheets/main-dude/65.png similarity index 100% rename from assets/tilesheets/main-dude/65.png rename to assets/development/tilesheets/main-dude/65.png diff --git a/assets/tilesheets/main-dude/66.png b/assets/development/tilesheets/main-dude/66.png similarity index 100% rename from assets/tilesheets/main-dude/66.png rename to assets/development/tilesheets/main-dude/66.png diff --git a/assets/tilesheets/main-dude/67.png b/assets/development/tilesheets/main-dude/67.png similarity index 100% rename from assets/tilesheets/main-dude/67.png rename to assets/development/tilesheets/main-dude/67.png diff --git a/assets/tilesheets/main-dude/68.png b/assets/development/tilesheets/main-dude/68.png similarity index 100% rename from assets/tilesheets/main-dude/68.png rename to assets/development/tilesheets/main-dude/68.png diff --git a/assets/tilesheets/main-dude/69.png b/assets/development/tilesheets/main-dude/69.png similarity index 100% rename from assets/tilesheets/main-dude/69.png rename to assets/development/tilesheets/main-dude/69.png diff --git a/assets/tilesheets/main-dude/7.png b/assets/development/tilesheets/main-dude/7.png similarity index 100% rename from assets/tilesheets/main-dude/7.png rename to assets/development/tilesheets/main-dude/7.png diff --git a/assets/tilesheets/main-dude/70.png b/assets/development/tilesheets/main-dude/70.png similarity index 100% rename from assets/tilesheets/main-dude/70.png rename to assets/development/tilesheets/main-dude/70.png diff --git a/assets/tilesheets/main-dude/71.png b/assets/development/tilesheets/main-dude/71.png similarity index 100% rename from assets/tilesheets/main-dude/71.png rename to assets/development/tilesheets/main-dude/71.png diff --git a/assets/tilesheets/main-dude/72.png b/assets/development/tilesheets/main-dude/72.png similarity index 100% rename from assets/tilesheets/main-dude/72.png rename to assets/development/tilesheets/main-dude/72.png diff --git a/assets/tilesheets/main-dude/73.png b/assets/development/tilesheets/main-dude/73.png similarity index 100% rename from assets/tilesheets/main-dude/73.png rename to assets/development/tilesheets/main-dude/73.png diff --git a/assets/tilesheets/main-dude/74.png b/assets/development/tilesheets/main-dude/74.png similarity index 100% rename from assets/tilesheets/main-dude/74.png rename to assets/development/tilesheets/main-dude/74.png diff --git a/assets/tilesheets/main-dude/75.png b/assets/development/tilesheets/main-dude/75.png similarity index 100% rename from assets/tilesheets/main-dude/75.png rename to assets/development/tilesheets/main-dude/75.png diff --git a/assets/tilesheets/main-dude/76.png b/assets/development/tilesheets/main-dude/76.png similarity index 100% rename from assets/tilesheets/main-dude/76.png rename to assets/development/tilesheets/main-dude/76.png diff --git a/assets/tilesheets/main-dude/77.png b/assets/development/tilesheets/main-dude/77.png similarity index 100% rename from assets/tilesheets/main-dude/77.png rename to assets/development/tilesheets/main-dude/77.png diff --git a/assets/tilesheets/main-dude/78.png b/assets/development/tilesheets/main-dude/78.png similarity index 100% rename from assets/tilesheets/main-dude/78.png rename to assets/development/tilesheets/main-dude/78.png diff --git a/assets/tilesheets/main-dude/79.png b/assets/development/tilesheets/main-dude/79.png similarity index 100% rename from assets/tilesheets/main-dude/79.png rename to assets/development/tilesheets/main-dude/79.png diff --git a/assets/tilesheets/main-dude/8.png b/assets/development/tilesheets/main-dude/8.png similarity index 100% rename from assets/tilesheets/main-dude/8.png rename to assets/development/tilesheets/main-dude/8.png diff --git a/assets/tilesheets/main-dude/80.png b/assets/development/tilesheets/main-dude/80.png similarity index 100% rename from assets/tilesheets/main-dude/80.png rename to assets/development/tilesheets/main-dude/80.png diff --git a/assets/tilesheets/main-dude/81.png b/assets/development/tilesheets/main-dude/81.png similarity index 100% rename from assets/tilesheets/main-dude/81.png rename to assets/development/tilesheets/main-dude/81.png diff --git a/assets/tilesheets/main-dude/82.png b/assets/development/tilesheets/main-dude/82.png similarity index 100% rename from assets/tilesheets/main-dude/82.png rename to assets/development/tilesheets/main-dude/82.png diff --git a/assets/tilesheets/main-dude/83.png b/assets/development/tilesheets/main-dude/83.png similarity index 100% rename from assets/tilesheets/main-dude/83.png rename to assets/development/tilesheets/main-dude/83.png diff --git a/assets/tilesheets/main-dude/9.png b/assets/development/tilesheets/main-dude/9.png similarity index 100% rename from assets/tilesheets/main-dude/9.png rename to assets/development/tilesheets/main-dude/9.png diff --git a/assets/tilesheets/main-menu/0.png b/assets/development/tilesheets/main-menu/0.png similarity index 100% rename from assets/tilesheets/main-menu/0.png rename to assets/development/tilesheets/main-menu/0.png diff --git a/assets/tilesheets/main-menu/1.png b/assets/development/tilesheets/main-menu/1.png similarity index 100% rename from assets/tilesheets/main-menu/1.png rename to assets/development/tilesheets/main-menu/1.png diff --git a/assets/tilesheets/main-menu/2.png b/assets/development/tilesheets/main-menu/2.png similarity index 100% rename from assets/tilesheets/main-menu/2.png rename to assets/development/tilesheets/main-menu/2.png diff --git a/assets/tilesheets/main-menu/3.png b/assets/development/tilesheets/main-menu/3.png similarity index 100% rename from assets/tilesheets/main-menu/3.png rename to assets/development/tilesheets/main-menu/3.png diff --git a/assets/tilesheets/main-menu/4.png b/assets/development/tilesheets/main-menu/4.png similarity index 100% rename from assets/tilesheets/main-menu/4.png rename to assets/development/tilesheets/main-menu/4.png diff --git a/assets/tilesheets/main-menu/5.png b/assets/development/tilesheets/main-menu/5.png similarity index 100% rename from assets/tilesheets/main-menu/5.png rename to assets/development/tilesheets/main-menu/5.png diff --git a/assets/tilesheets/main-menu/6.png b/assets/development/tilesheets/main-menu/6.png similarity index 100% rename from assets/tilesheets/main-menu/6.png rename to assets/development/tilesheets/main-menu/6.png diff --git a/assets/tilesheets/main-menu/7.png b/assets/development/tilesheets/main-menu/7.png similarity index 100% rename from assets/tilesheets/main-menu/7.png rename to assets/development/tilesheets/main-menu/7.png diff --git a/assets/tilesheets/npc/0.png b/assets/development/tilesheets/npc/0.png similarity index 100% rename from assets/tilesheets/npc/0.png rename to assets/development/tilesheets/npc/0.png diff --git a/assets/tilesheets/npc/1.png b/assets/development/tilesheets/npc/1.png similarity index 100% rename from assets/tilesheets/npc/1.png rename to assets/development/tilesheets/npc/1.png diff --git a/assets/tilesheets/npc/10.png b/assets/development/tilesheets/npc/10.png similarity index 100% rename from assets/tilesheets/npc/10.png rename to assets/development/tilesheets/npc/10.png diff --git a/assets/tilesheets/npc/100.png b/assets/development/tilesheets/npc/100.png similarity index 100% rename from assets/tilesheets/npc/100.png rename to assets/development/tilesheets/npc/100.png diff --git a/assets/tilesheets/npc/101.png b/assets/development/tilesheets/npc/101.png similarity index 100% rename from assets/tilesheets/npc/101.png rename to assets/development/tilesheets/npc/101.png diff --git a/assets/tilesheets/npc/102.png b/assets/development/tilesheets/npc/102.png similarity index 100% rename from assets/tilesheets/npc/102.png rename to assets/development/tilesheets/npc/102.png diff --git a/assets/tilesheets/npc/103.png b/assets/development/tilesheets/npc/103.png similarity index 100% rename from assets/tilesheets/npc/103.png rename to assets/development/tilesheets/npc/103.png diff --git a/assets/tilesheets/npc/104.png b/assets/development/tilesheets/npc/104.png similarity index 100% rename from assets/tilesheets/npc/104.png rename to assets/development/tilesheets/npc/104.png diff --git a/assets/tilesheets/npc/105.png b/assets/development/tilesheets/npc/105.png similarity index 100% rename from assets/tilesheets/npc/105.png rename to assets/development/tilesheets/npc/105.png diff --git a/assets/tilesheets/npc/106.png b/assets/development/tilesheets/npc/106.png similarity index 100% rename from assets/tilesheets/npc/106.png rename to assets/development/tilesheets/npc/106.png diff --git a/assets/tilesheets/npc/107.png b/assets/development/tilesheets/npc/107.png similarity index 100% rename from assets/tilesheets/npc/107.png rename to assets/development/tilesheets/npc/107.png diff --git a/assets/tilesheets/npc/108.png b/assets/development/tilesheets/npc/108.png similarity index 100% rename from assets/tilesheets/npc/108.png rename to assets/development/tilesheets/npc/108.png diff --git a/assets/tilesheets/npc/109.png b/assets/development/tilesheets/npc/109.png similarity index 100% rename from assets/tilesheets/npc/109.png rename to assets/development/tilesheets/npc/109.png diff --git a/assets/tilesheets/npc/11.png b/assets/development/tilesheets/npc/11.png similarity index 100% rename from assets/tilesheets/npc/11.png rename to assets/development/tilesheets/npc/11.png diff --git a/assets/tilesheets/npc/110.png b/assets/development/tilesheets/npc/110.png similarity index 100% rename from assets/tilesheets/npc/110.png rename to assets/development/tilesheets/npc/110.png diff --git a/assets/tilesheets/npc/111.png b/assets/development/tilesheets/npc/111.png similarity index 100% rename from assets/tilesheets/npc/111.png rename to assets/development/tilesheets/npc/111.png diff --git a/assets/tilesheets/npc/112.png b/assets/development/tilesheets/npc/112.png similarity index 100% rename from assets/tilesheets/npc/112.png rename to assets/development/tilesheets/npc/112.png diff --git a/assets/tilesheets/npc/113.png b/assets/development/tilesheets/npc/113.png similarity index 100% rename from assets/tilesheets/npc/113.png rename to assets/development/tilesheets/npc/113.png diff --git a/assets/tilesheets/npc/114.png b/assets/development/tilesheets/npc/114.png similarity index 100% rename from assets/tilesheets/npc/114.png rename to assets/development/tilesheets/npc/114.png diff --git a/assets/tilesheets/npc/115.png b/assets/development/tilesheets/npc/115.png similarity index 100% rename from assets/tilesheets/npc/115.png rename to assets/development/tilesheets/npc/115.png diff --git a/assets/tilesheets/npc/116.png b/assets/development/tilesheets/npc/116.png similarity index 100% rename from assets/tilesheets/npc/116.png rename to assets/development/tilesheets/npc/116.png diff --git a/assets/tilesheets/npc/117.png b/assets/development/tilesheets/npc/117.png similarity index 100% rename from assets/tilesheets/npc/117.png rename to assets/development/tilesheets/npc/117.png diff --git a/assets/tilesheets/npc/118.png b/assets/development/tilesheets/npc/118.png similarity index 100% rename from assets/tilesheets/npc/118.png rename to assets/development/tilesheets/npc/118.png diff --git a/assets/tilesheets/npc/119.png b/assets/development/tilesheets/npc/119.png similarity index 100% rename from assets/tilesheets/npc/119.png rename to assets/development/tilesheets/npc/119.png diff --git a/assets/tilesheets/npc/12.png b/assets/development/tilesheets/npc/12.png similarity index 100% rename from assets/tilesheets/npc/12.png rename to assets/development/tilesheets/npc/12.png diff --git a/assets/tilesheets/npc/120.png b/assets/development/tilesheets/npc/120.png similarity index 100% rename from assets/tilesheets/npc/120.png rename to assets/development/tilesheets/npc/120.png diff --git a/assets/tilesheets/npc/121.png b/assets/development/tilesheets/npc/121.png similarity index 100% rename from assets/tilesheets/npc/121.png rename to assets/development/tilesheets/npc/121.png diff --git a/assets/tilesheets/npc/122.png b/assets/development/tilesheets/npc/122.png similarity index 100% rename from assets/tilesheets/npc/122.png rename to assets/development/tilesheets/npc/122.png diff --git a/assets/tilesheets/npc/123.png b/assets/development/tilesheets/npc/123.png similarity index 100% rename from assets/tilesheets/npc/123.png rename to assets/development/tilesheets/npc/123.png diff --git a/assets/tilesheets/npc/124.png b/assets/development/tilesheets/npc/124.png similarity index 100% rename from assets/tilesheets/npc/124.png rename to assets/development/tilesheets/npc/124.png diff --git a/assets/tilesheets/npc/125.png b/assets/development/tilesheets/npc/125.png similarity index 100% rename from assets/tilesheets/npc/125.png rename to assets/development/tilesheets/npc/125.png diff --git a/assets/tilesheets/npc/126.png b/assets/development/tilesheets/npc/126.png similarity index 100% rename from assets/tilesheets/npc/126.png rename to assets/development/tilesheets/npc/126.png diff --git a/assets/tilesheets/npc/127.png b/assets/development/tilesheets/npc/127.png similarity index 100% rename from assets/tilesheets/npc/127.png rename to assets/development/tilesheets/npc/127.png diff --git a/assets/tilesheets/npc/128.png b/assets/development/tilesheets/npc/128.png similarity index 100% rename from assets/tilesheets/npc/128.png rename to assets/development/tilesheets/npc/128.png diff --git a/assets/tilesheets/npc/129.png b/assets/development/tilesheets/npc/129.png similarity index 100% rename from assets/tilesheets/npc/129.png rename to assets/development/tilesheets/npc/129.png diff --git a/assets/tilesheets/npc/13.png b/assets/development/tilesheets/npc/13.png similarity index 100% rename from assets/tilesheets/npc/13.png rename to assets/development/tilesheets/npc/13.png diff --git a/assets/tilesheets/npc/130.png b/assets/development/tilesheets/npc/130.png similarity index 100% rename from assets/tilesheets/npc/130.png rename to assets/development/tilesheets/npc/130.png diff --git a/assets/tilesheets/npc/131.png b/assets/development/tilesheets/npc/131.png similarity index 100% rename from assets/tilesheets/npc/131.png rename to assets/development/tilesheets/npc/131.png diff --git a/assets/tilesheets/npc/132.png b/assets/development/tilesheets/npc/132.png similarity index 100% rename from assets/tilesheets/npc/132.png rename to assets/development/tilesheets/npc/132.png diff --git a/assets/tilesheets/npc/133.png b/assets/development/tilesheets/npc/133.png similarity index 100% rename from assets/tilesheets/npc/133.png rename to assets/development/tilesheets/npc/133.png diff --git a/assets/tilesheets/npc/134.png b/assets/development/tilesheets/npc/134.png similarity index 100% rename from assets/tilesheets/npc/134.png rename to assets/development/tilesheets/npc/134.png diff --git a/assets/tilesheets/npc/135.png b/assets/development/tilesheets/npc/135.png similarity index 100% rename from assets/tilesheets/npc/135.png rename to assets/development/tilesheets/npc/135.png diff --git a/assets/tilesheets/npc/136.png b/assets/development/tilesheets/npc/136.png similarity index 100% rename from assets/tilesheets/npc/136.png rename to assets/development/tilesheets/npc/136.png diff --git a/assets/tilesheets/npc/137.png b/assets/development/tilesheets/npc/137.png similarity index 100% rename from assets/tilesheets/npc/137.png rename to assets/development/tilesheets/npc/137.png diff --git a/assets/tilesheets/npc/138.png b/assets/development/tilesheets/npc/138.png similarity index 100% rename from assets/tilesheets/npc/138.png rename to assets/development/tilesheets/npc/138.png diff --git a/assets/tilesheets/npc/139.png b/assets/development/tilesheets/npc/139.png similarity index 100% rename from assets/tilesheets/npc/139.png rename to assets/development/tilesheets/npc/139.png diff --git a/assets/tilesheets/npc/14.png b/assets/development/tilesheets/npc/14.png similarity index 100% rename from assets/tilesheets/npc/14.png rename to assets/development/tilesheets/npc/14.png diff --git a/assets/tilesheets/npc/140.png b/assets/development/tilesheets/npc/140.png similarity index 100% rename from assets/tilesheets/npc/140.png rename to assets/development/tilesheets/npc/140.png diff --git a/assets/tilesheets/npc/141.png b/assets/development/tilesheets/npc/141.png similarity index 100% rename from assets/tilesheets/npc/141.png rename to assets/development/tilesheets/npc/141.png diff --git a/assets/tilesheets/npc/142.png b/assets/development/tilesheets/npc/142.png similarity index 100% rename from assets/tilesheets/npc/142.png rename to assets/development/tilesheets/npc/142.png diff --git a/assets/tilesheets/npc/143.png b/assets/development/tilesheets/npc/143.png similarity index 100% rename from assets/tilesheets/npc/143.png rename to assets/development/tilesheets/npc/143.png diff --git a/assets/tilesheets/npc/144.png b/assets/development/tilesheets/npc/144.png similarity index 100% rename from assets/tilesheets/npc/144.png rename to assets/development/tilesheets/npc/144.png diff --git a/assets/tilesheets/npc/145.png b/assets/development/tilesheets/npc/145.png similarity index 100% rename from assets/tilesheets/npc/145.png rename to assets/development/tilesheets/npc/145.png diff --git a/assets/tilesheets/npc/146.png b/assets/development/tilesheets/npc/146.png similarity index 100% rename from assets/tilesheets/npc/146.png rename to assets/development/tilesheets/npc/146.png diff --git a/assets/tilesheets/npc/147.png b/assets/development/tilesheets/npc/147.png similarity index 100% rename from assets/tilesheets/npc/147.png rename to assets/development/tilesheets/npc/147.png diff --git a/assets/tilesheets/npc/148.png b/assets/development/tilesheets/npc/148.png similarity index 100% rename from assets/tilesheets/npc/148.png rename to assets/development/tilesheets/npc/148.png diff --git a/assets/tilesheets/npc/149.png b/assets/development/tilesheets/npc/149.png similarity index 100% rename from assets/tilesheets/npc/149.png rename to assets/development/tilesheets/npc/149.png diff --git a/assets/tilesheets/npc/15.png b/assets/development/tilesheets/npc/15.png similarity index 100% rename from assets/tilesheets/npc/15.png rename to assets/development/tilesheets/npc/15.png diff --git a/assets/tilesheets/npc/150.png b/assets/development/tilesheets/npc/150.png similarity index 100% rename from assets/tilesheets/npc/150.png rename to assets/development/tilesheets/npc/150.png diff --git a/assets/tilesheets/npc/151.png b/assets/development/tilesheets/npc/151.png similarity index 100% rename from assets/tilesheets/npc/151.png rename to assets/development/tilesheets/npc/151.png diff --git a/assets/tilesheets/npc/152.png b/assets/development/tilesheets/npc/152.png similarity index 100% rename from assets/tilesheets/npc/152.png rename to assets/development/tilesheets/npc/152.png diff --git a/assets/tilesheets/npc/153.png b/assets/development/tilesheets/npc/153.png similarity index 100% rename from assets/tilesheets/npc/153.png rename to assets/development/tilesheets/npc/153.png diff --git a/assets/tilesheets/npc/154.png b/assets/development/tilesheets/npc/154.png similarity index 100% rename from assets/tilesheets/npc/154.png rename to assets/development/tilesheets/npc/154.png diff --git a/assets/tilesheets/npc/155.png b/assets/development/tilesheets/npc/155.png similarity index 100% rename from assets/tilesheets/npc/155.png rename to assets/development/tilesheets/npc/155.png diff --git a/assets/tilesheets/npc/156.png b/assets/development/tilesheets/npc/156.png similarity index 100% rename from assets/tilesheets/npc/156.png rename to assets/development/tilesheets/npc/156.png diff --git a/assets/tilesheets/npc/157.png b/assets/development/tilesheets/npc/157.png similarity index 100% rename from assets/tilesheets/npc/157.png rename to assets/development/tilesheets/npc/157.png diff --git a/assets/tilesheets/npc/158.png b/assets/development/tilesheets/npc/158.png similarity index 100% rename from assets/tilesheets/npc/158.png rename to assets/development/tilesheets/npc/158.png diff --git a/assets/tilesheets/npc/159.png b/assets/development/tilesheets/npc/159.png similarity index 100% rename from assets/tilesheets/npc/159.png rename to assets/development/tilesheets/npc/159.png diff --git a/assets/tilesheets/npc/16.png b/assets/development/tilesheets/npc/16.png similarity index 100% rename from assets/tilesheets/npc/16.png rename to assets/development/tilesheets/npc/16.png diff --git a/assets/tilesheets/npc/160.png b/assets/development/tilesheets/npc/160.png similarity index 100% rename from assets/tilesheets/npc/160.png rename to assets/development/tilesheets/npc/160.png diff --git a/assets/tilesheets/npc/161.png b/assets/development/tilesheets/npc/161.png similarity index 100% rename from assets/tilesheets/npc/161.png rename to assets/development/tilesheets/npc/161.png diff --git a/assets/tilesheets/npc/162.png b/assets/development/tilesheets/npc/162.png similarity index 100% rename from assets/tilesheets/npc/162.png rename to assets/development/tilesheets/npc/162.png diff --git a/assets/tilesheets/npc/163.png b/assets/development/tilesheets/npc/163.png similarity index 100% rename from assets/tilesheets/npc/163.png rename to assets/development/tilesheets/npc/163.png diff --git a/assets/tilesheets/npc/164.png b/assets/development/tilesheets/npc/164.png similarity index 100% rename from assets/tilesheets/npc/164.png rename to assets/development/tilesheets/npc/164.png diff --git a/assets/tilesheets/npc/17.png b/assets/development/tilesheets/npc/17.png similarity index 100% rename from assets/tilesheets/npc/17.png rename to assets/development/tilesheets/npc/17.png diff --git a/assets/tilesheets/npc/18.png b/assets/development/tilesheets/npc/18.png similarity index 100% rename from assets/tilesheets/npc/18.png rename to assets/development/tilesheets/npc/18.png diff --git a/assets/tilesheets/npc/19.png b/assets/development/tilesheets/npc/19.png similarity index 100% rename from assets/tilesheets/npc/19.png rename to assets/development/tilesheets/npc/19.png diff --git a/assets/tilesheets/npc/2.png b/assets/development/tilesheets/npc/2.png similarity index 100% rename from assets/tilesheets/npc/2.png rename to assets/development/tilesheets/npc/2.png diff --git a/assets/tilesheets/npc/20.png b/assets/development/tilesheets/npc/20.png similarity index 100% rename from assets/tilesheets/npc/20.png rename to assets/development/tilesheets/npc/20.png diff --git a/assets/tilesheets/npc/21.png b/assets/development/tilesheets/npc/21.png similarity index 100% rename from assets/tilesheets/npc/21.png rename to assets/development/tilesheets/npc/21.png diff --git a/assets/tilesheets/npc/22.png b/assets/development/tilesheets/npc/22.png similarity index 100% rename from assets/tilesheets/npc/22.png rename to assets/development/tilesheets/npc/22.png diff --git a/assets/tilesheets/npc/23.png b/assets/development/tilesheets/npc/23.png similarity index 100% rename from assets/tilesheets/npc/23.png rename to assets/development/tilesheets/npc/23.png diff --git a/assets/tilesheets/npc/24.png b/assets/development/tilesheets/npc/24.png similarity index 100% rename from assets/tilesheets/npc/24.png rename to assets/development/tilesheets/npc/24.png diff --git a/assets/tilesheets/npc/25.png b/assets/development/tilesheets/npc/25.png similarity index 100% rename from assets/tilesheets/npc/25.png rename to assets/development/tilesheets/npc/25.png diff --git a/assets/tilesheets/npc/26.png b/assets/development/tilesheets/npc/26.png similarity index 100% rename from assets/tilesheets/npc/26.png rename to assets/development/tilesheets/npc/26.png diff --git a/assets/tilesheets/npc/27.png b/assets/development/tilesheets/npc/27.png similarity index 100% rename from assets/tilesheets/npc/27.png rename to assets/development/tilesheets/npc/27.png diff --git a/assets/tilesheets/npc/28.png b/assets/development/tilesheets/npc/28.png similarity index 100% rename from assets/tilesheets/npc/28.png rename to assets/development/tilesheets/npc/28.png diff --git a/assets/tilesheets/npc/29.png b/assets/development/tilesheets/npc/29.png similarity index 100% rename from assets/tilesheets/npc/29.png rename to assets/development/tilesheets/npc/29.png diff --git a/assets/tilesheets/npc/3.png b/assets/development/tilesheets/npc/3.png similarity index 100% rename from assets/tilesheets/npc/3.png rename to assets/development/tilesheets/npc/3.png diff --git a/assets/tilesheets/npc/30.png b/assets/development/tilesheets/npc/30.png similarity index 100% rename from assets/tilesheets/npc/30.png rename to assets/development/tilesheets/npc/30.png diff --git a/assets/tilesheets/npc/31.png b/assets/development/tilesheets/npc/31.png similarity index 100% rename from assets/tilesheets/npc/31.png rename to assets/development/tilesheets/npc/31.png diff --git a/assets/tilesheets/npc/32.png b/assets/development/tilesheets/npc/32.png similarity index 100% rename from assets/tilesheets/npc/32.png rename to assets/development/tilesheets/npc/32.png diff --git a/assets/tilesheets/npc/33.png b/assets/development/tilesheets/npc/33.png similarity index 100% rename from assets/tilesheets/npc/33.png rename to assets/development/tilesheets/npc/33.png diff --git a/assets/tilesheets/npc/34.png b/assets/development/tilesheets/npc/34.png similarity index 100% rename from assets/tilesheets/npc/34.png rename to assets/development/tilesheets/npc/34.png diff --git a/assets/tilesheets/npc/35.png b/assets/development/tilesheets/npc/35.png similarity index 100% rename from assets/tilesheets/npc/35.png rename to assets/development/tilesheets/npc/35.png diff --git a/assets/tilesheets/npc/36.png b/assets/development/tilesheets/npc/36.png similarity index 100% rename from assets/tilesheets/npc/36.png rename to assets/development/tilesheets/npc/36.png diff --git a/assets/tilesheets/npc/37.png b/assets/development/tilesheets/npc/37.png similarity index 100% rename from assets/tilesheets/npc/37.png rename to assets/development/tilesheets/npc/37.png diff --git a/assets/tilesheets/npc/38.png b/assets/development/tilesheets/npc/38.png similarity index 100% rename from assets/tilesheets/npc/38.png rename to assets/development/tilesheets/npc/38.png diff --git a/assets/tilesheets/npc/39.png b/assets/development/tilesheets/npc/39.png similarity index 100% rename from assets/tilesheets/npc/39.png rename to assets/development/tilesheets/npc/39.png diff --git a/assets/tilesheets/npc/4.png b/assets/development/tilesheets/npc/4.png similarity index 100% rename from assets/tilesheets/npc/4.png rename to assets/development/tilesheets/npc/4.png diff --git a/assets/tilesheets/npc/40.png b/assets/development/tilesheets/npc/40.png similarity index 100% rename from assets/tilesheets/npc/40.png rename to assets/development/tilesheets/npc/40.png diff --git a/assets/tilesheets/npc/41.png b/assets/development/tilesheets/npc/41.png similarity index 100% rename from assets/tilesheets/npc/41.png rename to assets/development/tilesheets/npc/41.png diff --git a/assets/tilesheets/npc/42.png b/assets/development/tilesheets/npc/42.png similarity index 100% rename from assets/tilesheets/npc/42.png rename to assets/development/tilesheets/npc/42.png diff --git a/assets/tilesheets/npc/43.png b/assets/development/tilesheets/npc/43.png similarity index 100% rename from assets/tilesheets/npc/43.png rename to assets/development/tilesheets/npc/43.png diff --git a/assets/tilesheets/npc/44.png b/assets/development/tilesheets/npc/44.png similarity index 100% rename from assets/tilesheets/npc/44.png rename to assets/development/tilesheets/npc/44.png diff --git a/assets/tilesheets/npc/45.png b/assets/development/tilesheets/npc/45.png similarity index 100% rename from assets/tilesheets/npc/45.png rename to assets/development/tilesheets/npc/45.png diff --git a/assets/tilesheets/npc/46.png b/assets/development/tilesheets/npc/46.png similarity index 100% rename from assets/tilesheets/npc/46.png rename to assets/development/tilesheets/npc/46.png diff --git a/assets/tilesheets/npc/47.png b/assets/development/tilesheets/npc/47.png similarity index 100% rename from assets/tilesheets/npc/47.png rename to assets/development/tilesheets/npc/47.png diff --git a/assets/tilesheets/npc/48.png b/assets/development/tilesheets/npc/48.png similarity index 100% rename from assets/tilesheets/npc/48.png rename to assets/development/tilesheets/npc/48.png diff --git a/assets/tilesheets/npc/49.png b/assets/development/tilesheets/npc/49.png similarity index 100% rename from assets/tilesheets/npc/49.png rename to assets/development/tilesheets/npc/49.png diff --git a/assets/tilesheets/npc/5.png b/assets/development/tilesheets/npc/5.png similarity index 100% rename from assets/tilesheets/npc/5.png rename to assets/development/tilesheets/npc/5.png diff --git a/assets/tilesheets/npc/50.png b/assets/development/tilesheets/npc/50.png similarity index 100% rename from assets/tilesheets/npc/50.png rename to assets/development/tilesheets/npc/50.png diff --git a/assets/tilesheets/npc/51.png b/assets/development/tilesheets/npc/51.png similarity index 100% rename from assets/tilesheets/npc/51.png rename to assets/development/tilesheets/npc/51.png diff --git a/assets/tilesheets/npc/52.png b/assets/development/tilesheets/npc/52.png similarity index 100% rename from assets/tilesheets/npc/52.png rename to assets/development/tilesheets/npc/52.png diff --git a/assets/tilesheets/npc/53.png b/assets/development/tilesheets/npc/53.png similarity index 100% rename from assets/tilesheets/npc/53.png rename to assets/development/tilesheets/npc/53.png diff --git a/assets/tilesheets/npc/54.png b/assets/development/tilesheets/npc/54.png similarity index 100% rename from assets/tilesheets/npc/54.png rename to assets/development/tilesheets/npc/54.png diff --git a/assets/tilesheets/npc/55.png b/assets/development/tilesheets/npc/55.png similarity index 100% rename from assets/tilesheets/npc/55.png rename to assets/development/tilesheets/npc/55.png diff --git a/assets/tilesheets/npc/56.png b/assets/development/tilesheets/npc/56.png similarity index 100% rename from assets/tilesheets/npc/56.png rename to assets/development/tilesheets/npc/56.png diff --git a/assets/tilesheets/npc/57.png b/assets/development/tilesheets/npc/57.png similarity index 100% rename from assets/tilesheets/npc/57.png rename to assets/development/tilesheets/npc/57.png diff --git a/assets/tilesheets/npc/58.png b/assets/development/tilesheets/npc/58.png similarity index 100% rename from assets/tilesheets/npc/58.png rename to assets/development/tilesheets/npc/58.png diff --git a/assets/tilesheets/npc/59.png b/assets/development/tilesheets/npc/59.png similarity index 100% rename from assets/tilesheets/npc/59.png rename to assets/development/tilesheets/npc/59.png diff --git a/assets/tilesheets/npc/6.png b/assets/development/tilesheets/npc/6.png similarity index 100% rename from assets/tilesheets/npc/6.png rename to assets/development/tilesheets/npc/6.png diff --git a/assets/tilesheets/npc/60.png b/assets/development/tilesheets/npc/60.png similarity index 100% rename from assets/tilesheets/npc/60.png rename to assets/development/tilesheets/npc/60.png diff --git a/assets/tilesheets/npc/61.png b/assets/development/tilesheets/npc/61.png similarity index 100% rename from assets/tilesheets/npc/61.png rename to assets/development/tilesheets/npc/61.png diff --git a/assets/tilesheets/npc/62.png b/assets/development/tilesheets/npc/62.png similarity index 100% rename from assets/tilesheets/npc/62.png rename to assets/development/tilesheets/npc/62.png diff --git a/assets/tilesheets/npc/63.png b/assets/development/tilesheets/npc/63.png similarity index 100% rename from assets/tilesheets/npc/63.png rename to assets/development/tilesheets/npc/63.png diff --git a/assets/tilesheets/npc/64.png b/assets/development/tilesheets/npc/64.png similarity index 100% rename from assets/tilesheets/npc/64.png rename to assets/development/tilesheets/npc/64.png diff --git a/assets/tilesheets/npc/65.png b/assets/development/tilesheets/npc/65.png similarity index 100% rename from assets/tilesheets/npc/65.png rename to assets/development/tilesheets/npc/65.png diff --git a/assets/tilesheets/npc/66.png b/assets/development/tilesheets/npc/66.png similarity index 100% rename from assets/tilesheets/npc/66.png rename to assets/development/tilesheets/npc/66.png diff --git a/assets/tilesheets/npc/67.png b/assets/development/tilesheets/npc/67.png similarity index 100% rename from assets/tilesheets/npc/67.png rename to assets/development/tilesheets/npc/67.png diff --git a/assets/tilesheets/npc/68.png b/assets/development/tilesheets/npc/68.png similarity index 100% rename from assets/tilesheets/npc/68.png rename to assets/development/tilesheets/npc/68.png diff --git a/assets/tilesheets/npc/69.png b/assets/development/tilesheets/npc/69.png similarity index 100% rename from assets/tilesheets/npc/69.png rename to assets/development/tilesheets/npc/69.png diff --git a/assets/tilesheets/npc/7.png b/assets/development/tilesheets/npc/7.png similarity index 100% rename from assets/tilesheets/npc/7.png rename to assets/development/tilesheets/npc/7.png diff --git a/assets/tilesheets/npc/70.png b/assets/development/tilesheets/npc/70.png similarity index 100% rename from assets/tilesheets/npc/70.png rename to assets/development/tilesheets/npc/70.png diff --git a/assets/tilesheets/npc/71.png b/assets/development/tilesheets/npc/71.png similarity index 100% rename from assets/tilesheets/npc/71.png rename to assets/development/tilesheets/npc/71.png diff --git a/assets/tilesheets/npc/72.png b/assets/development/tilesheets/npc/72.png similarity index 100% rename from assets/tilesheets/npc/72.png rename to assets/development/tilesheets/npc/72.png diff --git a/assets/tilesheets/npc/73.png b/assets/development/tilesheets/npc/73.png similarity index 100% rename from assets/tilesheets/npc/73.png rename to assets/development/tilesheets/npc/73.png diff --git a/assets/tilesheets/npc/74.png b/assets/development/tilesheets/npc/74.png similarity index 100% rename from assets/tilesheets/npc/74.png rename to assets/development/tilesheets/npc/74.png diff --git a/assets/tilesheets/npc/75.png b/assets/development/tilesheets/npc/75.png similarity index 100% rename from assets/tilesheets/npc/75.png rename to assets/development/tilesheets/npc/75.png diff --git a/assets/tilesheets/npc/76.png b/assets/development/tilesheets/npc/76.png similarity index 100% rename from assets/tilesheets/npc/76.png rename to assets/development/tilesheets/npc/76.png diff --git a/assets/tilesheets/npc/77.png b/assets/development/tilesheets/npc/77.png similarity index 100% rename from assets/tilesheets/npc/77.png rename to assets/development/tilesheets/npc/77.png diff --git a/assets/tilesheets/npc/78.png b/assets/development/tilesheets/npc/78.png similarity index 100% rename from assets/tilesheets/npc/78.png rename to assets/development/tilesheets/npc/78.png diff --git a/assets/tilesheets/npc/79.png b/assets/development/tilesheets/npc/79.png similarity index 100% rename from assets/tilesheets/npc/79.png rename to assets/development/tilesheets/npc/79.png diff --git a/assets/tilesheets/npc/8.png b/assets/development/tilesheets/npc/8.png similarity index 100% rename from assets/tilesheets/npc/8.png rename to assets/development/tilesheets/npc/8.png diff --git a/assets/tilesheets/npc/80.png b/assets/development/tilesheets/npc/80.png similarity index 100% rename from assets/tilesheets/npc/80.png rename to assets/development/tilesheets/npc/80.png diff --git a/assets/tilesheets/npc/81.png b/assets/development/tilesheets/npc/81.png similarity index 100% rename from assets/tilesheets/npc/81.png rename to assets/development/tilesheets/npc/81.png diff --git a/assets/tilesheets/npc/82.png b/assets/development/tilesheets/npc/82.png similarity index 100% rename from assets/tilesheets/npc/82.png rename to assets/development/tilesheets/npc/82.png diff --git a/assets/tilesheets/npc/83.png b/assets/development/tilesheets/npc/83.png similarity index 100% rename from assets/tilesheets/npc/83.png rename to assets/development/tilesheets/npc/83.png diff --git a/assets/tilesheets/npc/84.png b/assets/development/tilesheets/npc/84.png similarity index 100% rename from assets/tilesheets/npc/84.png rename to assets/development/tilesheets/npc/84.png diff --git a/assets/tilesheets/npc/85.png b/assets/development/tilesheets/npc/85.png similarity index 100% rename from assets/tilesheets/npc/85.png rename to assets/development/tilesheets/npc/85.png diff --git a/assets/tilesheets/npc/86.png b/assets/development/tilesheets/npc/86.png similarity index 100% rename from assets/tilesheets/npc/86.png rename to assets/development/tilesheets/npc/86.png diff --git a/assets/tilesheets/npc/87.png b/assets/development/tilesheets/npc/87.png similarity index 100% rename from assets/tilesheets/npc/87.png rename to assets/development/tilesheets/npc/87.png diff --git a/assets/tilesheets/npc/88.png b/assets/development/tilesheets/npc/88.png similarity index 100% rename from assets/tilesheets/npc/88.png rename to assets/development/tilesheets/npc/88.png diff --git a/assets/tilesheets/npc/89.png b/assets/development/tilesheets/npc/89.png similarity index 100% rename from assets/tilesheets/npc/89.png rename to assets/development/tilesheets/npc/89.png diff --git a/assets/tilesheets/npc/9.png b/assets/development/tilesheets/npc/9.png similarity index 100% rename from assets/tilesheets/npc/9.png rename to assets/development/tilesheets/npc/9.png diff --git a/assets/tilesheets/npc/90.png b/assets/development/tilesheets/npc/90.png similarity index 100% rename from assets/tilesheets/npc/90.png rename to assets/development/tilesheets/npc/90.png diff --git a/assets/tilesheets/npc/91.png b/assets/development/tilesheets/npc/91.png similarity index 100% rename from assets/tilesheets/npc/91.png rename to assets/development/tilesheets/npc/91.png diff --git a/assets/tilesheets/npc/92.png b/assets/development/tilesheets/npc/92.png similarity index 100% rename from assets/tilesheets/npc/92.png rename to assets/development/tilesheets/npc/92.png diff --git a/assets/tilesheets/npc/93.png b/assets/development/tilesheets/npc/93.png similarity index 100% rename from assets/tilesheets/npc/93.png rename to assets/development/tilesheets/npc/93.png diff --git a/assets/tilesheets/npc/94.png b/assets/development/tilesheets/npc/94.png similarity index 100% rename from assets/tilesheets/npc/94.png rename to assets/development/tilesheets/npc/94.png diff --git a/assets/tilesheets/npc/95.png b/assets/development/tilesheets/npc/95.png similarity index 100% rename from assets/tilesheets/npc/95.png rename to assets/development/tilesheets/npc/95.png diff --git a/assets/tilesheets/npc/96.png b/assets/development/tilesheets/npc/96.png similarity index 100% rename from assets/tilesheets/npc/96.png rename to assets/development/tilesheets/npc/96.png diff --git a/assets/tilesheets/npc/97.png b/assets/development/tilesheets/npc/97.png similarity index 100% rename from assets/tilesheets/npc/97.png rename to assets/development/tilesheets/npc/97.png diff --git a/assets/tilesheets/npc/98.png b/assets/development/tilesheets/npc/98.png similarity index 100% rename from assets/tilesheets/npc/98.png rename to assets/development/tilesheets/npc/98.png diff --git a/assets/tilesheets/npc/99.png b/assets/development/tilesheets/npc/99.png similarity index 100% rename from assets/tilesheets/npc/99.png rename to assets/development/tilesheets/npc/99.png diff --git a/assets/filesystem/audio/arrowtrap.wav b/assets/filesystem/audio/arrowtrap.wav new file mode 100644 index 00000000..869bcb98 Binary files /dev/null and b/assets/filesystem/audio/arrowtrap.wav differ diff --git a/assets/filesystem/audio/bat.wav b/assets/filesystem/audio/bat.wav new file mode 100644 index 00000000..bd552c17 Binary files /dev/null and b/assets/filesystem/audio/bat.wav differ diff --git a/assets/filesystem/audio/cave.wav b/assets/filesystem/audio/cave.wav new file mode 100644 index 00000000..5c81e94f Binary files /dev/null and b/assets/filesystem/audio/cave.wav differ diff --git a/assets/filesystem/audio/chestopen.wav b/assets/filesystem/audio/chestopen.wav new file mode 100644 index 00000000..8920ec7f Binary files /dev/null and b/assets/filesystem/audio/chestopen.wav differ diff --git a/assets/filesystem/audio/climb1.wav b/assets/filesystem/audio/climb1.wav new file mode 100644 index 00000000..13c8abb2 Binary files /dev/null and b/assets/filesystem/audio/climb1.wav differ diff --git a/assets/filesystem/audio/climb2.wav b/assets/filesystem/audio/climb2.wav new file mode 100644 index 00000000..87c68a41 Binary files /dev/null and b/assets/filesystem/audio/climb2.wav differ diff --git a/assets/filesystem/audio/coin.wav b/assets/filesystem/audio/coin.wav new file mode 100644 index 00000000..6857e452 Binary files /dev/null and b/assets/filesystem/audio/coin.wav differ diff --git a/assets/filesystem/audio/die.wav b/assets/filesystem/audio/die.wav new file mode 100644 index 00000000..86d6f01e Binary files /dev/null and b/assets/filesystem/audio/die.wav differ diff --git a/assets/filesystem/audio/entering_door.wav b/assets/filesystem/audio/entering_door.wav new file mode 100644 index 00000000..6df2a1e5 Binary files /dev/null and b/assets/filesystem/audio/entering_door.wav differ diff --git a/assets/filesystem/audio/explosion.wav b/assets/filesystem/audio/explosion.wav new file mode 100644 index 00000000..df32c640 Binary files /dev/null and b/assets/filesystem/audio/explosion.wav differ diff --git a/assets/filesystem/audio/gem.wav b/assets/filesystem/audio/gem.wav new file mode 100644 index 00000000..e2053352 Binary files /dev/null and b/assets/filesystem/audio/gem.wav differ diff --git a/assets/filesystem/audio/hit.wav b/assets/filesystem/audio/hit.wav new file mode 100644 index 00000000..0bcce8a7 Binary files /dev/null and b/assets/filesystem/audio/hit.wav differ diff --git a/assets/filesystem/audio/hurt.wav b/assets/filesystem/audio/hurt.wav new file mode 100644 index 00000000..892dcc94 Binary files /dev/null and b/assets/filesystem/audio/hurt.wav differ diff --git a/assets/filesystem/audio/jetpack.wav b/assets/filesystem/audio/jetpack.wav new file mode 100644 index 00000000..9126d3ee Binary files /dev/null and b/assets/filesystem/audio/jetpack.wav differ diff --git a/assets/filesystem/audio/jump.wav b/assets/filesystem/audio/jump.wav new file mode 100644 index 00000000..dd728f2c Binary files /dev/null and b/assets/filesystem/audio/jump.wav differ diff --git a/assets/filesystem/audio/kiss.wav b/assets/filesystem/audio/kiss.wav new file mode 100644 index 00000000..205c2f8d Binary files /dev/null and b/assets/filesystem/audio/kiss.wav differ diff --git a/assets/filesystem/audio/pickup.wav b/assets/filesystem/audio/pickup.wav new file mode 100644 index 00000000..731373d3 Binary files /dev/null and b/assets/filesystem/audio/pickup.wav differ diff --git a/assets/filesystem/audio/shotgun.wav b/assets/filesystem/audio/shotgun.wav new file mode 100644 index 00000000..9fc50593 Binary files /dev/null and b/assets/filesystem/audio/shotgun.wav differ diff --git a/assets/filesystem/audio/throw.wav b/assets/filesystem/audio/throw.wav new file mode 100644 index 00000000..da56f24f Binary files /dev/null and b/assets/filesystem/audio/throw.wav differ diff --git a/assets/filesystem/audio/title.wav b/assets/filesystem/audio/title.wav new file mode 100644 index 00000000..a3c98281 Binary files /dev/null and b/assets/filesystem/audio/title.wav differ diff --git a/assets/filesystem/audio/whip.wav b/assets/filesystem/audio/whip.wav new file mode 100644 index 00000000..45615948 Binary files /dev/null and b/assets/filesystem/audio/whip.wav differ diff --git a/assets/filesystem/tilesheets/collectibles.json b/assets/filesystem/tilesheets/collectibles.json new file mode 100644 index 00000000..5db05d7b --- /dev/null +++ b/assets/filesystem/tilesheets/collectibles.json @@ -0,0 +1 @@ +{"image":"collectibles.png","image_width":512,"image_height":128,"sprites":[{"name":"0.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[280,64,288,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[280,64],[288,64],[288,72],[280,72]]}},{"name":"100.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,0,512,10],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,0],[512,0],[512,10],[504,10]]}},{"name":"101.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,10,512,20],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,10],[512,10],[512,20],[504,20]]}},{"name":"102.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,20,512,30],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,20],[512,20],[512,30],[504,30]]}},{"name":"103.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,30,512,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,30],[512,30],[512,40],[504,40]]}},{"name":"104.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,40,512,50],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,40],[512,40],[512,50],[504,50]]}},{"name":"105.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,50,512,60],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,50],[512,50],[512,60],[504,60]]}},{"name":"106.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[504,60,512,70],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[504,60],[512,60],[512,70],[504,70]]}},{"name":"107.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[128,64,136,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[128,64],[136,64],[136,74],[128,74]]}},{"name":"108.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[136,64,144,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[136,64],[144,64],[144,74],[136,74]]}},{"name":"109.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[144,64,152,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[144,64],[152,64],[152,74],[144,74]]}},{"name":"10.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[480,0,504,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[480,0],[504,0],[504,16],[480,16]]}},{"name":"110.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[152,64,160,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[152,64],[160,64],[160,74],[152,74]]}},{"name":"111.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[160,64,168,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[160,64],[168,64],[168,74],[160,74]]}},{"name":"112.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[168,64,176,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[168,64],[176,64],[176,74],[168,74]]}},{"name":"113.png","size":[16,10],"sprite_rect":[0,0,16,10],"sheet_rect":[112,64,128,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,10],[0,10]],"uvs":[[112,64],[128,64],[128,74],[112,74]]}},{"name":"114.png","size":[16,12],"sprite_rect":[0,0,16,12],"sheet_rect":[48,64,64,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,12],[0,12]],"uvs":[[48,64],[64,64],[64,76],[48,76]]}},{"name":"115.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[72,48,88,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[72,48],[88,48],[88,64],[72,64]]}},{"name":"116.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[88,48,104,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[88,48],[104,48],[104,64],[88,64]]}},{"name":"117.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[288,64,296,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[288,64],[296,64],[296,72],[288,72]]}},{"name":"118.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[296,64,304,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[296,64],[304,64],[304,72],[296,72]]}},{"name":"119.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[320,72,324,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[320,72],[324,72],[324,76],[320,76]]}},{"name":"11.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[480,16,504,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[480,16],[504,16],[504,32],[480,32]]}},{"name":"120.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[324,72,328,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[324,72],[328,72],[328,76],[324,76]]}},{"name":"121.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[328,72,332,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[328,72],[332,72],[332,76],[328,76]]}},{"name":"122.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[332,72,336,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[332,72],[336,72],[336,76],[332,76]]}},{"name":"123.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[336,72,340,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[336,72],[340,72],[340,76],[336,76]]}},{"name":"12.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[480,32,504,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[480,32],[504,32],[504,48],[480,48]]}},{"name":"13.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[0,48,24,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[0,48],[24,48],[24,64],[0,64]]}},{"name":"14.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[304,64,312,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[304,64],[312,64],[312,72],[304,72]]}},{"name":"15.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[312,64,320,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[312,64],[320,64],[320,72],[312,72]]}},{"name":"16.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[320,64,328,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[320,64],[328,64],[328,72],[320,72]]}},{"name":"17.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[328,64,336,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[328,64],[336,64],[336,72],[328,72]]}},{"name":"18.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[336,64,344,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[336,64],[344,64],[344,72],[336,72]]}},{"name":"19.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[344,64,352,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[344,64],[352,64],[352,72],[344,72]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[104,48,120,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[104,48],[120,48],[120,64],[104,64]]}},{"name":"20.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[352,64,360,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[352,64],[360,64],[360,72],[352,72]]}},{"name":"21.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[360,64,368,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[360,64],[368,64],[368,72],[360,72]]}},{"name":"22.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[368,64,376,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[368,64],[376,64],[376,72],[368,72]]}},{"name":"23.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[376,64,384,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[376,64],[384,64],[384,72],[376,72]]}},{"name":"24.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[384,64,392,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[384,64],[392,64],[392,72],[384,72]]}},{"name":"25.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[392,64,400,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[392,64],[400,64],[400,72],[392,72]]}},{"name":"26.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[400,64,408,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[400,64],[408,64],[408,72],[400,72]]}},{"name":"27.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[408,64,416,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[408,64],[416,64],[416,72],[408,72]]}},{"name":"28.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[416,64,424,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[416,64],[424,64],[424,72],[416,72]]}},{"name":"29.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[340,72,344,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[340,72],[344,72],[344,76],[340,76]]}},{"name":"2.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[424,64,432,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[424,64],[432,64],[432,72],[424,72]]}},{"name":"30.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[120,48,136,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[120,48],[136,48],[136,64],[120,64]]}},{"name":"31.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[344,72,348,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[344,72],[348,72],[348,76],[344,76]]}},{"name":"32.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[348,72,352,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[348,72],[352,72],[352,76],[348,76]]}},{"name":"33.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[352,72,356,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[352,72],[356,72],[356,76],[352,76]]}},{"name":"34.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[432,64,440,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[432,64],[440,64],[440,72],[432,72]]}},{"name":"35.png","size":[4,4],"sprite_rect":[0,0,4,4],"sheet_rect":[356,72,360,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[4,0],[4,4],[0,4]],"uvs":[[356,72],[360,72],[360,76],[356,76]]}},{"name":"36.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[136,48,152,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[136,48],[152,48],[152,64],[136,64]]}},{"name":"37.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[152,48,168,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[152,48],[168,48],[168,64],[152,64]]}},{"name":"38.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[440,64,448,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[440,64],[448,64],[448,72],[440,72]]}},{"name":"39.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[448,64,456,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[448,64],[456,64],[456,72],[448,72]]}},{"name":"3.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[456,64,464,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[456,64],[464,64],[464,72],[456,72]]}},{"name":"40.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[464,64,472,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[464,64],[472,64],[472,72],[464,72]]}},{"name":"41.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[472,64,480,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[472,64],[480,64],[480,72],[472,72]]}},{"name":"42.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[480,64,488,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[480,64],[488,64],[488,72],[480,72]]}},{"name":"43.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[488,64,496,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[488,64],[496,64],[496,72],[488,72]]}},{"name":"44.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[496,64,504,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[496,64],[504,64],[504,72],[496,72]]}},{"name":"45.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[504,70,512,78],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[504,70],[512,70],[512,78],[504,78]]}},{"name":"46.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[0,0,48,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[0,0],[48,0],[48,48],[0,48]]}},{"name":"47.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[48,0,96,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[48,0],[96,0],[96,48],[48,48]]}},{"name":"48.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[96,0,144,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[96,0],[144,0],[144,48],[96,48]]}},{"name":"49.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[144,0,192,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[144,0],[192,0],[192,48],[144,48]]}},{"name":"4.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[232,72,240,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[232,72],[240,72],[240,80],[232,80]]}},{"name":"50.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[192,0,240,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[192,0],[240,0],[240,48],[192,48]]}},{"name":"51.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[240,0,288,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[240,0],[288,0],[288,48],[240,48]]}},{"name":"52.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[288,0,336,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[288,0],[336,0],[336,48],[288,48]]}},{"name":"53.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[336,0,384,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[336,0],[384,0],[384,48],[336,48]]}},{"name":"54.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[384,0,432,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[384,0],[432,0],[432,48],[384,48]]}},{"name":"55.png","size":[48,48],"sprite_rect":[0,0,48,48],"sheet_rect":[432,0,480,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,48],[0,48]],"uvs":[[432,0],[480,0],[480,48],[432,48]]}},{"name":"56.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[240,72,248,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[240,72],[248,72],[248,80],[240,80]]}},{"name":"57.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[248,72,256,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[248,72],[256,72],[256,80],[248,80]]}},{"name":"58.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[256,72,264,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[256,72],[264,72],[264,80],[256,80]]}},{"name":"59.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[264,72,272,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[264,72],[272,72],[272,80],[264,80]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[168,48,184,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[168,48],[184,48],[184,64],[168,64]]}},{"name":"60.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[272,72,280,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[272,72],[280,72],[280,80],[272,80]]}},{"name":"61.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[280,72,288,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[280,72],[288,72],[288,80],[280,80]]}},{"name":"62.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[184,48,200,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[184,48],[200,48],[200,64],[184,64]]}},{"name":"63.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[200,48,216,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[200,48],[216,48],[216,64],[200,64]]}},{"name":"64.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[216,48,232,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[216,48],[232,48],[232,64],[216,64]]}},{"name":"65.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[232,48,248,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[232,48],[248,48],[248,64],[232,64]]}},{"name":"66.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[248,48,264,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[248,48],[264,48],[264,64],[248,64]]}},{"name":"67.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[264,48,280,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[264,48],[280,48],[280,64],[264,64]]}},{"name":"68.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[280,48,296,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[280,48],[296,48],[296,64],[280,64]]}},{"name":"69.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[296,48,312,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[296,48],[312,48],[312,64],[296,64]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[312,48,328,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[312,48],[328,48],[328,64],[312,64]]}},{"name":"70.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[328,48,344,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[328,48],[344,48],[344,64],[328,64]]}},{"name":"71.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[344,48,360,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[344,48],[360,48],[360,64],[344,64]]}},{"name":"72.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[360,48,376,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[360,48],[376,48],[376,64],[360,64]]}},{"name":"73.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[376,48,392,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[376,48],[392,48],[392,64],[376,64]]}},{"name":"74.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[392,48,408,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[392,48],[408,48],[408,64],[392,64]]}},{"name":"75.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[408,48,424,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[408,48],[424,48],[424,64],[408,64]]}},{"name":"76.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[424,48,440,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[424,48],[440,48],[440,64],[424,64]]}},{"name":"77.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[440,48,456,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[440,48],[456,48],[456,64],[440,64]]}},{"name":"78.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[456,48,472,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[456,48],[472,48],[472,64],[456,64]]}},{"name":"79.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[472,48,488,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[472,48],[488,48],[488,64],[472,64]]}},{"name":"7.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[288,72,296,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[288,72],[296,72],[296,80],[288,80]]}},{"name":"80.png","size":[16,8],"sprite_rect":[0,0,16,8],"sheet_rect":[232,64,248,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,8],[0,8]],"uvs":[[232,64],[248,64],[248,72],[232,72]]}},{"name":"81.png","size":[16,8],"sprite_rect":[0,0,16,8],"sheet_rect":[248,64,264,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,8],[0,8]],"uvs":[[248,64],[264,64],[264,72],[248,72]]}},{"name":"82.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[296,72,304,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[296,72],[304,72],[304,80],[296,80]]}},{"name":"83.png","size":[16,8],"sprite_rect":[0,0,16,8],"sheet_rect":[264,64,280,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,8],[0,8]],"uvs":[[264,64],[280,64],[280,72],[264,72]]}},{"name":"84.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[304,72,312,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[304,72],[312,72],[312,80],[304,80]]}},{"name":"85.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[312,72,320,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[312,72],[320,72],[320,80],[312,80]]}},{"name":"86.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[488,48,504,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[488,48],[504,48],[504,64],[488,64]]}},{"name":"87.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,64,16,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,64],[16,64],[16,80],[0,80]]}},{"name":"88.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,64,32,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,64],[32,64],[32,80],[16,80]]}},{"name":"89.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,64,48,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,64],[48,64],[48,80],[32,80]]}},{"name":"8.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[24,48,48,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[24,48],[48,48],[48,64],[24,64]]}},{"name":"90.png","size":[16,12],"sprite_rect":[0,0,16,12],"sheet_rect":[64,64,80,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,12],[0,12]],"uvs":[[64,64],[80,64],[80,76],[64,76]]}},{"name":"91.png","size":[16,12],"sprite_rect":[0,0,16,12],"sheet_rect":[80,64,96,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,12],[0,12]],"uvs":[[80,64],[96,64],[96,76],[80,76]]}},{"name":"92.png","size":[16,12],"sprite_rect":[0,0,16,12],"sheet_rect":[96,64,112,76],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,12],[0,12]],"uvs":[[96,64],[112,64],[112,76],[96,76]]}},{"name":"93.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[176,64,184,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[176,64],[184,64],[184,74],[176,74]]}},{"name":"94.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[184,64,192,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[184,64],[192,64],[192,74],[184,74]]}},{"name":"95.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[192,64,200,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[192,64],[200,64],[200,74],[192,74]]}},{"name":"96.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[200,64,208,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[200,64],[208,64],[208,74],[200,74]]}},{"name":"97.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[208,64,216,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[208,64],[216,64],[216,74],[208,74]]}},{"name":"98.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[216,64,224,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[216,64],[224,64],[224,74],[216,74]]}},{"name":"99.png","size":[8,10],"sprite_rect":[0,0,8,10],"sheet_rect":[224,64,232,74],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,10],[0,10]],"uvs":[[224,64],[232,64],[232,74],[224,74]]}},{"name":"9.png","size":[24,16],"sprite_rect":[0,0,24,16],"sheet_rect":[48,48,72,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[24,0],[24,16],[0,16]],"uvs":[[48,48],[72,48],[72,64],[48,64]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/collectibles/collectibles.png b/assets/filesystem/tilesheets/collectibles.png similarity index 100% rename from assets/tilesheets/collectibles/collectibles.png rename to assets/filesystem/tilesheets/collectibles.png diff --git a/assets/filesystem/tilesheets/font.json b/assets/filesystem/tilesheets/font.json new file mode 100644 index 00000000..a97096f8 --- /dev/null +++ b/assets/filesystem/tilesheets/font.json @@ -0,0 +1 @@ +{"image":"font.png","image_width":512,"image_height":64,"sprites":[{"name":"0.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,0,16,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,0],[16,0],[16,16],[0,16]]}},{"name":"100.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,0,32,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,0],[32,0],[32,16],[16,16]]}},{"name":"101.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,0,48,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,0],[48,0],[48,16],[32,16]]}},{"name":"102.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,0,64,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,0],[64,0],[64,16],[48,16]]}},{"name":"103.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,0,80,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,0],[80,0],[80,16],[64,16]]}},{"name":"104.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,0,96,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,0],[96,0],[96,16],[80,16]]}},{"name":"105.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,0,112,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,0],[112,0],[112,16],[96,16]]}},{"name":"106.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,0,128,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,0],[128,0],[128,16],[112,16]]}},{"name":"107.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,0,144,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,0],[144,0],[144,16],[128,16]]}},{"name":"108.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,0,160,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,0],[160,0],[160,16],[144,16]]}},{"name":"109.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,0,176,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,0],[176,0],[176,16],[160,16]]}},{"name":"10.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,0,192,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,0],[192,0],[192,16],[176,16]]}},{"name":"110.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,0,208,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,0],[208,0],[208,16],[192,16]]}},{"name":"111.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,0,224,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,0],[224,0],[224,16],[208,16]]}},{"name":"112.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,0,240,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,0],[240,0],[240,16],[224,16]]}},{"name":"113.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,0,256,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,0],[256,0],[256,16],[240,16]]}},{"name":"114.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,0,272,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,0],[272,0],[272,16],[256,16]]}},{"name":"115.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,0,288,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,0],[288,0],[288,16],[272,16]]}},{"name":"116.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,0,304,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,0],[304,0],[304,16],[288,16]]}},{"name":"117.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,0,320,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,0],[320,0],[320,16],[304,16]]}},{"name":"11.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,0,336,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,0],[336,0],[336,16],[320,16]]}},{"name":"12.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,0,352,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,0],[352,0],[352,16],[336,16]]}},{"name":"13.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,0,368,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,0],[368,0],[368,16],[352,16]]}},{"name":"14.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,0,384,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,0],[384,0],[384,16],[368,16]]}},{"name":"15.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,0,400,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,0],[400,0],[400,16],[384,16]]}},{"name":"16.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,0,416,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,0],[416,0],[416,16],[400,16]]}},{"name":"17.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,0,432,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,0],[432,0],[432,16],[416,16]]}},{"name":"18.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,0,448,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,0],[448,0],[448,16],[432,16]]}},{"name":"19.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,0,464,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,0],[464,0],[464,16],[448,16]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,0,480,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,0],[480,0],[480,16],[464,16]]}},{"name":"20.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,0,496,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,0],[496,0],[496,16],[480,16]]}},{"name":"21.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,0,512,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,0],[512,0],[512,16],[496,16]]}},{"name":"22.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,16,16,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,16],[16,16],[16,32],[0,32]]}},{"name":"23.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,16,32,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,16],[32,16],[32,32],[16,32]]}},{"name":"24.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,16,48,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,16],[48,16],[48,32],[32,32]]}},{"name":"25.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,16,64,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,16],[64,16],[64,32],[48,32]]}},{"name":"26.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,16,80,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,16],[80,16],[80,32],[64,32]]}},{"name":"27.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,16,96,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,16],[96,16],[96,32],[80,32]]}},{"name":"28.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,16,112,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,16],[112,16],[112,32],[96,32]]}},{"name":"29.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,16,128,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,16],[128,16],[128,32],[112,32]]}},{"name":"2.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,16,144,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,16],[144,16],[144,32],[128,32]]}},{"name":"30.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,16,160,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,16],[160,16],[160,32],[144,32]]}},{"name":"31.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,16,176,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,16],[176,16],[176,32],[160,32]]}},{"name":"32.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,16,192,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,16],[192,16],[192,32],[176,32]]}},{"name":"33.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,16,208,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,16],[208,16],[208,32],[192,32]]}},{"name":"34.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,16,224,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,16],[224,16],[224,32],[208,32]]}},{"name":"35.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,16,240,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,16],[240,16],[240,32],[224,32]]}},{"name":"36.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,16,256,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,16],[256,16],[256,32],[240,32]]}},{"name":"37.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,16,272,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,16],[272,16],[272,32],[256,32]]}},{"name":"38.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,16,288,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,16],[288,16],[288,32],[272,32]]}},{"name":"39.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,16,304,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,16],[304,16],[304,32],[288,32]]}},{"name":"3.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,16,320,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,16],[320,16],[320,32],[304,32]]}},{"name":"40.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,16,336,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,16],[336,16],[336,32],[320,32]]}},{"name":"41.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,16,352,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,16],[352,16],[352,32],[336,32]]}},{"name":"42.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,16,368,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,16],[368,16],[368,32],[352,32]]}},{"name":"43.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,16,384,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,16],[384,16],[384,32],[368,32]]}},{"name":"44.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,16,400,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,16],[400,16],[400,32],[384,32]]}},{"name":"45.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,16,416,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,16],[416,16],[416,32],[400,32]]}},{"name":"46.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,16,432,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,16],[432,16],[432,32],[416,32]]}},{"name":"47.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,16,448,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,16],[448,16],[448,32],[432,32]]}},{"name":"48.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,16,464,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,16],[464,16],[464,32],[448,32]]}},{"name":"49.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,16,480,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,16],[480,16],[480,32],[464,32]]}},{"name":"4.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,16,496,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,16],[496,16],[496,32],[480,32]]}},{"name":"50.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,16,512,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,16],[512,16],[512,32],[496,32]]}},{"name":"51.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,32,16,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,32],[16,32],[16,48],[0,48]]}},{"name":"52.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,32,32,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,32],[32,32],[32,48],[16,48]]}},{"name":"53.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,32,48,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,32],[48,32],[48,48],[32,48]]}},{"name":"54.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,32,64,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,32],[64,32],[64,48],[48,48]]}},{"name":"55.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,32,80,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,32],[80,32],[80,48],[64,48]]}},{"name":"56.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,32,96,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,32],[96,32],[96,48],[80,48]]}},{"name":"57.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,32,112,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,32],[112,32],[112,48],[96,48]]}},{"name":"58.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,32,128,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,32],[128,32],[128,48],[112,48]]}},{"name":"59.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,32,144,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,32],[144,32],[144,48],[128,48]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,32,160,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,32],[160,32],[160,48],[144,48]]}},{"name":"60.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,32,176,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,32],[176,32],[176,48],[160,48]]}},{"name":"61.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,32,192,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,32],[192,32],[192,48],[176,48]]}},{"name":"62.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,32,208,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,32],[208,32],[208,48],[192,48]]}},{"name":"63.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,32,224,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,32],[224,32],[224,48],[208,48]]}},{"name":"64.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,32,240,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,32],[240,32],[240,48],[224,48]]}},{"name":"65.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,32,256,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,32],[256,32],[256,48],[240,48]]}},{"name":"66.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,32,272,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,32],[272,32],[272,48],[256,48]]}},{"name":"67.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,32,288,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,32],[288,32],[288,48],[272,48]]}},{"name":"68.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,32,304,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,32],[304,32],[304,48],[288,48]]}},{"name":"69.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,32,320,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,32],[320,32],[320,48],[304,48]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,32,336,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,32],[336,32],[336,48],[320,48]]}},{"name":"70.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,32,352,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,32],[352,32],[352,48],[336,48]]}},{"name":"71.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,32,368,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,32],[368,32],[368,48],[352,48]]}},{"name":"72.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,32,384,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,32],[384,32],[384,48],[368,48]]}},{"name":"73.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,32,400,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,32],[400,32],[400,48],[384,48]]}},{"name":"74.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,32,416,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,32],[416,32],[416,48],[400,48]]}},{"name":"75.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,32,432,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,32],[432,32],[432,48],[416,48]]}},{"name":"76.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,32,448,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,32],[448,32],[448,48],[432,48]]}},{"name":"77.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,32,464,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,32],[464,32],[464,48],[448,48]]}},{"name":"78.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,32,480,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,32],[480,32],[480,48],[464,48]]}},{"name":"79.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,32,496,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,32],[496,32],[496,48],[480,48]]}},{"name":"7.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,32,512,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,32],[512,32],[512,48],[496,48]]}},{"name":"80.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,48,16,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,48],[16,48],[16,64],[0,64]]}},{"name":"81.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,48,32,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,48],[32,48],[32,64],[16,64]]}},{"name":"82.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,48,48,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,48],[48,48],[48,64],[32,64]]}},{"name":"83.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,48,64,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,48],[64,48],[64,64],[48,64]]}},{"name":"84.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,48,80,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,48],[80,48],[80,64],[64,64]]}},{"name":"85.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,48,96,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,48],[96,48],[96,64],[80,64]]}},{"name":"86.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,48,112,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,48],[112,48],[112,64],[96,64]]}},{"name":"87.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,48,128,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,48],[128,48],[128,64],[112,64]]}},{"name":"88.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,48,144,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,48],[144,48],[144,64],[128,64]]}},{"name":"89.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,48,160,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,48],[160,48],[160,64],[144,64]]}},{"name":"8.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,48,176,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,48],[176,48],[176,64],[160,64]]}},{"name":"90.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,48,192,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,48],[192,48],[192,64],[176,64]]}},{"name":"91.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,48,208,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,48],[208,48],[208,64],[192,64]]}},{"name":"92.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,48,224,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,48],[224,48],[224,64],[208,64]]}},{"name":"93.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,48,240,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,48],[240,48],[240,64],[224,64]]}},{"name":"94.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,48,256,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,48],[256,48],[256,64],[240,64]]}},{"name":"95.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,48,272,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,48],[272,48],[272,64],[256,64]]}},{"name":"96.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,48,288,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,48],[288,48],[288,64],[272,64]]}},{"name":"97.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,48,304,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,48],[304,48],[304,64],[288,64]]}},{"name":"98.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,48,320,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,48],[320,48],[320,64],[304,64]]}},{"name":"99.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,48,336,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,48],[336,48],[336,64],[320,64]]}},{"name":"9.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,48,352,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,48],[352,48],[352,64],[336,64]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/font/font.png b/assets/filesystem/tilesheets/font.png similarity index 100% rename from assets/tilesheets/font/font.png rename to assets/filesystem/tilesheets/font.png diff --git a/assets/filesystem/tilesheets/hud.json b/assets/filesystem/tilesheets/hud.json new file mode 100644 index 00000000..274d9c20 --- /dev/null +++ b/assets/filesystem/tilesheets/hud.json @@ -0,0 +1 @@ +{"image":"hud.png","image_width":512,"image_height":16,"sprites":[{"name":"0.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,0,16,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,0],[16,0],[16,16],[0,16]]}},{"name":"10.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,0,32,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,0],[32,0],[32,16],[16,16]]}},{"name":"11.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,0,48,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,0],[48,0],[48,16],[32,16]]}},{"name":"12.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,0,64,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,0],[64,0],[64,16],[48,16]]}},{"name":"13.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,0,80,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,0],[80,0],[80,16],[64,16]]}},{"name":"14.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,0,96,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,0],[96,0],[96,16],[80,16]]}},{"name":"15.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,0,112,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,0],[112,0],[112,16],[96,16]]}},{"name":"16.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,0,128,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,0],[128,0],[128,16],[112,16]]}},{"name":"17.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,0,144,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,0],[144,0],[144,16],[128,16]]}},{"name":"18.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,0,160,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,0],[160,0],[160,16],[144,16]]}},{"name":"19.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,0,176,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,0],[176,0],[176,16],[160,16]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,0,192,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,0],[192,0],[192,16],[176,16]]}},{"name":"20.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,0,208,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,0],[208,0],[208,16],[192,16]]}},{"name":"21.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,0,224,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,0],[224,0],[224,16],[208,16]]}},{"name":"2.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,0,240,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,0],[240,0],[240,16],[224,16]]}},{"name":"3.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,0,256,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,0],[256,0],[256,16],[240,16]]}},{"name":"4.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,0,272,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,0],[272,0],[272,16],[256,16]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,0,288,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,0],[288,0],[288,16],[272,16]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,0,304,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,0],[304,0],[304,16],[288,16]]}},{"name":"7.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,0,320,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,0],[320,0],[320,16],[304,16]]}},{"name":"8.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,0,336,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,0],[336,0],[336,16],[320,16]]}},{"name":"9.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,0,352,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,0],[352,0],[352,16],[336,16]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/hud/hud.png b/assets/filesystem/tilesheets/hud.png similarity index 100% rename from assets/tilesheets/hud/hud.png rename to assets/filesystem/tilesheets/hud.png diff --git a/assets/filesystem/tilesheets/level-tiles.json b/assets/filesystem/tilesheets/level-tiles.json new file mode 100644 index 00000000..bacdb4be --- /dev/null +++ b/assets/filesystem/tilesheets/level-tiles.json @@ -0,0 +1 @@ +{"image":"level-tiles.png","image_width":512,"image_height":32,"sprites":[{"name":"0.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,0,16,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,0],[16,0],[16,16],[0,16]]}},{"name":"10.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,0,32,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,0],[32,0],[32,16],[16,16]]}},{"name":"11.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,0,48,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,0],[48,0],[48,16],[32,16]]}},{"name":"12.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,0,64,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,0],[64,0],[64,16],[48,16]]}},{"name":"13.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,0,80,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,0],[80,0],[80,16],[64,16]]}},{"name":"14.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,0,96,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,0],[96,0],[96,16],[80,16]]}},{"name":"15.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,0,112,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,0],[112,0],[112,16],[96,16]]}},{"name":"16.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,0,128,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,0],[128,0],[128,16],[112,16]]}},{"name":"17.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,0,144,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,0],[144,0],[144,16],[128,16]]}},{"name":"18.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,0,160,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,0],[160,0],[160,16],[144,16]]}},{"name":"19.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,0,176,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,0],[176,0],[176,16],[160,16]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,0,192,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,0],[192,0],[192,16],[176,16]]}},{"name":"20.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,0,208,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,0],[208,0],[208,16],[192,16]]}},{"name":"21.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,0,224,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,0],[224,0],[224,16],[208,16]]}},{"name":"22.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,0,240,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,0],[240,0],[240,16],[224,16]]}},{"name":"23.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,0,256,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,0],[256,0],[256,16],[240,16]]}},{"name":"24.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,0,272,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,0],[272,0],[272,16],[256,16]]}},{"name":"25.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,0,288,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,0],[288,0],[288,16],[272,16]]}},{"name":"26.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,0,304,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,0],[304,0],[304,16],[288,16]]}},{"name":"27.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,0,320,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,0],[320,0],[320,16],[304,16]]}},{"name":"28.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,0,336,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,0],[336,0],[336,16],[320,16]]}},{"name":"29.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,0,352,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,0],[352,0],[352,16],[336,16]]}},{"name":"2.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,0,368,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,0],[368,0],[368,16],[352,16]]}},{"name":"30.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,0,384,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,0],[384,0],[384,16],[368,16]]}},{"name":"31.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,0,400,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,0],[400,0],[400,16],[384,16]]}},{"name":"32.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,0,416,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,0],[416,0],[416,16],[400,16]]}},{"name":"33.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,0,432,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,0],[432,0],[432,16],[416,16]]}},{"name":"34.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,0,448,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,0],[448,0],[448,16],[432,16]]}},{"name":"35.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,0,464,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,0],[464,0],[464,16],[448,16]]}},{"name":"36.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,0,480,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,0],[480,0],[480,16],[464,16]]}},{"name":"37.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,0,496,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,0],[496,0],[496,16],[480,16]]}},{"name":"38.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,0,512,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,0],[512,0],[512,16],[496,16]]}},{"name":"39.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,16,16,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,16],[16,16],[16,32],[0,32]]}},{"name":"3.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,16,32,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,16],[32,16],[32,32],[16,32]]}},{"name":"40.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,16,48,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,16],[48,16],[48,32],[32,32]]}},{"name":"41.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,16,64,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,16],[64,16],[64,32],[48,32]]}},{"name":"42.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,16,80,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,16],[80,16],[80,32],[64,32]]}},{"name":"43.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,16,96,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,16],[96,16],[96,32],[80,32]]}},{"name":"44.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,16,112,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,16],[112,16],[112,32],[96,32]]}},{"name":"45.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,16,128,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,16],[128,16],[128,32],[112,32]]}},{"name":"46.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,16,144,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,16],[144,16],[144,32],[128,32]]}},{"name":"4.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,16,160,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,16],[160,16],[160,32],[144,32]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,16,176,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,16],[176,16],[176,32],[160,32]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,16,192,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,16],[192,16],[192,32],[176,32]]}},{"name":"7.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,16,208,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,16],[208,16],[208,32],[192,32]]}},{"name":"8.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,16,224,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,16],[224,16],[224,32],[208,32]]}},{"name":"9.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,16,240,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,16],[240,16],[240,32],[224,32]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/level-tiles/level_tiles.png b/assets/filesystem/tilesheets/level-tiles.png similarity index 100% rename from assets/tilesheets/level-tiles/level_tiles.png rename to assets/filesystem/tilesheets/level-tiles.png diff --git a/assets/filesystem/tilesheets/main-dude.json b/assets/filesystem/tilesheets/main-dude.json new file mode 100644 index 00000000..0da5e667 --- /dev/null +++ b/assets/filesystem/tilesheets/main-dude.json @@ -0,0 +1 @@ +{"image":"main-dude.png","image_width":512,"image_height":64,"sprites":[{"name":"0.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[392,0,408,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[392,0],[408,0],[408,16],[392,16]]}},{"name":"10.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[408,0,424,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[408,0],[424,0],[424,16],[408,16]]}},{"name":"11.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[424,0,440,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[424,0],[440,0],[440,16],[424,16]]}},{"name":"12.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[440,0,456,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[440,0],[456,0],[456,16],[440,16]]}},{"name":"13.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[456,0,472,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[456,0],[472,0],[472,16],[456,16]]}},{"name":"14.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[192,0,212,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[192,0],[212,0],[212,16],[192,16]]}},{"name":"15.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[212,0,232,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[212,0],[232,0],[232,16],[212,16]]}},{"name":"16.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[232,0,252,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[232,0],[252,0],[252,16],[232,16]]}},{"name":"17.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[252,0,272,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[252,0],[272,0],[272,16],[252,16]]}},{"name":"18.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[272,0,292,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[272,0],[292,0],[292,16],[272,16]]}},{"name":"19.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[292,0,312,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[292,0],[312,0],[312,16],[292,16]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[472,0,488,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[472,0],[488,0],[488,16],[472,16]]}},{"name":"20.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[312,0,332,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[312,0],[332,0],[332,16],[312,16]]}},{"name":"21.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[332,0,352,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[332,0],[352,0],[352,16],[332,16]]}},{"name":"22.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[352,0,372,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[352,0],[372,0],[372,16],[352,16]]}},{"name":"23.png","size":[20,16],"sprite_rect":[0,0,20,16],"sheet_rect":[372,0,392,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[20,0],[20,16],[0,16]],"uvs":[[372,0],[392,0],[392,16],[372,16]]}},{"name":"24.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[488,0,504,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[488,0],[504,0],[504,16],[488,16]]}},{"name":"25.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,16,208,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,16],[208,16],[208,32],[192,32]]}},{"name":"26.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,16,224,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,16],[224,16],[224,32],[208,32]]}},{"name":"27.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,16,240,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,16],[240,16],[240,32],[224,32]]}},{"name":"28.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,16,256,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,16],[256,16],[256,32],[240,32]]}},{"name":"29.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,16,272,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,16],[272,16],[272,32],[256,32]]}},{"name":"2.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,16,288,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,16],[288,16],[288,32],[272,32]]}},{"name":"30.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,16,304,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,16],[304,16],[304,32],[288,32]]}},{"name":"31.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,16,320,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,16],[320,16],[320,32],[304,32]]}},{"name":"32.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,16,336,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,16],[336,16],[336,32],[320,32]]}},{"name":"33.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,16,352,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,16],[352,16],[352,32],[336,32]]}},{"name":"34.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,16,368,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,16],[368,16],[368,32],[352,32]]}},{"name":"35.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,16,384,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,16],[384,16],[384,32],[368,32]]}},{"name":"36.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,16,400,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,16],[400,16],[400,32],[384,32]]}},{"name":"37.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,16,416,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,16],[416,16],[416,32],[400,32]]}},{"name":"38.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,16,432,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,16],[432,16],[432,32],[416,32]]}},{"name":"39.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,16,448,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,16],[448,16],[448,32],[432,32]]}},{"name":"3.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,16,464,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,16],[464,16],[464,32],[448,32]]}},{"name":"40.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,16,480,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,16],[480,16],[480,32],[464,32]]}},{"name":"41.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,16,496,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,16],[496,16],[496,32],[480,32]]}},{"name":"42.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,16,512,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,16],[512,16],[512,32],[496,32]]}},{"name":"43.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,24,16,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,24],[16,24],[16,40],[0,40]]}},{"name":"44.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,24,32,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,24],[32,24],[32,40],[16,40]]}},{"name":"45.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,24,48,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,24],[48,24],[48,40],[32,40]]}},{"name":"46.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,24,64,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,24],[64,24],[64,40],[48,40]]}},{"name":"47.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,24,80,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,24],[80,24],[80,40],[64,40]]}},{"name":"48.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,24,96,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,24],[96,24],[96,40],[80,40]]}},{"name":"49.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,24,112,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,24],[112,24],[112,40],[96,40]]}},{"name":"4.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,24,128,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,24],[128,24],[128,40],[112,40]]}},{"name":"50.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,24,144,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,24],[144,24],[144,40],[128,40]]}},{"name":"51.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,24,160,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,24],[160,24],[160,40],[144,40]]}},{"name":"52.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,24,176,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,24],[176,24],[176,40],[160,40]]}},{"name":"53.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,24,192,40],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,24],[192,24],[192,40],[176,40]]}},{"name":"54.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,32,208,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,32],[208,32],[208,48],[192,48]]}},{"name":"55.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,32,224,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,32],[224,32],[224,48],[208,48]]}},{"name":"56.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,32,240,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,32],[240,32],[240,48],[224,48]]}},{"name":"57.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[0,0,16,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[0,0],[16,0],[16,24],[0,24]]}},{"name":"58.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[16,0,32,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[16,0],[32,0],[32,24],[16,24]]}},{"name":"59.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[32,0,48,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[32,0],[48,0],[48,24],[32,24]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,32,256,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,32],[256,32],[256,48],[240,48]]}},{"name":"60.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[48,0,64,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[48,0],[64,0],[64,24],[48,24]]}},{"name":"61.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[64,0,80,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[64,0],[80,0],[80,24],[64,24]]}},{"name":"62.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[80,0,96,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[80,0],[96,0],[96,24],[80,24]]}},{"name":"63.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[96,0,112,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[96,0],[112,0],[112,24],[96,24]]}},{"name":"64.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[112,0,128,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[112,0],[128,0],[128,24],[112,24]]}},{"name":"65.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[128,0,144,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[128,0],[144,0],[144,24],[128,24]]}},{"name":"66.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[144,0,160,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[144,0],[160,0],[160,24],[144,24]]}},{"name":"67.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[160,0,176,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[160,0],[176,0],[176,24],[160,24]]}},{"name":"68.png","size":[16,24],"sprite_rect":[0,0,16,24],"sheet_rect":[176,0,192,24],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,24],[0,24]],"uvs":[[176,0],[192,0],[192,24],[176,24]]}},{"name":"69.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,32,272,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,32],[272,32],[272,48],[256,48]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,32,288,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,32],[288,32],[288,48],[272,48]]}},{"name":"70.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,32,304,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,32],[304,32],[304,48],[288,48]]}},{"name":"71.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,32,320,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,32],[320,32],[320,48],[304,48]]}},{"name":"72.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,32,336,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,32],[336,32],[336,48],[320,48]]}},{"name":"73.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,32,352,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,32],[352,32],[352,48],[336,48]]}},{"name":"74.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,32,368,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,32],[368,32],[368,48],[352,48]]}},{"name":"75.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,32,384,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,32],[384,32],[384,48],[368,48]]}},{"name":"76.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,32,400,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,32],[400,32],[400,48],[384,48]]}},{"name":"77.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,32,416,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,32],[416,32],[416,48],[400,48]]}},{"name":"78.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,32,432,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,32],[432,32],[432,48],[416,48]]}},{"name":"79.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,32,448,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,32],[448,32],[448,48],[432,48]]}},{"name":"7.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,32,464,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,32],[464,32],[464,48],[448,48]]}},{"name":"80.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,32,480,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,32],[480,32],[480,48],[464,48]]}},{"name":"81.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,32,496,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,32],[496,32],[496,48],[480,48]]}},{"name":"82.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,32,512,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,32],[512,32],[512,48],[496,48]]}},{"name":"83.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,40,16,56],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,40],[16,40],[16,56],[0,56]]}},{"name":"8.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,40,32,56],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,40],[32,40],[32,56],[16,56]]}},{"name":"9.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,40,48,56],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,40],[48,40],[48,56],[32,56]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/main-dude/main-dude-spritesheet.png b/assets/filesystem/tilesheets/main-dude.png similarity index 100% rename from assets/tilesheets/main-dude/main-dude-spritesheet.png rename to assets/filesystem/tilesheets/main-dude.png diff --git a/assets/filesystem/tilesheets/main-menu.json b/assets/filesystem/tilesheets/main-menu.json new file mode 100644 index 00000000..5a245aa7 --- /dev/null +++ b/assets/filesystem/tilesheets/main-menu.json @@ -0,0 +1 @@ +{"image":"main-menu.png","image_width":512,"image_height":128,"sprites":[{"name":"0.png","size":[32,16],"sprite_rect":[0,0,32,16],"sheet_rect":[452,16,484,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[32,0],[32,16],[0,16]],"uvs":[[452,16],[484,16],[484,32],[452,32]]}},{"name":"1.png","size":[48,32],"sprite_rect":[0,0,48,32],"sheet_rect":[192,0,240,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,32],[0,32]],"uvs":[[192,0],[240,0],[240,32],[192,32]]}},{"name":"2.png","size":[32,16],"sprite_rect":[0,0,32,16],"sheet_rect":[452,32,484,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[32,0],[32,16],[0,16]],"uvs":[[452,32],[484,32],[484,48],[452,48]]}},{"name":"3.png","size":[192,80],"sprite_rect":[0,0,192,80],"sheet_rect":[0,0,192,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[192,0],[192,80],[0,80]],"uvs":[[0,0],[192,0],[192,80],[0,80]]}},{"name":"4.png","size":[48,32],"sprite_rect":[0,0,48,32],"sheet_rect":[240,0,288,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,32],[0,32]],"uvs":[[240,0],[288,0],[288,32],[240,32]]}},{"name":"5.png","size":[260,16],"sprite_rect":[0,0,260,16],"sheet_rect":[192,32,452,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[260,0],[260,16],[0,16]],"uvs":[[192,32],[452,32],[452,48],[192,48]]}},{"name":"6.png","size":[48,16],"sprite_rect":[0,0,48,16],"sheet_rect":[452,0,500,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[48,0],[48,16],[0,16]],"uvs":[[452,0],[500,0],[500,16],[452,16]]}},{"name":"7.png","size":[126,16],"sprite_rect":[0,0,126,16],"sheet_rect":[192,48,318,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[126,0],[126,16],[0,16]],"uvs":[[192,48],[318,48],[318,64],[192,64]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/main-menu/main-menu-spritesheet.png b/assets/filesystem/tilesheets/main-menu.png similarity index 100% rename from assets/tilesheets/main-menu/main-menu-spritesheet.png rename to assets/filesystem/tilesheets/main-menu.png diff --git a/assets/filesystem/tilesheets/npc.json b/assets/filesystem/tilesheets/npc.json new file mode 100644 index 00000000..f698b9bf --- /dev/null +++ b/assets/filesystem/tilesheets/npc.json @@ -0,0 +1 @@ +{"image":"npc.png","image_width":512,"image_height":128,"sprites":[{"name":"0.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,0,16,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,0],[16,0],[16,16],[0,16]]}},{"name":"100.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,0,32,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,0],[32,0],[32,16],[16,16]]}},{"name":"101.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,0,48,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,0],[48,0],[48,16],[32,16]]}},{"name":"102.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,0,64,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,0],[64,0],[64,16],[48,16]]}},{"name":"103.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,0,80,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,0],[80,0],[80,16],[64,16]]}},{"name":"104.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,0,96,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,0],[96,0],[96,16],[80,16]]}},{"name":"105.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,0,112,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,0],[112,0],[112,16],[96,16]]}},{"name":"106.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,0,128,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,0],[128,0],[128,16],[112,16]]}},{"name":"107.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,0,144,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,0],[144,0],[144,16],[128,16]]}},{"name":"108.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,0,160,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,0],[160,0],[160,16],[144,16]]}},{"name":"109.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,0,176,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,0],[176,0],[176,16],[160,16]]}},{"name":"10.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,0,192,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,0],[192,0],[192,16],[176,16]]}},{"name":"110.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,0,208,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,0],[208,0],[208,16],[192,16]]}},{"name":"111.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,0,224,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,0],[224,0],[224,16],[208,16]]}},{"name":"112.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,0,240,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,0],[240,0],[240,16],[224,16]]}},{"name":"113.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,0,256,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,0],[256,0],[256,16],[240,16]]}},{"name":"114.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,0,272,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,0],[272,0],[272,16],[256,16]]}},{"name":"115.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,0,288,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,0],[288,0],[288,16],[272,16]]}},{"name":"116.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,0,304,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,0],[304,0],[304,16],[288,16]]}},{"name":"117.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,0,320,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,0],[320,0],[320,16],[304,16]]}},{"name":"118.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,0,336,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,0],[336,0],[336,16],[320,16]]}},{"name":"119.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,0,352,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,0],[352,0],[352,16],[336,16]]}},{"name":"11.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,0,368,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,0],[368,0],[368,16],[352,16]]}},{"name":"120.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,0,384,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,0],[384,0],[384,16],[368,16]]}},{"name":"121.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,0,400,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,0],[400,0],[400,16],[384,16]]}},{"name":"122.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,0,416,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,0],[416,0],[416,16],[400,16]]}},{"name":"123.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,0,432,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,0],[432,0],[432,16],[416,16]]}},{"name":"124.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,0,448,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,0],[448,0],[448,16],[432,16]]}},{"name":"125.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,0,464,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,0],[464,0],[464,16],[448,16]]}},{"name":"126.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,0,480,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,0],[480,0],[480,16],[464,16]]}},{"name":"127.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,0,496,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,0],[496,0],[496,16],[480,16]]}},{"name":"128.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,0,512,16],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,0],[512,0],[512,16],[496,16]]}},{"name":"129.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,16,16,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,16],[16,16],[16,32],[0,32]]}},{"name":"12.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,16,32,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,16],[32,16],[32,32],[16,32]]}},{"name":"130.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,16,48,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,16],[48,16],[48,32],[32,32]]}},{"name":"131.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,16,64,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,16],[64,16],[64,32],[48,32]]}},{"name":"132.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,16,80,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,16],[80,16],[80,32],[64,32]]}},{"name":"133.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,16,96,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,16],[96,16],[96,32],[80,32]]}},{"name":"134.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,16,112,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,16],[112,16],[112,32],[96,32]]}},{"name":"135.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,16,128,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,16],[128,16],[128,32],[112,32]]}},{"name":"136.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,16,144,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,16],[144,16],[144,32],[128,32]]}},{"name":"137.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,16,160,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,16],[160,16],[160,32],[144,32]]}},{"name":"138.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,16,176,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,16],[176,16],[176,32],[160,32]]}},{"name":"139.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,16,192,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,16],[192,16],[192,32],[176,32]]}},{"name":"13.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,16,208,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,16],[208,16],[208,32],[192,32]]}},{"name":"140.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,16,224,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,16],[224,16],[224,32],[208,32]]}},{"name":"141.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,16,240,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,16],[240,16],[240,32],[224,32]]}},{"name":"142.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,16,256,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,16],[256,16],[256,32],[240,32]]}},{"name":"143.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,16,272,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,16],[272,16],[272,32],[256,32]]}},{"name":"144.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,16,288,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,16],[288,16],[288,32],[272,32]]}},{"name":"145.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,16,304,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,16],[304,16],[304,32],[288,32]]}},{"name":"146.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,16,320,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,16],[320,16],[320,32],[304,32]]}},{"name":"147.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,16,336,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,16],[336,16],[336,32],[320,32]]}},{"name":"148.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,16,352,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,16],[352,16],[352,32],[336,32]]}},{"name":"149.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,16,368,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,16],[368,16],[368,32],[352,32]]}},{"name":"14.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,16,384,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,16],[384,16],[384,32],[368,32]]}},{"name":"150.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,16,400,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,16],[400,16],[400,32],[384,32]]}},{"name":"151.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,16,416,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,16],[416,16],[416,32],[400,32]]}},{"name":"152.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,16,432,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,16],[432,16],[432,32],[416,32]]}},{"name":"153.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,16,448,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,16],[448,16],[448,32],[432,32]]}},{"name":"154.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,16,464,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,16],[464,16],[464,32],[448,32]]}},{"name":"155.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,16,480,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,16],[480,16],[480,32],[464,32]]}},{"name":"156.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,16,496,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,16],[496,16],[496,32],[480,32]]}},{"name":"157.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,16,512,32],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,16],[512,16],[512,32],[496,32]]}},{"name":"158.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,32,16,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,32],[16,32],[16,48],[0,48]]}},{"name":"159.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,32,32,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,32],[32,32],[32,48],[16,48]]}},{"name":"15.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,32,48,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,32],[48,32],[48,48],[32,48]]}},{"name":"160.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,32,64,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,32],[64,32],[64,48],[48,48]]}},{"name":"161.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,32,80,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,32],[80,32],[80,48],[64,48]]}},{"name":"162.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,32,96,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,32],[96,32],[96,48],[80,48]]}},{"name":"163.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,32,112,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,32],[112,32],[112,48],[96,48]]}},{"name":"164.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,32,128,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,32],[128,32],[128,48],[112,48]]}},{"name":"16.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,32,144,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,32],[144,32],[144,48],[128,48]]}},{"name":"17.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,32,160,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,32],[160,32],[160,48],[144,48]]}},{"name":"18.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,32,176,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,32],[176,32],[176,48],[160,48]]}},{"name":"19.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,32,192,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,32],[192,32],[192,48],[176,48]]}},{"name":"1.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,32,208,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,32],[208,32],[208,48],[192,48]]}},{"name":"20.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,32,224,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,32],[224,32],[224,48],[208,48]]}},{"name":"21.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,32,240,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,32],[240,32],[240,48],[224,48]]}},{"name":"22.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,32,256,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,32],[256,32],[256,48],[240,48]]}},{"name":"23.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,32,272,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,32],[272,32],[272,48],[256,48]]}},{"name":"24.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,32,288,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,32],[288,32],[288,48],[272,48]]}},{"name":"25.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,32,304,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,32],[304,32],[304,48],[288,48]]}},{"name":"26.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,32,320,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,32],[320,32],[320,48],[304,48]]}},{"name":"27.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,32,336,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,32],[336,32],[336,48],[320,48]]}},{"name":"28.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,32,352,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,32],[352,32],[352,48],[336,48]]}},{"name":"29.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,32,368,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,32],[368,32],[368,48],[352,48]]}},{"name":"2.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,32,384,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,32],[384,32],[384,48],[368,48]]}},{"name":"30.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[288,64,296,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[288,64],[296,64],[296,72],[288,72]]}},{"name":"31.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[296,64,304,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[296,64],[304,64],[304,72],[296,72]]}},{"name":"32.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[304,64,312,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[304,64],[312,64],[312,72],[304,72]]}},{"name":"33.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[312,64,320,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[312,64],[320,64],[320,72],[312,72]]}},{"name":"34.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[320,64,328,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[320,64],[328,64],[328,72],[320,72]]}},{"name":"35.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[328,64,336,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[328,64],[336,64],[336,72],[328,72]]}},{"name":"36.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[336,64,344,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[336,64],[344,64],[344,72],[336,72]]}},{"name":"37.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[344,64,352,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[344,64],[352,64],[352,72],[344,72]]}},{"name":"38.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[352,64,360,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[352,64],[360,64],[360,72],[352,72]]}},{"name":"39.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[360,64,368,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[360,64],[368,64],[368,72],[360,72]]}},{"name":"3.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,32,400,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,32],[400,32],[400,48],[384,48]]}},{"name":"40.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,32,416,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,32],[416,32],[416,48],[400,48]]}},{"name":"41.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,32,432,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,32],[432,32],[432,48],[416,48]]}},{"name":"42.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,32,448,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,32],[448,32],[448,48],[432,48]]}},{"name":"43.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,32,464,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,32],[464,32],[464,48],[448,48]]}},{"name":"44.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,32,480,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,32],[480,32],[480,48],[464,48]]}},{"name":"45.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,32,496,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,32],[496,32],[496,48],[480,48]]}},{"name":"46.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,32,512,48],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,32],[512,32],[512,48],[496,48]]}},{"name":"47.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,48,16,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,48],[16,48],[16,64],[0,64]]}},{"name":"48.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,48,32,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,48],[32,48],[32,64],[16,64]]}},{"name":"49.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,48,48,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,48],[48,48],[48,64],[32,64]]}},{"name":"4.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,48,64,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,48],[64,48],[64,64],[48,64]]}},{"name":"50.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,48,80,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,48],[80,48],[80,64],[64,64]]}},{"name":"51.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,48,96,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,48],[96,48],[96,64],[80,64]]}},{"name":"52.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,48,112,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,48],[112,48],[112,64],[96,64]]}},{"name":"53.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,48,128,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,48],[128,48],[128,64],[112,64]]}},{"name":"54.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,48,144,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,48],[144,48],[144,64],[128,64]]}},{"name":"55.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,48,160,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,48],[160,48],[160,64],[144,64]]}},{"name":"56.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,48,176,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,48],[176,48],[176,64],[160,64]]}},{"name":"57.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,48,192,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,48],[192,48],[192,64],[176,64]]}},{"name":"58.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,48,208,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,48],[208,48],[208,64],[192,64]]}},{"name":"59.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,48,224,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,48],[224,48],[224,64],[208,64]]}},{"name":"5.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,48,240,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,48],[240,48],[240,64],[224,64]]}},{"name":"60.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,48,256,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,48],[256,48],[256,64],[240,64]]}},{"name":"61.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,48,272,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,48],[272,48],[272,64],[256,64]]}},{"name":"62.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,48,288,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,48],[288,48],[288,64],[272,64]]}},{"name":"63.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[288,48,304,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[288,48],[304,48],[304,64],[288,64]]}},{"name":"64.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[304,48,320,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[304,48],[320,48],[320,64],[304,64]]}},{"name":"65.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[368,64,376,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[368,64],[376,64],[376,72],[368,72]]}},{"name":"66.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[320,48,336,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[320,48],[336,48],[336,64],[320,64]]}},{"name":"67.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[376,64,384,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[376,64],[384,64],[384,72],[376,72]]}},{"name":"68.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[384,64,392,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[384,64],[392,64],[392,72],[384,72]]}},{"name":"69.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[392,64,400,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[392,64],[400,64],[400,72],[392,72]]}},{"name":"6.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[336,48,352,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[336,48],[352,48],[352,64],[336,64]]}},{"name":"70.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[400,64,408,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[400,64],[408,64],[408,72],[400,72]]}},{"name":"71.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[408,64,416,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[408,64],[416,64],[416,72],[408,72]]}},{"name":"72.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[416,64,424,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[416,64],[424,64],[424,72],[416,72]]}},{"name":"73.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[424,64,432,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[424,64],[432,64],[432,72],[424,72]]}},{"name":"74.png","size":[8,8],"sprite_rect":[0,0,8,8],"sheet_rect":[432,64,440,72],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[8,0],[8,8],[0,8]],"uvs":[[432,64],[440,64],[440,72],[432,72]]}},{"name":"75.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[352,48,368,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[352,48],[368,48],[368,64],[352,64]]}},{"name":"76.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[368,48,384,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[368,48],[384,48],[384,64],[368,64]]}},{"name":"77.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[384,48,400,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[384,48],[400,48],[400,64],[384,64]]}},{"name":"78.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[400,48,416,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[400,48],[416,48],[416,64],[400,64]]}},{"name":"79.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[416,48,432,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[416,48],[432,48],[432,64],[416,64]]}},{"name":"7.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[432,48,448,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[432,48],[448,48],[448,64],[432,64]]}},{"name":"80.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[448,48,464,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[448,48],[464,48],[464,64],[448,64]]}},{"name":"81.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[464,48,480,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[464,48],[480,48],[480,64],[464,64]]}},{"name":"82.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[480,48,496,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[480,48],[496,48],[496,64],[480,64]]}},{"name":"83.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[496,48,512,64],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[496,48],[512,48],[512,64],[496,64]]}},{"name":"84.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[0,64,16,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[0,64],[16,64],[16,80],[0,80]]}},{"name":"85.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[16,64,32,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[16,64],[32,64],[32,80],[16,80]]}},{"name":"86.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[32,64,48,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[32,64],[48,64],[48,80],[32,80]]}},{"name":"87.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[48,64,64,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[48,64],[64,64],[64,80],[48,80]]}},{"name":"88.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[64,64,80,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[64,64],[80,64],[80,80],[64,80]]}},{"name":"89.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[80,64,96,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[80,64],[96,64],[96,80],[80,80]]}},{"name":"8.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[96,64,112,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[96,64],[112,64],[112,80],[96,80]]}},{"name":"90.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[112,64,128,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[112,64],[128,64],[128,80],[112,80]]}},{"name":"91.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[128,64,144,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[128,64],[144,64],[144,80],[128,80]]}},{"name":"92.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[144,64,160,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[144,64],[160,64],[160,80],[144,80]]}},{"name":"93.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[160,64,176,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[160,64],[176,64],[176,80],[160,80]]}},{"name":"94.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[176,64,192,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[176,64],[192,64],[192,80],[176,80]]}},{"name":"95.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[192,64,208,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[192,64],[208,64],[208,80],[192,80]]}},{"name":"96.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[208,64,224,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[208,64],[224,64],[224,80],[208,80]]}},{"name":"97.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[224,64,240,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[224,64],[240,64],[240,80],[224,80]]}},{"name":"98.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[240,64,256,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[240,64],[256,64],[256,80],[240,80]]}},{"name":"99.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[256,64,272,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[256,64],[272,64],[272,80],[256,80]]}},{"name":"9.png","size":[16,16],"sprite_rect":[0,0,16,16],"sheet_rect":[272,64,288,80],"mesh":{"num_tris":2,"num_vertices":4,"indices":[0,1,2,0,2,3],"positions":[[0,0],[16,0],[16,16],[0,16]],"uvs":[[272,64],[288,64],[288,80],[272,80]]}}]} \ No newline at end of file diff --git a/assets/tilesheets/npc/npc.png b/assets/filesystem/tilesheets/npc.png similarity index 100% rename from assets/tilesheets/npc/npc.png rename to assets/filesystem/tilesheets/npc.png diff --git a/assets/tilesheets/README.MD b/assets/tilesheets/README.MD deleted file mode 100644 index f41892ea..00000000 --- a/assets/tilesheets/README.MD +++ /dev/null @@ -1,4 +0,0 @@ -Spritesheet-generating command is: - -./atlasc *.png -o -B 0 -P 0 -m -W 512 -H 512 -2 -A 0 - \ No newline at end of file diff --git a/cmake/DependenciesDarwin.cmake b/cmake/DependenciesDarwin.cmake index f2029daa..85c1e110 100644 --- a/cmake/DependenciesDarwin.cmake +++ b/cmake/DependenciesDarwin.cmake @@ -2,6 +2,7 @@ macro(add_darwin_dependencies) find_package(SDL2 CONFIG REQUIRED) find_package(SDL2_mixer REQUIRED) + find_library(OpenGL OpenGL) add_library(SDL_2_XX INTERFACE) target_link_libraries(SDL_2_XX INTERFACE @@ -17,7 +18,7 @@ macro(add_darwin_dependencies) ) add_library(Dependencies INTERFACE) - target_link_libraries(Dependencies INTERFACE SDL_2_XX) + target_link_libraries(Dependencies INTERFACE SDL_2_XX ${OpenGL}) target_compile_definitions(Dependencies INTERFACE SPELUNKY_PSP_PLATFORM_DARWIN SPELUNKY_PSP_PLATFORM_DESKTOP diff --git a/cmake/DependenciesPSP.cmake b/cmake/DependenciesPSP.cmake index 17dfe5fb..8071b0de 100644 --- a/cmake/DependenciesPSP.cmake +++ b/cmake/DependenciesPSP.cmake @@ -42,7 +42,7 @@ endmacro() macro(spelunky_psp_post_build_psp) create_pbp_file(TARGET Spelunky_PSP - ICON_PATH ${ASSETS_PATH}/metadata/icon.png - BACKGROUND_PATH ${ASSETS_PATH}/metadata/background.png + ICON_PATH ${SPELUNKY_PSP_ASSETS_PATH}/development/metadata/icon.png + BACKGROUND_PATH ${SPELUNKY_PSP_ASSETS_PATH}/development/metadata/background.png ) endmacro() diff --git a/scripts/darwin/config.sh b/scripts/darwin/config.sh index d1f81107..0fad304f 100755 --- a/scripts/darwin/config.sh +++ b/scripts/darwin/config.sh @@ -6,5 +6,6 @@ cmake \ -B $BUILD_PATH \ -S $ROOT_PATH \ -G "Unix Makefiles" \ + -DSPELUNKY_PSP_USE_VIRTUAL_FILESYSTEM=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH diff --git a/scripts/linux/build.sh b/scripts/linux/build.sh index a59441a1..7c9a5a62 100755 --- a/scripts/linux/build.sh +++ b/scripts/linux/build.sh @@ -3,7 +3,7 @@ source variables.sh cmake \ - --build $BUILD_PATH \ + --build $SPELUNKY_PSP_BUILD_PATH \ --target install \ --config Release \ -j $NUM_THREADS diff --git a/scripts/linux/config.sh b/scripts/linux/config.sh index 59e2ac9b..6d85e7d4 100755 --- a/scripts/linux/config.sh +++ b/scripts/linux/config.sh @@ -4,7 +4,8 @@ source variables.sh cmake \ -S $ROOT_PATH \ - -B $BUILD_PATH \ + -B $SPELUNKY_PSP_BUILD_PATH \ -G "Unix Makefiles" \ + -DSPELUNKY_PSP_USE_VIRTUAL_FILESYSTEM=ON \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH + -DCMAKE_INSTALL_PREFIX=$SPELUNKY_PSP_INSTALL_PATH diff --git a/scripts/linux/generate-spritesheets.sh b/scripts/linux/generate-spritesheets.sh new file mode 100755 index 00000000..5d058076 --- /dev/null +++ b/scripts/linux/generate-spritesheets.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +source variables.sh + +# Capped at maximum texture size that can be created on PSP; +# Note that emulators may not represent this limitation, +# manifesting the problem only on a real device: +SPRITESHEET_WIDTH=512 +SPRITESHEET_HEIGHT=512 + +INPUT_DIR_PATHS=$(find ${ASSETS_PATH}/development/tilesheets/* -type d) +ATLASC_PATH=${TOOLS_BUILD_PATH}/atlasc/atlasc +OUTPUT_DIRECTORY=${ASSETS_PATH}/filesystem/tilesheets/ + +if [[ ! -f ${ATLASC_PATH} ]]; then +{ + echo "Call tools.sh first" + exit +} fi + +mkdir -p ${OUTPUT_DIRECTORY} + +for IN_DIR in ${INPUT_DIR_PATHS}; do + cd ${IN_DIR} + OUTPUT_FILENAME=$(basename ${IN_DIR}) + OUTPUT_FILE_PATH=${OUTPUT_DIRECTORY}/${OUTPUT_FILENAME} + ${ATLASC_PATH} \ + *.png \ + -o ${OUTPUT_DIRECTORY}/${OUTPUT_FILENAME} \ + -B 0 \ + -P 0 \ + -m \ + -W ${SPRITESHEET_WIDTH} \ + -H ${SPRITESHEET_HEIGHT} \ + -2 \ + -A 0 + # Add missing metadata extension: + mv ${OUTPUT_FILE_PATH} ${OUTPUT_FILE_PATH}.json + echo "Size: $(du -sh ${OUTPUT_FILE_PATH}.png)" + cd - +done + +echo "Success!" + diff --git a/scripts/linux/generate-virtual-filesystem.sh b/scripts/linux/generate-virtual-filesystem.sh new file mode 100755 index 00000000..cb36a00e --- /dev/null +++ b/scripts/linux/generate-virtual-filesystem.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +source variables.sh + +RESOURCE_COMPILER_PATH=${TOOLS_BUILD_PATH}/resource-compiler/resource-compiler +OUT_DIR_PATH="${ROOT_PATH}/src/assets/generated" +OUT_HEADER_DIR_PATH="${OUT_DIR_PATH}/files/" +INDEX_FILE_PATH="${OUT_DIR_PATH}/VirtualFileIndex.cpp" + +cleanup() { + rm -rf "${OUT_HEADER_DIR_PATH}" + rm -rf "${INDEX_FILE_PATH}" + mkdir -p ${OUT_HEADER_DIR_PATH} +} + +resource_compile() { + echo "Resource-compiling files" + + if [[ ! -f ${RESOURCE_COMPILER_PATH} ]]; then + { + echo "Call tools.sh first" + exit + } fi + + cd ${ASSETS_PATH}/filesystem + IN_FILE_PATHS=$(find . -type f | sed -e "s/\.\///g") + for FILE_PATH in $IN_FILE_PATHS; do + FILENAME=$(basename $FILE_PATH) + ${RESOURCE_COMPILER_PATH} ${FILE_PATH} $OUT_HEADER_DIR_PATH/$FILENAME.hpp + done + cd - +} + +generate_virtual_file_index() { + echo "Generating virtual file index at: ${INDEX_FILE_PATH}" + + touch ${INDEX_FILE_PATH} + + echo "// auto-generated at $(date +'%d.%m.%Y %H:%M')" >> ${INDEX_FILE_PATH} + echo '#include "VirtualFileIndex.hpp"' >> ${INDEX_FILE_PATH} + echo 'std::vector get_resource_compiled_files() {' >> ${INDEX_FILE_PATH} + echo 'std::vector out;' >> ${INDEX_FILE_PATH} + + for FILE_PATH in $IN_FILE_PATHS; do + FILENAME=$(basename $FILE_PATH) + echo "{" >> ${INDEX_FILE_PATH} + echo "#include \"./files/${FILENAME}.hpp\"" >> ${INDEX_FILE_PATH} + echo "out.push_back({path, &data[0], size});" >> ${INDEX_FILE_PATH} + echo "}" >> ${INDEX_FILE_PATH} + done + + echo 'return out;' >> ${INDEX_FILE_PATH} + echo '}' >> ${INDEX_FILE_PATH} +} + +cleanup +resource_compile +generate_virtual_file_index diff --git a/scripts/linux/tools.sh b/scripts/linux/tools.sh new file mode 100755 index 00000000..82bdcc17 --- /dev/null +++ b/scripts/linux/tools.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +source variables.sh + +cmake \ + -S $TOOLS_PATH \ + -B $TOOLS_BUILD_PATH \ + -G "Unix Makefiles" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$TOOLS_INSTALL_PATH + +# TODO: Add install target and pass --target install +cmake \ + --build $TOOLS_BUILD_PATH \ + --config Release \ + -j $NUM_THREADS diff --git a/scripts/linux/variables.sh b/scripts/linux/variables.sh index 27464afc..36f3f3e7 100644 --- a/scripts/linux/variables.sh +++ b/scripts/linux/variables.sh @@ -5,8 +5,14 @@ set -e # Referencing unset variables are errors: set -u +NUM_THREADS=$(nproc) ROOT_PATH=$(realpath ../../) +ASSETS_PATH=$ROOT_PATH/assets TMP_PATH=$ROOT_PATH/tmp -INSTALL_PATH=$TMP_PATH/install-linux -BUILD_PATH=$TMP_PATH/build-linux -NUM_THREADS=$(nproc) + +SPELUNKY_PSP_INSTALL_PATH=$TMP_PATH/install-linux-spelunky-psp +SPELUNKY_PSP_BUILD_PATH=$TMP_PATH/build-linux-spelunky-psp + +TOOLS_INSTALL_PATH=$TMP_PATH/install-linux-tools +TOOLS_BUILD_PATH=$TMP_PATH/build-linux-tools +TOOLS_PATH=$ROOT_PATH/tools diff --git a/scripts/psp/config.sh b/scripts/psp/config.sh index 12f2395c..1757d5c7 100755 --- a/scripts/psp/config.sh +++ b/scripts/psp/config.sh @@ -8,6 +8,7 @@ source variables.sh psp-cmake \ -S $ROOT_PATH \ -B $BUILD_PATH \ + -DSPELUNKY_PSP_USE_VIRTUAL_FILESYSTEM=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH \ -DCMAKE_VERBOSE_MAKEFILE=ON diff --git a/scripts/windows/config.ps1 b/scripts/windows/config.ps1 index 70c8f74e..509960e1 100644 --- a/scripts/windows/config.ps1 +++ b/scripts/windows/config.ps1 @@ -11,5 +11,6 @@ New-Item -Path "$BUILD_PATH" -ItemType "Directory" cmake ` -S $ROOT_PATH ` -B "$BUILD_PATH" ` + -DSPELUNKY_PSP_USE_VIRTUAL_FILESYSTEM=ON ` -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" ` -DCMAKE_PREFIX_PATH="$DEPS_PATH" diff --git a/src/Main.cpp b/src/Main.cpp index 63069354..2490f3c7 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -1,5 +1,6 @@ #include "video/Video.hpp" #include "audio/Audio.hpp" +#include "assets/Assets.hpp" #include "logger/log.h" #include "Level.hpp" #include "Input.hpp" @@ -12,6 +13,7 @@ void init_singletons() { + Assets::init(); Level::init(); TextureBank::init(); Input::init(); @@ -28,6 +30,7 @@ void dispose_singletons() Input::dispose(); TextureBank::dispose(); Level::dispose(); + Assets::dispose(); } int start() @@ -35,6 +38,12 @@ int start() log_info("Started."); init_singletons(); + if (!Assets::instance().load()) + { + log_error("Failed to load assets."); + return EXIT_FAILURE; + } + if (!Audio::instance().setup_audio()) { log_error("Failed to setup audio."); diff --git a/src/assets/CMakeLists.txt b/src/assets/CMakeLists.txt new file mode 100644 index 00000000..b223b56e --- /dev/null +++ b/src/assets/CMakeLists.txt @@ -0,0 +1,27 @@ +project(Assets) + +add_library(Assets STATIC + $,src/AssetsVirtualFilesystem.cpp,src/AssetsRealFilesystem.cpp> + $,generated/VirtualFileIndex.cpp,> + $,generated/VirtualFileIndex.hpp,> + src/Paths.cpp + src/Assets.cpp + interface/assets/Assets.hpp + interface/assets/Paths.hpp +) + +target_include_directories(Assets + PRIVATE generated interface + INTERFACE interface +) + +set_target_properties(Assets PROPERTIES + CXX_STANDARD 17 +) + +target_link_libraries(Assets + PUBLIC + Patterns + PRIVATE + Logger +) diff --git a/src/assets/generated/VirtualFileIndex.cpp b/src/assets/generated/VirtualFileIndex.cpp new file mode 100644 index 00000000..cb60b555 --- /dev/null +++ b/src/assets/generated/VirtualFileIndex.cpp @@ -0,0 +1,146 @@ +// auto-generated at 18.08.2024 21:51 +#include "VirtualFileIndex.hpp" +std::vector get_resource_compiled_files() { +std::vector out; +{ +#include "./files/main-dude.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/main-menu.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/level-tiles.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/npc.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/font.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/main-dude.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/level-tiles.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/collectibles.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/main-menu.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/npc.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/hud.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/collectibles.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/font.json.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/hud.png.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/kiss.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/whip.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/jump.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/hit.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/hurt.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/climb2.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/entering_door.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/arrowtrap.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/title.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/cave.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/shotgun.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/explosion.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/coin.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/pickup.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/chestopen.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/climb1.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/throw.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/die.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/gem.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/jetpack.wav.hpp" +out.push_back({path, &data[0], size}); +} +{ +#include "./files/bat.wav.hpp" +out.push_back({path, &data[0], size}); +} +return out; +} diff --git a/src/assets/generated/VirtualFileIndex.hpp b/src/assets/generated/VirtualFileIndex.hpp new file mode 100644 index 00000000..455d7d24 --- /dev/null +++ b/src/assets/generated/VirtualFileIndex.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include + +struct VirtualFile { + const char* path; + const char* data; + std::size_t size; +}; + +std::vector get_resource_compiled_files(); diff --git a/src/audio/include/generated/arrowtrap.wav.hpp b/src/assets/generated/files/arrowtrap.wav.hpp similarity index 99% rename from src/audio/include/generated/arrowtrap.wav.hpp rename to src/assets/generated/files/arrowtrap.wav.hpp index d1a9139c..93a0ac54 100644 --- a/src/audio/include/generated/arrowtrap.wav.hpp +++ b/src/assets/generated/files/arrowtrap.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: arrowtrap.wav, at: Wed Feb 17 18:52:28 2021 +// Generated from: audio/arrowtrap.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 15176; +const char* path = "audio/arrowtrap.wav"; +static const char data[] = { 82,73,70,70,64,59,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/bat.wav.hpp b/src/assets/generated/files/bat.wav.hpp similarity index 99% rename from src/audio/include/generated/bat.wav.hpp rename to src/assets/generated/files/bat.wav.hpp index 1d5234b1..f96bbf2a 100644 --- a/src/audio/include/generated/bat.wav.hpp +++ b/src/assets/generated/files/bat.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: bat.wav, at: Wed Feb 17 18:52:47 2021 +// Generated from: audio/bat.wav, at: Sun Aug 18 21:51:30 2024 -char data[] = +const std::size_t size = 31170; +const char* path = "audio/bat.wav"; +static const char data[] = { 82,73,70,70,-70,121,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/cave.wav.hpp b/src/assets/generated/files/cave.wav.hpp similarity index 99% rename from src/audio/include/generated/cave.wav.hpp rename to src/assets/generated/files/cave.wav.hpp index 496e9bbb..16ec35d0 100644 --- a/src/audio/include/generated/cave.wav.hpp +++ b/src/assets/generated/files/cave.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: cave_1.wav, at: Sun Aug 16 13:15:48 2020 +// Generated from: audio/cave.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 8468558; +const char* path = "audio/cave.wav"; +static const char data[] = { 82,73,70,70,70,56,-127,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/chestopen.wav.hpp b/src/assets/generated/files/chestopen.wav.hpp similarity index 99% rename from src/audio/include/generated/chestopen.wav.hpp rename to src/assets/generated/files/chestopen.wav.hpp index f5541ad1..4a87f0b1 100644 --- a/src/audio/include/generated/chestopen.wav.hpp +++ b/src/assets/generated/files/chestopen.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: chestopen.wav, at: Wed Feb 17 18:53:00 2021 +// Generated from: audio/chestopen.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 32186; +const char* path = "audio/chestopen.wav"; +static const char data[] = { 82,73,70,70,-78,125,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/climb1.wav.hpp b/src/assets/generated/files/climb1.wav.hpp similarity index 98% rename from src/audio/include/generated/climb1.wav.hpp rename to src/assets/generated/files/climb1.wav.hpp index 58d7b51f..00e002f6 100644 --- a/src/audio/include/generated/climb1.wav.hpp +++ b/src/assets/generated/files/climb1.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: climb1.wav, at: Sun Sep 20 16:12:23 2020 +// Generated from: audio/climb1.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 3060; +const char* path = "audio/climb1.wav"; +static const char data[] = { 82,73,70,70,-20,11,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/climb2.wav.hpp b/src/assets/generated/files/climb2.wav.hpp similarity index 98% rename from src/audio/include/generated/climb2.wav.hpp rename to src/assets/generated/files/climb2.wav.hpp index cae24298..9af2e201 100644 --- a/src/audio/include/generated/climb2.wav.hpp +++ b/src/assets/generated/files/climb2.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: climb2.wav, at: Sun Sep 20 16:12:19 2020 +// Generated from: audio/climb2.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 3952; +const char* path = "audio/climb2.wav"; +static const char data[] = { 82,73,70,70,104,15,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/coin.wav.hpp b/src/assets/generated/files/coin.wav.hpp similarity index 99% rename from src/audio/include/generated/coin.wav.hpp rename to src/assets/generated/files/coin.wav.hpp index 7d6393e3..0ebf9db6 100644 --- a/src/audio/include/generated/coin.wav.hpp +++ b/src/assets/generated/files/coin.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: coin.wav, at: Sun Sep 20 15:55:57 2020 +// Generated from: audio/coin.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 42370; +const char* path = "audio/coin.wav"; +static const char data[] = { 82,73,70,70,122,-91,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/texture-bank/include/generated/collectibles.json.hpp b/src/assets/generated/files/collectibles.json.hpp similarity index 99% rename from src/texture-bank/include/generated/collectibles.json.hpp rename to src/assets/generated/files/collectibles.json.hpp index 5e565be7..6fb62b24 100644 --- a/src/texture-bank/include/generated/collectibles.json.hpp +++ b/src/assets/generated/files/collectibles.json.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: collectibles.json, at: Sat May 15 16:00:53 2021 +// Generated from: tilesheets/collectibles.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 28861; +const char* path = "tilesheets/collectibles.json"; +static const char data[] = { 123,34,105,109,97,103,101,34,58,34,99,111,108,108,101,99,116, 105,98,108,101,115,46,112,110,103,34,44,34,105,109,97,103,101, diff --git a/src/texture-bank/include/generated/collectibles.png.hpp b/src/assets/generated/files/collectibles.png.hpp similarity index 99% rename from src/texture-bank/include/generated/collectibles.png.hpp rename to src/assets/generated/files/collectibles.png.hpp index a818a803..bfaac962 100644 --- a/src/texture-bank/include/generated/collectibles.png.hpp +++ b/src/assets/generated/files/collectibles.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: collectibles.png, at: Sat May 15 16:00:57 2021 +// Generated from: tilesheets/collectibles.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 19252; +const char* path = "tilesheets/collectibles.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,-128,8,6,0,0,0,125,87,-47,11,0, diff --git a/src/audio/include/generated/die.wav.hpp b/src/assets/generated/files/die.wav.hpp similarity index 99% rename from src/audio/include/generated/die.wav.hpp rename to src/assets/generated/files/die.wav.hpp index cf060e7d..a0c41c59 100644 --- a/src/audio/include/generated/die.wav.hpp +++ b/src/assets/generated/files/die.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: die.wav, at: Sun Aug 16 14:25:37 2020 +// Generated from: audio/die.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 11036; +const char* path = "audio/die.wav"; +static const char data[] = { 82,73,70,70,20,43,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/entering_door.wav.hpp b/src/assets/generated/files/entering_door.wav.hpp similarity index 99% rename from src/audio/include/generated/entering_door.wav.hpp rename to src/assets/generated/files/entering_door.wav.hpp index 853efac7..12ece688 100644 --- a/src/audio/include/generated/entering_door.wav.hpp +++ b/src/assets/generated/files/entering_door.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: entering_door.wav, at: Sun Aug 16 14:12:25 2020 +// Generated from: audio/entering_door.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 106246; +const char* path = "audio/entering_door.wav"; +static const char data[] = { 82,73,70,70,-2,-98,1,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/explosion.wav.hpp b/src/assets/generated/files/explosion.wav.hpp similarity index 99% rename from src/audio/include/generated/explosion.wav.hpp rename to src/assets/generated/files/explosion.wav.hpp index cad5a11a..b57c1bf0 100644 --- a/src/audio/include/generated/explosion.wav.hpp +++ b/src/assets/generated/files/explosion.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: explosion.wav, at: Wed Feb 17 18:53:07 2021 +// Generated from: audio/explosion.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 71104; +const char* path = "audio/explosion.wav"; +static const char data[] = { 82,73,70,70,-72,21,1,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/texture-bank/include/generated/font.json.hpp b/src/assets/generated/files/font.json.hpp similarity index 99% rename from src/texture-bank/include/generated/font.json.hpp rename to src/assets/generated/files/font.json.hpp index 934202cb..98304609 100644 --- a/src/texture-bank/include/generated/font.json.hpp +++ b/src/assets/generated/files/font.json.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: font.json, at: Sat Aug 29 15:58:42 2020 +// Generated from: tilesheets/font.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 27778; +const char* path = "tilesheets/font.json"; +static const char data[] = { 123,34,105,109,97,103,101,34,58,34,102,111,110,116,46,112,110, 103,34,44,34,105,109,97,103,101,95,119,105,100,116,104,34,58, diff --git a/src/texture-bank/include/generated/font.png.hpp b/src/assets/generated/files/font.png.hpp similarity index 99% rename from src/texture-bank/include/generated/font.png.hpp rename to src/assets/generated/files/font.png.hpp index ee881084..151cb5bb 100644 --- a/src/texture-bank/include/generated/font.png.hpp +++ b/src/assets/generated/files/font.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: font.png, at: Sat Aug 29 15:58:51 2020 +// Generated from: tilesheets/font.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 4505; +const char* path = "tilesheets/font.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,64,8,6,0,0,0,108,-65,-49,-65,0, diff --git a/src/audio/include/generated/gem.wav.hpp b/src/assets/generated/files/gem.wav.hpp similarity index 99% rename from src/audio/include/generated/gem.wav.hpp rename to src/assets/generated/files/gem.wav.hpp index ceb4f2c5..b609e1ff 100644 --- a/src/audio/include/generated/gem.wav.hpp +++ b/src/assets/generated/files/gem.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: gem.wav, at: Wed Feb 17 18:53:16 2021 +// Generated from: audio/gem.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 29050; +const char* path = "audio/gem.wav"; +static const char data[] = { 82,73,70,70,114,113,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/hit.wav.hpp b/src/assets/generated/files/hit.wav.hpp similarity index 99% rename from src/audio/include/generated/hit.wav.hpp rename to src/assets/generated/files/hit.wav.hpp index 1ac5b7b8..1f5879a2 100644 --- a/src/audio/include/generated/hit.wav.hpp +++ b/src/assets/generated/files/hit.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: hit.wav, at: Wed Feb 17 18:53:23 2021 +// Generated from: audio/hit.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 15326; +const char* path = "audio/hit.wav"; +static const char data[] = { 82,73,70,70,-42,59,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/texture-bank/include/generated/hud.json.hpp b/src/assets/generated/files/hud.json.hpp similarity index 99% rename from src/texture-bank/include/generated/hud.json.hpp rename to src/assets/generated/files/hud.json.hpp index 29f6a70e..2dbee4f5 100644 --- a/src/texture-bank/include/generated/hud.json.hpp +++ b/src/assets/generated/files/hud.json.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: hud.json, at: Tue Apr 13 17:41:25 2021 +// Generated from: tilesheets/hud.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 5163; +const char* path = "tilesheets/hud.json"; +static const char data[] = { 123,34,105,109,97,103,101,34,58,34,104,117,100,46,112,110,103, 34,44,34,105,109,97,103,101,95,119,105,100,116,104,34,58,53, diff --git a/src/texture-bank/include/generated/hud.png.hpp b/src/assets/generated/files/hud.png.hpp similarity index 99% rename from src/texture-bank/include/generated/hud.png.hpp rename to src/assets/generated/files/hud.png.hpp index 6b98155b..a9e304c1 100644 --- a/src/texture-bank/include/generated/hud.png.hpp +++ b/src/assets/generated/files/hud.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: hud.png, at: Tue Apr 13 17:41:20 2021 +// Generated from: tilesheets/hud.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 5201; +const char* path = "tilesheets/hud.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,16,8,6,0,0,0,96,49,-57,72,0, diff --git a/src/audio/include/generated/hurt.wav.hpp b/src/assets/generated/files/hurt.wav.hpp similarity index 99% rename from src/audio/include/generated/hurt.wav.hpp rename to src/assets/generated/files/hurt.wav.hpp index 470e2da8..709e1814 100644 --- a/src/audio/include/generated/hurt.wav.hpp +++ b/src/assets/generated/files/hurt.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: hurt.wav, at: Sun Aug 16 14:25:34 2020 +// Generated from: audio/hurt.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 11496; +const char* path = "audio/hurt.wav"; +static const char data[] = { 82,73,70,70,-32,44,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/jetpack.wav.hpp b/src/assets/generated/files/jetpack.wav.hpp similarity index 99% rename from src/audio/include/generated/jetpack.wav.hpp rename to src/assets/generated/files/jetpack.wav.hpp index 1a2c3fce..426b1b05 100644 --- a/src/audio/include/generated/jetpack.wav.hpp +++ b/src/assets/generated/files/jetpack.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: jetpack.wav, at: Wed Feb 17 18:53:26 2021 +// Generated from: audio/jetpack.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 23488; +const char* path = "audio/jetpack.wav"; +static const char data[] = { 82,73,70,70,-72,91,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/jump.wav.hpp b/src/assets/generated/files/jump.wav.hpp similarity index 99% rename from src/audio/include/generated/jump.wav.hpp rename to src/assets/generated/files/jump.wav.hpp index 6f872e4c..40d9650a 100644 --- a/src/audio/include/generated/jump.wav.hpp +++ b/src/assets/generated/files/jump.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: jump.wav, at: Sun Aug 16 14:02:39 2020 +// Generated from: audio/jump.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 18480; +const char* path = "audio/jump.wav"; +static const char data[] = { 82,73,70,70,40,72,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/kiss.wav.hpp b/src/assets/generated/files/kiss.wav.hpp similarity index 99% rename from src/audio/include/generated/kiss.wav.hpp rename to src/assets/generated/files/kiss.wav.hpp index d81fd31a..cd8e2975 100644 --- a/src/audio/include/generated/kiss.wav.hpp +++ b/src/assets/generated/files/kiss.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: kiss.wav, at: Sat May 1 18:44:52 2021 +// Generated from: audio/kiss.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 28486; +const char* path = "audio/kiss.wav"; +static const char data[] = { 82,73,70,70,62,111,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,2,0,68,-84,0,0,16,-79,2,0,4,0, diff --git a/src/texture-bank/include/generated/level_tiles.json.hpp b/src/assets/generated/files/level-tiles.json.hpp similarity index 99% rename from src/texture-bank/include/generated/level_tiles.json.hpp rename to src/assets/generated/files/level-tiles.json.hpp index e3cce2c1..c91ddf1f 100644 --- a/src/texture-bank/include/generated/level_tiles.json.hpp +++ b/src/assets/generated/files/level-tiles.json.hpp @@ -1,9 +1,10 @@ -#pragma once -// Generated from: level_tiles.json, at: Sun May 24 13:39:55 2020 +// Generated from: tilesheets/level-tiles.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 11024; +const char* path = "tilesheets/level-tiles.json"; +static const char data[] = { - 123,34,105,109,97,103,101,34,58,34,108,101,118,101,108,95,116, + 123,34,105,109,97,103,101,34,58,34,108,101,118,101,108,45,116, 105,108,101,115,46,112,110,103,34,44,34,105,109,97,103,101,95, 119,105,100,116,104,34,58,53,49,50,44,34,105,109,97,103,101, 95,104,101,105,103,104,116,34,58,51,50,44,34,115,112,114,105, diff --git a/src/texture-bank/include/generated/level_tiles.png.hpp b/src/assets/generated/files/level-tiles.png.hpp similarity index 99% rename from src/texture-bank/include/generated/level_tiles.png.hpp rename to src/assets/generated/files/level-tiles.png.hpp index db1c436d..fa8722a6 100644 --- a/src/texture-bank/include/generated/level_tiles.png.hpp +++ b/src/assets/generated/files/level-tiles.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: level_tiles.png, at: Sun May 24 13:39:59 2020 +// Generated from: tilesheets/level-tiles.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 6722; +const char* path = "tilesheets/level-tiles.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,32,8,6,0,0,0,100,75,-64,-27,0, diff --git a/src/texture-bank/include/generated/main-dude-spritesheet.json.hpp b/src/assets/generated/files/main-dude.json.hpp similarity index 51% rename from src/texture-bank/include/generated/main-dude-spritesheet.json.hpp rename to src/assets/generated/files/main-dude.json.hpp index e62e351e..7c91754b 100644 --- a/src/texture-bank/include/generated/main-dude-spritesheet.json.hpp +++ b/src/assets/generated/files/main-dude.json.hpp @@ -1,1171 +1,1171 @@ -#pragma once -// Generated from: main-dude-spritesheet.json, at: Mon Aug 3 17:41:48 2020 +// Generated from: tilesheets/main-dude.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 19779; +const char* path = "tilesheets/main-dude.json"; +static const char data[] = { 123,34,105,109,97,103,101,34,58,34,109,97,105,110,45,100,117, - 100,101,45,115,112,114,105,116,101,115,104,101,101,116,46,112,110, - 103,34,44,34,105,109,97,103,101,95,119,105,100,116,104,34,58, - 53,49,50,44,34,105,109,97,103,101,95,104,101,105,103,104,116, - 34,58,54,52,44,34,115,112,114,105,116,101,115,34,58,91,123, - 34,110,97,109,101,34,58,34,48,46,112,110,103,34,44,34,115, - 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, - 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, - 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,51,57,50,44,48,44,52,48,56,44,49,54,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, - 44,34,117,118,115,34,58,91,91,51,57,50,44,48,93,44,91, - 52,48,56,44,48,93,44,91,52,48,56,44,49,54,93,44,91, - 51,57,50,44,49,54,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,49,48,46,112,110,103,34,44,34,115,105,122,101,34, - 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, - 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,52,48, - 56,44,48,44,52,50,52,44,49,54,93,44,34,109,101,115,104, - 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, - 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, - 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, - 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, - 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, - 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,52,48,56,44,48,93,44,91,52,50,52,44, - 48,93,44,91,52,50,52,44,49,54,93,44,91,52,48,56,44, - 49,54,93,93,125,125,44,123,34,110,97,109,101,34,58,34,49, - 49,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, - 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, - 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, - 101,101,116,95,114,101,99,116,34,58,91,52,50,52,44,48,44, - 52,52,48,44,49,54,93,44,34,109,101,115,104,34,58,123,34, - 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, - 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, - 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, - 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, - 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54, - 93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91, - 91,52,50,52,44,48,93,44,91,52,52,48,44,48,93,44,91, - 52,52,48,44,49,54,93,44,91,52,50,52,44,49,54,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,49,50,46,112,110, + 100,101,46,112,110,103,34,44,34,105,109,97,103,101,95,119,105, + 100,116,104,34,58,53,49,50,44,34,105,109,97,103,101,95,104, + 101,105,103,104,116,34,58,54,52,44,34,115,112,114,105,116,101, + 115,34,58,91,123,34,110,97,109,101,34,58,34,48,46,112,110, 103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93, 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, 44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95, - 114,101,99,116,34,58,91,52,52,48,44,48,44,52,53,54,44, + 114,101,99,116,34,58,91,51,57,50,44,48,44,52,48,56,44, 49,54,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, 91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48, - 44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,52,48, - 44,48,93,44,91,52,53,54,44,48,93,44,91,52,53,54,44, - 49,54,93,44,91,52,52,48,44,49,54,93,93,125,125,44,123, - 34,110,97,109,101,34,58,34,49,51,46,112,110,103,34,44,34, + 44,49,54,93,93,44,34,117,118,115,34,58,91,91,51,57,50, + 44,48,93,44,91,52,48,56,44,48,93,44,91,52,48,56,44, + 49,54,93,44,91,51,57,50,44,49,54,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,49,48,46,112,110,103,34,44,34, 115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112, 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, - 34,58,91,52,53,54,44,48,44,52,55,50,44,49,54,93,44, + 34,58,91,52,48,56,44,48,44,52,50,52,44,49,54,93,44, 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, - 93,44,34,117,118,115,34,58,91,91,52,53,54,44,48,93,44, - 91,52,55,50,44,48,93,44,91,52,55,50,44,49,54,93,44, - 91,52,53,54,44,49,54,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,49,52,46,112,110,103,34,44,34,115,105,122,101, - 34,58,91,50,48,44,49,54,93,44,34,115,112,114,105,116,101, - 95,114,101,99,116,34,58,91,48,44,48,44,50,48,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49, - 57,50,44,48,44,50,49,50,44,49,54,93,44,34,109,101,115, + 93,44,34,117,118,115,34,58,91,91,52,48,56,44,48,93,44, + 91,52,50,52,44,48,93,44,91,52,50,52,44,49,54,93,44, + 91,52,48,56,44,49,54,93,93,125,125,44,123,34,110,97,109, + 101,34,58,34,49,49,46,112,110,103,34,44,34,115,105,122,101, + 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, + 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, + 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,52, + 50,52,44,48,44,52,52,48,44,49,54,93,44,34,109,101,115, 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, - 34,58,91,91,48,44,48,93,44,91,50,48,44,48,93,44,91, - 50,48,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, - 118,115,34,58,91,91,49,57,50,44,48,93,44,91,50,49,50, - 44,48,93,44,91,50,49,50,44,49,54,93,44,91,49,57,50, + 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, + 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, + 118,115,34,58,91,91,52,50,52,44,48,93,44,91,52,52,48, + 44,48,93,44,91,52,52,48,44,49,54,93,44,91,52,50,52, 44,49,54,93,93,125,125,44,123,34,110,97,109,101,34,58,34, - 49,53,46,112,110,103,34,44,34,115,105,122,101,34,58,91,50, - 48,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, - 116,34,58,91,48,44,48,44,50,48,44,49,54,93,44,34,115, - 104,101,101,116,95,114,101,99,116,34,58,91,50,49,50,44,48, - 44,50,51,50,44,49,54,93,44,34,109,101,115,104,34,58,123, + 49,50,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, + 54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, + 116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115, + 104,101,101,116,95,114,101,99,116,34,58,91,52,52,48,44,48, + 44,52,53,54,44,49,54,93,44,34,109,101,115,104,34,58,123, 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, - 48,44,48,93,44,91,50,48,44,48,93,44,91,50,48,44,49, + 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,50,49,50,44,48,93,44,91,50,51,50,44,48,93,44, - 91,50,51,50,44,49,54,93,44,91,50,49,50,44,49,54,93, - 93,125,125,44,123,34,110,97,109,101,34,58,34,49,54,46,112, - 110,103,34,44,34,115,105,122,101,34,58,91,50,48,44,49,54, - 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, - 48,44,48,44,50,48,44,49,54,93,44,34,115,104,101,101,116, - 95,114,101,99,116,34,58,91,50,51,50,44,48,44,50,53,50, - 44,49,54,93,44,34,109,101,115,104,34,58,123,34,110,117,109, - 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, - 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, - 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, - 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, - 44,91,50,48,44,48,93,44,91,50,48,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,50,51, - 50,44,48,93,44,91,50,53,50,44,48,93,44,91,50,53,50, - 44,49,54,93,44,91,50,51,50,44,49,54,93,93,125,125,44, - 123,34,110,97,109,101,34,58,34,49,55,46,112,110,103,34,44, - 34,115,105,122,101,34,58,91,50,48,44,49,54,93,44,34,115, - 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, - 50,48,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,50,53,50,44,48,44,50,55,50,44,49,54,93, - 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, - 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, - 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, - 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, - 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,50,48, - 44,48,93,44,91,50,48,44,49,54,93,44,91,48,44,49,54, - 93,93,44,34,117,118,115,34,58,91,91,50,53,50,44,48,93, - 44,91,50,55,50,44,48,93,44,91,50,55,50,44,49,54,93, - 44,91,50,53,50,44,49,54,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,49,56,46,112,110,103,34,44,34,115,105,122, - 101,34,58,91,50,48,44,49,54,93,44,34,115,112,114,105,116, - 101,95,114,101,99,116,34,58,91,48,44,48,44,50,48,44,49, - 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 50,55,50,44,48,44,50,57,50,44,49,54,93,44,34,109,101, - 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, - 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, - 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, - 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, - 115,34,58,91,91,48,44,48,93,44,91,50,48,44,48,93,44, - 91,50,48,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,50,55,50,44,48,93,44,91,50,57, - 50,44,48,93,44,91,50,57,50,44,49,54,93,44,91,50,55, - 50,44,49,54,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,49,57,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 50,48,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, - 99,116,34,58,91,48,44,48,44,50,48,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,50,57,50,44, - 48,44,51,49,50,44,49,54,93,44,34,109,101,115,104,34,58, - 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, - 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, - 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, - 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, - 91,48,44,48,93,44,91,50,48,44,48,93,44,91,50,48,44, - 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,50,57,50,44,48,93,44,91,51,49,50,44,48,93, - 44,91,51,49,50,44,49,54,93,44,91,50,57,50,44,49,54, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,49,46,112, + 91,91,52,52,48,44,48,93,44,91,52,53,54,44,48,93,44, + 91,52,53,54,44,49,54,93,44,91,52,52,48,44,49,54,93, + 93,125,125,44,123,34,110,97,109,101,34,58,34,49,51,46,112, 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54, 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, 48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116, - 95,114,101,99,116,34,58,91,52,55,50,44,48,44,52,56,56, + 95,114,101,99,116,34,58,91,52,53,54,44,48,44,52,55,50, 44,49,54,93,44,34,109,101,115,104,34,58,123,34,110,117,109, 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,55, - 50,44,48,93,44,91,52,56,56,44,48,93,44,91,52,56,56, - 44,49,54,93,44,91,52,55,50,44,49,54,93,93,125,125,44, - 123,34,110,97,109,101,34,58,34,50,48,46,112,110,103,34,44, + 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,53, + 54,44,48,93,44,91,52,55,50,44,48,93,44,91,52,55,50, + 44,49,54,93,44,91,52,53,54,44,49,54,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,49,52,46,112,110,103,34,44, 34,115,105,122,101,34,58,91,50,48,44,49,54,93,44,34,115, 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, 50,48,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,51,49,50,44,48,44,51,51,50,44,49,54,93, + 116,34,58,91,49,57,50,44,48,44,50,49,50,44,49,54,93, 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,50,48, 44,48,93,44,91,50,48,44,49,54,93,44,91,48,44,49,54, - 93,93,44,34,117,118,115,34,58,91,91,51,49,50,44,48,93, - 44,91,51,51,50,44,48,93,44,91,51,51,50,44,49,54,93, - 44,91,51,49,50,44,49,54,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,50,49,46,112,110,103,34,44,34,115,105,122, + 93,93,44,34,117,118,115,34,58,91,91,49,57,50,44,48,93, + 44,91,50,49,50,44,48,93,44,91,50,49,50,44,49,54,93, + 44,91,49,57,50,44,49,54,93,93,125,125,44,123,34,110,97, + 109,101,34,58,34,49,53,46,112,110,103,34,44,34,115,105,122, 101,34,58,91,50,48,44,49,54,93,44,34,115,112,114,105,116, 101,95,114,101,99,116,34,58,91,48,44,48,44,50,48,44,49, 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 51,51,50,44,48,44,51,53,50,44,49,54,93,44,34,109,101, + 50,49,50,44,48,44,50,51,50,44,49,54,93,44,34,109,101, 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, 115,34,58,91,91,48,44,48,93,44,91,50,48,44,48,93,44, 91,50,48,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,51,51,50,44,48,93,44,91,51,53, - 50,44,48,93,44,91,51,53,50,44,49,54,93,44,91,51,51, + 117,118,115,34,58,91,91,50,49,50,44,48,93,44,91,50,51, + 50,44,48,93,44,91,50,51,50,44,49,54,93,44,91,50,49, 50,44,49,54,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,50,50,46,112,110,103,34,44,34,115,105,122,101,34,58,91, + 34,49,54,46,112,110,103,34,44,34,115,105,122,101,34,58,91, 50,48,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, 99,116,34,58,91,48,44,48,44,50,48,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,51,53,50,44, - 48,44,51,55,50,44,49,54,93,44,34,109,101,115,104,34,58, + 115,104,101,101,116,95,114,101,99,116,34,58,91,50,51,50,44, + 48,44,50,53,50,44,49,54,93,44,34,109,101,115,104,34,58, 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, 91,48,44,48,93,44,91,50,48,44,48,93,44,91,50,48,44, 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,51,53,50,44,48,93,44,91,51,55,50,44,48,93, - 44,91,51,55,50,44,49,54,93,44,91,51,53,50,44,49,54, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,50,51,46, + 58,91,91,50,51,50,44,48,93,44,91,50,53,50,44,48,93, + 44,91,50,53,50,44,49,54,93,44,91,50,51,50,44,49,54, + 93,93,125,125,44,123,34,110,97,109,101,34,58,34,49,55,46, 112,110,103,34,44,34,115,105,122,101,34,58,91,50,48,44,49, 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, 91,48,44,48,44,50,48,44,49,54,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,51,55,50,44,48,44,51,57, + 116,95,114,101,99,116,34,58,91,50,53,50,44,48,44,50,55, 50,44,49,54,93,44,34,109,101,115,104,34,58,123,34,110,117, 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, 93,44,91,50,48,44,48,93,44,91,50,48,44,49,54,93,44, - 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51, - 55,50,44,48,93,44,91,51,57,50,44,48,93,44,91,51,57, - 50,44,49,54,93,44,91,51,55,50,44,49,54,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,50,52,46,112,110,103,34, - 44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34, + 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,50, + 53,50,44,48,93,44,91,50,55,50,44,48,93,44,91,50,55, + 50,44,49,54,93,44,91,50,53,50,44,49,54,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,49,56,46,112,110,103,34, + 44,34,115,105,122,101,34,58,91,50,48,44,49,54,93,44,34, 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, - 44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101, - 99,116,34,58,91,52,56,56,44,48,44,53,48,52,44,49,54, + 44,50,48,44,49,54,93,44,34,115,104,101,101,116,95,114,101, + 99,116,34,58,91,50,55,50,44,48,44,50,57,50,44,49,54, 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, - 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, - 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, - 54,93,93,44,34,117,118,115,34,58,91,91,52,56,56,44,48, - 93,44,91,53,48,52,44,48,93,44,91,53,48,52,44,49,54, - 93,44,91,52,56,56,44,49,54,93,93,125,125,44,123,34,110, - 97,109,101,34,58,34,50,53,46,112,110,103,34,44,34,115,105, - 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, - 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,50, + 48,44,48,93,44,91,50,48,44,49,54,93,44,91,48,44,49, + 54,93,93,44,34,117,118,115,34,58,91,91,50,55,50,44,48, + 93,44,91,50,57,50,44,48,93,44,91,50,57,50,44,49,54, + 93,44,91,50,55,50,44,49,54,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,49,57,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,50,48,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,50,48,44, 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, - 91,49,57,50,44,49,54,44,50,48,56,44,51,50,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, - 44,34,117,118,115,34,58,91,91,49,57,50,44,49,54,93,44, - 91,50,48,56,44,49,54,93,44,91,50,48,56,44,51,50,93, - 44,91,49,57,50,44,51,50,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,50,54,46,112,110,103,34,44,34,115,105,122, - 101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116, - 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49, - 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 50,48,56,44,49,54,44,50,50,52,44,51,50,93,44,34,109, + 91,50,57,50,44,48,44,51,49,50,44,49,54,93,44,34,109, 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, - 110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93, - 44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44, - 34,117,118,115,34,58,91,91,50,48,56,44,49,54,93,44,91, - 50,50,52,44,49,54,93,44,91,50,50,52,44,51,50,93,44, - 91,50,48,56,44,51,50,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,50,55,46,112,110,103,34,44,34,115,105,122,101, - 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, - 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,50, - 50,52,44,49,54,44,50,52,48,44,51,50,93,44,34,109,101, - 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, - 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, - 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, - 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, - 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, - 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,50,50,52,44,49,54,93,44,91,50, - 52,48,44,49,54,93,44,91,50,52,48,44,51,50,93,44,91, - 50,50,52,44,51,50,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,50,56,46,112,110,103,34,44,34,115,105,122,101,34, - 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, - 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,50,52, - 48,44,49,54,44,50,53,54,44,51,50,93,44,34,109,101,115, - 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, - 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, - 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, - 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, - 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, - 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, - 118,115,34,58,91,91,50,52,48,44,49,54,93,44,91,50,53, - 54,44,49,54,93,44,91,50,53,54,44,51,50,93,44,91,50, - 52,48,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34, - 58,34,50,57,46,112,110,103,34,44,34,115,105,122,101,34,58, - 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, - 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, - 34,115,104,101,101,116,95,114,101,99,116,34,58,91,50,53,54, - 44,49,54,44,50,55,50,44,51,50,93,44,34,109,101,115,104, - 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, - 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, - 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, - 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, - 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, - 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,50,53,54,44,49,54,93,44,91,50,55,50, - 44,49,54,93,44,91,50,55,50,44,51,50,93,44,91,50,53, - 54,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,50,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, - 54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, - 116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115, - 104,101,101,116,95,114,101,99,116,34,58,91,50,55,50,44,49, - 54,44,50,56,56,44,51,50,93,44,34,109,101,115,104,34,58, + 110,115,34,58,91,91,48,44,48,93,44,91,50,48,44,48,93, + 44,91,50,48,44,49,54,93,44,91,48,44,49,54,93,93,44, + 34,117,118,115,34,58,91,91,50,57,50,44,48,93,44,91,51, + 49,50,44,48,93,44,91,51,49,50,44,49,54,93,44,91,50, + 57,50,44,49,54,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,49,46,112,110,103,34,44,34,115,105,122,101,34,58,91, + 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, + 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, + 115,104,101,101,116,95,114,101,99,116,34,58,91,52,55,50,44, + 48,44,52,56,56,44,49,54,93,44,34,109,101,115,104,34,58, 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,50,55,50,44,49,54,93,44,91,50,56,56,44,49, - 54,93,44,91,50,56,56,44,51,50,93,44,91,50,55,50,44, - 51,50,93,93,125,125,44,123,34,110,97,109,101,34,58,34,51, - 48,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, - 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, - 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, - 101,101,116,95,114,101,99,116,34,58,91,50,56,56,44,49,54, - 44,51,48,52,44,51,50,93,44,34,109,101,115,104,34,58,123, - 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, - 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, - 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, - 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, - 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, - 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,50,56,56,44,49,54,93,44,91,51,48,52,44,49,54, - 93,44,91,51,48,52,44,51,50,93,44,91,50,56,56,44,51, - 50,93,93,125,125,44,123,34,110,97,109,101,34,58,34,51,49, + 58,91,91,52,55,50,44,48,93,44,91,52,56,56,44,48,93, + 44,91,52,56,56,44,49,54,93,44,91,52,55,50,44,49,54, + 93,93,125,125,44,123,34,110,97,109,101,34,58,34,50,48,46, + 112,110,103,34,44,34,115,105,122,101,34,58,91,50,48,44,49, + 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, + 91,48,44,48,44,50,48,44,49,54,93,44,34,115,104,101,101, + 116,95,114,101,99,116,34,58,91,51,49,50,44,48,44,51,51, + 50,44,49,54,93,44,34,109,101,115,104,34,58,123,34,110,117, + 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, + 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, + 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, + 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, + 93,44,91,50,48,44,48,93,44,91,50,48,44,49,54,93,44, + 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51, + 49,50,44,48,93,44,91,51,51,50,44,48,93,44,91,51,51, + 50,44,49,54,93,44,91,51,49,50,44,49,54,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,50,49,46,112,110,103,34, + 44,34,115,105,122,101,34,58,91,50,48,44,49,54,93,44,34, + 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, + 44,50,48,44,49,54,93,44,34,115,104,101,101,116,95,114,101, + 99,116,34,58,91,51,51,50,44,48,44,51,53,50,44,49,54, + 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, + 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, + 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, + 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, + 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,50, + 48,44,48,93,44,91,50,48,44,49,54,93,44,91,48,44,49, + 54,93,93,44,34,117,118,115,34,58,91,91,51,51,50,44,48, + 93,44,91,51,53,50,44,48,93,44,91,51,53,50,44,49,54, + 93,44,91,51,51,50,44,49,54,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,50,50,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,50,48,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,50,48,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,51,53,50,44,48,44,51,55,50,44,49,54,93,44,34,109, + 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, + 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, + 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, + 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, + 110,115,34,58,91,91,48,44,48,93,44,91,50,48,44,48,93, + 44,91,50,48,44,49,54,93,44,91,48,44,49,54,93,93,44, + 34,117,118,115,34,58,91,91,51,53,50,44,48,93,44,91,51, + 55,50,44,48,93,44,91,51,55,50,44,49,54,93,44,91,51, + 53,50,44,49,54,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,50,51,46,112,110,103,34,44,34,115,105,122,101,34,58, + 91,50,48,44,49,54,93,44,34,115,112,114,105,116,101,95,114, + 101,99,116,34,58,91,48,44,48,44,50,48,44,49,54,93,44, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,51,55,50, + 44,48,44,51,57,50,44,49,54,93,44,34,109,101,115,104,34, + 58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110, + 117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105, + 110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44, + 50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58, + 91,91,48,44,48,93,44,91,50,48,44,48,93,44,91,50,48, + 44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115, + 34,58,91,91,51,55,50,44,48,93,44,91,51,57,50,44,48, + 93,44,91,51,57,50,44,49,54,93,44,91,51,55,50,44,49, + 54,93,93,125,125,44,123,34,110,97,109,101,34,58,34,50,52, 46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44, 49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34, 58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101, - 101,116,95,114,101,99,116,34,58,91,51,48,52,44,49,54,44, - 51,50,48,44,51,50,93,44,34,109,101,115,104,34,58,123,34, - 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, - 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, - 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, - 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, - 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54, - 93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91, - 91,51,48,52,44,49,54,93,44,91,51,50,48,44,49,54,93, - 44,91,51,50,48,44,51,50,93,44,91,51,48,52,44,51,50, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,51,50,46, - 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49, - 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, - 91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,51,50,48,44,49,54,44,51, - 51,54,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110, + 101,116,95,114,101,99,116,34,58,91,52,56,56,44,48,44,53, + 48,52,44,49,54,93,44,34,109,101,115,104,34,58,123,34,110, 117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118, 101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99, 101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93, 44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44, 48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93, 44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91, - 51,50,48,44,49,54,93,44,91,51,51,54,44,49,54,93,44, - 91,51,51,54,44,51,50,93,44,91,51,50,48,44,51,50,93, - 93,125,125,44,123,34,110,97,109,101,34,58,34,51,51,46,112, - 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54, - 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, - 48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116, - 95,114,101,99,116,34,58,91,51,51,54,44,49,54,44,51,53, - 50,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117, - 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, - 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, - 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, - 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, - 93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44, - 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51, - 51,54,44,49,54,93,44,91,51,53,50,44,49,54,93,44,91, - 51,53,50,44,51,50,93,44,91,51,51,54,44,51,50,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,51,52,46,112,110, - 103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93, - 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, - 44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95, - 114,101,99,116,34,58,91,51,53,50,44,49,54,44,51,54,56, - 44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117,109, - 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, - 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, - 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, - 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, - 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51,53, - 50,44,49,54,93,44,91,51,54,56,44,49,54,93,44,91,51, - 54,56,44,51,50,93,44,91,51,53,50,44,51,50,93,93,125, - 125,44,123,34,110,97,109,101,34,58,34,51,53,46,112,110,103, + 52,56,56,44,48,93,44,91,53,48,52,44,48,93,44,91,53, + 48,52,44,49,54,93,44,91,52,56,56,44,49,54,93,93,125, + 125,44,123,34,110,97,109,101,34,58,34,50,53,46,112,110,103, 34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44, 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, 48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114, - 101,99,116,34,58,91,51,54,56,44,49,54,44,51,56,52,44, + 101,99,116,34,58,91,49,57,50,44,49,54,44,50,48,56,44, 51,50,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, 91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48, - 44,49,54,93,93,44,34,117,118,115,34,58,91,91,51,54,56, - 44,49,54,93,44,91,51,56,52,44,49,54,93,44,91,51,56, - 52,44,51,50,93,44,91,51,54,56,44,51,50,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,51,54,46,112,110,103,34, + 44,49,54,93,93,44,34,117,118,115,34,58,91,91,49,57,50, + 44,49,54,93,44,91,50,48,56,44,49,54,93,44,91,50,48, + 56,44,51,50,93,44,91,49,57,50,44,51,50,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,50,54,46,112,110,103,34, 44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34, 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, 44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101, - 99,116,34,58,91,51,56,52,44,49,54,44,52,48,48,44,51, + 99,116,34,58,91,50,48,56,44,49,54,44,50,50,52,44,51, 50,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116, 114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105, 99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58, 91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111, 115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91, 49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44, - 49,54,93,93,44,34,117,118,115,34,58,91,91,51,56,52,44, - 49,54,93,44,91,52,48,48,44,49,54,93,44,91,52,48,48, - 44,51,50,93,44,91,51,56,52,44,51,50,93,93,125,125,44, - 123,34,110,97,109,101,34,58,34,51,55,46,112,110,103,34,44, + 49,54,93,93,44,34,117,118,115,34,58,91,91,50,48,56,44, + 49,54,93,44,91,50,50,52,44,49,54,93,44,91,50,50,52, + 44,51,50,93,44,91,50,48,56,44,51,50,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,50,55,46,112,110,103,34,44, 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,52,48,48,44,49,54,44,52,49,54,44,51,50, + 116,34,58,91,50,50,52,44,49,54,44,50,52,48,44,51,50, 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, - 54,93,93,44,34,117,118,115,34,58,91,91,52,48,48,44,49, - 54,93,44,91,52,49,54,44,49,54,93,44,91,52,49,54,44, - 51,50,93,44,91,52,48,48,44,51,50,93,93,125,125,44,123, - 34,110,97,109,101,34,58,34,51,56,46,112,110,103,34,44,34, + 54,93,93,44,34,117,118,115,34,58,91,91,50,50,52,44,49, + 54,93,44,91,50,52,48,44,49,54,93,44,91,50,52,48,44, + 51,50,93,44,91,50,50,52,44,51,50,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,50,56,46,112,110,103,34,44,34, 115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112, 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, - 34,58,91,52,49,54,44,49,54,44,52,51,50,44,51,50,93, + 34,58,91,50,52,48,44,49,54,44,50,53,54,44,51,50,93, 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54, 44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54, - 93,93,44,34,117,118,115,34,58,91,91,52,49,54,44,49,54, - 93,44,91,52,51,50,44,49,54,93,44,91,52,51,50,44,51, - 50,93,44,91,52,49,54,44,51,50,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,51,57,46,112,110,103,34,44,34,115, + 93,93,44,34,117,118,115,34,58,91,91,50,52,48,44,49,54, + 93,44,91,50,53,54,44,49,54,93,44,91,50,53,54,44,51, + 50,93,44,91,50,52,48,44,51,50,93,93,125,125,44,123,34, + 110,97,109,101,34,58,34,50,57,46,112,110,103,34,44,34,115, 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,52,51,50,44,49,54,44,52,52,56,44,51,50,93,44, + 58,91,50,53,54,44,49,54,44,50,55,50,44,51,50,93,44, 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, - 93,44,34,117,118,115,34,58,91,91,52,51,50,44,49,54,93, - 44,91,52,52,56,44,49,54,93,44,91,52,52,56,44,51,50, - 93,44,91,52,51,50,44,51,50,93,93,125,125,44,123,34,110, - 97,109,101,34,58,34,51,46,112,110,103,34,44,34,115,105,122, + 93,44,34,117,118,115,34,58,91,91,50,53,54,44,49,54,93, + 44,91,50,55,50,44,49,54,93,44,91,50,55,50,44,51,50, + 93,44,91,50,53,54,44,51,50,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,50,46,112,110,103,34,44,34,115,105,122, 101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116, 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49, 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 52,52,56,44,49,54,44,52,54,52,44,51,50,93,44,34,109, + 50,55,50,44,49,54,44,50,56,56,44,51,50,93,44,34,109, 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, 110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93, 44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44, - 34,117,118,115,34,58,91,91,52,52,56,44,49,54,93,44,91, - 52,54,52,44,49,54,93,44,91,52,54,52,44,51,50,93,44, - 91,52,52,56,44,51,50,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,52,48,46,112,110,103,34,44,34,115,105,122,101, + 34,117,118,115,34,58,91,91,50,55,50,44,49,54,93,44,91, + 50,56,56,44,49,54,93,44,91,50,56,56,44,51,50,93,44, + 91,50,55,50,44,51,50,93,93,125,125,44,123,34,110,97,109, + 101,34,58,34,51,48,46,112,110,103,34,44,34,115,105,122,101, 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,52, - 54,52,44,49,54,44,52,56,48,44,51,50,93,44,34,109,101, + 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,50, + 56,56,44,49,54,44,51,48,52,44,51,50,93,44,34,109,101, 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,52,54,52,44,49,54,93,44,91,52, - 56,48,44,49,54,93,44,91,52,56,48,44,51,50,93,44,91, - 52,54,52,44,51,50,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,52,49,46,112,110,103,34,44,34,115,105,122,101,34, + 117,118,115,34,58,91,91,50,56,56,44,49,54,93,44,91,51, + 48,52,44,49,54,93,44,91,51,48,52,44,51,50,93,44,91, + 50,56,56,44,51,50,93,93,125,125,44,123,34,110,97,109,101, + 34,58,34,51,49,46,112,110,103,34,44,34,115,105,122,101,34, 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,52,56, - 48,44,49,54,44,52,57,54,44,51,50,93,44,34,109,101,115, + 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,51,48, + 52,44,49,54,44,51,50,48,44,51,50,93,44,34,109,101,115, 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, - 118,115,34,58,91,91,52,56,48,44,49,54,93,44,91,52,57, - 54,44,49,54,93,44,91,52,57,54,44,51,50,93,44,91,52, - 56,48,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34, - 58,34,52,50,46,112,110,103,34,44,34,115,105,122,101,34,58, - 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, - 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, - 34,115,104,101,101,116,95,114,101,99,116,34,58,91,52,57,54, - 44,49,54,44,53,49,50,44,51,50,93,44,34,109,101,115,104, - 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, - 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, - 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, - 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, - 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, - 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,52,57,54,44,49,54,93,44,91,53,49,50, - 44,49,54,93,44,91,53,49,50,44,51,50,93,44,91,52,57, - 54,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,52,51,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, - 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,48,44,50,52, - 44,49,54,44,52,48,93,44,34,109,101,115,104,34,58,123,34, - 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, - 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, - 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, - 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, - 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54, - 93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91, - 91,48,44,50,52,93,44,91,49,54,44,50,52,93,44,91,49, - 54,44,52,48,93,44,91,48,44,52,48,93,93,125,125,44,123, - 34,110,97,109,101,34,58,34,52,52,46,112,110,103,34,44,34, - 115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112, - 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, - 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, - 34,58,91,49,54,44,50,52,44,51,50,44,52,48,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, - 44,34,117,118,115,34,58,91,91,49,54,44,50,52,93,44,91, - 51,50,44,50,52,93,44,91,51,50,44,52,48,93,44,91,49, - 54,44,52,48,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,52,53,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, - 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,51,50,44,50, - 52,44,52,56,44,52,48,93,44,34,109,101,115,104,34,58,123, - 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, - 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, - 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, - 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, - 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, - 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,51,50,44,50,52,93,44,91,52,56,44,50,52,93,44, - 91,52,56,44,52,48,93,44,91,51,50,44,52,48,93,93,125, - 125,44,123,34,110,97,109,101,34,58,34,52,54,46,112,110,103, - 34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44, - 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, - 48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114, - 101,99,116,34,58,91,52,56,44,50,52,44,54,52,44,52,48, - 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, - 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, - 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, - 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, - 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, - 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, - 54,93,93,44,34,117,118,115,34,58,91,91,52,56,44,50,52, - 93,44,91,54,52,44,50,52,93,44,91,54,52,44,52,48,93, - 44,91,52,56,44,52,48,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,52,55,46,112,110,103,34,44,34,115,105,122,101, - 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, - 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,54, - 52,44,50,52,44,56,48,44,52,48,93,44,34,109,101,115,104, - 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, - 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, - 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, - 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, - 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, - 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,54,52,44,50,52,93,44,91,56,48,44,50, - 52,93,44,91,56,48,44,52,48,93,44,91,54,52,44,52,48, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,52,56,46, - 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49, - 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, - 91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,56,48,44,50,52,44,57,54, - 44,52,48,93,44,34,109,101,115,104,34,58,123,34,110,117,109, - 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, - 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, - 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, - 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, - 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,56,48, - 44,50,52,93,44,91,57,54,44,50,52,93,44,91,57,54,44, - 52,48,93,44,91,56,48,44,52,48,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,52,57,46,112,110,103,34,44,34,115, - 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, - 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, - 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,57,54,44,50,52,44,49,49,50,44,52,48,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, - 44,34,117,118,115,34,58,91,91,57,54,44,50,52,93,44,91, - 49,49,50,44,50,52,93,44,91,49,49,50,44,52,48,93,44, - 91,57,54,44,52,48,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,52,46,112,110,103,34,44,34,115,105,122,101,34,58, + 118,115,34,58,91,91,51,48,52,44,49,54,93,44,91,51,50, + 48,44,49,54,93,44,91,51,50,48,44,51,50,93,44,91,51, + 48,52,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,51,50,46,112,110,103,34,44,34,115,105,122,101,34,58, 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, - 34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,49,50, - 44,50,52,44,49,50,56,44,52,48,93,44,34,109,101,115,104, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,51,50,48, + 44,49,54,44,51,51,54,44,51,50,93,44,34,109,101,115,104, 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,49,49,50,44,50,52,93,44,91,49,50,56, - 44,50,52,93,44,91,49,50,56,44,52,48,93,44,91,49,49, - 50,44,52,48,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,53,48,46,112,110,103,34,44,34,115,105,122,101,34,58,91, + 115,34,58,91,91,51,50,48,44,49,54,93,44,91,51,51,54, + 44,49,54,93,44,91,51,51,54,44,51,50,93,44,91,51,50, + 48,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34,58, + 34,51,51,46,112,110,103,34,44,34,115,105,122,101,34,58,91, 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,49,50,56,44, - 50,52,44,49,52,52,44,52,48,93,44,34,109,101,115,104,34, + 115,104,101,101,116,95,114,101,99,116,34,58,91,51,51,54,44, + 49,54,44,51,53,50,44,51,50,93,44,34,109,101,115,104,34, 58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110, 117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105, 110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44, 50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58, 91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54, 44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115, - 34,58,91,91,49,50,56,44,50,52,93,44,91,49,52,52,44, - 50,52,93,44,91,49,52,52,44,52,48,93,44,91,49,50,56, - 44,52,48,93,93,125,125,44,123,34,110,97,109,101,34,58,34, - 53,49,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, + 34,58,91,91,51,51,54,44,49,54,93,44,91,51,53,50,44, + 49,54,93,44,91,51,53,50,44,51,50,93,44,91,51,51,54, + 44,51,50,93,93,125,125,44,123,34,110,97,109,101,34,58,34, + 51,52,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, 54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, 116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115, - 104,101,101,116,95,114,101,99,116,34,58,91,49,52,52,44,50, - 52,44,49,54,48,44,52,48,93,44,34,109,101,115,104,34,58, + 104,101,101,116,95,114,101,99,116,34,58,91,51,53,50,44,49, + 54,44,51,54,56,44,51,50,93,44,34,109,101,115,104,34,58, 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,49,52,52,44,50,52,93,44,91,49,54,48,44,50, - 52,93,44,91,49,54,48,44,52,48,93,44,91,49,52,52,44, - 52,48,93,93,125,125,44,123,34,110,97,109,101,34,58,34,53, - 50,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, + 58,91,91,51,53,50,44,49,54,93,44,91,51,54,56,44,49, + 54,93,44,91,51,54,56,44,51,50,93,44,91,51,53,50,44, + 51,50,93,93,125,125,44,123,34,110,97,109,101,34,58,34,51, + 53,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, - 101,101,116,95,114,101,99,116,34,58,91,49,54,48,44,50,52, - 44,49,55,54,44,52,48,93,44,34,109,101,115,104,34,58,123, + 101,101,116,95,114,101,99,116,34,58,91,51,54,56,44,49,54, + 44,51,56,52,44,51,50,93,44,34,109,101,115,104,34,58,123, 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,49,54,48,44,50,52,93,44,91,49,55,54,44,50,52, - 93,44,91,49,55,54,44,52,48,93,44,91,49,54,48,44,52, - 48,93,93,125,125,44,123,34,110,97,109,101,34,58,34,53,51, + 91,91,51,54,56,44,49,54,93,44,91,51,56,52,44,49,54, + 93,44,91,51,56,52,44,51,50,93,44,91,51,54,56,44,51, + 50,93,93,125,125,44,123,34,110,97,109,101,34,58,34,51,54, 46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44, 49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34, 58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101, - 101,116,95,114,101,99,116,34,58,91,49,55,54,44,50,52,44, - 49,57,50,44,52,48,93,44,34,109,101,115,104,34,58,123,34, + 101,116,95,114,101,99,116,34,58,91,51,56,52,44,49,54,44, + 52,48,48,44,51,50,93,44,34,109,101,115,104,34,58,123,34, 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54, 93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91, - 91,49,55,54,44,50,52,93,44,91,49,57,50,44,50,52,93, - 44,91,49,57,50,44,52,48,93,44,91,49,55,54,44,52,48, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,53,52,46, + 91,51,56,52,44,49,54,93,44,91,52,48,48,44,49,54,93, + 44,91,52,48,48,44,51,50,93,44,91,51,56,52,44,51,50, + 93,93,125,125,44,123,34,110,97,109,101,34,58,34,51,55,46, 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49, 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, 91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,49,57,50,44,51,50,44,50, - 48,56,44,52,56,93,44,34,109,101,115,104,34,58,123,34,110, + 116,95,114,101,99,116,34,58,91,52,48,48,44,49,54,44,52, + 49,54,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110, 117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118, 101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99, 101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93, 44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44, 48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93, 44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91, - 49,57,50,44,51,50,93,44,91,50,48,56,44,51,50,93,44, - 91,50,48,56,44,52,56,93,44,91,49,57,50,44,52,56,93, - 93,125,125,44,123,34,110,97,109,101,34,58,34,53,53,46,112, + 52,48,48,44,49,54,93,44,91,52,49,54,44,49,54,93,44, + 91,52,49,54,44,51,50,93,44,91,52,48,48,44,51,50,93, + 93,125,125,44,123,34,110,97,109,101,34,58,34,51,56,46,112, 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54, 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, 48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116, - 95,114,101,99,116,34,58,91,50,48,56,44,51,50,44,50,50, - 52,44,52,56,93,44,34,109,101,115,104,34,58,123,34,110,117, + 95,114,101,99,116,34,58,91,52,49,54,44,49,54,44,52,51, + 50,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117, 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, 93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44, - 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,50, - 48,56,44,51,50,93,44,91,50,50,52,44,51,50,93,44,91, - 50,50,52,44,52,56,93,44,91,50,48,56,44,52,56,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,53,54,46,112,110, + 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52, + 49,54,44,49,54,93,44,91,52,51,50,44,49,54,93,44,91, + 52,51,50,44,51,50,93,44,91,52,49,54,44,51,50,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,51,57,46,112,110, 103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93, 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, 44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95, - 114,101,99,116,34,58,91,50,50,52,44,51,50,44,50,52,48, - 44,52,56,93,44,34,109,101,115,104,34,58,123,34,110,117,109, + 114,101,99,116,34,58,91,52,51,50,44,49,54,44,52,52,56, + 44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117,109, 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,50,50, - 52,44,51,50,93,44,91,50,52,48,44,51,50,93,44,91,50, - 52,48,44,52,56,93,44,91,50,50,52,44,52,56,93,93,125, - 125,44,123,34,110,97,109,101,34,58,34,53,55,46,112,110,103, - 34,44,34,115,105,122,101,34,58,91,49,54,44,50,52,93,44, - 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, - 48,44,49,54,44,50,52,93,44,34,115,104,101,101,116,95,114, - 101,99,116,34,58,91,48,44,48,44,49,54,44,50,52,93,44, - 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, - 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, - 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, + 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,51, + 50,44,49,54,93,44,91,52,52,56,44,49,54,93,44,91,52, + 52,56,44,51,50,93,44,91,52,51,50,44,51,50,93,93,125, + 125,44,123,34,110,97,109,101,34,58,34,51,46,112,110,103,34, + 44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34, + 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, + 44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101, + 99,116,34,58,91,52,52,56,44,49,54,44,52,54,52,44,51, + 50,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116, + 114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105, + 99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58, + 91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111, + 115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91, + 49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44, + 49,54,93,93,44,34,117,118,115,34,58,91,91,52,52,56,44, + 49,54,93,44,91,52,54,52,44,49,54,93,44,91,52,54,52, + 44,51,50,93,44,91,52,52,56,44,51,50,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,52,48,46,112,110,103,34,44, + 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, + 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, + 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, + 116,34,58,91,52,54,52,44,49,54,44,52,56,48,44,51,50, + 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, + 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, + 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, + 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, + 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, + 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, + 54,93,93,44,34,117,118,115,34,58,91,91,52,54,52,44,49, + 54,93,44,91,52,56,48,44,49,54,93,44,91,52,56,48,44, + 51,50,93,44,91,52,54,52,44,51,50,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,52,49,46,112,110,103,34,44,34, + 115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112, + 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, + 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, + 34,58,91,52,56,48,44,49,54,44,52,57,54,44,51,50,93, + 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, + 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, + 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, + 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, + 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54, + 44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54, + 93,93,44,34,117,118,115,34,58,91,91,52,56,48,44,49,54, + 93,44,91,52,57,54,44,49,54,93,44,91,52,57,54,44,51, + 50,93,44,91,52,56,48,44,51,50,93,93,125,125,44,123,34, + 110,97,109,101,34,58,34,52,50,46,112,110,103,34,44,34,115, + 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, + 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, + 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, + 58,91,52,57,54,44,49,54,44,53,49,50,44,51,50,93,44, + 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, + 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, + 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, - 48,93,44,91,49,54,44,50,52,93,44,91,48,44,50,52,93, - 93,44,34,117,118,115,34,58,91,91,48,44,48,93,44,91,49, - 54,44,48,93,44,91,49,54,44,50,52,93,44,91,48,44,50, - 52,93,93,125,125,44,123,34,110,97,109,101,34,58,34,53,56, - 46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44, - 50,52,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34, - 58,91,48,44,48,44,49,54,44,50,52,93,44,34,115,104,101, - 101,116,95,114,101,99,116,34,58,91,49,54,44,48,44,51,50, - 44,50,52,93,44,34,109,101,115,104,34,58,123,34,110,117,109, - 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, - 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, - 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, - 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, - 44,91,49,54,44,48,93,44,91,49,54,44,50,52,93,44,91, - 48,44,50,52,93,93,44,34,117,118,115,34,58,91,91,49,54, - 44,48,93,44,91,51,50,44,48,93,44,91,51,50,44,50,52, - 93,44,91,49,54,44,50,52,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,53,57,46,112,110,103,34,44,34,115,105,122, - 101,34,58,91,49,54,44,50,52,93,44,34,115,112,114,105,116, - 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,50, - 52,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 51,50,44,48,44,52,56,44,50,52,93,44,34,109,101,115,104, - 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, - 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, - 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, - 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, - 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, - 54,44,50,52,93,44,91,48,44,50,52,93,93,44,34,117,118, - 115,34,58,91,91,51,50,44,48,93,44,91,52,56,44,48,93, - 44,91,52,56,44,50,52,93,44,91,51,50,44,50,52,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,53,46,112,110,103, - 34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44, - 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, - 48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114, - 101,99,116,34,58,91,50,52,48,44,51,50,44,50,53,54,44, - 52,56,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, + 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, + 93,44,34,117,118,115,34,58,91,91,52,57,54,44,49,54,93, + 44,91,53,49,50,44,49,54,93,44,91,53,49,50,44,51,50, + 93,44,91,52,57,54,44,51,50,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,52,51,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,48,44,50,52,44,49,54,44,52,48,93,44,34,109,101,115, + 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, + 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, + 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, + 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, + 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, + 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, + 118,115,34,58,91,91,48,44,50,52,93,44,91,49,54,44,50, + 52,93,44,91,49,54,44,52,48,93,44,91,48,44,52,48,93, + 93,125,125,44,123,34,110,97,109,101,34,58,34,52,52,46,112, + 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54, + 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, + 48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116, + 95,114,101,99,116,34,58,91,49,54,44,50,52,44,51,50,44, + 52,48,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, 91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48, - 44,49,54,93,93,44,34,117,118,115,34,58,91,91,50,52,48, - 44,51,50,93,44,91,50,53,54,44,51,50,93,44,91,50,53, - 54,44,52,56,93,44,91,50,52,48,44,52,56,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,54,48,46,112,110,103,34, - 44,34,115,105,122,101,34,58,91,49,54,44,50,52,93,44,34, - 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, - 44,49,54,44,50,52,93,44,34,115,104,101,101,116,95,114,101, - 99,116,34,58,91,52,56,44,48,44,54,52,44,50,52,93,44, + 44,49,54,93,93,44,34,117,118,115,34,58,91,91,49,54,44, + 50,52,93,44,91,51,50,44,50,52,93,44,91,51,50,44,52, + 48,93,44,91,49,54,44,52,48,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,52,53,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,51,50,44,50,52,44,52,56,44,52,48,93,44,34,109,101, + 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, + 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, + 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, + 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, + 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, + 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, + 117,118,115,34,58,91,91,51,50,44,50,52,93,44,91,52,56, + 44,50,52,93,44,91,52,56,44,52,48,93,44,91,51,50,44, + 52,48,93,93,125,125,44,123,34,110,97,109,101,34,58,34,52, + 54,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, + 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, + 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, + 101,101,116,95,114,101,99,116,34,58,91,52,56,44,50,52,44, + 54,52,44,52,48,93,44,34,109,101,115,104,34,58,123,34,110, + 117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118, + 101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99, + 101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93, + 44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44, + 48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93, + 44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91, + 52,56,44,50,52,93,44,91,54,52,44,50,52,93,44,91,54, + 52,44,52,48,93,44,91,52,56,44,52,48,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,52,55,46,112,110,103,34,44, + 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, + 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, + 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, + 116,34,58,91,54,52,44,50,52,44,56,48,44,52,48,93,44, 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, - 48,93,44,91,49,54,44,50,52,93,44,91,48,44,50,52,93, - 93,44,34,117,118,115,34,58,91,91,52,56,44,48,93,44,91, - 54,52,44,48,93,44,91,54,52,44,50,52,93,44,91,52,56, - 44,50,52,93,93,125,125,44,123,34,110,97,109,101,34,58,34, - 54,49,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, - 54,44,50,52,93,44,34,115,112,114,105,116,101,95,114,101,99, - 116,34,58,91,48,44,48,44,49,54,44,50,52,93,44,34,115, - 104,101,101,116,95,114,101,99,116,34,58,91,54,52,44,48,44, - 56,48,44,50,52,93,44,34,109,101,115,104,34,58,123,34,110, - 117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118, - 101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99, - 101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93, - 44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44, - 48,93,44,91,49,54,44,48,93,44,91,49,54,44,50,52,93, - 44,91,48,44,50,52,93,93,44,34,117,118,115,34,58,91,91, - 54,52,44,48,93,44,91,56,48,44,48,93,44,91,56,48,44, - 50,52,93,44,91,54,52,44,50,52,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,54,50,46,112,110,103,34,44,34,115, - 105,122,101,34,58,91,49,54,44,50,52,93,44,34,115,112,114, + 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, + 93,44,34,117,118,115,34,58,91,91,54,52,44,50,52,93,44, + 91,56,48,44,50,52,93,44,91,56,48,44,52,48,93,44,91, + 54,52,44,52,48,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,52,56,46,112,110,103,34,44,34,115,105,122,101,34,58, + 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, + 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,56,48,44, + 50,52,44,57,54,44,52,48,93,44,34,109,101,115,104,34,58, + 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, + 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, + 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, + 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, + 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, + 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, + 58,91,91,56,48,44,50,52,93,44,91,57,54,44,50,52,93, + 44,91,57,54,44,52,48,93,44,91,56,48,44,52,48,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,52,57,46,112,110, + 103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93, + 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, + 44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95, + 114,101,99,116,34,58,91,57,54,44,50,52,44,49,49,50,44, + 52,48,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, + 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, + 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, + 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, + 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, + 91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48, + 44,49,54,93,93,44,34,117,118,115,34,58,91,91,57,54,44, + 50,52,93,44,91,49,49,50,44,50,52,93,44,91,49,49,50, + 44,52,48,93,44,91,57,54,44,52,48,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,52,46,112,110,103,34,44,34,115, + 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, - 44,50,52,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,56,48,44,48,44,57,54,44,50,52,93,44,34,109,101, + 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, + 58,91,49,49,50,44,50,52,44,49,50,56,44,52,48,93,44, + 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, + 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, + 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, + 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, + 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, + 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, + 93,44,34,117,118,115,34,58,91,91,49,49,50,44,50,52,93, + 44,91,49,50,56,44,50,52,93,44,91,49,50,56,44,52,48, + 93,44,91,49,49,50,44,52,48,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,53,48,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,49,50,56,44,50,52,44,49,52,52,44,52,48,93,44,34, + 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, + 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, + 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, + 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, + 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, + 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, + 44,34,117,118,115,34,58,91,91,49,50,56,44,50,52,93,44, + 91,49,52,52,44,50,52,93,44,91,49,52,52,44,52,48,93, + 44,91,49,50,56,44,52,48,93,93,125,125,44,123,34,110,97, + 109,101,34,58,34,53,49,46,112,110,103,34,44,34,115,105,122, + 101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116, + 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49, + 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, + 49,52,52,44,50,52,44,49,54,48,44,52,48,93,44,34,109, + 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, + 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, + 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, + 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, + 110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93, + 44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44, + 34,117,118,115,34,58,91,91,49,52,52,44,50,52,93,44,91, + 49,54,48,44,50,52,93,44,91,49,54,48,44,52,48,93,44, + 91,49,52,52,44,52,48,93,93,125,125,44,123,34,110,97,109, + 101,34,58,34,53,50,46,112,110,103,34,44,34,115,105,122,101, + 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, + 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, + 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49, + 54,48,44,50,52,44,49,55,54,44,52,48,93,44,34,109,101, 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, - 91,49,54,44,50,52,93,44,91,48,44,50,52,93,93,44,34, - 117,118,115,34,58,91,91,56,48,44,48,93,44,91,57,54,44, - 48,93,44,91,57,54,44,50,52,93,44,91,56,48,44,50,52, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,54,51,46, - 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,50, - 52,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, - 91,48,44,48,44,49,54,44,50,52,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,57,54,44,48,44,49,49,50, + 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, + 117,118,115,34,58,91,91,49,54,48,44,50,52,93,44,91,49, + 55,54,44,50,52,93,44,91,49,55,54,44,52,48,93,44,91, + 49,54,48,44,52,48,93,93,125,125,44,123,34,110,97,109,101, + 34,58,34,53,51,46,112,110,103,34,44,34,115,105,122,101,34, + 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, + 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, + 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,55, + 54,44,50,52,44,49,57,50,44,52,48,93,44,34,109,101,115, + 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, + 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, + 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, + 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, + 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, + 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, + 118,115,34,58,91,91,49,55,54,44,50,52,93,44,91,49,57, + 50,44,50,52,93,44,91,49,57,50,44,52,48,93,44,91,49, + 55,54,44,52,48,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,53,52,46,112,110,103,34,44,34,115,105,122,101,34,58, + 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, + 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,57,50, + 44,51,50,44,50,48,56,44,52,56,93,44,34,109,101,115,104, + 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, + 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, + 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, + 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, + 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, + 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, + 115,34,58,91,91,49,57,50,44,51,50,93,44,91,50,48,56, + 44,51,50,93,44,91,50,48,56,44,52,56,93,44,91,49,57, + 50,44,52,56,93,93,125,125,44,123,34,110,97,109,101,34,58, + 34,53,53,46,112,110,103,34,44,34,115,105,122,101,34,58,91, + 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, + 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, + 115,104,101,101,116,95,114,101,99,116,34,58,91,50,48,56,44, + 51,50,44,50,50,52,44,52,56,93,44,34,109,101,115,104,34, + 58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110, + 117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105, + 110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44, + 50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58, + 91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54, + 44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115, + 34,58,91,91,50,48,56,44,51,50,93,44,91,50,50,52,44, + 51,50,93,44,91,50,50,52,44,52,56,93,44,91,50,48,56, + 44,52,56,93,93,125,125,44,123,34,110,97,109,101,34,58,34, + 53,54,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, + 54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, + 116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115, + 104,101,101,116,95,114,101,99,116,34,58,91,50,50,52,44,51, + 50,44,50,52,48,44,52,56,93,44,34,109,101,115,104,34,58, + 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, + 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, + 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, + 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, + 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, + 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, + 58,91,91,50,50,52,44,51,50,93,44,91,50,52,48,44,51, + 50,93,44,91,50,52,48,44,52,56,93,44,91,50,50,52,44, + 52,56,93,93,125,125,44,123,34,110,97,109,101,34,58,34,53, + 55,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, + 44,50,52,93,44,34,115,112,114,105,116,101,95,114,101,99,116, + 34,58,91,48,44,48,44,49,54,44,50,52,93,44,34,115,104, + 101,101,116,95,114,101,99,116,34,58,91,48,44,48,44,49,54, 44,50,52,93,44,34,109,101,115,104,34,58,123,34,110,117,109, 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, 44,91,49,54,44,48,93,44,91,49,54,44,50,52,93,44,91, - 48,44,50,52,93,93,44,34,117,118,115,34,58,91,91,57,54, - 44,48,93,44,91,49,49,50,44,48,93,44,91,49,49,50,44, - 50,52,93,44,91,57,54,44,50,52,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,54,52,46,112,110,103,34,44,34,115, - 105,122,101,34,58,91,49,54,44,50,52,93,44,34,115,112,114, - 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, - 44,50,52,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,49,49,50,44,48,44,49,50,56,44,50,52,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,50,52,93,44,91,48,44,50,52,93,93, - 44,34,117,118,115,34,58,91,91,49,49,50,44,48,93,44,91, - 49,50,56,44,48,93,44,91,49,50,56,44,50,52,93,44,91, - 49,49,50,44,50,52,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,54,53,46,112,110,103,34,44,34,115,105,122,101,34, + 48,44,50,52,93,93,44,34,117,118,115,34,58,91,91,48,44, + 48,93,44,91,49,54,44,48,93,44,91,49,54,44,50,52,93, + 44,91,48,44,50,52,93,93,125,125,44,123,34,110,97,109,101, + 34,58,34,53,56,46,112,110,103,34,44,34,115,105,122,101,34, 58,91,49,54,44,50,52,93,44,34,115,112,114,105,116,101,95, 114,101,99,116,34,58,91,48,44,48,44,49,54,44,50,52,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,50, - 56,44,48,44,49,52,52,44,50,52,93,44,34,109,101,115,104, + 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,54, + 44,48,44,51,50,44,50,52,93,44,34,109,101,115,104,34,58, + 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, + 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, + 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, + 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, + 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, + 50,52,93,44,91,48,44,50,52,93,93,44,34,117,118,115,34, + 58,91,91,49,54,44,48,93,44,91,51,50,44,48,93,44,91, + 51,50,44,50,52,93,44,91,49,54,44,50,52,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,53,57,46,112,110,103,34, + 44,34,115,105,122,101,34,58,91,49,54,44,50,52,93,44,34, + 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, + 44,49,54,44,50,52,93,44,34,115,104,101,101,116,95,114,101, + 99,116,34,58,91,51,50,44,48,44,52,56,44,50,52,93,44, + 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, + 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, + 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, + 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, + 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, + 48,93,44,91,49,54,44,50,52,93,44,91,48,44,50,52,93, + 93,44,34,117,118,115,34,58,91,91,51,50,44,48,93,44,91, + 52,56,44,48,93,44,91,52,56,44,50,52,93,44,91,51,50, + 44,50,52,93,93,125,125,44,123,34,110,97,109,101,34,58,34, + 53,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, + 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, + 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, + 101,101,116,95,114,101,99,116,34,58,91,50,52,48,44,51,50, + 44,50,53,54,44,52,56,93,44,34,109,101,115,104,34,58,123, + 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, + 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, + 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, + 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, + 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, + 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, + 91,91,50,52,48,44,51,50,93,44,91,50,53,54,44,51,50, + 93,44,91,50,53,54,44,52,56,93,44,91,50,52,48,44,52, + 56,93,93,125,125,44,123,34,110,97,109,101,34,58,34,54,48, + 46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44, + 50,52,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34, + 58,91,48,44,48,44,49,54,44,50,52,93,44,34,115,104,101, + 101,116,95,114,101,99,116,34,58,91,52,56,44,48,44,54,52, + 44,50,52,93,44,34,109,101,115,104,34,58,123,34,110,117,109, + 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, + 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, + 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, + 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, + 44,91,49,54,44,48,93,44,91,49,54,44,50,52,93,44,91, + 48,44,50,52,93,93,44,34,117,118,115,34,58,91,91,52,56, + 44,48,93,44,91,54,52,44,48,93,44,91,54,52,44,50,52, + 93,44,91,52,56,44,50,52,93,93,125,125,44,123,34,110,97, + 109,101,34,58,34,54,49,46,112,110,103,34,44,34,115,105,122, + 101,34,58,91,49,54,44,50,52,93,44,34,115,112,114,105,116, + 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,50, + 52,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, + 54,52,44,48,44,56,48,44,50,52,93,44,34,109,101,115,104, 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, 54,44,50,52,93,44,91,48,44,50,52,93,93,44,34,117,118, - 115,34,58,91,91,49,50,56,44,48,93,44,91,49,52,52,44, - 48,93,44,91,49,52,52,44,50,52,93,44,91,49,50,56,44, - 50,52,93,93,125,125,44,123,34,110,97,109,101,34,58,34,54, - 54,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, - 44,50,52,93,44,34,115,112,114,105,116,101,95,114,101,99,116, - 34,58,91,48,44,48,44,49,54,44,50,52,93,44,34,115,104, - 101,101,116,95,114,101,99,116,34,58,91,49,52,52,44,48,44, - 49,54,48,44,50,52,93,44,34,109,101,115,104,34,58,123,34, - 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, - 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, - 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, - 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, - 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,50,52, - 93,44,91,48,44,50,52,93,93,44,34,117,118,115,34,58,91, - 91,49,52,52,44,48,93,44,91,49,54,48,44,48,93,44,91, - 49,54,48,44,50,52,93,44,91,49,52,52,44,50,52,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,54,55,46,112,110, + 115,34,58,91,91,54,52,44,48,93,44,91,56,48,44,48,93, + 44,91,56,48,44,50,52,93,44,91,54,52,44,50,52,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,54,50,46,112,110, 103,34,44,34,115,105,122,101,34,58,91,49,54,44,50,52,93, 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, 44,48,44,49,54,44,50,52,93,44,34,115,104,101,101,116,95, - 114,101,99,116,34,58,91,49,54,48,44,48,44,49,55,54,44, + 114,101,99,116,34,58,91,56,48,44,48,44,57,54,44,50,52, + 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, + 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, + 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, + 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, + 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, + 54,44,48,93,44,91,49,54,44,50,52,93,44,91,48,44,50, + 52,93,93,44,34,117,118,115,34,58,91,91,56,48,44,48,93, + 44,91,57,54,44,48,93,44,91,57,54,44,50,52,93,44,91, + 56,48,44,50,52,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,54,51,46,112,110,103,34,44,34,115,105,122,101,34,58, + 91,49,54,44,50,52,93,44,34,115,112,114,105,116,101,95,114, + 101,99,116,34,58,91,48,44,48,44,49,54,44,50,52,93,44, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,57,54,44, + 48,44,49,49,50,44,50,52,93,44,34,109,101,115,104,34,58, + 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, + 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, + 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, + 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, + 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, + 50,52,93,44,91,48,44,50,52,93,93,44,34,117,118,115,34, + 58,91,91,57,54,44,48,93,44,91,49,49,50,44,48,93,44, + 91,49,49,50,44,50,52,93,44,91,57,54,44,50,52,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,54,52,46,112,110, + 103,34,44,34,115,105,122,101,34,58,91,49,54,44,50,52,93, + 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, + 44,48,44,49,54,44,50,52,93,44,34,115,104,101,101,116,95, + 114,101,99,116,34,58,91,49,49,50,44,48,44,49,50,56,44, 50,52,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, 91,49,54,44,48,93,44,91,49,54,44,50,52,93,44,91,48, - 44,50,52,93,93,44,34,117,118,115,34,58,91,91,49,54,48, - 44,48,93,44,91,49,55,54,44,48,93,44,91,49,55,54,44, - 50,52,93,44,91,49,54,48,44,50,52,93,93,125,125,44,123, - 34,110,97,109,101,34,58,34,54,56,46,112,110,103,34,44,34, + 44,50,52,93,93,44,34,117,118,115,34,58,91,91,49,49,50, + 44,48,93,44,91,49,50,56,44,48,93,44,91,49,50,56,44, + 50,52,93,44,91,49,49,50,44,50,52,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,54,53,46,112,110,103,34,44,34, 115,105,122,101,34,58,91,49,54,44,50,52,93,44,34,115,112, 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, 54,44,50,52,93,44,34,115,104,101,101,116,95,114,101,99,116, - 34,58,91,49,55,54,44,48,44,49,57,50,44,50,52,93,44, + 34,58,91,49,50,56,44,48,44,49,52,52,44,50,52,93,44, 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, 48,93,44,91,49,54,44,50,52,93,44,91,48,44,50,52,93, - 93,44,34,117,118,115,34,58,91,91,49,55,54,44,48,93,44, - 91,49,57,50,44,48,93,44,91,49,57,50,44,50,52,93,44, - 91,49,55,54,44,50,52,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,54,57,46,112,110,103,34,44,34,115,105,122,101, + 93,44,34,117,118,115,34,58,91,91,49,50,56,44,48,93,44, + 91,49,52,52,44,48,93,44,91,49,52,52,44,50,52,93,44, + 91,49,50,56,44,50,52,93,93,125,125,44,123,34,110,97,109, + 101,34,58,34,54,54,46,112,110,103,34,44,34,115,105,122,101, + 34,58,91,49,54,44,50,52,93,44,34,115,112,114,105,116,101, + 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,50,52, + 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49, + 52,52,44,48,44,49,54,48,44,50,52,93,44,34,109,101,115, + 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, + 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, + 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, + 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, + 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, + 49,54,44,50,52,93,44,91,48,44,50,52,93,93,44,34,117, + 118,115,34,58,91,91,49,52,52,44,48,93,44,91,49,54,48, + 44,48,93,44,91,49,54,48,44,50,52,93,44,91,49,52,52, + 44,50,52,93,93,125,125,44,123,34,110,97,109,101,34,58,34, + 54,55,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, + 54,44,50,52,93,44,34,115,112,114,105,116,101,95,114,101,99, + 116,34,58,91,48,44,48,44,49,54,44,50,52,93,44,34,115, + 104,101,101,116,95,114,101,99,116,34,58,91,49,54,48,44,48, + 44,49,55,54,44,50,52,93,44,34,109,101,115,104,34,58,123, + 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, + 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, + 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, + 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, + 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,50, + 52,93,44,91,48,44,50,52,93,93,44,34,117,118,115,34,58, + 91,91,49,54,48,44,48,93,44,91,49,55,54,44,48,93,44, + 91,49,55,54,44,50,52,93,44,91,49,54,48,44,50,52,93, + 93,125,125,44,123,34,110,97,109,101,34,58,34,54,56,46,112, + 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,50,52, + 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, + 48,44,48,44,49,54,44,50,52,93,44,34,115,104,101,101,116, + 95,114,101,99,116,34,58,91,49,55,54,44,48,44,49,57,50, + 44,50,52,93,44,34,109,101,115,104,34,58,123,34,110,117,109, + 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, + 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, + 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, + 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, + 44,91,49,54,44,48,93,44,91,49,54,44,50,52,93,44,91, + 48,44,50,52,93,93,44,34,117,118,115,34,58,91,91,49,55, + 54,44,48,93,44,91,49,57,50,44,48,93,44,91,49,57,50, + 44,50,52,93,44,91,49,55,54,44,50,52,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,54,57,46,112,110,103,34,44, + 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, + 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, + 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, + 116,34,58,91,50,53,54,44,51,50,44,50,55,50,44,52,56, + 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, + 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, + 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, + 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, + 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, + 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, + 54,93,93,44,34,117,118,115,34,58,91,91,50,53,54,44,51, + 50,93,44,91,50,55,50,44,51,50,93,44,91,50,55,50,44, + 52,56,93,44,91,50,53,54,44,52,56,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,54,46,112,110,103,34,44,34,115, + 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, + 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, + 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, + 58,91,50,55,50,44,51,50,44,50,56,56,44,52,56,93,44, + 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, + 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, + 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, + 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, + 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, + 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, + 93,44,34,117,118,115,34,58,91,91,50,55,50,44,51,50,93, + 44,91,50,56,56,44,51,50,93,44,91,50,56,56,44,52,56, + 93,44,91,50,55,50,44,52,56,93,93,125,125,44,123,34,110, + 97,109,101,34,58,34,55,48,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,50,56,56,44,51,50,44,51,48,52,44,52,56,93,44,34, + 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, + 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, + 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, + 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, + 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, + 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, + 44,34,117,118,115,34,58,91,91,50,56,56,44,51,50,93,44, + 91,51,48,52,44,51,50,93,44,91,51,48,52,44,52,56,93, + 44,91,50,56,56,44,52,56,93,93,125,125,44,123,34,110,97, + 109,101,34,58,34,55,49,46,112,110,103,34,44,34,115,105,122, + 101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116, + 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49, + 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, + 51,48,52,44,51,50,44,51,50,48,44,52,56,93,44,34,109, + 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, + 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, + 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, + 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, + 110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93, + 44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44, + 34,117,118,115,34,58,91,91,51,48,52,44,51,50,93,44,91, + 51,50,48,44,51,50,93,44,91,51,50,48,44,52,56,93,44, + 91,51,48,52,44,52,56,93,93,125,125,44,123,34,110,97,109, + 101,34,58,34,55,50,46,112,110,103,34,44,34,115,105,122,101, 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,50, - 53,54,44,51,50,44,50,55,50,44,52,56,93,44,34,109,101, + 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,51, + 50,48,44,51,50,44,51,51,54,44,52,56,93,44,34,109,101, 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,50,53,54,44,51,50,93,44,91,50, - 55,50,44,51,50,93,44,91,50,55,50,44,52,56,93,44,91, - 50,53,54,44,52,56,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,54,46,112,110,103,34,44,34,115,105,122,101,34,58, + 117,118,115,34,58,91,91,51,50,48,44,51,50,93,44,91,51, + 51,54,44,51,50,93,44,91,51,51,54,44,52,56,93,44,91, + 51,50,48,44,52,56,93,93,125,125,44,123,34,110,97,109,101, + 34,58,34,55,51,46,112,110,103,34,44,34,115,105,122,101,34, + 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, + 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, + 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,51,51, + 54,44,51,50,44,51,53,50,44,52,56,93,44,34,109,101,115, + 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, + 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, + 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, + 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, + 34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91, + 49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117, + 118,115,34,58,91,91,51,51,54,44,51,50,93,44,91,51,53, + 50,44,51,50,93,44,91,51,53,50,44,52,56,93,44,91,51, + 51,54,44,52,56,93,93,125,125,44,123,34,110,97,109,101,34, + 58,34,55,52,46,112,110,103,34,44,34,115,105,122,101,34,58, 91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, 101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44, - 34,115,104,101,101,116,95,114,101,99,116,34,58,91,50,55,50, - 44,51,50,44,50,56,56,44,52,56,93,44,34,109,101,115,104, + 34,115,104,101,101,116,95,114,101,99,116,34,58,91,51,53,50, + 44,51,50,44,51,54,56,44,52,56,93,44,34,109,101,115,104, 34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34, 110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34, 105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48, 44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34, 58,91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49, 54,44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118, - 115,34,58,91,91,50,55,50,44,51,50,93,44,91,50,56,56, - 44,51,50,93,44,91,50,56,56,44,52,56,93,44,91,50,55, + 115,34,58,91,91,51,53,50,44,51,50,93,44,91,51,54,56, + 44,51,50,93,44,91,51,54,56,44,52,56,93,44,91,51,53, 50,44,52,56,93,93,125,125,44,123,34,110,97,109,101,34,58, - 34,55,48,46,112,110,103,34,44,34,115,105,122,101,34,58,91, + 34,55,53,46,112,110,103,34,44,34,115,105,122,101,34,58,91, 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,50,56,56,44, - 51,50,44,51,48,52,44,52,56,93,44,34,109,101,115,104,34, + 115,104,101,101,116,95,114,101,99,116,34,58,91,51,54,56,44, + 51,50,44,51,56,52,44,52,56,93,44,34,109,101,115,104,34, 58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110, 117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105, 110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44, 50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58, 91,91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54, 44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115, - 34,58,91,91,50,56,56,44,51,50,93,44,91,51,48,52,44, - 51,50,93,44,91,51,48,52,44,52,56,93,44,91,50,56,56, + 34,58,91,91,51,54,56,44,51,50,93,44,91,51,56,52,44, + 51,50,93,44,91,51,56,52,44,52,56,93,44,91,51,54,56, 44,52,56,93,93,125,125,44,123,34,110,97,109,101,34,58,34, - 55,49,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, + 55,54,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49, 54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99, 116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115, - 104,101,101,116,95,114,101,99,116,34,58,91,51,48,52,44,51, - 50,44,51,50,48,44,52,56,93,44,34,109,101,115,104,34,58, + 104,101,101,116,95,114,101,99,116,34,58,91,51,56,52,44,51, + 50,44,52,48,48,44,52,56,93,44,34,109,101,115,104,34,58, 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,51,48,52,44,51,50,93,44,91,51,50,48,44,51, - 50,93,44,91,51,50,48,44,52,56,93,44,91,51,48,52,44, + 58,91,91,51,56,52,44,51,50,93,44,91,52,48,48,44,51, + 50,93,44,91,52,48,48,44,52,56,93,44,91,51,56,52,44, 52,56,93,93,125,125,44,123,34,110,97,109,101,34,58,34,55, - 50,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, + 55,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54, 44,49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116, 34,58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104, - 101,101,116,95,114,101,99,116,34,58,91,51,50,48,44,51,50, - 44,51,51,54,44,52,56,93,44,34,109,101,115,104,34,58,123, + 101,101,116,95,114,101,99,116,34,58,91,52,48,48,44,51,50, + 44,52,49,54,44,52,56,93,44,34,109,101,115,104,34,58,123, 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,51,50,48,44,51,50,93,44,91,51,51,54,44,51,50, - 93,44,91,51,51,54,44,52,56,93,44,91,51,50,48,44,52, - 56,93,93,125,125,44,123,34,110,97,109,101,34,58,34,55,51, + 91,91,52,48,48,44,51,50,93,44,91,52,49,54,44,51,50, + 93,44,91,52,49,54,44,52,56,93,44,91,52,48,48,44,52, + 56,93,93,125,125,44,123,34,110,97,109,101,34,58,34,55,56, 46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44, 49,54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34, 58,91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101, - 101,116,95,114,101,99,116,34,58,91,51,51,54,44,51,50,44, - 51,53,50,44,52,56,93,44,34,109,101,115,104,34,58,123,34, + 101,116,95,114,101,99,116,34,58,91,52,49,54,44,51,50,44, + 52,51,50,44,52,56,93,44,34,109,101,115,104,34,58,123,34, 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, 44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54, 93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91, - 91,51,51,54,44,51,50,93,44,91,51,53,50,44,51,50,93, - 44,91,51,53,50,44,52,56,93,44,91,51,51,54,44,52,56, - 93,93,125,125,44,123,34,110,97,109,101,34,58,34,55,52,46, + 91,52,49,54,44,51,50,93,44,91,52,51,50,44,51,50,93, + 44,91,52,51,50,44,52,56,93,44,91,52,49,54,44,52,56, + 93,93,125,125,44,123,34,110,97,109,101,34,58,34,55,57,46, 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49, 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, 91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101, - 116,95,114,101,99,116,34,58,91,51,53,50,44,51,50,44,51, - 54,56,44,52,56,93,44,34,109,101,115,104,34,58,123,34,110, + 116,95,114,101,99,116,34,58,91,52,51,50,44,51,50,44,52, + 52,56,44,52,56,93,44,34,109,101,115,104,34,58,123,34,110, 117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118, 101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99, 101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93, 44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44, 48,93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93, 44,91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91, - 51,53,50,44,51,50,93,44,91,51,54,56,44,51,50,93,44, - 91,51,54,56,44,52,56,93,44,91,51,53,50,44,52,56,93, - 93,125,125,44,123,34,110,97,109,101,34,58,34,55,53,46,112, - 110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54, - 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, - 48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116, - 95,114,101,99,116,34,58,91,51,54,56,44,51,50,44,51,56, - 52,44,52,56,93,44,34,109,101,115,104,34,58,123,34,110,117, - 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, - 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, - 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, - 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, - 93,44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44, - 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51, - 54,56,44,51,50,93,44,91,51,56,52,44,51,50,93,44,91, - 51,56,52,44,52,56,93,44,91,51,54,56,44,52,56,93,93, - 125,125,44,123,34,110,97,109,101,34,58,34,55,54,46,112,110, + 52,51,50,44,51,50,93,44,91,52,52,56,44,51,50,93,44, + 91,52,52,56,44,52,56,93,44,91,52,51,50,44,52,56,93, + 93,125,125,44,123,34,110,97,109,101,34,58,34,55,46,112,110, 103,34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93, 44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48, 44,48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95, - 114,101,99,116,34,58,91,51,56,52,44,51,50,44,52,48,48, + 114,101,99,116,34,58,91,52,52,56,44,51,50,44,52,54,52, 44,52,56,93,44,34,109,101,115,104,34,58,123,34,110,117,109, 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, - 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,51,56, - 52,44,51,50,93,44,91,52,48,48,44,51,50,93,44,91,52, - 48,48,44,52,56,93,44,91,51,56,52,44,52,56,93,93,125, - 125,44,123,34,110,97,109,101,34,58,34,55,55,46,112,110,103, + 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,52, + 56,44,51,50,93,44,91,52,54,52,44,51,50,93,44,91,52, + 54,52,44,52,56,93,44,91,52,52,56,44,52,56,93,93,125, + 125,44,123,34,110,97,109,101,34,58,34,56,48,46,112,110,103, 34,44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44, 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, 48,44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114, - 101,99,116,34,58,91,52,48,48,44,51,50,44,52,49,54,44, + 101,99,116,34,58,91,52,54,52,44,51,50,44,52,56,48,44, 52,56,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, 91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48, - 44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,48,48, - 44,51,50,93,44,91,52,49,54,44,51,50,93,44,91,52,49, - 54,44,52,56,93,44,91,52,48,48,44,52,56,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,55,56,46,112,110,103,34, + 44,49,54,93,93,44,34,117,118,115,34,58,91,91,52,54,52, + 44,51,50,93,44,91,52,56,48,44,51,50,93,44,91,52,56, + 48,44,52,56,93,44,91,52,54,52,44,52,56,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,56,49,46,112,110,103,34, 44,34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34, 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, 44,49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101, - 99,116,34,58,91,52,49,54,44,51,50,44,52,51,50,44,52, + 99,116,34,58,91,52,56,48,44,51,50,44,52,57,54,44,52, 56,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116, 114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105, 99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58, 91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111, 115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91, 49,54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44, - 49,54,93,93,44,34,117,118,115,34,58,91,91,52,49,54,44, - 51,50,93,44,91,52,51,50,44,51,50,93,44,91,52,51,50, - 44,52,56,93,44,91,52,49,54,44,52,56,93,93,125,125,44, - 123,34,110,97,109,101,34,58,34,55,57,46,112,110,103,34,44, + 49,54,93,93,44,34,117,118,115,34,58,91,91,52,56,48,44, + 51,50,93,44,91,52,57,54,44,51,50,93,44,91,52,57,54, + 44,52,56,93,44,91,52,56,48,44,52,56,93,93,125,125,44, + 123,34,110,97,109,101,34,58,34,56,50,46,112,110,103,34,44, 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,52,51,50,44,51,50,44,52,52,56,44,52,56, + 116,34,58,91,52,57,54,44,51,50,44,53,49,50,44,52,56, 93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114, 105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99, 101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91, 48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115, 105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49, 54,44,48,93,44,91,49,54,44,49,54,93,44,91,48,44,49, - 54,93,93,44,34,117,118,115,34,58,91,91,52,51,50,44,51, - 50,93,44,91,52,52,56,44,51,50,93,44,91,52,52,56,44, - 52,56,93,44,91,52,51,50,44,52,56,93,93,125,125,44,123, - 34,110,97,109,101,34,58,34,55,46,112,110,103,34,44,34,115, - 105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114, - 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54, - 44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34, - 58,91,52,52,56,44,51,50,44,52,54,52,44,52,56,93,44, - 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, - 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, - 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, - 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, - 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, - 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, - 93,44,34,117,118,115,34,58,91,91,52,52,56,44,51,50,93, - 44,91,52,54,52,44,51,50,93,44,91,52,54,52,44,52,56, - 93,44,91,52,52,56,44,52,56,93,93,125,125,44,123,34,110, - 97,109,101,34,58,34,56,48,46,112,110,103,34,44,34,115,105, - 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, - 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, - 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, - 91,52,54,52,44,51,50,44,52,56,48,44,52,56,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48, - 93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93, - 44,34,117,118,115,34,58,91,91,52,54,52,44,51,50,93,44, - 91,52,56,48,44,51,50,93,44,91,52,56,48,44,52,56,93, - 44,91,52,54,52,44,52,56,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,56,49,46,112,110,103,34,44,34,115,105,122, - 101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116, - 101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49, - 54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91, - 52,56,48,44,51,50,44,52,57,54,44,52,56,93,44,34,109, + 54,93,93,44,34,117,118,115,34,58,91,91,52,57,54,44,51, + 50,93,44,91,53,49,50,44,51,50,93,44,91,53,49,50,44, + 52,56,93,44,91,52,57,54,44,52,56,93,93,125,125,44,123, + 34,110,97,109,101,34,58,34,56,51,46,112,110,103,34,44,34, + 115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115,112, + 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49, + 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, + 34,58,91,48,44,52,48,44,49,54,44,53,54,93,44,34,109, 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, 110,115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93, 44,91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44, - 34,117,118,115,34,58,91,91,52,56,48,44,51,50,93,44,91, - 52,57,54,44,51,50,93,44,91,52,57,54,44,52,56,93,44, - 91,52,56,48,44,52,56,93,93,125,125,44,123,34,110,97,109, - 101,34,58,34,56,50,46,112,110,103,34,44,34,115,105,122,101, - 34,58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101, - 95,114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54, - 93,44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,52, - 57,54,44,51,50,44,53,49,50,44,52,56,93,44,34,109,101, + 34,117,118,115,34,58,91,91,48,44,52,48,93,44,91,49,54, + 44,52,48,93,44,91,49,54,44,53,54,93,44,91,48,44,53, + 54,93,93,125,125,44,123,34,110,97,109,101,34,58,34,56,46, + 112,110,103,34,44,34,115,105,122,101,34,58,91,49,54,44,49, + 54,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, + 91,48,44,48,44,49,54,44,49,54,93,44,34,115,104,101,101, + 116,95,114,101,99,116,34,58,91,49,54,44,52,48,44,51,50, + 44,53,54,93,44,34,109,101,115,104,34,58,123,34,110,117,109, + 95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114, + 116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115, + 34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34, + 112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93, + 44,91,49,54,44,48,93,44,91,49,54,44,49,54,93,44,91, + 48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,49,54, + 44,52,48,93,44,91,51,50,44,52,48,93,44,91,51,50,44, + 53,54,93,44,91,49,54,44,53,54,93,93,125,125,44,123,34, + 110,97,109,101,34,58,34,57,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,54,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,54,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,51,50,44,52,48,44,52,56,44,53,54,93,44,34,109,101, 115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50, 44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52, 44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50, 44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110, 115,34,58,91,91,48,44,48,93,44,91,49,54,44,48,93,44, 91,49,54,44,49,54,93,44,91,48,44,49,54,93,93,44,34, - 117,118,115,34,58,91,91,52,57,54,44,51,50,93,44,91,53, - 49,50,44,51,50,93,44,91,53,49,50,44,52,56,93,44,91, - 52,57,54,44,52,56,93,93,125,125,44,123,34,110,97,109,101, - 34,58,34,56,51,46,112,110,103,34,44,34,115,105,122,101,34, - 58,91,49,54,44,49,54,93,44,34,115,112,114,105,116,101,95, - 114,101,99,116,34,58,91,48,44,48,44,49,54,44,49,54,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,48,44, - 52,48,44,49,54,44,53,54,93,44,34,109,101,115,104,34,58, - 123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117, - 109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110, - 100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50, - 44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91, - 91,48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44, - 49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34, - 58,91,91,48,44,52,48,93,44,91,49,54,44,52,48,93,44, - 91,49,54,44,53,54,93,44,91,48,44,53,54,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,56,46,112,110,103,34,44, - 34,115,105,122,101,34,58,91,49,54,44,49,54,93,44,34,115, - 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, - 49,54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,49,54,44,52,48,44,51,50,44,53,54,93,44, - 34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115, - 34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115, - 34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44, - 49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116, - 105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,54,44, - 48,93,44,91,49,54,44,49,54,93,44,91,48,44,49,54,93, - 93,44,34,117,118,115,34,58,91,91,49,54,44,52,48,93,44, - 91,51,50,44,52,48,93,44,91,51,50,44,53,54,93,44,91, - 49,54,44,53,54,93,93,125,125,44,123,34,110,97,109,101,34, - 58,34,57,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 49,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, - 99,116,34,58,91,48,44,48,44,49,54,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,51,50,44,52, - 48,44,52,56,44,53,54,93,44,34,109,101,115,104,34,58,123, - 34,110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109, - 95,118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100, - 105,99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44, - 51,93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91, - 48,44,48,93,44,91,49,54,44,48,93,44,91,49,54,44,49, - 54,93,44,91,48,44,49,54,93,93,44,34,117,118,115,34,58, - 91,91,51,50,44,52,48,93,44,91,52,56,44,52,48,93,44, - 91,52,56,44,53,54,93,44,91,51,50,44,53,54,93,93,125, - 125,93,125, + 117,118,115,34,58,91,91,51,50,44,52,48,93,44,91,52,56, + 44,52,48,93,44,91,52,56,44,53,54,93,44,91,51,50,44, + 53,54,93,93,125,125,93,125, }; diff --git a/src/texture-bank/include/generated/main-dude-spritesheet.png.hpp b/src/assets/generated/files/main-dude.png.hpp similarity index 99% rename from src/texture-bank/include/generated/main-dude-spritesheet.png.hpp rename to src/assets/generated/files/main-dude.png.hpp index 6f22fc50..80e973a7 100644 --- a/src/texture-bank/include/generated/main-dude-spritesheet.png.hpp +++ b/src/assets/generated/files/main-dude.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: main-dude-spritesheet.png, at: Mon Aug 3 17:41:51 2020 +// Generated from: tilesheets/main-dude.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 10804; +const char* path = "tilesheets/main-dude.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,64,8,6,0,0,0,108,-65,-49,-65,0, diff --git a/src/assets/generated/files/main-menu.json.hpp b/src/assets/generated/files/main-menu.json.hpp new file mode 100644 index 00000000..e9414695 --- /dev/null +++ b/src/assets/generated/files/main-menu.json.hpp @@ -0,0 +1,123 @@ +// Generated from: tilesheets/main-menu.json, at: Sun Aug 18 21:51:29 2024 + +const std::size_t size = 1956; +const char* path = "tilesheets/main-menu.json"; +static const char data[] = +{ + 123,34,105,109,97,103,101,34,58,34,109,97,105,110,45,109,101, + 110,117,46,112,110,103,34,44,34,105,109,97,103,101,95,119,105, + 100,116,104,34,58,53,49,50,44,34,105,109,97,103,101,95,104, + 101,105,103,104,116,34,58,49,50,56,44,34,115,112,114,105,116, + 101,115,34,58,91,123,34,110,97,109,101,34,58,34,48,46,112, + 110,103,34,44,34,115,105,122,101,34,58,91,51,50,44,49,54, + 93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58,91, + 48,44,48,44,51,50,44,49,54,93,44,34,115,104,101,101,116, + 95,114,101,99,116,34,58,91,52,53,50,44,49,54,44,52,56, + 52,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117, + 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, + 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, + 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, + 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, + 93,44,91,51,50,44,48,93,44,91,51,50,44,49,54,93,44, + 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,52, + 53,50,44,49,54,93,44,91,52,56,52,44,49,54,93,44,91, + 52,56,52,44,51,50,93,44,91,52,53,50,44,51,50,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,49,46,112,110,103, + 34,44,34,115,105,122,101,34,58,91,52,56,44,51,50,93,44, + 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, + 48,44,52,56,44,51,50,93,44,34,115,104,101,101,116,95,114, + 101,99,116,34,58,91,49,57,50,44,48,44,50,52,48,44,51, + 50,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116, + 114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105, + 99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58, + 91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111, + 115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91, + 52,56,44,48,93,44,91,52,56,44,51,50,93,44,91,48,44, + 51,50,93,93,44,34,117,118,115,34,58,91,91,49,57,50,44, + 48,93,44,91,50,52,48,44,48,93,44,91,50,52,48,44,51, + 50,93,44,91,49,57,50,44,51,50,93,93,125,125,44,123,34, + 110,97,109,101,34,58,34,50,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,51,50,44,49,54,93,44,34,115,112,114,105, + 116,101,95,114,101,99,116,34,58,91,48,44,48,44,51,50,44, + 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,52,53,50,44,51,50,44,52,56,52,44,52,56,93,44,34, + 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, + 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, + 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, + 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, + 111,110,115,34,58,91,91,48,44,48,93,44,91,51,50,44,48, + 93,44,91,51,50,44,49,54,93,44,91,48,44,49,54,93,93, + 44,34,117,118,115,34,58,91,91,52,53,50,44,51,50,93,44, + 91,52,56,52,44,51,50,93,44,91,52,56,52,44,52,56,93, + 44,91,52,53,50,44,52,56,93,93,125,125,44,123,34,110,97, + 109,101,34,58,34,51,46,112,110,103,34,44,34,115,105,122,101, + 34,58,91,49,57,50,44,56,48,93,44,34,115,112,114,105,116, + 101,95,114,101,99,116,34,58,91,48,44,48,44,49,57,50,44, + 56,48,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, + 91,48,44,48,44,49,57,50,44,56,48,93,44,34,109,101,115, + 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, + 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, + 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, + 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, + 34,58,91,91,48,44,48,93,44,91,49,57,50,44,48,93,44, + 91,49,57,50,44,56,48,93,44,91,48,44,56,48,93,93,44, + 34,117,118,115,34,58,91,91,48,44,48,93,44,91,49,57,50, + 44,48,93,44,91,49,57,50,44,56,48,93,44,91,48,44,56, + 48,93,93,125,125,44,123,34,110,97,109,101,34,58,34,52,46, + 112,110,103,34,44,34,115,105,122,101,34,58,91,52,56,44,51, + 50,93,44,34,115,112,114,105,116,101,95,114,101,99,116,34,58, + 91,48,44,48,44,52,56,44,51,50,93,44,34,115,104,101,101, + 116,95,114,101,99,116,34,58,91,50,52,48,44,48,44,50,56, + 56,44,51,50,93,44,34,109,101,115,104,34,58,123,34,110,117, + 109,95,116,114,105,115,34,58,50,44,34,110,117,109,95,118,101, + 114,116,105,99,101,115,34,58,52,44,34,105,110,100,105,99,101, + 115,34,58,91,48,44,49,44,50,44,48,44,50,44,51,93,44, + 34,112,111,115,105,116,105,111,110,115,34,58,91,91,48,44,48, + 93,44,91,52,56,44,48,93,44,91,52,56,44,51,50,93,44, + 91,48,44,51,50,93,93,44,34,117,118,115,34,58,91,91,50, + 52,48,44,48,93,44,91,50,56,56,44,48,93,44,91,50,56, + 56,44,51,50,93,44,91,50,52,48,44,51,50,93,93,125,125, + 44,123,34,110,97,109,101,34,58,34,53,46,112,110,103,34,44, + 34,115,105,122,101,34,58,91,50,54,48,44,49,54,93,44,34, + 115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48, + 44,50,54,48,44,49,54,93,44,34,115,104,101,101,116,95,114, + 101,99,116,34,58,91,49,57,50,44,51,50,44,52,53,50,44, + 52,56,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95, + 116,114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116, + 105,99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34, + 58,91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112, + 111,115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44, + 91,50,54,48,44,48,93,44,91,50,54,48,44,49,54,93,44, + 91,48,44,49,54,93,93,44,34,117,118,115,34,58,91,91,49, + 57,50,44,51,50,93,44,91,52,53,50,44,51,50,93,44,91, + 52,53,50,44,52,56,93,44,91,49,57,50,44,52,56,93,93, + 125,125,44,123,34,110,97,109,101,34,58,34,54,46,112,110,103, + 34,44,34,115,105,122,101,34,58,91,52,56,44,49,54,93,44, + 34,115,112,114,105,116,101,95,114,101,99,116,34,58,91,48,44, + 48,44,52,56,44,49,54,93,44,34,115,104,101,101,116,95,114, + 101,99,116,34,58,91,52,53,50,44,48,44,53,48,48,44,49, + 54,93,44,34,109,101,115,104,34,58,123,34,110,117,109,95,116, + 114,105,115,34,58,50,44,34,110,117,109,95,118,101,114,116,105, + 99,101,115,34,58,52,44,34,105,110,100,105,99,101,115,34,58, + 91,48,44,49,44,50,44,48,44,50,44,51,93,44,34,112,111, + 115,105,116,105,111,110,115,34,58,91,91,48,44,48,93,44,91, + 52,56,44,48,93,44,91,52,56,44,49,54,93,44,91,48,44, + 49,54,93,93,44,34,117,118,115,34,58,91,91,52,53,50,44, + 48,93,44,91,53,48,48,44,48,93,44,91,53,48,48,44,49, + 54,93,44,91,52,53,50,44,49,54,93,93,125,125,44,123,34, + 110,97,109,101,34,58,34,55,46,112,110,103,34,44,34,115,105, + 122,101,34,58,91,49,50,54,44,49,54,93,44,34,115,112,114, + 105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,49,50, + 54,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, + 34,58,91,49,57,50,44,52,56,44,51,49,56,44,54,52,93, + 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, + 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, + 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, + 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, + 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,49,50, + 54,44,48,93,44,91,49,50,54,44,49,54,93,44,91,48,44, + 49,54,93,93,44,34,117,118,115,34,58,91,91,49,57,50,44, + 52,56,93,44,91,51,49,56,44,52,56,93,44,91,51,49,56, + 44,54,52,93,44,91,49,57,50,44,54,52,93,93,125,125,93, + 125, +}; diff --git a/src/texture-bank/include/generated/main-menu-spritesheet.png.hpp b/src/assets/generated/files/main-menu.png.hpp similarity index 99% rename from src/texture-bank/include/generated/main-menu-spritesheet.png.hpp rename to src/assets/generated/files/main-menu.png.hpp index 8c9ad5d3..d752f3af 100644 --- a/src/texture-bank/include/generated/main-menu-spritesheet.png.hpp +++ b/src/assets/generated/files/main-menu.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: main-menu-spritesheet.png, at: Sat May 15 20:49:47 2021 +// Generated from: tilesheets/main-menu.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 15432; +const char* path = "tilesheets/main-menu.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,-128,8,6,0,0,0,125,87,-47,11,0, diff --git a/src/texture-bank/include/generated/npc.json.hpp b/src/assets/generated/files/npc.json.hpp similarity index 99% rename from src/texture-bank/include/generated/npc.json.hpp rename to src/assets/generated/files/npc.json.hpp index 484cf0ca..a556fdff 100644 --- a/src/texture-bank/include/generated/npc.json.hpp +++ b/src/assets/generated/files/npc.json.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: npc.json, at: Mon Sep 13 21:30:24 2021 +// Generated from: tilesheets/npc.json, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 38770; +const char* path = "tilesheets/npc.json"; +static const char data[] = { 123,34,105,109,97,103,101,34,58,34,110,112,99,46,112,110,103, 34,44,34,105,109,97,103,101,95,119,105,100,116,104,34,58,53, diff --git a/src/texture-bank/include/generated/npc.png.hpp b/src/assets/generated/files/npc.png.hpp similarity index 99% rename from src/texture-bank/include/generated/npc.png.hpp rename to src/assets/generated/files/npc.png.hpp index 4893951f..ae8a90a9 100644 --- a/src/texture-bank/include/generated/npc.png.hpp +++ b/src/assets/generated/files/npc.png.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: npc.png, at: Mon Sep 13 21:30:29 2021 +// Generated from: tilesheets/npc.png, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 23115; +const char* path = "tilesheets/npc.png"; +static const char data[] = { -119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0, 0,2,0,0,0,0,-128,8,6,0,0,0,125,87,-47,11,0, diff --git a/src/audio/include/generated/pickup.wav.hpp b/src/assets/generated/files/pickup.wav.hpp similarity index 99% rename from src/audio/include/generated/pickup.wav.hpp rename to src/assets/generated/files/pickup.wav.hpp index afcb4424..43bcdd63 100644 --- a/src/audio/include/generated/pickup.wav.hpp +++ b/src/assets/generated/files/pickup.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: pickup.wav, at: Wed Feb 17 18:53:32 2021 +// Generated from: audio/pickup.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 46682; +const char* path = "audio/pickup.wav"; +static const char data[] = { 82,73,70,70,82,-74,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/shotgun.wav.hpp b/src/assets/generated/files/shotgun.wav.hpp similarity index 99% rename from src/audio/include/generated/shotgun.wav.hpp rename to src/assets/generated/files/shotgun.wav.hpp index 6516cf49..367840d1 100644 --- a/src/audio/include/generated/shotgun.wav.hpp +++ b/src/assets/generated/files/shotgun.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: shotgun.wav, at: Wed Feb 17 18:53:35 2021 +// Generated from: audio/shotgun.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 45290; +const char* path = "audio/shotgun.wav"; +static const char data[] = { 82,73,70,70,-30,-80,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/throw.wav.hpp b/src/assets/generated/files/throw.wav.hpp similarity index 99% rename from src/audio/include/generated/throw.wav.hpp rename to src/assets/generated/files/throw.wav.hpp index ed87d0f9..d1c04cab 100644 --- a/src/audio/include/generated/throw.wav.hpp +++ b/src/assets/generated/files/throw.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: throw.wav, at: Wed Feb 17 18:53:41 2021 +// Generated from: audio/throw.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 19854; +const char* path = "audio/throw.wav"; +static const char data[] = { 82,73,70,70,-122,77,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/title.wav.hpp b/src/assets/generated/files/title.wav.hpp similarity index 99% rename from src/audio/include/generated/title.wav.hpp rename to src/assets/generated/files/title.wav.hpp index b12a403b..6ffd87fc 100644 --- a/src/audio/include/generated/title.wav.hpp +++ b/src/assets/generated/files/title.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: title_2.wav, at: Sun Aug 16 13:09:51 2020 +// Generated from: audio/title.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 3621198; +const char* path = "audio/title.wav"; +static const char data[] = { 82,73,70,70,70,65,55,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/audio/include/generated/whip.wav.hpp b/src/assets/generated/files/whip.wav.hpp similarity index 99% rename from src/audio/include/generated/whip.wav.hpp rename to src/assets/generated/files/whip.wav.hpp index 85744ec0..541254f4 100644 --- a/src/audio/include/generated/whip.wav.hpp +++ b/src/assets/generated/files/whip.wav.hpp @@ -1,7 +1,8 @@ -#pragma once -// Generated from: whip.wav, at: Sun Aug 16 14:07:02 2020 +// Generated from: audio/whip.wav, at: Sun Aug 18 21:51:29 2024 -char data[] = +const std::size_t size = 10954; +const char* path = "audio/whip.wav"; +static const char data[] = { 82,73,70,70,-62,42,0,0,87,65,86,69,102,109,116,32,16, 0,0,0,1,0,1,0,68,-84,0,0,-120,88,1,0,2,0, diff --git a/src/assets/interface/assets/Assets.hpp b/src/assets/interface/assets/Assets.hpp new file mode 100644 index 00000000..eeb34701 --- /dev/null +++ b/src/assets/interface/assets/Assets.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "patterns/Singleton.hpp" + +#include +#include + +class Assets : public Singleton { +public: + + ~Assets(); + + struct ImplementationDefined; + + bool load(); + + std::pair get(const char *path) const; + + std::size_t get_size(const char *path) const; + + const char *get_ptr(const char *path) const; + + template + T get_ptr(const char *path) const { + return reinterpret_cast(const_cast(get_ptr(path))); + } + + DELETE_COPY_MOVE_CONSTRUCTORS(Assets) + + FRIEND_SINGLETON(Assets) + +private: + std::unique_ptr _impl; + + Assets(); +}; diff --git a/src/assets/interface/assets/Paths.hpp b/src/assets/interface/assets/Paths.hpp new file mode 100644 index 00000000..f9aecbec --- /dev/null +++ b/src/assets/interface/assets/Paths.hpp @@ -0,0 +1,44 @@ +#pragma once + +namespace Paths { + namespace Spritesheets { + extern const char *LEVEL_TILES_JSON; + extern const char *LEVEL_TILES_PNG; + extern const char *NPC_JSON; + extern const char *NPC_PNG; + extern const char *FONT_JSON; + extern const char *FONT_PNG; + extern const char *MAIN_MENU_JSON; + extern const char *MAIN_MENU_PNG; + extern const char *HUD_JSON; + extern const char *HUD_PNG; + extern const char *COLLECTIBLES_JSON; + extern const char *COLLECTIBLES_PNG; + extern const char *MAIN_DUDE_JSON; + extern const char *MAIN_DUDE_PNG; + } + + namespace Audio { + extern const char *TITLE_THEME; + extern const char *CAVE_THEME; + extern const char *CHEST_OPEN; + extern const char *CLIMB1; + extern const char *CLIMB2; + extern const char *PICKUP; + extern const char *HURT; + extern const char *WHIP; + extern const char *KISS; + extern const char *JUMP; + extern const char *GEM; + extern const char *DIE; + extern const char *EXPLOSION; + extern const char *BAT; + extern const char *HIT; + extern const char *ENTERING_DOOR; + extern const char *ARROW_TRAP; + extern const char *SHOTGUN; + extern const char *JETPACK; + extern const char *COIN; + extern const char *ITEM_THROW; + } +} diff --git a/src/assets/src/Assets.cpp b/src/assets/src/Assets.cpp new file mode 100644 index 00000000..f55a268f --- /dev/null +++ b/src/assets/src/Assets.cpp @@ -0,0 +1,3 @@ +#include "assets/Assets.hpp" + +REGISTER_SINGLETON_INSTANCE(Assets) \ No newline at end of file diff --git a/src/assets/src/AssetsRealFilesystem.cpp b/src/assets/src/AssetsRealFilesystem.cpp new file mode 100644 index 00000000..3ac211b8 --- /dev/null +++ b/src/assets/src/AssetsRealFilesystem.cpp @@ -0,0 +1,139 @@ +#include "assets/Assets.hpp" +#include "logger/log.h" + +#include +#include +#include +#include +#include +#include + +using Contents = std::vector; +using PathToContentsMapping = std::map; + +struct Assets::ImplementationDefined { + PathToContentsMapping files; +}; + +namespace { + const std::filesystem::path SEARCH_PATHS[] = + { + "../assets/filesystem/", + "./assets/filesystem/" + }; + + std::optional detect_assets_path() { + for (const auto &path: SEARCH_PATHS) { + log_info("Checking for assets presence in: %s", path.c_str()); + if (std::filesystem::exists(path)) { + return path; + } + } + return {}; + } + + void find_files_recursive( + const std::filesystem::path &directory_path, + const std::function &on_file_found) { + for (const auto &entry: std::filesystem::directory_iterator(directory_path)) { + if (entry.is_directory()) { + find_files_recursive(entry, on_file_found); + } else if (entry.is_regular_file()) { + on_file_found(entry); + } + } + } + + std::optional load_file(const std::filesystem::path &file_path) { + std::ifstream input(file_path, std::ifstream::binary | std::ifstream::in); + if (!input.is_open()) { + log_error("Failed to open given file for reading: %s", file_path.c_str()); + return {}; + } + + std::vector output; + + input.seekg(0, std::ifstream::end); + auto file_len = input.tellg(); + input.seekg(0, std::ifstream::beg); + + output.resize(file_len); + input.read(output.data(), output.size()); + + if (!input.good() && input.eof()) { + log_error("Failed reading file: %s", file_path.c_str()); + return {}; + } + + return output; + } + + PathToContentsMapping generate_file_database(const std::filesystem::path &assets_path) { + PathToContentsMapping out_db; + const auto on_file_found = [&out_db, &assets_path](const std::filesystem::path &path) { + auto contents = load_file(path); + if (contents) { + // todo helper method: remove prefix + std::string no_prefix = path.string(); + auto it = no_prefix.find(assets_path.string()); + assert(it != no_prefix.size()); + no_prefix.erase(it, assets_path.string().size()); + + log_info("Inserting: %s with size %llu", no_prefix.c_str(), contents->size()); + out_db.insert_or_assign(no_prefix, *contents); + } + }; + find_files_recursive(assets_path, on_file_found); + return out_db; + } +} + +Assets::Assets() : _impl(std::make_unique()) { +} + +bool Assets::load() { + log_info("Entering Assets::load"); + + std::optional assets_path = detect_assets_path(); + + if (!assets_path) { + log_error("Failed to find assets directory!"); + return false; + } + + log_info("Assets found: %s", assets_path->c_str()); + _impl->files = generate_file_database(*assets_path); + + log_info("Reading database:"); + for (const auto &kv: _impl->files) { + log_info("%s: %llu bytes", kv.first.c_str(), kv.second); + } + + log_info("Exiting Assets::load, success."); + return true; +} + +std::pair Assets::get(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return {entry_it->second.data(), entry_it->second.size()}; +} + +std::size_t Assets::get_size(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return entry_it->second.size(); +} + +const char *Assets::get_ptr(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return entry_it->second.data(); +} + +Assets::~Assets() { + // for pimpl +} diff --git a/src/assets/src/AssetsVirtualFilesystem.cpp b/src/assets/src/AssetsVirtualFilesystem.cpp new file mode 100644 index 00000000..f2c4b623 --- /dev/null +++ b/src/assets/src/AssetsVirtualFilesystem.cpp @@ -0,0 +1,57 @@ +#include "assets/Assets.hpp" +#include "VirtualFileIndex.hpp" + +#include + +#include +#include +#include + +struct Contents { + Contents(const char* data, std::size_t size) : data(data), size(size) {} + const char* data; + std::size_t size; +}; +using Path = std::string; +using PathToContentsMapping = std::map; + +struct Assets::ImplementationDefined { + PathToContentsMapping files; +}; + +Assets::~Assets() { + // For pimpl +} + +Assets::Assets() : _impl(std::make_unique()) { +} + +bool Assets::load() { + for (const auto& virtual_file : get_resource_compiled_files()) { + log_info("Bundled file: %s", virtual_file.path); + _impl->files.insert_or_assign(std::string(virtual_file.path), Contents{virtual_file.data, virtual_file.size}); + } + + return true; +} + +std::pair Assets::get(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return {entry_it->second.data, entry_it->second.size}; +} + +std::size_t Assets::get_size(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return entry_it->second.size; +} + +const char *Assets::get_ptr(const char *path) const { + const auto &files = _impl->files; + auto entry_it = files.find(path); + assert(entry_it != files.end()); + return entry_it->second.data; +} \ No newline at end of file diff --git a/src/assets/src/Paths.cpp b/src/assets/src/Paths.cpp new file mode 100644 index 00000000..276a00d0 --- /dev/null +++ b/src/assets/src/Paths.cpp @@ -0,0 +1,45 @@ +#include "assets/Paths.hpp" + +// TODO: Map this for faster access? +namespace Paths { + namespace Spritesheets { + const char *LEVEL_TILES_JSON = "tilesheets/level-tiles.json"; + const char *LEVEL_TILES_PNG = "tilesheets/level-tiles.png"; + const char *NPC_JSON = "tilesheets/npc.json"; + const char *NPC_PNG = "tilesheets/npc.png"; + const char *FONT_JSON = "tilesheets/font.json"; + const char *FONT_PNG = "tilesheets/font.png"; + const char *MAIN_MENU_JSON = "tilesheets/main-menu.json"; + const char *MAIN_MENU_PNG = "tilesheets/main-menu.png"; + const char *HUD_JSON = "tilesheets/hud.json"; + const char *HUD_PNG = "tilesheets/hud.png"; + const char *COLLECTIBLES_JSON = "tilesheets/collectibles.json"; + const char *COLLECTIBLES_PNG = "tilesheets/collectibles.png"; + const char *MAIN_DUDE_JSON = "tilesheets/main-dude.json"; + const char *MAIN_DUDE_PNG = "tilesheets/main-dude.png"; + } + + namespace Audio { + const char *TITLE_THEME = "audio/title.wav"; + const char *CAVE_THEME = "audio/cave.wav"; + const char *CHEST_OPEN = "audio/chestopen.wav"; + const char *CLIMB1 = "audio/climb1.wav"; + const char *CLIMB2 = "audio/climb2.wav"; + const char *PICKUP = "audio/pickup.wav"; + const char *HURT = "audio/hurt.wav"; + const char *WHIP = "audio/whip.wav"; + const char *KISS = "audio/kiss.wav"; + const char *JUMP = "audio/jump.wav"; + const char *GEM = "audio/gem.wav"; + const char *DIE = "audio/die.wav"; + const char *EXPLOSION = "audio/explosion.wav"; + const char *BAT = "audio/bat.wav"; + const char *HIT = "audio/hit.wav"; + const char *ENTERING_DOOR = "audio/entering_door.wav"; + const char *ARROW_TRAP = "audio/arrowtrap.wav"; + const char *SHOTGUN = "audio/shotgun.wav"; + const char *JETPACK = "audio/jetpack.wav"; + const char *COIN = "audio/coin.wav"; + const char *ITEM_THROW = "audio/throw.wav"; + } +} diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index 502e62b7..917cb60a 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -1,21 +1,10 @@ project(Audio) add_library(Audio STATIC - include/AudioBank.hpp interface/audio/Audio.hpp interface/audio/SFXType.hpp interface/audio/MusicType.hpp - # Compile AudioBank only when it is actually utilized on target platform: - $,src/AudioBank.cpp,> - $,src/AudioBank.cpp,> - $,src/AudioBank.cpp,> - $,src/AudioBank.cpp,> - # Compile audio backend (dummy when audio is not supported): - $,src/Audio_SDL_mixer.cpp,> - $,src/Audio_SDL_mixer.cpp,> - $,src/Audio_SDL_mixer.cpp,> - $,src/Audio_SDL_mixer.cpp,> - $,src/Audio_Dummy.cpp,> + src/Audio_SDL_mixer.cpp ) if (NOT SPELUNKY_PSP_PLATFORM_WINDOWS) @@ -42,6 +31,7 @@ target_link_libraries(Audio Patterns PRIVATE Logger + Assets $,SDL_2_XX,> $,SDL_1_XX,> $,SDL_2_XX,> diff --git a/src/audio/include/AudioBank.hpp b/src/audio/include/AudioBank.hpp deleted file mode 100644 index 7787ace1..00000000 --- a/src/audio/include/AudioBank.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include - -// Intermediate compilation unit to include resource-compiled music and sound effects. -// This way recompilation is faster when changing something Audio-related. - -namespace audio_bank -{ - const char* get_title_theme_wav(); - const char* get_cave_theme_wav(); - const char* get_jump_wav(); - const char* get_whip_wav(); - const char* get_entering_door_wav(); - const char* get_die_wav(); - const char* get_hurt_wav(); - const char* get_coin_wav(); - const char* get_climb_1_wav(); - const char* get_climb_2_wav(); - const char* get_arrow_trap_wav(); - const char* get_bat_wav(); - const char* get_chest_open_wav(); - const char* get_explosion_wav(); - const char* get_gem_wav(); - const char* get_hit_wav(); - const char* get_jetpack_wav(); - const char* get_pickup_wav(); - const char* get_shotgun_wav(); - const char* get_throw_wav(); - const char* get_kiss_wav(); -}; diff --git a/src/audio/src/AudioBank.cpp b/src/audio/src/AudioBank.cpp deleted file mode 100644 index 59d2cc69..00000000 --- a/src/audio/src/AudioBank.cpp +++ /dev/null @@ -1,211 +0,0 @@ -#include "AudioBank.hpp" - -namespace title_wav -{ - #include "generated/title.wav.hpp" -} - -namespace cave_wav -{ - #include "generated/cave.wav.hpp" -} - -namespace jump_wav -{ - #include "generated/jump.wav.hpp" -} - -namespace whip_wav -{ - #include "generated/whip.wav.hpp" -} - -namespace entering_door_wav -{ - #include "generated/entering_door.wav.hpp" -} - -namespace die_wav -{ - #include "generated/die.wav.hpp" -} - -namespace hurt_wav -{ - #include "generated/hurt.wav.hpp" -} - -namespace coin_wav -{ - #include "generated/coin.wav.hpp" -} - -namespace climb_1_wav -{ - #include "generated/climb1.wav.hpp" -} - -namespace climb_2_wav -{ - #include "generated/climb2.wav.hpp" -} - -namespace arrow_trap -{ - #include "generated/arrowtrap.wav.hpp" -} - -namespace bat -{ - #include "generated/bat.wav.hpp" -} - -namespace chest_open -{ - #include "generated/chestopen.wav.hpp" -} - -namespace explosion -{ - #include "generated/explosion.wav.hpp" -} - -namespace gem -{ - #include "generated/gem.wav.hpp" -} - -namespace hit -{ - #include "generated/hit.wav.hpp" -} - -namespace jetpack -{ - #include "generated/jetpack.wav.hpp" -} - -namespace pickup -{ - #include "generated/pickup.wav.hpp" -} - -namespace shotgun -{ - #include "generated/shotgun.wav.hpp" -} - -namespace kiss -{ - #include "generated/kiss.wav.hpp" -} - -namespace _throw -{ - #include "generated/throw.wav.hpp" -} - -const char *audio_bank::get_title_theme_wav() -{ - return &title_wav::data[0]; -} - -const char *audio_bank::get_cave_theme_wav() -{ - return &cave_wav::data[0]; -} - -const char *audio_bank::get_jump_wav() -{ - return &jump_wav::data[0]; -} - -const char *audio_bank::get_whip_wav() -{ - return &whip_wav::data[0]; -} - -const char *audio_bank::get_entering_door_wav() -{ - return &entering_door_wav::data[0]; -} - -const char *audio_bank::get_die_wav() -{ - return &die_wav::data[0]; -} - -const char *audio_bank::get_hurt_wav() -{ - return &hurt_wav::data[0]; -} - -const char *audio_bank::get_coin_wav() -{ - return &coin_wav::data[0]; -} - -const char *audio_bank::get_climb_1_wav() -{ - return &climb_1_wav::data[0]; -} - -const char *audio_bank::get_climb_2_wav() -{ - return &climb_2_wav::data[0]; -} - -const char *audio_bank::get_arrow_trap_wav() -{ - return &arrow_trap::data[0]; -} - -const char *audio_bank::get_bat_wav() -{ - return &bat::data[0]; -} - -const char *audio_bank::get_chest_open_wav() -{ - return &chest_open::data[0]; -} - -const char *audio_bank::get_explosion_wav() -{ - return &explosion::data[0]; -} - -const char *audio_bank::get_gem_wav() -{ - return &gem::data[0]; -} - -const char *audio_bank::get_hit_wav() -{ - return &hit::data[0]; -} - -const char *audio_bank::get_jetpack_wav() -{ - return &jetpack::data[0]; -} - -const char *audio_bank::get_pickup_wav() -{ - return &pickup::data[0]; -} - -const char *audio_bank::get_shotgun_wav() -{ - return &shotgun::data[0]; -} - -const char *audio_bank::get_throw_wav() -{ - return &_throw::data[0]; -} - -const char *audio_bank::get_kiss_wav() -{ - return &kiss::data[0]; -} diff --git a/src/audio/src/Audio_Dummy.cpp b/src/audio/src/Audio_Dummy.cpp deleted file mode 100644 index 1b2e65bd..00000000 --- a/src/audio/src/Audio_Dummy.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "audio/Audio.hpp" -#include "logger/log.h" - -REGISTER_SINGLETON_INSTANCE(Audio) - -struct Audio::Handles -{ -}; - -Audio::Audio() : _handles(std::make_unique()) {} -Audio::~Audio() = default; // For pimpl - -bool Audio::setup_audio() -{ - log_info("Entering Audio::setup_audio (dummy)"); - log_info("Exiting Audio::setup_audio (dummy), success."); - return true; -} - -void Audio::tear_down_audio() -{ -} - -void Audio::play(MusicType music) -{ -} - -void Audio::play(SFXType sfx) -{ -} - -void Audio::stop() -{ -} - -void Audio::pause() -{ -} - -void Audio::unpause() -{ -} - -void Audio::load() -{ - log_info("Loading music and sound effects (dummy)."); -} - -void Audio::unload() -{ - log_info("Unloading music and sound effects (dummy)."); -} diff --git a/src/audio/src/Audio_SDL_mixer.cpp b/src/audio/src/Audio_SDL_mixer.cpp index 37d280dc..1dbfd870 100644 --- a/src/audio/src/Audio_SDL_mixer.cpp +++ b/src/audio/src/Audio_SDL_mixer.cpp @@ -1,5 +1,6 @@ #include "audio/Audio.hpp" -#include "AudioBank.hpp" +#include "assets/Assets.hpp" +#include "assets/Paths.hpp" #include "logger/log.h" // FIXME: Forcing SDL2; move all platforms to SDL2 (Windows left) @@ -33,7 +34,7 @@ struct Audio::Handles Mix_Chunk* pickup = nullptr; Mix_Chunk* shotgun = nullptr; Mix_Chunk* kiss = nullptr; - Mix_Chunk* _throw = nullptr; + Mix_Chunk* item_throw = nullptr; }; Audio::Audio() : _handles(std::make_unique()) {} @@ -183,7 +184,7 @@ void Audio::play(SFXType sfx) case SFXType::PICKUP: Mix_PlayChannel(FIRST_FREE_CHANNEL, _handles->pickup, 0); break; case SFXType::SHOTGUN: Mix_PlayChannel(FIRST_FREE_CHANNEL, _handles->shotgun, 0); break; case SFXType::KISS: Mix_PlayChannel(FIRST_FREE_CHANNEL, _handles->kiss, 0); break; - case SFXType::THROW: Mix_PlayChannel(FIRST_FREE_CHANNEL, _handles->_throw, 0); break; + case SFXType::THROW: Mix_PlayChannel(FIRST_FREE_CHANNEL, _handles->item_throw, 0); break; default: assert(false); break; } } @@ -207,48 +208,30 @@ void Audio::load() { log_info("Loading music and sound effects."); - _handles->title_music = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_title_theme_wav()))); - assert(_handles->title_music); - _handles->cave_music = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_cave_theme_wav()))); - assert(_handles->cave_music); - _handles->jump = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_jump_wav()))); - assert(_handles->jump); - _handles->whip = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_whip_wav()))); - assert(_handles->whip); - _handles->entering_door = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_entering_door_wav()))); - assert(_handles->entering_door); - _handles->die = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_die_wav()))); - assert(_handles->die); - _handles->hurt = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_hurt_wav()))); - assert(_handles->hurt); - _handles->coin = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_coin_wav()))); - assert(_handles->coin); - _handles->climb_1 = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_climb_1_wav()))); - assert(_handles->climb_1); - _handles->climb_2 = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_climb_2_wav()))); - assert(_handles->climb_2); - _handles->arrow_trap = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_arrow_trap_wav()))); - assert(_handles->arrow_trap); - _handles->bat = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_bat_wav()))); - assert(_handles->bat); - _handles->chest_open = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_chest_open_wav()))); - assert(_handles->chest_open); - _handles->explosion = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_explosion_wav()))); - assert(_handles->explosion); - _handles->gem = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_gem_wav()))); - assert(_handles->gem); - _handles->hit = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_hit_wav()))); - assert(_handles->hit); - _handles->jetpack = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_jetpack_wav()))); - assert(_handles->jetpack); - _handles->pickup = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_pickup_wav()))); - assert(_handles->pickup); - _handles->shotgun = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_shotgun_wav()))); - assert(_handles->shotgun); - _handles->kiss = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_kiss_wav()))); - assert(_handles->kiss); - _handles->_throw = Mix_QuickLoad_WAV(reinterpret_cast(const_cast(audio_bank::get_throw_wav()))); - assert(_handles->_throw); + // TODO: Internal map of handles to SFXType/Path to easily iterate over all handles and assert/release/play + #define LOAD(HANDLE, PATH) HANDLE = Mix_QuickLoad_WAV(Assets::instance().get_ptr(PATH)); assert(HANDLE); + LOAD(_handles->title_music, Paths::Audio::TITLE_THEME); + LOAD(_handles->cave_music, Paths::Audio::CAVE_THEME); + LOAD(_handles->jump, Paths::Audio::JUMP); + LOAD(_handles->whip, Paths::Audio::WHIP); + LOAD(_handles->entering_door, Paths::Audio::ENTERING_DOOR); + LOAD(_handles->die, Paths::Audio::DIE); + LOAD(_handles->hurt, Paths::Audio::HURT); + LOAD(_handles->coin, Paths::Audio::COIN); + LOAD(_handles->climb_1, Paths::Audio::CLIMB1); + LOAD(_handles->climb_2, Paths::Audio::CLIMB2); + LOAD(_handles->arrow_trap, Paths::Audio::ARROW_TRAP); + LOAD(_handles->bat, Paths::Audio::BAT); + LOAD(_handles->chest_open, Paths::Audio::CHEST_OPEN); + LOAD(_handles->explosion, Paths::Audio::EXPLOSION); + LOAD(_handles->gem, Paths::Audio::GEM); + LOAD(_handles->hit, Paths::Audio::HIT); + LOAD(_handles->jetpack, Paths::Audio::JETPACK); + LOAD(_handles->pickup, Paths::Audio::PICKUP); + LOAD(_handles->shotgun, Paths::Audio::SHOTGUN); + LOAD(_handles->kiss, Paths::Audio::KISS); + LOAD(_handles->item_throw, Paths::Audio::ITEM_THROW); + #undef LOAD } void Audio::unload() @@ -275,5 +258,5 @@ void Audio::unload() Mix_FreeChunk(_handles->pickup); _handles->pickup = nullptr; Mix_FreeChunk(_handles->shotgun); _handles->shotgun = nullptr; Mix_FreeChunk(_handles->kiss); _handles->kiss = nullptr; - Mix_FreeChunk(_handles->_throw); _handles->_throw = nullptr; + Mix_FreeChunk(_handles->item_throw); _handles->item_throw = nullptr; } diff --git a/src/input/src/Input_Darwin.cpp b/src/input/src/Input_Darwin.cpp index 1bbfb916..ec98f9dc 100644 --- a/src/input/src/Input_Darwin.cpp +++ b/src/input/src/Input_Darwin.cpp @@ -48,6 +48,7 @@ void Input::poll() _toggles.out_bomb.reset_changed(); _toggles.out_rope.reset_changed(); _toggles.purchase.reset_changed(); + _toggles.cheat_console.reset_changed(); SDL_Event event{}; @@ -114,6 +115,10 @@ void Input::poll() { _toggles.out_rope.feed(v); } + else if (key == SDLK_TAB) + { + _toggles.cheat_console.feed(v); + } } } diff --git a/src/texture-bank/CMakeLists.txt b/src/texture-bank/CMakeLists.txt index 162a40fe..4f43e8a5 100644 --- a/src/texture-bank/CMakeLists.txt +++ b/src/texture-bank/CMakeLists.txt @@ -43,6 +43,7 @@ target_link_libraries(TextureBank Logger GraphicsUtils cjson + Assets ) if (SPELUNKY_PSP_PLATFORM_LINUX) diff --git a/src/texture-bank/include/generated/main-menu-spritesheet.json.hpp b/src/texture-bank/include/generated/main-menu-spritesheet.json.hpp deleted file mode 100644 index 36f797a3..00000000 --- a/src/texture-bank/include/generated/main-menu-spritesheet.json.hpp +++ /dev/null @@ -1,122 +0,0 @@ -#pragma once -// Generated from: main-menu-spritesheet.json, at: Sat May 15 20:49:42 2021 - -char data[] = -{ - 123,34,105,109,97,103,101,34,58,34,109,97,105,110,45,109,101, - 110,117,45,115,112,114,105,116,101,115,104,101,101,116,46,112,110, - 103,34,44,34,105,109,97,103,101,95,119,105,100,116,104,34,58, - 53,49,50,44,34,105,109,97,103,101,95,104,101,105,103,104,116, - 34,58,49,50,56,44,34,115,112,114,105,116,101,115,34,58,91, - 123,34,110,97,109,101,34,58,34,48,46,112,110,103,34,44,34, - 115,105,122,101,34,58,91,51,50,44,49,54,93,44,34,115,112, - 114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44,51, - 50,44,49,54,93,44,34,115,104,101,101,116,95,114,101,99,116, - 34,58,91,52,53,50,44,49,54,44,52,56,52,44,51,50,93, - 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, - 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, - 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, - 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, - 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,51,50, - 44,48,93,44,91,51,50,44,49,54,93,44,91,48,44,49,54, - 93,93,44,34,117,118,115,34,58,91,91,52,53,50,44,49,54, - 93,44,91,52,56,52,44,49,54,93,44,91,52,56,52,44,51, - 50,93,44,91,52,53,50,44,51,50,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,49,46,112,110,103,34,44,34,115,105, - 122,101,34,58,91,52,56,44,51,50,93,44,34,115,112,114,105, - 116,101,95,114,101,99,116,34,58,91,48,44,48,44,52,56,44, - 51,50,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, - 91,49,57,50,44,48,44,50,52,48,44,51,50,93,44,34,109, - 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, - 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, - 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, - 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, - 110,115,34,58,91,91,48,44,48,93,44,91,52,56,44,48,93, - 44,91,52,56,44,51,50,93,44,91,48,44,51,50,93,93,44, - 34,117,118,115,34,58,91,91,49,57,50,44,48,93,44,91,50, - 52,48,44,48,93,44,91,50,52,48,44,51,50,93,44,91,49, - 57,50,44,51,50,93,93,125,125,44,123,34,110,97,109,101,34, - 58,34,50,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 51,50,44,49,54,93,44,34,115,112,114,105,116,101,95,114,101, - 99,116,34,58,91,48,44,48,44,51,50,44,49,54,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,52,53,50,44, - 51,50,44,52,56,52,44,52,56,93,44,34,109,101,115,104,34, - 58,123,34,110,117,109,95,116,114,105,115,34,58,50,44,34,110, - 117,109,95,118,101,114,116,105,99,101,115,34,58,52,44,34,105, - 110,100,105,99,101,115,34,58,91,48,44,49,44,50,44,48,44, - 50,44,51,93,44,34,112,111,115,105,116,105,111,110,115,34,58, - 91,91,48,44,48,93,44,91,51,50,44,48,93,44,91,51,50, - 44,49,54,93,44,91,48,44,49,54,93,93,44,34,117,118,115, - 34,58,91,91,52,53,50,44,51,50,93,44,91,52,56,52,44, - 51,50,93,44,91,52,56,52,44,52,56,93,44,91,52,53,50, - 44,52,56,93,93,125,125,44,123,34,110,97,109,101,34,58,34, - 51,46,112,110,103,34,44,34,115,105,122,101,34,58,91,49,57, - 50,44,56,48,93,44,34,115,112,114,105,116,101,95,114,101,99, - 116,34,58,91,48,44,48,44,49,57,50,44,56,48,93,44,34, - 115,104,101,101,116,95,114,101,99,116,34,58,91,48,44,48,44, - 49,57,50,44,56,48,93,44,34,109,101,115,104,34,58,123,34, - 110,117,109,95,116,114,105,115,34,58,50,44,34,110,117,109,95, - 118,101,114,116,105,99,101,115,34,58,52,44,34,105,110,100,105, - 99,101,115,34,58,91,48,44,49,44,50,44,48,44,50,44,51, - 93,44,34,112,111,115,105,116,105,111,110,115,34,58,91,91,48, - 44,48,93,44,91,49,57,50,44,48,93,44,91,49,57,50,44, - 56,48,93,44,91,48,44,56,48,93,93,44,34,117,118,115,34, - 58,91,91,48,44,48,93,44,91,49,57,50,44,48,93,44,91, - 49,57,50,44,56,48,93,44,91,48,44,56,48,93,93,125,125, - 44,123,34,110,97,109,101,34,58,34,52,46,112,110,103,34,44, - 34,115,105,122,101,34,58,91,52,56,44,51,50,93,44,34,115, - 112,114,105,116,101,95,114,101,99,116,34,58,91,48,44,48,44, - 52,56,44,51,50,93,44,34,115,104,101,101,116,95,114,101,99, - 116,34,58,91,50,52,48,44,48,44,50,56,56,44,51,50,93, - 44,34,109,101,115,104,34,58,123,34,110,117,109,95,116,114,105, - 115,34,58,50,44,34,110,117,109,95,118,101,114,116,105,99,101, - 115,34,58,52,44,34,105,110,100,105,99,101,115,34,58,91,48, - 44,49,44,50,44,48,44,50,44,51,93,44,34,112,111,115,105, - 116,105,111,110,115,34,58,91,91,48,44,48,93,44,91,52,56, - 44,48,93,44,91,52,56,44,51,50,93,44,91,48,44,51,50, - 93,93,44,34,117,118,115,34,58,91,91,50,52,48,44,48,93, - 44,91,50,56,56,44,48,93,44,91,50,56,56,44,51,50,93, - 44,91,50,52,48,44,51,50,93,93,125,125,44,123,34,110,97, - 109,101,34,58,34,53,46,112,110,103,34,44,34,115,105,122,101, - 34,58,91,50,54,48,44,49,54,93,44,34,115,112,114,105,116, - 101,95,114,101,99,116,34,58,91,48,44,48,44,50,54,48,44, - 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, - 91,49,57,50,44,51,50,44,52,53,50,44,52,56,93,44,34, - 109,101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34, - 58,50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34, - 58,52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49, - 44,50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105, - 111,110,115,34,58,91,91,48,44,48,93,44,91,50,54,48,44, - 48,93,44,91,50,54,48,44,49,54,93,44,91,48,44,49,54, - 93,93,44,34,117,118,115,34,58,91,91,49,57,50,44,51,50, - 93,44,91,52,53,50,44,51,50,93,44,91,52,53,50,44,52, - 56,93,44,91,49,57,50,44,52,56,93,93,125,125,44,123,34, - 110,97,109,101,34,58,34,54,46,112,110,103,34,44,34,115,105, - 122,101,34,58,91,52,56,44,49,54,93,44,34,115,112,114,105, - 116,101,95,114,101,99,116,34,58,91,48,44,48,44,52,56,44, - 49,54,93,44,34,115,104,101,101,116,95,114,101,99,116,34,58, - 91,52,53,50,44,48,44,53,48,48,44,49,54,93,44,34,109, - 101,115,104,34,58,123,34,110,117,109,95,116,114,105,115,34,58, - 50,44,34,110,117,109,95,118,101,114,116,105,99,101,115,34,58, - 52,44,34,105,110,100,105,99,101,115,34,58,91,48,44,49,44, - 50,44,48,44,50,44,51,93,44,34,112,111,115,105,116,105,111, - 110,115,34,58,91,91,48,44,48,93,44,91,52,56,44,48,93, - 44,91,52,56,44,49,54,93,44,91,48,44,49,54,93,93,44, - 34,117,118,115,34,58,91,91,52,53,50,44,48,93,44,91,53, - 48,48,44,48,93,44,91,53,48,48,44,49,54,93,44,91,52, - 53,50,44,49,54,93,93,125,125,44,123,34,110,97,109,101,34, - 58,34,55,46,112,110,103,34,44,34,115,105,122,101,34,58,91, - 49,50,54,44,49,54,93,44,34,115,112,114,105,116,101,95,114, - 101,99,116,34,58,91,48,44,48,44,49,50,54,44,49,54,93, - 44,34,115,104,101,101,116,95,114,101,99,116,34,58,91,49,57, - 50,44,52,56,44,51,49,56,44,54,52,93,44,34,109,101,115, - 104,34,58,123,34,110,117,109,95,116,114,105,115,34,58,50,44, - 34,110,117,109,95,118,101,114,116,105,99,101,115,34,58,52,44, - 34,105,110,100,105,99,101,115,34,58,91,48,44,49,44,50,44, - 48,44,50,44,51,93,44,34,112,111,115,105,116,105,111,110,115, - 34,58,91,91,48,44,48,93,44,91,49,50,54,44,48,93,44, - 91,49,50,54,44,49,54,93,44,91,48,44,49,54,93,93,44, - 34,117,118,115,34,58,91,91,49,57,50,44,52,56,93,44,91, - 51,49,56,44,52,56,93,44,91,51,49,56,44,54,52,93,44, - 91,49,57,50,44,54,52,93,93,125,125,93,125, -}; diff --git a/src/texture-bank/src/TextureBank.cpp b/src/texture-bank/src/TextureBank.cpp index 433a9121..97ca6a6b 100644 --- a/src/texture-bank/src/TextureBank.cpp +++ b/src/texture-bank/src/TextureBank.cpp @@ -2,6 +2,8 @@ #include "graphics_utils/CreateTexture.hpp" #include "logger/log.h" #include "cJSON.h" +#include "assets/Assets.hpp" +#include "assets/Paths.hpp" #include #include @@ -13,76 +15,6 @@ REGISTER_SINGLETON_INSTANCE(TextureBank) namespace { - namespace level_tiles_png - { - #include "generated/level_tiles.png.hpp" - } - - namespace level_tiles_json - { - #include "generated/level_tiles.json.hpp" - } - - namespace main_dude_png - { - #include "generated/main-dude-spritesheet.png.hpp" - } - - namespace main_dude_json - { - #include "generated/main-dude-spritesheet.json.hpp" - } - - namespace main_menu_png - { - #include "generated/main-menu-spritesheet.png.hpp" - } - - namespace main_menu_json - { - #include "generated/main-menu-spritesheet.json.hpp" - } - - namespace hud_png - { - #include "generated/hud.png.hpp" - } - - namespace hud_json - { - #include "generated/hud.json.hpp" - } - - namespace font_png - { - #include "generated/font.png.hpp" - } - - namespace font_json - { - #include "generated/font.json.hpp" - } - - namespace collectibles_png - { - #include "generated/collectibles.png.hpp" - } - - namespace collectibles_json - { - #include "generated/collectibles.json.hpp" - } - - namespace npc_png - { - #include "generated/npc.png.hpp" - } - - namespace npc_json - { - #include "generated/npc.json.hpp" - } - struct TextureInput { const char *data; @@ -99,26 +31,47 @@ namespace std::vector get_texture_input() { std::vector out; - out.push_back({level_tiles_png::data, sizeof(level_tiles_png::data), TextureType::CAVE_LEVEL_TILES}); - out.push_back({main_dude_png::data, sizeof(main_dude_png::data), TextureType::MAIN_DUDE}); - out.push_back({main_menu_png::data, sizeof(main_menu_png::data), TextureType::MAIN_MENU}); - out.push_back({hud_png::data, sizeof(hud_png::data), TextureType::HUD}); - out.push_back({font_png::data, sizeof(font_png::data), TextureType::FONT}); - out.push_back({collectibles_png::data, sizeof(collectibles_png::data), TextureType::COLLECTIBLES}); - out.push_back({npc_png::data, sizeof(npc_png::data), TextureType::NPC}); + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::LEVEL_TILES_PNG); + out.push_back({ data, size, TextureType::CAVE_LEVEL_TILES} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::MAIN_DUDE_PNG); + out.push_back({ data, size, TextureType::MAIN_DUDE} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::MAIN_MENU_PNG); + out.push_back({ data, size, TextureType::MAIN_MENU} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::HUD_PNG); + out.push_back({ data, size, TextureType::HUD} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::FONT_PNG); + out.push_back({ data, size, TextureType::FONT} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::COLLECTIBLES_PNG); + out.push_back({ data, size, TextureType::COLLECTIBLES} ); + } + { + const auto [data, size] = Assets::instance().get(Paths::Spritesheets::NPC_PNG); + out.push_back({ data, size, TextureType::NPC} ); + } return out; } std::vector get_texture_region_input() { std::vector out; - out.push_back({level_tiles_json::data, TextureType::CAVE_LEVEL_TILES}); - out.push_back({main_dude_json::data, TextureType::MAIN_DUDE}); - out.push_back({main_menu_json::data, TextureType::MAIN_MENU}); - out.push_back({hud_json::data, TextureType::HUD}); - out.push_back({font_json::data, TextureType::FONT}); - out.push_back({collectibles_json::data, TextureType::COLLECTIBLES}); - out.push_back({npc_json::data, TextureType::NPC}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::LEVEL_TILES_JSON), TextureType::CAVE_LEVEL_TILES}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::MAIN_DUDE_JSON), TextureType::MAIN_DUDE}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::MAIN_MENU_JSON), TextureType::MAIN_MENU}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::HUD_JSON), TextureType::HUD}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::FONT_JSON), TextureType::FONT}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::COLLECTIBLES_JSON), TextureType::COLLECTIBLES}); + out.push_back({Assets::instance().get_ptr(Paths::Spritesheets::NPC_JSON), TextureType::NPC}); return out; } } diff --git a/src/video/CMakeLists.txt b/src/video/CMakeLists.txt index 8fde9884..3df97d4d 100644 --- a/src/video/CMakeLists.txt +++ b/src/video/CMakeLists.txt @@ -3,11 +3,13 @@ project(Video) add_library(Video STATIC interface/video/Video.hpp src/Video.cpp + interface/video/ScopedImguiContext.hpp $,src/Video_PSP.cpp,> $,src/Video_Desktop.cpp,> $,src/Video_Desktop.cpp,> $,src/Video_Darwin.cpp,> $,src/Video_Android.cpp,> + $,src/ScopedImguiContext.cpp,src/ScopedImguiContext_Dummy.cpp> ) target_include_directories(Video diff --git a/src/video/interface/video/ScopedImguiContext.hpp b/src/video/interface/video/ScopedImguiContext.hpp new file mode 100644 index 00000000..e0eafc6b --- /dev/null +++ b/src/video/interface/video/ScopedImguiContext.hpp @@ -0,0 +1,9 @@ +#pragma once + +struct SDL_Window; + +class ScopedImguiContext { +public: + ScopedImguiContext(SDL_Window *window, void *gl_context); + ~ScopedImguiContext(); +}; \ No newline at end of file diff --git a/src/video/src/ScopedImguiContext.cpp b/src/video/src/ScopedImguiContext.cpp new file mode 100644 index 00000000..563cae30 --- /dev/null +++ b/src/video/src/ScopedImguiContext.cpp @@ -0,0 +1,29 @@ +#include "video/ScopedImguiContext.hpp" + +#include "imgui.h" +#include "imgui_impl_sdl2.h" +#include "imgui_impl_opengl2.h" + +#include + +ScopedImguiContext::ScopedImguiContext(SDL_Window *window, void *gl_context) { + IMGUI_CHECKVERSION(); + ImGui::CreateContext(); + ImGuiIO &io = ImGui::GetIO(); + (void) io; + io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; + io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; + // Setup Dear ImGui style + ImGui::StyleColorsDark(); + // Setup Platform/Renderer backends + if (!ImGui_ImplSDL2_InitForOpenGL(window, gl_context) || + !ImGui_ImplOpenGL2_Init()) { + throw std::runtime_error("Failed to initialize imgui with SDL2 + OpenGL"); + } +} + +ScopedImguiContext::~ScopedImguiContext() { + ImGui_ImplOpenGL2_Shutdown(); + ImGui_ImplSDL2_Shutdown(); + ImGui::DestroyContext(); +} diff --git a/src/video/src/ScopedImguiContext_Dummy.cpp b/src/video/src/ScopedImguiContext_Dummy.cpp new file mode 100644 index 00000000..fc618e9c --- /dev/null +++ b/src/video/src/ScopedImguiContext_Dummy.cpp @@ -0,0 +1,5 @@ +#include "video/ScopedImguiContext.hpp" + +ScopedImguiContext::ScopedImguiContext(SDL_Window *window, void *gl_context) { } + +ScopedImguiContext::~ScopedImguiContext() { } diff --git a/src/video/src/Video_Darwin.cpp b/src/video/src/Video_Darwin.cpp index 441a2896..d172bdea 100644 --- a/src/video/src/Video_Darwin.cpp +++ b/src/video/src/Video_Darwin.cpp @@ -3,6 +3,7 @@ #include "time/Timestep.hpp" #include "logger/log.h" #include "glad/glad.h" +#include "video/ScopedImguiContext.hpp" #include #include @@ -12,6 +13,7 @@ struct PlatformSpecific { SDL_Window* window; void* gl_context; + std::unique_ptr imgui; }; Video::~Video() = default; // For pimpl idiom. @@ -25,6 +27,7 @@ void Video::tear_down_gl() _platform_specific->window = nullptr; _platform_specific->gl_context = nullptr; + _platform_specific->imgui = nullptr; } void Video::swap_buffers() const @@ -119,6 +122,9 @@ bool Video::setup_gl() DebugGlCall(glDisable(GL_NORMALIZE)); DebugGlCall(glDisable(GL_RESCALE_NORMAL)); + log_info("Initializing imgui"); + _platform_specific->imgui = std::make_unique(_platform_specific->window, _platform_specific->gl_context); + log_info("Exiting Video::setup_gl, success."); return true; } diff --git a/src/video/src/Video_Desktop.cpp b/src/video/src/Video_Desktop.cpp index 21fa2ed1..77dd45e2 100644 --- a/src/video/src/Video_Desktop.cpp +++ b/src/video/src/Video_Desktop.cpp @@ -3,46 +3,12 @@ #include "time/Timestep.hpp" #include "logger/log.h" #include "glad/glad.h" +#include "video/ScopedImguiContext.hpp" #include #include #include -#if defined(SPELUNKY_PSP_WITH_IMGUI) -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_opengl2.h" - -namespace { - class Imgui { - public: - Imgui(SDL_Window *window, void *gl_context) { - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO &io = ImGui::GetIO(); - (void) io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - // Setup Platform/Renderer backends - if (!ImGui_ImplSDL2_InitForOpenGL(window, gl_context) || - !ImGui_ImplOpenGL2_Init()) { - throw std::runtime_error("Failed to initialize imgui with SDL2 + OpenGL"); - } - } - - ~Imgui() { - ImGui_ImplOpenGL2_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - } - }; -} -#else -struct Imgui { Imgui(SDL_Window *window, void *gl_context) {}}; -#endif - namespace { std::pair query_screen_dimensions() { @@ -59,7 +25,7 @@ struct PlatformSpecific { SDL_Window* window; void* gl_context; - std::unique_ptr imgui; + std::unique_ptr imgui; }; Video::~Video() = default; // For pimpl idiom. @@ -176,7 +142,7 @@ bool Video::setup_gl() DebugGlCall(glDisable(GL_RESCALE_NORMAL)); log_info("Initializing imgui"); - _platform_specific->imgui = std::make_unique(_platform_specific->window, _platform_specific->gl_context); + _platform_specific->imgui = std::make_unique(_platform_specific->window, _platform_specific->gl_context); log_info("Exiting Video::setup_gl, success."); return true; diff --git a/tools/resource-compiler/src/Main.cpp b/tools/resource-compiler/src/Main.cpp index 95f2e742..360fa353 100644 --- a/tools/resource-compiler/src/Main.cpp +++ b/tools/resource-compiler/src/Main.cpp @@ -35,11 +35,11 @@ int main(int arg_counter, char** args) } catch (const std::exception& e) { - std::cout << "Exception occured: " << e.what() << std::endl; + std::cout << "Failure: " << e.what() << ", for file: " << input_path << std::endl; return EXIT_FAILURE; } - std::cout << "Finished successfuly." << std::endl; + std::cout << "Success: " << input_path << std::endl; return EXIT_SUCCESS; } @@ -50,7 +50,7 @@ namespace std::ifstream input(filename, std::ifstream::binary | std::ifstream::in); if (!input.is_open()) { - throw std::runtime_error("Failed to open given file for reading."); + throw std::runtime_error("Failed to open given file for reading"); } std::vector output; @@ -64,7 +64,7 @@ namespace if (!input.good() && input.eof()) { - throw std::runtime_error("Failed reading file."); + throw std::runtime_error("Failed reading file"); } return output; @@ -77,9 +77,10 @@ namespace const auto now = std::chrono::system_clock::now(); const auto current_time = std::chrono::system_clock::to_time_t(now); - out << "#pragma once\n" - << "// Generated from: " << input_path << ", at: " << std::ctime(¤t_time) << "\n" - << "char data[] = \n{\n "; + out << "// Generated from: " << input_path << ", at: " << std::ctime(¤t_time) << "\n" + << "const std::size_t size = " << binary_input.size() << ";\n" + << "const char* path = \"" << input_path << "\";\n" + << "static const char data[] = \n{\n "; std::size_t newline_counter = 0; for (const char &byte : binary_input) @@ -102,7 +103,7 @@ namespace std::ofstream out(filename, std::ofstream::out); if (!out.is_open()) { - throw std::runtime_error("Failed to open given file for writing."); + throw std::runtime_error("Failed to open given file for writing"); } out << contents; diff --git a/vendor/imgui/CMakeLists.txt b/vendor/imgui/CMakeLists.txt index d779e0a5..a4ee518c 100644 --- a/vendor/imgui/CMakeLists.txt +++ b/vendor/imgui/CMakeLists.txt @@ -10,4 +10,5 @@ add_library(imgui STATIC backends/imgui_impl_opengl2.h ) target_include_directories(imgui PUBLIC ${CMAKE_CURRENT_LIST_DIR} backends) -target_link_libraries(imgui PRIVATE glad) \ No newline at end of file +target_link_libraries(imgui PRIVATE glad SDL_2_XX) +set_target_properties(imgui PROPERTIES CXX_STANDARD 17)