From c610e889d62cb96d0d6e0d76e9dc3ec29695fc82 Mon Sep 17 00:00:00 2001 From: Per Lindgren <per.lindgren@ltu.se> Date: Mon, 16 Aug 2021 21:58:20 +0200 Subject: [PATCH] changes --- Cargo.lock | 96 +++++++++++++++---------- Cargo.toml | 9 ++- assets/Dungeon.piskel | 2 +- assets/Dungeon.png | Bin 1944 -> 6303 bytes assets/Dungeon.tmx | 98 +++++++++++++++----------- src/main.rs | 158 +++++++++++++++++------------------------- 6 files changed, 185 insertions(+), 178 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8cf8a85..fea9995 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,9 +113,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" +checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" [[package]] name = "approx" @@ -384,7 +384,6 @@ dependencies = [ [[package]] name = "bevy_ecs_tilemap" version = "0.4.1" -source = "git+https://github.com/perlindgren/bevy_ecs_tilemap?branch=rotate#36b6c80c60010b281c526c244abdacf8ee24b116" dependencies = [ "anyhow", "bevy", @@ -1118,14 +1117,14 @@ dependencies = [ [[package]] name = "cpal" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8351ddf2aaa3c583fa388029f8b3d26f3c7035a20911fdd5f2e2ed7ab57dad25" +checksum = "98f45f0a21f617cd2c788889ef710b63f075c949259593ea09c826f1e47a2418" dependencies = [ "alsa", - "core-foundation-sys 0.6.2", + "core-foundation-sys 0.8.2", "coreaudio-rs", - "jni", + "jni 0.19.0", "js-sys", "lazy_static", "libc", @@ -1313,9 +1312,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" +checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1741,9 +1740,9 @@ dependencies = [ [[package]] name = "guillotiere" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9253eedea82720b2bc91fe831c9ce3a31299955ed5eb19b9ed600a625b686212" +checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" dependencies = [ "euclid", "svg_fmt", @@ -1919,6 +1918,20 @@ dependencies = [ "walkdir", ] +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + [[package]] name = "jni-sys" version = "0.3.0" @@ -1927,9 +1940,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd" +checksum = "f5ca711fd837261e14ec9e674f092cbb931d3fa1482b017ae59328ddc6f3212b" dependencies = [ "libc", ] @@ -1977,9 +1990,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.98" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" +checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" [[package]] name = "libflate" @@ -2101,6 +2114,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" +[[package]] +name = "memoffset" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" +dependencies = [ + "autocfg", +] + [[package]] name = "metal" version = "0.21.0" @@ -2255,7 +2277,7 @@ checksum = "8794322172319b972f528bf90c6b467be0079f1fa82780ffb431088e741a73ab" dependencies = [ "jni-sys", "ndk-sys", - "num_enum 0.5.2", + "num_enum 0.5.3", "thiserror", ] @@ -2320,14 +2342,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" +checksum = "df8e5e343312e7fbeb2a52139114e9e702991ef9c2aea6817ff2440b35647d56" dependencies = [ "bitflags", "cc", "cfg-if 1.0.0", "libc", + "memoffset", ] [[package]] @@ -2488,12 +2511,12 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5adf0198d427ee515335639f275e806ca01acf9f07d7cf14bb36a10532a6169" +checksum = "ee2c8fd66061a707503d515639b8af10fd3807a5b5ee6959f7ff1bd303634bd5" dependencies = [ "derivative", - "num_enum_derive 0.5.2", + "num_enum_derive 0.5.3", ] [[package]] @@ -2510,9 +2533,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1def5a3f69d4707d8a040b12785b98029a39e8c610ae685c7f6265669767482" +checksum = "474fd1d096da3ad17084694eebed40ba09c4a36c5255cd772bd8b98859cc562e" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -2545,7 +2568,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa187b38ae20374617b7ad418034ed3dc90ac980181d211518bd03537ae8f8d" dependencies = [ - "jni", + "jni 0.18.0", "ndk 0.3.0", "ndk-glue 0.3.0", "num-derive", @@ -2760,9 +2783,9 @@ checksum = "831eb2fcb5b72b09c72a3f2d24c09a28d79886512827cd4674d9bac10557f16a" [[package]] name = "redox_syscall" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ "bitflags", ] @@ -2947,9 +2970,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3" +checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982" dependencies = [ "lazy_static", ] @@ -2962,9 +2985,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "slab" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" +checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" [[package]] name = "slice-deque" @@ -3020,9 +3043,9 @@ dependencies = [ [[package]] name = "spirv-std-macros" -version = "0.4.0-alpha.10" +version = "0.4.0-alpha.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9b334f272ad19ae3e071b0d9d3ca275843c77b39f85e29d3908fa2fb6a7cb8" +checksum = "207e8515dfbb48bff03f64bf5f8388d4e0f2f526ee769cc6556df98477098ca5" dependencies = [ "heck", "proc-macro2", @@ -3033,9 +3056,9 @@ dependencies = [ [[package]] name = "spirv-types" -version = "0.4.0-alpha.10" +version = "0.4.0-alpha.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfb357212185d2175e5f92c35902f0dc7590cd05121239b22251d360ef01c53" +checksum = "71cc4b8f7ec707459fdeddb4f137109947045592f5b0c139f7bf1360058bac6b" [[package]] name = "spirv_cross" @@ -3209,9 +3232,8 @@ checksum = "7572415bd688d401c52f6e36f4c8e805b9ae1622619303b9fa835d531db0acae" [[package]] name = "tiled" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9b76189425fed476c9cb0e2a97adb0c6c9d370bf69a57cb951814e77a5fe63" +version = "0.9.6" +source = "git+https://github.com/perlindgren/rs-tiled?branch=parallax#8e62df52ead53976c1587ce2cb50043176f16cb0" dependencies = [ "base64 0.10.1", "libflate", diff --git a/Cargo.toml b/Cargo.toml index cea0fe1..353b620 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,9 +7,14 @@ edition = "2018" [dependencies] bevy = { version = "0.5.0", features = ["dynamic"] } -bevy_ecs_tilemap = { git = "https://github.com/perlindgren/bevy_ecs_tilemap", branch = "rotate", version = "0.4.1", features = ["tiled_map"]} +# bevy_ecs_tilemap = { git = "https://github.com/perlindgren/bevy_ecs_tilemap", branch = "rotate", version = "0.4.1", features = ["tiled_map"]} +# bevy_ecs_tilemap = { git = "https://github.com/perlindgren/bevy_ecs_tilemap", branch = "tiled_animation", version = "0.4.0", features = ["tiled_map"]} +# bevy_ecs_tilemap = { git = "https://github.com/perlindgren/bevy_ecs_tilemap", branch = "animation_and_rotation", version = "0.4.1", features = ["tiled_map"]} +bevy_ecs_tilemap = { path = "../bevydev/bevy_ecs_tilemap", features = [ + "tiled_map", +] } rand = "0.8.4" env_logger = "0.9" log = "0.4" -# bevy = { version = "0.5.0" } \ No newline at end of file +# bevy = { version = "0.5.0" } diff --git a/assets/Dungeon.piskel b/assets/Dungeon.piskel index ecbf4ce..e951ef3 100644 --- a/assets/Dungeon.piskel +++ b/assets/Dungeon.piskel @@ -1 +1 @@ -{"modelVersion":2,"piskel":{"name":"Dungeon","description":"","fps":12,"height":160,"width":160,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":1,\"chunks\":[{\"layout\":[[0]],\"base64PNG\":\"data:image/png;base64,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\"}]}"]}} \ No newline at end of file +{"modelVersion":2,"piskel":{"name":"Dungeon","description":"","fps":12,"height":160,"width":160,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":1,\"chunks\":[{\"layout\":[[0]],\"base64PNG\":\"data:image/png;base64,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\"}]}"]}} \ No newline at end of file diff --git a/assets/Dungeon.png b/assets/Dungeon.png index abfba06928a05b0d6e661f14df9cb441f55c3b9c..24b0fce1ff8f2ea5e58125d6e123bb7fe169173a 100644 GIT binary patch literal 6303 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2WQaxQ9Ln`9l&W&Cn8!mZV zU2%?@q36dd*DlCCUV3p-hGx)eSNW{1+q$~CG(u}Wv@LS|;K(XiBd|rGR$z&k>so~? zi>_=7bItzvX~C7<i?*%Ey!v?Km21mpE%EJ9bpLnx@BP2?^<P^}-<<v}lKElE`^fE) zug&l0)*4p_hlXBdeZDtIv|iqJW0U>YjkTwP{zm@Kn%T_%e{<D~2h6i0=9fm^+h&|w z@o9d*U*~rJu-#>O>%3phD2a)>zb)3TKb_5t(JnSc=glMG`7(Q&gx$}t<CFbe8k_d= z4EObhNkQ_d6&v=gc4iGsyz;M7xF`M8X^&DiGuzL1K4-sl*C@-a&HKc|=p?^}Yi91` z4?+oEx2Ce!M{d+P{ljjt-YF4=$<wnZur3$cpxH1XVakGx#hM3vf9o^wO<MiL(U-9$ z>a=YLlU7aiw!7g=x3vEXIjHq_&Z{3c)?Yv1%NfaVCU$G$)b*hTxvOMex{7j$=DdE+ z#K9>wX<ozG<;S=i4l`+$n*?%7G<6E`Ff8@3k)2~@Xve@gkNZFp^E17#2B-b!3Wz&2 z@VE2pu^NP&TOM?kv+!#o<Ce#oekTkTo{|g=VfrPtm?c=>!ksIMQ(~330C$6>w{_p9 zIELi1IZP*R#0N8Emsb5)QhdxrrrB`i+6a{g77E<GmsU5$GOW_QCgO0L?XZQO`jJEJ z+=)9MvG&W`#W-GI+cI5($>3;n8S8Y;gcEE}EVk4!7W6Ur1kM$+V>oV+aHj5X$j?I> zJdc+g`}gLY2j}4)=_5LvCoZrzUUDemIubVNq4C@qQ-1AgJ-&^rL7DwS&(Y0crZd)D zI<@sd7}LUaTTff4PMNe(Gf6t?+_k6aziSx{%yu8Pi(ekhcu4Iqi$(pu=jF3!T~oKo zeQhpTz0$Zxa>ldIi58YW8)WQ0{ok@qUw*>V9Qz+@N_U-5FNtlR`)*Rdg#g3sXUs+# zIgBm3$BQ+mXT0A1iF2l=bM?ik{vI!ae(C@0(A3^+m%7Z4V^{G~mq_aiqIrQ2N(x`5 ztO(g$*<=?H{F$@%XNTrI%VWn41dd6ZKC#g|i0R>5#oVd<EADEq*f(QAFY`9peRsR{ zes<)hm;8Ngevdou|H65<7PmEe**y{nQ>o`!`-$=6g9-Wk=Jgu=*E`-iZ(hQ7$TVPH zu>BU%6@RDH95K^=wO)E^!^-ZP=Rf>e`z+=1j;M`aYpX9x)$5ogd|!P>OMb)ehfB6+ zFgl%`a#v(()~l8&HAlYee81_5l)8%Q!Ud<#-QE)VN$~cWdj+qm7-crSy86~4?{VuS zsWsczef=2_a?*Vc@07@&4OU0?$xOIm@}k#KT}55-+O__r&51S)(>|V>)GraeaL?zP zHw`M!mdD>>PgwPH0{4P#(Vql&$Dfa4b^e<nvG{l1uIxZn!6@I*y)uq|wbttETJB8h zy_}cp{<7u6O#!AEuNlqP#(xsLeel^T*<R+d`>DUhbRD*wPU@eyO61DkXOsGG)cMZZ zw&B@Rmz8B9m(T55kskU&>bS<kqh8zWLNZReze!4+wKb5r!)JoswkxxEHP=pKTQs|8 z@9QHSTLR}tz0&_)yZzkBJ1gARHWhyKjazSc+ViqQ$z&agzS?U+`xz`44a~*!rhQnL z&uS3fv^(f{n&@>MhCZ1C0SY(ECr2>+w0fYnYR}u=2nHF+hMuE0_db~8!ZLM1z(IzB zFtrnH>=XP>M1*YMKCtZN7ly$5g>$(JqhGfFl9oHL(Na<Dz!mc~Q4v?T&vnX|@n$j> zJc%n1mcFp+fr#g|@Uj5L0;UHuzBP+3U`jak*7%OmWe1Zs3o+{rx(%BCA6`y+X?!8J z`jjh^U)>5d^BLB!tF@k1KD}b#^CIdE^AAggWi91g4a(ey1;lm>H@y!oH!V_8V0dy{ zde#AR+4awPH?TSsIvrDBUHimY&3m?i4^I@+4CeS+W1qU$dfU!MGT6KqU7ft;uSVp9 zmM2yLJB2o6zED*?5X&I5kn37R!kdMQX2?oRYFPR4pxL(q#sa2<w~<wErkDxeNsqOg zGG%tp1r@#<*GokhRQYa%Z`j&@G<!1dWz`00*#+COtxrv<VLkCRx>R%WrBJ6VMuXIC ze^cH5N2ujESOi)oN=#?T`4y7DxIwj{#yKn4e|_xtpIc+ke>MB~sGH@?{NHw2J#nn& zUz;>plM5aEcKw}cP#3R~V6DUcv+lqY?;!OhE5Doz+-=tx$>0;Ywt-h7_@MK*p3><` z?8{>GZ>ayh;0H4KM2DNOZ=L>**y}&H<|gdOoaS}TuVYohbs15H&({O9dtP0Y5p!s` za)d31X+i!h?gm>%3zw_ep^A)Wcn^y(+;+U2`ZjQn{DrORtMlCs2<KYPv|&A<Czy5p z+5+Z_EdKfz_bC{uN+0w3EW)t!yv*kf-CTK`4`$rsUomf;m&3B;rSIB~Fz{6FE!)N2 zAj>dg)uEy?{-VQ5RgzjiYx37$|FrU83h(|6b$+qeL&O=Z878>dsCvAp<UV_}xHPxk z|Hib=zik^<*RAmt@A)QGb2)?|hdto-t+jRfJ93}rzApb*ec0drcbD7#sb@BdbKb}k zZGOM(_kr{M>+Y4EK6_Q({@=4T<u?}2%Z|7nvqg9H+_LFmS^bG@dmIFm7&??$oz`yt zbJ=>8t^SUjvod>rZC$_GUR>aK!?9mI7daJF<=Ytwk|s?kWsu`%SfTLhe{e(Gd`*qL zXNuUG7?@@(F0UyJ_7RQ#5pcXT@U~uc_1amCY76ux6-@KC@7dSP5ah+UA=|ztly`CV z4Xy?2d0uO_xN`9^H%0a-Njl8uI@j1QUUknsZ-$j7>!C=!|8IVmF?l$IFqQEpbj4c! zeyOSaqMEIV;Zinh%@+2z4IHcA?|ID>z@FQFrRu)8-Ij0m1s7kge*Wf0P@*HBtbHUu ze|@=L&bohvPh7TcN%k(ie(>?th5zTSnI?X2eO>+a^Usu)Jl)ITB-F$|+2yyu|Nfix ztD3kQvhy4J_rB;{t?lj?@?-h&b**QE6~621T@lcmZ}yzwSxe%q8w~|663RMe50ZDp z7QcM->ihKmYybBboZt3p`sDxn6TV-2wfwvM>iz8^EDNOB4oorNQBh5<UnwNO5Lfzj z>sGE~_rLNTf8lqw>igT^zw>u}>A8A)y8K%I;7eEK7c4%r?@}A%hV=$K3l;}2mNU#f z7o}9PB{x0s^1ln`15`c~f3vsG_ODu(>mXgx$GYgMAm`1dkiA*|4fQ&z%3k+fI>f4W zFeu=w^&k1?It9CeCns-T*M7O^=|1%}hn@vnPsp17_wk?Ja(g3jJ`UDDn#Hq)+Y(c^ zO7A>TrrozteE#t@2Co*xB;3-qmsb$mvCwh(<2L1{^X2#I*MuErm?*cg>BrmZzC0O* z;<-Gp4<tBg9!&Ub%6Nc1tt-T9t9S6NSG&*b*1NHj>jJ|9FB_*5@1Myz#AIYi9NVs; zmvM~6`TmBTx7xXmeP{7=Huy1b{&T(qGkTX#b~T9gbMlE=Ht)M7`^I0J8<u&_UvE<$ zo%>qxNYRfUC%G6i*yf1ZZQ(WT*|ddMQE}^;-}N6Zthice`$LUkSDB$x!;Kin=_WjH zSFLdQ#(0aR?dv+`9}E}wc?L)tFgk7h_(AquGP}#t1+V|#m)dE2gS+9?)?2K8H?MuZ znqHK1ZrlATX0ccO9~>Vs>U}MXeP!k<d!Ds{M{W6yj43IKoD$JrZtN?%{A**?W}Ees z_^qX{ZQSrs?0$sqipA^(*Vl2a%nlFR;-|uV!HyyLb-ypGcFq0SZ^|ML#O*J4FTLET z{PlX)=Z!Mu?$7uR%*hek`Z&g#!*IrKD|<DD`zD-vhnEHa(D=wPEpNYO56gun_kjII zpB8*ExhogMDWvuFM5)u2o1POJcKUg}+HrmJ9PhVrd#Yd0vXDR4{61!;fz0Y`^A@d| zypV!-hju7rX+KQ5WKm}KUFw(4dOr5ekr(D4dNL_%8_!`q7QRVBUnSPe(`G2;?(Kej z>(n93=`C5@3*Iei3Hfs&w4m!O`-XxWf9$mtO=Y>CUQam{5^5^W@aRxdf2`1n0H&<l z771B@6`5ab{<$Jcb7xJQ{{HQkF5c>i>A%RlVq2tFRuGR+!yOa86WfkUv6tMe+2^o{ z^+Rg)w(EYUZdz{(`R==E(N-Q+<=c<%?_@GiJs`d5a7-tMp7rWnnSu@>gJ*AVRc=@{ zWy8@&jV%2RVhpKi$%Qr|sa;`bPJgxJSoo{fN_642TE6zJH)G^B<W8Ryus>X5t=2qk zhF}%%F0OalXM~E2(ij(<e^{_GZfce0J%jb`2e%3p9cHrVcKCAPkbz=;xZ}oGVhNfH z^tQg{z9?{N=N87`ITJ*rH>_moX-#ZnS-@{Mf4f&fOx!vzi$kZ1?6#gQDpq8C$!RQe z_)2AHW)HjG->1*7p1Q2>RmWB#mbLM{U9gj`reoUlS!xA_6LxbQHsGAbf8VycaN)1R z2OnR3$vu1Ze;NBo+tlOJUcG-7nL79Ww)4xcyo@*zrxx*}n>l~+@%)cWW;N~Ss~+5$ z|NiIQ6_XWbH>^6jWZe;_)p^c+?dR1(o*#YM@M6bpF9#-%2RF<PUVfh|Ipr;jgRjws zOaAgIj}AMk=kM7i_uP&7!_@N@xuu!Uo#yVX`F`;6SD8Jf|JS|pE|-nkeDoQ!b=vix zuXYNF?b^i1neZY_rALcb)6klE!pV8R>?D5YNwhg=sG18kXx>|QI{T}o^u~($`aH?G zC)cSYa5zkV^0<62vxkAD!@j3q;;--B|H%8$>=l~~uX^6R{gv@?*Xz~?OdBjr60cr$ z3vYZ;9>1YjbekOit&m?+_MGlnu=a*zgG7UuW8TV4sXbl}H(E3qR#k;}eEdI!=S^hu zt73~aR;8^`LC4+&tuMQ+d&MuB^T)w%zxdY43tvqwu)N1rbSj{VHK2O&lf(BzM9<7` zx?1+)&WGKKs|ydcr(2jT^;#No>RlVR!s@2kN0=_=MKjd;aomavX9&G|>0>~<OT59n zS1ks4&$HOIYF^AU30c3&K0M=ymtFj`O|^#`LsuIrY~AziqIko#cbBDo55DnX`ZY&j zI@htgjG7XY;}$+)Vc7dO{Ju}nW6f1-`i&R@)bDv&Prp*6DthEwx#2e%g{}A3F>JY> z#`vW**@}6B*@CKlKhCu!u4uZ-7IL9P+~xA>7=?bu0|GY`cdySp(W<cQ+IudCICV## z!2K&Ob2sRf=7btBvZQQ}`}wEpPu6`$tG-y)!)z{YMw_P1l<I%Igx4c~YQF9R%N5aS zHjn@RioES)D}5%+Q{qz{r%yb?qQ4WqpZ-_PYLLP#<j~rqFTbdYZ{>p!>rMPuXWdc@ zF<7Wn;<NC1`XTqur7OSfGg7oRRQstjC6>{nQ+#rb*r{_2TNEWi_m>@9(Wdxx&9Bhk z7g!fmU3LyXsJXz%tz%QmWxMx`p}y)YsSJW;K@o8aKdmg?`g==_ID=NmzP<5V8MoHx zGpw?e=w^;$5Y%od3ATux6r$)C`C{R;lZ*k4!3<w-#Rv(U=TzoNkxzJK#B<nihsuMe z)!VNB%|5UzSagj(@Al|ILx!)sOU}$#n8JOtA^Ag7@B)9v3+jTg4m*F9c)GrGELUVq zzW#DjS53t}Va^UlgA5<{rkna5S8w`AOt~H_aOLVJsd<*kAJ>F#aa3om|7j_9tkd_5 zz`1fp1zDN9b(<p%Rz14v_=3q{MfjJsxAV>3G}(nRm2DHfp2GB2_U^OdS1h~ALY)|v z9h!T4-P_NRR~uIz|NU3lf3<)7*5~`G9CP>G-+DUz`t$frkJo>V_c(Cnwfv#8*N#h= z8QxlN<|)0v;KZC?8(9?;B24zgv$DtKwlxbm??1jxa$T#z5eJvw>tkc)wMB(o(r~%9 z`{+*l&}wa_j(-ete9N+KvL3bwe1H18{#5}nhSjUsCdAD;-+h{Kl{SN@&6duij}Hm$ zm|{IC=s3F);}Ly<r*bR;^^Ed)JPd9>a;qEof&_oIGzfe+mUrNeVei^K!Vc1E9gH)g z<8Bx0GAvv$<+8c=!?c4758ROEn6JqhDL!F`f=m4Q=pEaC9sQV|vUct@#+p5rH6Jz> zu8QyB7dWO;a&3WI#0}1bbuK+q`5ChqRcay><ZkFPIILtBm%P;Wb_4J32XEd_Yp!lO zJHPUo<<*_f=fyvKpS!(wVG*N5)B8`S@5kJ&`^{S_Z=$X+m%Cwdx!CHrm)SI?bMb9m z&JgrAXwix<O}idBF32no{B@y4Va*EX%#K}prE|Cxeye$8%w83qdrshJe#PVJ)$41& z8fPoW{PsQ;+}gB0MwhWTG{@)Zt<RPWhZGyGJd#_fw~6=3FNP2YQKuUj6H2s786ISd zO<x_YEHpv5;^R^M_3!q4w%+=;ZDVc4`@f|V%$8NXWqM$h$X)m4IDh^Q_T43VllDBA z;nKqz<=ha=#KclHkxQPjsW5-8ihP4roP*QUH=Edta}QkhyB+rT`+oP=W*7gff3pv` zyYWwkGDG2FQO+3;SdXj3=`FZ5k9ERBg{m1lqHF#NJ5<fL)1N0$Bp;T$K8B(4`z5xT z)9<GK$_-m7^kI^BT=?G??&jASm=7p13NxHx)d`C`&+Oo^pwP~WXUp%Jw@W=77?K&6 z*m8uP*%!<h6?H3m?HZXGs}gRlUip>Nz_(Y4Q8?#-M1Z06rFq+h0vJPn1oSzkS8e`r z=D+i#z}(F;Vl(z1PP9$X+r|3fl5G9jI)j@>J0!1uXp*n_ARnwR@lCldLrwHR>~68u z&h30+oE9@PmJ167?^Ik66IXD;Z3#=rZ+;=}4L|ta1sqto;i-UpO8u`70t}9k|F{IN z7OZXBelPm(qln)Y30f_xJfDA@`o@&Nlki$)Mam+UCt;x+8N2^J^)6?cz#`CKG{5hm zl$D6#%jM5svOeB@$H63z$HFCC{zmMhhIIx$>rR!vb=k2ej46q6%ccI`t2eH7oG<)H z%Kp}(lu%K=h6POv4+Zw`zsT(|W9cDzo|LS;$D~c=W^58|H@j&6Ks&l{^4<q#iBs+z z*sOcrLVn-!FN;_CuwGzW<m}hImHFa&ww=XG5+<jx+?uZ{`EcV*KQ5Q&R+5%NS6CM; z(_XsbK@7vo6$R-k>{ij&ruQ9f@Ba{1b4Ff8>swvnl#(?ayb{cMX^)S-di~Rm;mcQl z>j1`(h9n{Ll;lNc@BEtn_GaAPhui9>&7B~VU~th=Nbi~GZiXek9lNB;HvVrHUt?Ke zZU6tkm%nB!e$Sh~XZ^mb5&S~us}A`x<W&D%@&A(T?bZJOpWRoLUG3?VwT^{n>h&0_ ziWLh5c+MHiawiBntVlRe{#VpLcCq69Z+G{H&c3(1de)9CXTv+6va4-(e*Jo!!`m+5 zke`QNk>k4HM@$nEduMnp7T@#f<ka8?hb`uPndg7iVc(D0@7Mj`mDIR!Z`%A*XTSa` z{U^cn$XK5B01LxypNdsn*K8le=>OOyUbpMe>Ap9N3?HZ5ztlc$S>~^6-1`b1-urbm zWo4prc9X(l)vb0p`_{`_Y*O13%#g#7Fx_mi@AgGpe2foIvHy9v+HN<S)1mV3Q@ev_ zPZbK-{^G+cUOSs3vSM}D-d8Grv=q6{ea!jmMg9kmAG559pCl;st*N;2bf@+%hAoK_ z*JrcLU|F?Wpe5j8aOYBnLxzpMoD!VO%;&fi;`as~-db9`HT!gOzrmvm;rSoh4wi4T zd-(hOf4?wq{|cX5oBlnotKLy@aO2*)Gp>spA9DU0%#adhJeRHSdfMS13|Bsd99+1Z zVfppXCpx+KPaj)%-@3kk&Wd}x@~?-y{bV`qhOuGpqe;oDU-P&;_p8YJ86gv391|01 zAQkrTa)yR`^n`Qm`aFyK^L8CF$X(~Is;6?_S9tb$adjQDgywXoTdST(H0<+{h?i(v z8F7EdpIx{3mT<XoxV<*0cKhD+n@M2Xy|3l6tF9J$x&64I5+458cTz*Hs#6AI(6=VZ z-<!2`mNXeUR_E8a+xqK?_Pk%~Rj%qCvEKaI)yI2|{Y?7W%`#^XyJd=SBtx><{PURw zN59TkyXJiMlVglK#d)MBupiR@(BRCFl+Ge#P-eUF_4QvZ{e^bo4eQ*6c1_Yq&R%}e z*>fXncjdvT_~0cocqel!sLeIMuuq!*T6V#Yx#^bjNsFr5rQS(7+^7lIJ>`a7XB0!t zAG6FaS$#26WhN=;an6wL*v7AV^wP$HpIiyIUoV`_*RGuQIkGb%q`*nRO6_9NT%p+$ zPKkWg`^>oUg5K<lY4OK%Os1brZ+yD@S4I5sXU?z18Lle|$TC@&O1sHh9di1t>ag#O z<dlv4T87eU&sdK$T>2cayuu(hK4e~S{b6Pcv&CC`%J-!uIOj8;y&lx}Ig6{|am@Ce zlBJ9VdDDvKhzBvqJl}Qp><aFN;>}YY@0q~#z~Xvto?9%#oY_ldp0|oH9N(E&Z2XGp z!5y8a7WzvVEY6kAo*gL8@H|cPc%>rifx>mS@AT|qurT+wJjboc&{ur-S=trW13M#6 f6~>+T&&bVjGr4?Ah86<@1B0ilpUXO@geC?6VK=@$ literal 1944 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~4g<2+p)Ln`9l&hb4h<0{gc zuEH(Kqq4~9gquqYt6+W0kI8=pA00{+FjriV)WRYpt~fEPsNL(LeCSo%%gg)E=cv8^ zeeL+p?>0N{h6Z1Le)(m|uWz&E?=Sm4ef|6;+aG@YIJf=q`JdJIp53&spYyNo+jGlb z?)Nj|`-&xh+_iu9%f9~Ovy$(V`P-)LTox04Z@<j!`Tdg{i<|V#e|}xfzT8^gc5bi2 z*2;hH^_^$8&#(P2r(yb6*ydx`zhvQO3eOCleLh~_^mvKP(n_{-@%3LbR@A+m+LK$U z%JKgG@1!lK??f=>GssN+b~4_6{=2##v0GbA_!z>LdvAKUl*uhLlT{&f!-@qfH*NjK z->_I~+c$Ox&vmO@_p&FHt}o~P%r)cibiIeBS53b5dw&S}>YZC`vAByVVRd%Y+jj2) z|F7POEDfpu!x(~D=dPZoT4PvV#qOZHAnK}4*a6EKi<(p$vb5s#^x}{BFiJe=Wt0$L zN?83g>aBkF1jB|TQybQBzJ%9G%UB9>`h*Sy@plX8&ZxSg6Lw&wBlCh9(K|t`*$h29 znOzv(Y>e1_UZuhNd!c2+#_!j;9~4;DeoQk7HuR5bQ1Sh_S4lKLdYx41<mnF#89rBU zjAJ-$m?WM4N@z|K$B#?<nH|Contpq=edb<vou}s+BZRZ!&L#<NWO;Don)feRhHEJ? z`_HCIr+H>^#yd=S$Cz#RRl|J7X)Y_X|2OW%_b@kj_sKqf?<;C>zy37in^?x>bsIZY z?yTo|@#)GY-eR5$%R=Va@BRPt_KKwB=_fWNM>YoC|Flo%*OTd|cA6ZOsGPki|4+<6 zIR<{dgh}%i-f${6e*UpNp1q^`7rRaN@9$@P<$HNz&V5$3)P2tATxa!v`uDk3{1R_Z zRc7h!4gTI9V$a)gZN&>aeu>$KR2xj6GZr7rX7G8;@KEaa_xHOi<TmX2C~vJdRX*V? z|LkK*%Imv+-jD8!b6xf6ucz6f@9Y_Cn?j#6em+?ou>63QxTWnQ#trJ(yJ~mYbKkR8 z`NsIYEMfM~@VV?h@iMc1@svwfUS7=bV5@P>?2qEw4=ycixqU)rerxps+s*sW-dTN) zIZt_Eok(Bu)#tA?bj7t71Sv4Acyi1vYS($@JmcEi8gtllPG1*{GM~$ShI!Xhrj$3U z8Fifc8m@0T_Uy93Y3ID_NpCoLWjyZc?dMYFo&I3&wxB3sgEEC_{g0wHuecglBseL2 z-_FIqG^aAGU=3M4>n`J*Uu!DgEVkuavhCLD`*q*FKfL#^kE)#)V1HI)&Zz@GPqW*X z$f|{UW->*%a$DUpE)ZontuMUw^s4ua4PSQ#<y10$nD)CWT8)We`<Z8Nk4rK19Df*B zY^`SRxc8|ILq&DQwmBb}63z>+i)vv=@ZR>%KDRxzfb07$hPc(If*AXGUk5Nwmpd$` zs5Ot5#etb2+bN($|0UZ2sqZDXL-G$ZELhj+9u~&>V5^uwv`Qb>4p*`7(#e7cK5@S& z=AWdqzprv_tNT1XhCBT8bko)`8O*CQ*j^uA_e=0Y>j~ZO{}>9mUz;9V!L~tkfy{x5 zXFl(fEuICrvR+|W8SX0Du=jxqNA<(ie{Ccgs@GnBVa}cK_TPh90a@pmpFRFubHMcG zwb#2N7}x90{M>N;+=g#IRx>^kT9Lb9mlZ=u`H2{LhFQ{U<m4DuS*NVyXE@6n#?Q}i zRo3V_d&4uf)$QyJulQ!ZW_BoUzIvG1p|t(XSH=Z9559WHxL}v_vtJAs?j(Huzz}d( zvAC8YBX2`h1;dJW6L#9oTbqvHFqoJ}*xJy{u2JLhM8wbwod1k-*@f?JUa(~v0|Ntt Nr>mdKI;Vst1_0!Dd}#mx diff --git a/assets/Dungeon.tmx b/assets/Dungeon.tmx index 358f8b0..b458c47 100644 --- a/assets/Dungeon.tmx +++ b/assets/Dungeon.tmx @@ -3,7 +3,21 @@ <tileset firstgid="1" name="Dungeon" tilewidth="16" tileheight="16" tilecount="100" columns="10"> <image source="Dungeon.png" trans="000000" width="160" height="160"/> </tileset> - <layer id="4" name="bg" width="92" height="24"> + <tileset firstgid="101" name="Obstacles" tilewidth="16" tileheight="16" tilecount="100" columns="10"> + <image source="Obstacles.png" trans="000000" width="160" height="160"/> + </tileset> + <tileset firstgid="201" name="Fire" tilewidth="16" tileheight="16" tilecount="4" columns="2"> + <image source="Fire.png" trans="000000" width="32" height="32"/> + <tile id="0"> + <animation> + <frame tileid="0" duration="1000"/> + <frame tileid="1" duration="1000"/> + <frame tileid="2" duration="1000"/> + <frame tileid="3" duration="1000"/> + </animation> + </tile> + </tileset> + <layer id="4" name="bg" width="92" height="24" visible="0"> <data encoding="csv"> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -37,16 +51,16 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,0,0,0,0,0,0,53,201,0,0,71,72,71,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,81,82,81,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,61,62,0,0,0,0,0,0,0,0,71,72,71,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,103,103,0,0,103,102,0,0,0,0,81,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -65,18 +79,18 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1073741836,1073741836,1073741836,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +22,26,22,22,1610612762,22,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +22,22,22,25,22,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +35,35,22,22,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +32,32,32,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,11,3,0,0,1,2,1,1,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,11,31,31,31,0,0,1,1,3,1,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,1610612748,31,31,31,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,11,31,22,22,31,31,31,31,3,3,2,3,3,1,3,1,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -11,12,12,12,21,31,31,22,22,22,22,3,3,3,1,3,3,3,3,1,3,2,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1610612748,21,22,31,22,21,22,31,22,31,31,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,11,13,0,0,1,2,1,1,0,0,73,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,11,12,22,23,0,0,1,1,3,1,0,0,83,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,101,1610612748,3221225494,1610612758,22,11,12,13,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,11,12,25,22,22,22,21,35,23,3,2,3,3,1,3,1,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +11,12,12,12,25,22,22,2,2,22,31,32,33,3,1,3,3,3,3,1,3,2,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +31,32,32,32,32,32,32,2,2,32,32,32,32,3,3,3,3,3,3,3,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -87,32 +101,32 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 </data> </layer> - <layer id="2" name="fg" width="92" height="24" visible="0"> + <layer id="2" name="fg" width="92" height="24"> <data encoding="csv"> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,42,43,44,42,43,44,42,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,41,0,42,0,42,0,42,0,42,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,41,0,0,0,0,0,41,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 </data> </layer> </map> diff --git a/src/main.rs b/src/main.rs index 3eec8a7..95251e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,12 +30,11 @@ fn main() { .add_startup_system(setup.system()) .add_system_set( SystemSet::new() - .with_run_criteria(FixedTimestep::step(1.0 / 60.0)) + //.with_run_criteria(FixedTimestep::step(1.0 / 60.0)) .with_system(player_movement.system()) - .with_system(camera.system()) - .with_system(parallax.system()), + .with_system(camera.system()), // .with_system(parallax.system()), ) - .add_system(set_texture_filters_to_nearest.system()) + //.add_system(set_texture_filters_to_nearest.system()) .run(); } @@ -56,6 +55,7 @@ fn set_texture_filters_to_nearest( } } +const MAP_SCALE: f32 = 4.0; fn setup( mut commands: Commands, asset_server: Res<AssetServer>, @@ -68,7 +68,7 @@ fn setup( let bottom = -window.height() / 2.0; // load the tile map - let handle: Handle<TiledMap> = asset_server.load("Dungeon.tmx"); + let handle: Handle<TiledMap> = asset_server.load("Overworld.tmx"); let map_entity = commands.spawn().id(); commands.entity(map_entity).insert_bundle(TiledMapBundle { tiled_map: handle, @@ -76,7 +76,7 @@ fn setup( transform: Transform { translation: Vec3::new(0., bottom, 1.0), - scale: Vec3::new(4.0, 4.0, 1.0), + scale: Vec3::new(MAP_SCALE, MAP_SCALE, 1.0), ..Default::default() }, @@ -98,9 +98,20 @@ fn setup( ..Default::default() }) .insert(Player { - y: bottom / 2., + player_y: bottom / 2., ..Player::default() }); + // commands.spawn_bundle(TextBundle { + // text: Text::with_section( + // "Game Over", + // TextStyle::default(), + // TextAlignment { + // vertical: VerticalAlign::Center, + // horizontal: HorizontalAlign::Center, + // }, + // ), + // ..Default::default() + // }); } #[derive(Copy, Clone)] @@ -110,19 +121,21 @@ enum Direction { Idle, } pub struct Player { - direction: Direction, - jump: bool, - index: u32, - y: f32, + player_direction: Direction, + player_jump: bool, + player_index: u32, + player_y: f32, + player_x: f32, } impl Default for Player { fn default() -> Self { Player { - direction: Direction::Idle, - jump: false, - index: 3, - y: 0., + player_direction: Direction::Idle, + player_jump: false, + player_index: 3, + player_y: 0., + player_x: 0., } } } @@ -133,9 +146,9 @@ fn player_movement( keyboard_input: Res<Input<KeyCode>>, ) { if let Ok((mut player, mut transform, mut sprite)) = query.single_mut() { - let (index, state, dir) = if player.jump { + let (index, state, dir) = if player.player_jump { // already in jump - let mut index = player.index + 1; + let mut index = player.player_index + 1; match index { 4 => { sprite.index = 7; @@ -150,141 +163,94 @@ fn player_movement( }; if index == 64 { index = 0; - player.jump = false + player.player_jump = false }; if index > 8 && index < (60) { transform.translation.y = - player.y + (((index - 8) as f32) * PI / (60.0 - 8.0)).sin() * 200.0; + player.player_y + (((index - 8) as f32) * PI / (60.0 - 8.0)).sin() * 200.0; } else { - transform.translation.y = player.y + transform.translation.y = player.player_y } - (index, player.direction, 0.) + (index, player.player_direction, 0.) } else if keyboard_input.pressed(KeyCode::Space) { // start jump - player.jump = true; + player.player_jump = true; sprite.index = 3; let index = 0; - (index, player.direction, 0.) + (index, player.player_direction, 0.) } else if keyboard_input.pressed(KeyCode::Right) { sprite.flip_x = false; - match player.direction { + match player.player_direction { // already walking Direction::Right => { - let index = (player.index + 1) % 32; + let index = (player.player_index + 1) % 32; sprite.index = (4 * 9) + index / 4; - (index, Direction::Right, 2.) + (index, Direction::Right, 1.) } // starting walking _ => { let index = 3 * 4; sprite.index = (4 * 9) + index / 4; - (index, Direction::Right, 2.) + (index, Direction::Right, 1.) } } } else if keyboard_input.pressed(KeyCode::Left) { sprite.flip_x = true; - match player.direction { + match player.player_direction { // already walking Direction::Left => { - let index = (player.index + 1) % 32; + let index = (player.player_index + 1) % 32; sprite.index = (4 * 9) + index / 4; - (index, Direction::Left, -2.) + (index, Direction::Left, -1.) } // starting walking _ => { let index = 3 * 4; sprite.index = (4 * 9) + index / 4; - (index, Direction::Left, -2.) + (index, Direction::Left, -1.) } } } else { - match player.direction { + match player.player_direction { // already idle Direction::Idle => { - let index = (player.index + 1) % 256; + let index = (player.player_index + 1) % 256; sprite.index = if index > 224 { 0 } else { 9 * 1 + 6 }; (index, Direction::Idle, 0.) } // start idle _ => { - player.index = 0; + player.player_index = 0; sprite.index = 0; (0, Direction::Idle, 0.) } } }; - player.direction = state; - player.index = index; - transform.translation.x += dir; + player.player_direction = state; + player.player_index = index; + player.player_x += dir * 4.0; // 4.0 seems to be good nominal speed + transform.translation.x = player.player_x; } } -// A simple camera system for moving and zooming the camera. pub fn camera( - time: Res<Time>, - keyboard_input: Res<Input<KeyCode>>, - mut query: Query<&mut Transform, With<Camera>>, + player_query: Query<&Player>, + mut layer_query: Query<(&mut Transform, &Layer)>, + mut camera_query: Query<&mut Transform, (With<Camera>, Without<Layer>)>, ) { - // println!("camera"); - for mut transform in query.iter_mut() { - // print!("-"); - let mut direction = Vec3::ZERO; - let scale = transform.scale.x; - - if keyboard_input.pressed(KeyCode::A) { - direction -= Vec3::new(1.0, 0.0, 0.0); - } - - if keyboard_input.pressed(KeyCode::D) { - direction += Vec3::new(1.0, 0.0, 0.0); - } + // parallaxing + let player = player_query.single().unwrap(); + let mut camera_transform = camera_query.single_mut().unwrap(); - if keyboard_input.pressed(KeyCode::W) { - direction += Vec3::new(0.0, 1.0, 0.0); - } - - if keyboard_input.pressed(KeyCode::S) { - direction -= Vec3::new(0.0, 1.0, 0.0); - } + // for now, move the camera to the + camera_transform.translation.x = player.player_x; + camera_transform.translation.y = player.player_y; - if keyboard_input.pressed(KeyCode::Z) { - let scale = scale + 0.1; - transform.scale = Vec3::splat(scale); - } - - if keyboard_input.pressed(KeyCode::X) { - let scale = scale - 0.1; - transform.scale = Vec3::splat(scale); - } - - if transform.scale.x < 1.0 { - transform.scale = Vec3::splat(1.0) - } - - transform.translation += time.delta_seconds() * direction * 500.; - } -} - -enum Layers { - Cloud, -} - -// parallaxing -pub fn parallax( - mut layer_query: Query<(&mut Transform, &Layer)>, - camera_query: Query<&Transform, (With<Camera>, Without<Layer>)>, -) { - let camera_x = camera_query.single().unwrap().translation.x; for (mut transform, layer) in layer_query.iter_mut() { - match layer.settings.layer_id { - 0 => transform.translation.x = camera_x / 8.0, - 1 => {} - 2 => {} - 3 => transform.translation.x = -camera_x / 4.0, - _ => panic!("illegal layer id"), - } + // (1. - parallax) gives the per layer translation. + transform.translation.x = player.player_x * (1. - layer.settings.parallax_x) / MAP_SCALE; } } -- GitLab