From 76c3665cc7053e8c4db965e03522938b9dd4d59f Mon Sep 17 00:00:00 2001 From: pjht Date: Mon, 11 May 2020 19:52:50 -0500 Subject: [PATCH] Initial commit --- .gitignore | 1 + animation/door/0.png | Bin 0 -> 691 bytes animation/door/1.png | Bin 0 -> 717 bytes animation/door/2.png | Bin 0 -> 690 bytes animation/door/3.png | Bin 0 -> 616 bytes animation/furnace/0.png | Bin 0 -> 219 bytes animation/furnace/1.png | Bin 0 -> 204 bytes animation/furnace/2.png | Bin 0 -> 187 bytes basictiles.png | Bin 0 -> 14663 bytes characters.png | Bin 0 -> 9896 bytes nails/nails.png | Bin 0 -> 3057 bytes nails/nails.png.txt | 1 + nails/nails_0.png | Bin 0 -> 338 bytes nails/nails_1.png | Bin 0 -> 327 bytes nails/nails_10.png | Bin 0 -> 302 bytes nails/nails_11.png | Bin 0 -> 298 bytes nails/nails_12.png | Bin 0 -> 288 bytes nails/nails_13.png | Bin 0 -> 372 bytes nails/nails_14.png | Bin 0 -> 309 bytes nails/nails_15.png | Bin 0 -> 333 bytes nails/nails_2.png | Bin 0 -> 231 bytes nails/nails_3.png | Bin 0 -> 251 bytes nails/nails_4.png | Bin 0 -> 374 bytes nails/nails_5.png | Bin 0 -> 375 bytes nails/nails_6.png | Bin 0 -> 319 bytes nails/nails_7.png | Bin 0 -> 320 bytes nails/nails_8.png | Bin 0 -> 294 bytes nails/nails_9.png | Bin 0 -> 300 bytes old/.gitignore | 4 + old/blocks.py | 240 +++++++++++++++++++++++++ old/client.py | 292 +++++++++++++++++++++++++++++++ old/dist_all | 3 + old/dist_client | 11 ++ old/dist_serv | 10 ++ old/door.ogg | Bin 0 -> 15984 bytes old/lib/__init__.py | 2 + old/lib/block.py | 55 ++++++ old/lib/character.py | 53 ++++++ old/lib/constants.py | 12 ++ old/lib/gameregistry.py | 25 +++ old/lib/inventory.py | 51 ++++++ old/lib/map.py | 107 +++++++++++ old/lib/player.py | 71 ++++++++ old/lib/player_img.py | 33 ++++ old/recipes.py | 7 + old/serv.py | 234 +++++++++++++++++++++++++ old/showstep.py | 3 + sprites/player/down_0.png | Bin 0 -> 263 bytes sprites/player/down_1.png | Bin 0 -> 257 bytes sprites/player/down_2.png | Bin 0 -> 269 bytes sprites/player/left_0.png | Bin 0 -> 263 bytes sprites/player/left_1.png | Bin 0 -> 251 bytes sprites/player/left_2.png | Bin 0 -> 262 bytes sprites/player/right_0.png | Bin 0 -> 268 bytes sprites/player/right_1.png | Bin 0 -> 251 bytes sprites/player/right_2.png | Bin 0 -> 262 bytes sprites/player/up_0.png | Bin 0 -> 254 bytes sprites/player/up_1.png | Bin 0 -> 254 bytes sprites/player/up_2.png | Bin 0 -> 255 bytes sprites/player_local/down_0.png | Bin 0 -> 299 bytes sprites/player_local/down_1.png | Bin 0 -> 292 bytes sprites/player_local/down_2.png | Bin 0 -> 299 bytes sprites/player_local/left_0.png | Bin 0 -> 296 bytes sprites/player_local/left_1.png | Bin 0 -> 280 bytes sprites/player_local/left_2.png | Bin 0 -> 306 bytes sprites/player_local/right_0.png | Bin 0 -> 305 bytes sprites/player_local/right_1.png | Bin 0 -> 279 bytes sprites/player_local/right_2.png | Bin 0 -> 299 bytes sprites/player_local/up_0.png | Bin 0 -> 286 bytes sprites/player_local/up_1.png | Bin 0 -> 281 bytes sprites/player_local/up_2.png | Bin 0 -> 289 bytes sprites/slime/down_0.png | Bin 0 -> 232 bytes sprites/slime/down_1.png | Bin 0 -> 235 bytes sprites/slime/down_2.png | Bin 0 -> 235 bytes sprites/slime/left_0.png | Bin 0 -> 232 bytes sprites/slime/left_1.png | Bin 0 -> 229 bytes sprites/slime/left_2.png | Bin 0 -> 233 bytes sprites/slime/right_0.png | Bin 0 -> 228 bytes sprites/slime/right_1.png | Bin 0 -> 232 bytes sprites/slime/right_2.png | Bin 0 -> 225 bytes sprites/slime/up_0.png | Bin 0 -> 224 bytes sprites/slime/up_1.png | Bin 0 -> 225 bytes sprites/slime/up_2.png | Bin 0 -> 229 bytes things.png | Bin 0 -> 6885 bytes tiles/bed_bot.png | Bin 0 -> 696 bytes tiles/bed_top.png | Bin 0 -> 1526 bytes tiles/brick.png | Bin 0 -> 721 bytes tiles/chest.png | Bin 0 -> 771 bytes tiles/chest_open.png | Bin 0 -> 747 bytes tiles/coal_ore.png | Bin 0 -> 1253 bytes tiles/cobblestone.png | Bin 0 -> 713 bytes tiles/door.png | Bin 0 -> 1857 bytes tiles/door_open.png | Bin 0 -> 1413 bytes tiles/furnace.png | Bin 0 -> 696 bytes tiles/grass.png | Bin 0 -> 101 bytes tiles/iron_ingot.png | Bin 0 -> 1314 bytes tiles/iron_ore.png | Bin 0 -> 1244 bytes tiles/stone.png | Bin 0 -> 1571 bytes tiles/texture10.png | Bin 0 -> 101 bytes tiles/texture11.png | Bin 0 -> 704 bytes tiles/texture12.png | Bin 0 -> 101 bytes tiles/texture13.png | Bin 0 -> 855 bytes tiles/texture14.png | Bin 0 -> 634 bytes tiles/texture15.png | Bin 0 -> 575 bytes tiles/texture16.png | Bin 0 -> 817 bytes tiles/texture18.png | Bin 0 -> 685 bytes tiles/texture19.png | Bin 0 -> 806 bytes tiles/texture20.png | Bin 0 -> 775 bytes tiles/texture21.png | Bin 0 -> 824 bytes tiles/texture22.png | Bin 0 -> 860 bytes tiles/texture23.png | Bin 0 -> 100 bytes tiles/texture24.png | Bin 0 -> 750 bytes tiles/texture25.png | Bin 0 -> 678 bytes tiles/texture26.png | Bin 0 -> 533 bytes tiles/texture27.png | Bin 0 -> 676 bytes tiles/texture28.png | Bin 0 -> 769 bytes tiles/texture29.png | Bin 0 -> 839 bytes tiles/texture30.png | Bin 0 -> 690 bytes tiles/texture31.png | Bin 0 -> 761 bytes tiles/texture32.png | Bin 0 -> 822 bytes tiles/texture33.png | Bin 0 -> 537 bytes tiles/texture34.png | Bin 0 -> 647 bytes tiles/texture35.png | Bin 0 -> 423 bytes tiles/texture38.png | Bin 0 -> 695 bytes tiles/texture39.png | Bin 0 -> 648 bytes tiles/texture40.png | Bin 0 -> 674 bytes tiles/texture41.png | Bin 0 -> 435 bytes tiles/texture42.png | Bin 0 -> 660 bytes tiles/texture43.png | Bin 0 -> 805 bytes tiles/texture44.png | Bin 0 -> 833 bytes tiles/texture46.png | Bin 0 -> 846 bytes tiles/texture47.png | Bin 0 -> 728 bytes tiles/texture49.png | Bin 0 -> 653 bytes tiles/texture50.png | Bin 0 -> 637 bytes tiles/texture51.png | Bin 0 -> 689 bytes tiles/texture52.png | Bin 0 -> 865 bytes tiles/texture55.png | Bin 0 -> 734 bytes tiles/texture56.png | Bin 0 -> 746 bytes tiles/texture57.png | Bin 0 -> 734 bytes tiles/texture58.png | Bin 0 -> 683 bytes tiles/texture59.png | Bin 0 -> 670 bytes tiles/texture6.png | Bin 0 -> 781 bytes tiles/texture60.png | Bin 0 -> 775 bytes tiles/texture61.png | Bin 0 -> 771 bytes tiles/texture62.png | Bin 0 -> 839 bytes tiles/texture63.png | Bin 0 -> 831 bytes tiles/texture64.png | Bin 0 -> 624 bytes tiles/texture65.png | Bin 0 -> 767 bytes tiles/texture66.png | Bin 0 -> 856 bytes tiles/texture67.png | Bin 0 -> 673 bytes tiles/texture68.png | Bin 0 -> 845 bytes tiles/texture69.png | Bin 0 -> 808 bytes tiles/texture70.png | Bin 0 -> 760 bytes tiles/texture71.png | Bin 0 -> 832 bytes tiles/texture72.png | Bin 0 -> 586 bytes tiles/texture73.png | Bin 0 -> 497 bytes tiles/texture74.png | Bin 0 -> 838 bytes tiles/texture75.png | Bin 0 -> 841 bytes tiles/texture76.png | Bin 0 -> 808 bytes tiles/texture77.png | Bin 0 -> 820 bytes tiles/texture78.png | Bin 0 -> 753 bytes tiles/texture79.png | Bin 0 -> 600 bytes tiles/texture80.png | Bin 0 -> 538 bytes tiles/texture81.png | Bin 0 -> 676 bytes tiles/texture82.png | Bin 0 -> 614 bytes tiles/tree.png | Bin 0 -> 1847 bytes tiles/wood.png | Bin 0 -> 1258 bytes tiles/workbench.png | Bin 0 -> 1858 bytes 168 files changed, 1215 insertions(+) create mode 100644 .gitignore create mode 100644 animation/door/0.png create mode 100644 animation/door/1.png create mode 100644 animation/door/2.png create mode 100644 animation/door/3.png create mode 100755 animation/furnace/0.png create mode 100755 animation/furnace/1.png create mode 100755 animation/furnace/2.png create mode 100644 basictiles.png create mode 100644 characters.png create mode 100644 nails/nails.png create mode 100644 nails/nails.png.txt create mode 100644 nails/nails_0.png create mode 100644 nails/nails_1.png create mode 100644 nails/nails_10.png create mode 100644 nails/nails_11.png create mode 100644 nails/nails_12.png create mode 100644 nails/nails_13.png create mode 100644 nails/nails_14.png create mode 100644 nails/nails_15.png create mode 100644 nails/nails_2.png create mode 100644 nails/nails_3.png create mode 100644 nails/nails_4.png create mode 100644 nails/nails_5.png create mode 100644 nails/nails_6.png create mode 100644 nails/nails_7.png create mode 100644 nails/nails_8.png create mode 100644 nails/nails_9.png create mode 100644 old/.gitignore create mode 100644 old/blocks.py create mode 100644 old/client.py create mode 100755 old/dist_all create mode 100755 old/dist_client create mode 100755 old/dist_serv create mode 100644 old/door.ogg create mode 100644 old/lib/__init__.py create mode 100644 old/lib/block.py create mode 100644 old/lib/character.py create mode 100644 old/lib/constants.py create mode 100644 old/lib/gameregistry.py create mode 100644 old/lib/inventory.py create mode 100644 old/lib/map.py create mode 100644 old/lib/player.py create mode 100644 old/lib/player_img.py create mode 100644 old/recipes.py create mode 100644 old/serv.py create mode 100644 old/showstep.py create mode 100644 sprites/player/down_0.png create mode 100644 sprites/player/down_1.png create mode 100644 sprites/player/down_2.png create mode 100644 sprites/player/left_0.png create mode 100644 sprites/player/left_1.png create mode 100644 sprites/player/left_2.png create mode 100644 sprites/player/right_0.png create mode 100644 sprites/player/right_1.png create mode 100644 sprites/player/right_2.png create mode 100644 sprites/player/up_0.png create mode 100644 sprites/player/up_1.png create mode 100644 sprites/player/up_2.png create mode 100644 sprites/player_local/down_0.png create mode 100644 sprites/player_local/down_1.png create mode 100644 sprites/player_local/down_2.png create mode 100644 sprites/player_local/left_0.png create mode 100644 sprites/player_local/left_1.png create mode 100644 sprites/player_local/left_2.png create mode 100644 sprites/player_local/right_0.png create mode 100644 sprites/player_local/right_1.png create mode 100644 sprites/player_local/right_2.png create mode 100644 sprites/player_local/up_0.png create mode 100644 sprites/player_local/up_1.png create mode 100644 sprites/player_local/up_2.png create mode 100644 sprites/slime/down_0.png create mode 100644 sprites/slime/down_1.png create mode 100644 sprites/slime/down_2.png create mode 100644 sprites/slime/left_0.png create mode 100644 sprites/slime/left_1.png create mode 100644 sprites/slime/left_2.png create mode 100644 sprites/slime/right_0.png create mode 100644 sprites/slime/right_1.png create mode 100644 sprites/slime/right_2.png create mode 100644 sprites/slime/up_0.png create mode 100644 sprites/slime/up_1.png create mode 100644 sprites/slime/up_2.png create mode 100644 things.png create mode 100644 tiles/bed_bot.png create mode 100644 tiles/bed_top.png create mode 100644 tiles/brick.png create mode 100644 tiles/chest.png create mode 100644 tiles/chest_open.png create mode 100644 tiles/coal_ore.png create mode 100644 tiles/cobblestone.png create mode 100644 tiles/door.png create mode 100644 tiles/door_open.png create mode 100644 tiles/furnace.png create mode 100644 tiles/grass.png create mode 100644 tiles/iron_ingot.png create mode 100644 tiles/iron_ore.png create mode 100644 tiles/stone.png create mode 100644 tiles/texture10.png create mode 100644 tiles/texture11.png create mode 100644 tiles/texture12.png create mode 100644 tiles/texture13.png create mode 100644 tiles/texture14.png create mode 100644 tiles/texture15.png create mode 100644 tiles/texture16.png create mode 100644 tiles/texture18.png create mode 100644 tiles/texture19.png create mode 100644 tiles/texture20.png create mode 100644 tiles/texture21.png create mode 100644 tiles/texture22.png create mode 100644 tiles/texture23.png create mode 100644 tiles/texture24.png create mode 100644 tiles/texture25.png create mode 100644 tiles/texture26.png create mode 100644 tiles/texture27.png create mode 100644 tiles/texture28.png create mode 100644 tiles/texture29.png create mode 100644 tiles/texture30.png create mode 100644 tiles/texture31.png create mode 100644 tiles/texture32.png create mode 100644 tiles/texture33.png create mode 100644 tiles/texture34.png create mode 100644 tiles/texture35.png create mode 100644 tiles/texture38.png create mode 100644 tiles/texture39.png create mode 100644 tiles/texture40.png create mode 100644 tiles/texture41.png create mode 100644 tiles/texture42.png create mode 100644 tiles/texture43.png create mode 100644 tiles/texture44.png create mode 100644 tiles/texture46.png create mode 100644 tiles/texture47.png create mode 100644 tiles/texture49.png create mode 100644 tiles/texture50.png create mode 100644 tiles/texture51.png create mode 100644 tiles/texture52.png create mode 100644 tiles/texture55.png create mode 100644 tiles/texture56.png create mode 100644 tiles/texture57.png create mode 100644 tiles/texture58.png create mode 100644 tiles/texture59.png create mode 100644 tiles/texture6.png create mode 100644 tiles/texture60.png create mode 100644 tiles/texture61.png create mode 100644 tiles/texture62.png create mode 100644 tiles/texture63.png create mode 100644 tiles/texture64.png create mode 100644 tiles/texture65.png create mode 100644 tiles/texture66.png create mode 100644 tiles/texture67.png create mode 100644 tiles/texture68.png create mode 100644 tiles/texture69.png create mode 100644 tiles/texture70.png create mode 100644 tiles/texture71.png create mode 100644 tiles/texture72.png create mode 100644 tiles/texture73.png create mode 100644 tiles/texture74.png create mode 100644 tiles/texture75.png create mode 100644 tiles/texture76.png create mode 100644 tiles/texture77.png create mode 100644 tiles/texture78.png create mode 100644 tiles/texture79.png create mode 100644 tiles/texture80.png create mode 100644 tiles/texture81.png create mode 100644 tiles/texture82.png create mode 100644 tiles/tree.png create mode 100644 tiles/wood.png create mode 100644 tiles/workbench.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bee8a64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/animation/door/0.png b/animation/door/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2cfdf351c4bb480eaaca4925c69be39b68bbfb2c GIT binary patch literal 691 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|6p}rHd>I(3 z)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfq`2Xgc%uT&5-~a z7MU3mQ4-h?X&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i8Da>`9GBGM#WBP}Fgc~6DNMfkzk!)y z$=7MzJqo2d3QS9GUjM+~;mKt1gWsq{&~Y$_b~QQRAdNh&Jn!9Fd^83)xfqud_oq3 z&tCzP1gTe~DWM4f D6>rly literal 0 HcmV?d00001 diff --git a/animation/door/1.png b/animation/door/1.png new file mode 100644 index 0000000000000000000000000000000000000000..94b2103b8c9933f8291573cc3aacd8a1491725ae GIT binary patch literal 717 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|6p}rHd>I(3 z)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfq`2Xgc%uT&5-~a z7MU3mQ4-h?X&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i8Da>`9GBGM}dyJ;nt=jBS4zuN$0EKh+?wecsWuXhOQf#Uh_xgUKCy zF7CWvrf?cE9c{?pKJOq8+vOKEBAy!TM;UUsI64z~T_&9Uy-<+FJ3~RrR=$BJoh4Nu fXInyWkFP9)lD1omrBrk+DBXCv`njxgN@xNA&hg_Z literal 0 HcmV?d00001 diff --git a/animation/door/2.png b/animation/door/2.png new file mode 100644 index 0000000000000000000000000000000000000000..942744dca684b1e55ccff967778a855606bc02e2 GIT binary patch literal 690 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|6p}rHd>I(3 z)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfq`2Xgc%uT&5-~a z7MU3mQ4-h?X&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i8Da>`9GBGMcpNLAn^=>m%mievlxmd(ELu!x7IfH^L4k{WoY6~PjyuD^zleO{GLWzb@ zRz}A)Y!e;{@h~TFa=Qqh@=!S5n9R70Q^lc2ZGsgru^jwr;`=2rsT7nrJYD@<);T3K F0RYkc;%EQ> literal 0 HcmV?d00001 diff --git a/animation/door/3.png b/animation/door/3.png new file mode 100644 index 0000000000000000000000000000000000000000..b1b741a6b55fd7cad053ca8789633773326c92ad GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|6p}rHd>I(3 z)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfq`2Xgc%uT&5-~a z7MU3mQ4-h?X&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i8Da>`9GBGM*U9bc zj!YDhmeBjL@srH1nH4`J*hF-nA6U&8D|EQQw)`B=){=&I>Onsr7%-?R6*0OgOv)0t fkySLw;EWPO)eY&DoW3iZK~d`I>gTe~DWM4flpejp literal 0 HcmV?d00001 diff --git a/animation/furnace/0.png b/animation/furnace/0.png new file mode 100755 index 0000000000000000000000000000000000000000..a5dde73d3984d1c2a81b09f6f6c7e8a2820648d0 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`i#%N%Ln>}1fB5|Aw?AhZgW%d= z@utGeM5Q^tJoBsAp2%6T9#e3Xm@Q#~)yVsC?tfx+4B>y9K!I2Z^_G`(M4&YQ>3qoyU`I4hCu zKn$aC!wQF%%r;4e#hrXE6LL??n#il5B`}d$;F)ZSegcb<8P8|)Z8IE>F)Y&2l6~Cv R&I9OL22WQ%mvv4FO#q06OEmxh literal 0 HcmV?d00001 diff --git a/animation/furnace/1.png b/animation/furnace/1.png new file mode 100755 index 0000000000000000000000000000000000000000..31674bca027093673d366373c09ce539cc53b3ea GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRaG=Ln>}1fB5|Aw?AhZgW%d= z@utGeM5Q^tJoBsAp2%6T9#e3Xm@Q#gKDg70iN>pVw*^9@))sGhX4WLe2ZTraa*Sq8$cj z6~qt3Fd28eaA?VNGV564&{E0V_K{6#UxSj!Q3kzUA-&cKSIU9TWAJqKb6Mw<&;$U! Ca!5-6 literal 0 HcmV?d00001 diff --git a/animation/furnace/2.png b/animation/furnace/2.png new file mode 100755 index 0000000000000000000000000000000000000000..7699012a37d4625520477cc6442e2629e22df261 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`O`a}}Ar-fhKYaf5+n+OyL2zxb zcvE3!qS72+p7~X5Pvopvk104x%$Bgb!5}Uwyy2t*k5I$L&WFukns^n=86L7J%;tOa z`0$IYmB|ddHh)N*6X(Du;iPv!y5mHb{?%6k@0oHE3toH4{A}d7#8b?;$-9HkWrCW3 kn^{L$V~73%4p&14%`7IDX`5Gu0A0i2>FVdQ&MBb@0O&11UjP6A literal 0 HcmV?d00001 diff --git a/basictiles.png b/basictiles.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1de7daa59926365960581ee59b87dbf215d771 GIT binary patch literal 14663 zcmds;Ms7g5Yk@_SRcVlr7DPh2ms~&uq>)f0r8`7A7Nt?TTWVRB zSeAwbetus(|HSiR;+#2W&YA1XT=|)39W6K&ITJYm0HAvQ?1|pL5&5s-$VmS6{VY!Z z7Kj)fR8@7}slruVom@Ti-Co<+!fjn_JsfQG;Ew?S*|<0Zb9)wp`%0~zcH9q#^_?Um zyh@a*c&I)ZO6JwKge)ydyQDprp6A+rbGkqLd0<#pqV+mY`>9T#*v{Ac-JOj{4!#q} zf>OOmDml;mBnO{T{du^~c1#iWi-N=#hnCu9+x@_!tb^=;{bsuZ;_c=#vs-`P zDxru<0OE=bhJ1kjmr3l(J0@(W*4vF@ux=6mroT2bzdV(K;~d^@2(C>;5gX_`Mx|3H z{O&ndqr4KUnYPT;bi|fzZ+^4>>b;a(>vr(^CdawUKH|vvSMkV~9HsXMug$ImqTwKnmF1mN{#H?b0w5%hipz_B@&S3O==_A24 zp{NlV^q_v%Y2{nu@HOI~Q$_ zs8iC*OtP!fVJ}1Va&Mn}kMTfOzalBujg8Zu7i!+YUg-7=(+B1RMo5>3hICMUzeCLT zSv0bpT+`-~qg^WM@kqft=2eEpX{T^&DDZumR*|R0^Z3Vr%e}0}w-b6TYt1l% zGP(_Gj9D#4!xxqpSc3Se0Ku_fHDtr+u+gK>qx1MF{a5$3IG&f1 z%;vG~Y-m~~_KGe?BwLa7t_}NE@s(MJupuz|supytd1GMk662P_&uZwZDchk!8~af8 zO>Bzv%d;kLf!>S z_2+@F`uHbnrfTU&X&F1)Q6&r?`ZeP1^&{t2@%LKkb&vp|Z~$+O+l&P#E>;Oj}uVz*}nS_t_= zMj@+n<-luN33gi!u!{=;=H>(%fXyfl002qM^Cv1V{eXK}LBEB1f>zFcMv%AxWsoLO z*4FM3mQ1-Icqo~Av>AVcbtcWaiGkiaa!GHhTej}oEZ3x3l|dfSkk3;`Pv*{-Nz6_| zvkn=`I%OM!i^f}Juy?T(?(TZ)_jOR+Rzsf`_w7ytPYJ`BbBe9#OmrykQqr)5L}&V! zxr>`E8IddeZa`lgyR6C7-!Y1jaxG;Kk%9aDeWN`A+r7+XMr~X4-|Sx~AEMX|irLP; z@W>PSL7+IlwLE6qBd=N{tUlg*;kNo_O??XD(%e2D@&~I|%4>1lqvLO&7&N2(gOC}y z+PCZza`HjOd}>gTZ$!M7(0|*Wz;0F=6PT_9ou8cPRbsomx==07(fW25L=AM6wOv*f zrx3ICCPv=k*#nDWvbMv@6P+bo+n!&QO9&Q5V`{2&ww6|SIs}f}G!aVD-@4UFs3RJ_ zu#vAyV>1VtX24gUL6>TdmhOPxd`fPs5$gLLk|v%^En2{!6R$(b8qN7zZKb2qsx{Iv z<$yJt%Ee9XoarJXo=N8X?`6Ne&#ydn1Rox}RABCau1n@9k1~W^4nA$~muQc>RQFC9 zjFTKEWL`N#+*dMNyL0}m+nl_TsUewdx-mW!R4lq~*GICd!+SUs$KIkuM&JJQ@tBO* z0*Q{RI}GiXE2C2f`NsrX%Q{T0Z$nhyQE^mVu7jvA-6g==$rx-U0zOiB_vN3voWh{i z!R7iJMCInoj=BVj!c6!bbwWb=5bKLSSmQ^^0(|Jc!2jg=S`Wr!L=*>EvPsoSk3S0! zsOU?h({z6PB z#6H#q3;ggXbpuLDZEU;iW`pStV|Tz7h{fw&PrfRXVd`m^Uxg~Y-PfEksRlOOlP**0jG|-}7 z!W$l@nm#y4*iYArzex5Fo*<3oNReNzvk5}X4R*_>W6G6xybHZgyh<=;J`Y6F**`T7 z8+h}jr?;1KI@yxm6H(I;Q4;2d}5rgt~ySG_Pu6kjJK2C?N2VZPh
V+iXpIo1G_wQ3<3OpfJa;*j-iywTNr?G5^ww8<7&84K7Z$ryo50z(5*j0;< zz}vO2S+m;W(JeP^imFGEZ1O%O+wuL*5k#7{89JC%~(DQ}N}h$b&ekUbPH>cY)0B-D+!Li6( z9|ojt1#Ya9jZgtQRE+kclys)DbCv#+*=D4{Ntq)qddH?>5}@vJUYnnQ$Dx{>a_kuq z$;*-(tG&9_Kqr&FN7sSJ@EOQx!fo$^DT*(RA9gP**Pc)35QZYi@5vRsuS!53AkGag}k<4O6=;fr^8EV&m#D%SE9S7@W*rrA(UP(IrMgwfR{#*)xwN zkbL`7!UIZ8xRulg7UQFCF~$0L1CJ(OHCcE5RVs$P0fCBIfhb$Gbx~Hd_xK^{>=u8Y zluAML9lxG2?F`ES4n7M1Ll&57jn(_3Tz4n`yQ}THZGp&XjtvY@610sK92FdC+5m3+ zy+f%*>kruOyFE;36t;k+&YZwoByG90nZy8ny6gzCpaWLRck~D=nl7K}oQeFT`!j%- z)LryW0>ek+Gtu0in>*B~F}g~O-8Xok=H#o?-l+Jt+d3b5Y9PsRU?i^h?Dp*C!?x|- zR#fUT@oCv<>iHOqXi0W3+<-C+(t(Q~=wkVr5aG&ARdPtWdYFFHplipn=?}J6Wx0_1 z6DaxqnZy!3b~=@F#Ah_|sF0Szo+u{?vUCF5$fG4atL;4TEWTlmdSAQBeLHTa<&-i* zxY~Vn+vLCXmtC`SeV7pQksSf!%_6-RO}fI19R+y^D@cZHh1!(6DxNz%4MbZinOtw& zu`FfS+^|8yqmK1&ce{MZ&#~9asdUKh51m)x3Ia!X?mdytOUtri?clb{WmVpnAty#F z0&u*&<9$1b z4#bQVsx#BHlEBiEhWlsQ)w$!dA2ULqxKnX7@zGdkORA_o`yxaDI)$M!(y~7@TFz^A zw_NMZY0)}Sgj6n*Y~@L^a^%0ZzrW>qtrwgc`a}kzCZ>(x$wy{Wa)dE4;h9GRu2>7?37L}%15fZb=hyUBb3rl@iSBS}$OpEY zJj-|RhRr9r&*9-ZYD{AJU$1~HzyS7KFISjIZj!Mf8%32@C}}l=Xl&4oxySGrpQyCr zmP(XyGe-U3W+JHQ=o}Z~7h+OrMi2>Z*Z*%O`oa==Zu9(B+5Dsvj_Eu;v17g7Dejbe zhPGSr-`>V3-)fvx8D)+eUb}V@_IAcbSdEql9T%XB7GGs^PSPcYn;yH)mMK%-!>uE2 zEyu8Z`$oa-@sv=sb*(wLq(lsTzNEWCOra;3KlIZ8UEQucF{|uAob3QvMpoC_r^niC!4>kSYw+Yy$-20)ZagyNHrzx7C0zOH)4P;LoWKpH=19_5+%AkUkkD>xW1K$Qy8KK{xd2cXQ2! zgM?r4e33Ok*=#6W4zyBBI%m&%O}>7qP&dX%GZ~$m9K4f!@bb)Z1v^fdZLHQi8$00BC*6$_qhvtCIKn-swE0`PZah>}U!KCe}aT~u>U2A~G z#{9y~N6BUdoAU8aC|=olsSk^yYt}k2n~U=CumqNTg|NG;8+Vu@>;PMTUsHnAl_1Tp zQ6h}+szw(J)hG^qIz$}om(E)Ok{XxrsflZF18RtST9ykUf^ucW@zW}Ln;+ki4~z?w z3>|}5s`4Si)I2)qMA>bOZh}70ZW^5CUP@Bp}Jl-Y)87c`4bxT9MvIVdE6&vhUZ z26(RzLgI*T({C?q9j^M!e{fIvGKuK)omt+7?eNG*YlH7V)j&92gT7+=wqc$iy_?SO3WO;ePSLIlV&R3f4I;ekBOp~QSVZz3P>1{-jP*qi7Q>MRT zwA~(3WHVGrGXGWnCG=?rDrHIHNhDY6h`qe@*&LAR@tLmb`3q9%3gfNw^&eLX(jn!!5*wwOkLH?#m0I#Epm$?Oqw^%c0WA-#SiG(M`ObBV1+tLA=kKoe$vYRHO-_L~ zjylVOHmx&<)RtQ?WRkXtBMxb-n07X+-}0#SB_gN2JNTeru%86J*-nQ%e%GFI3|zAv z)7C}__emE+9jtBI#tqmIxogevSu>8d8ByEj|NgfRp99=aP^7qg0t+3C<(}Vv14!k%AZ<& z+T5eFvq@nb!^~CG29kzF-RY4|(Gc@5G?vT8*Iy3;-A01~23eWc`XoNzZ8;9XKyJ3T zc`c75)Crl{=+?nc!*J+xcKJa2QYTydthuI^Opdm#I^;dyvt4VE@l3i^bC01J{aNVLkiGA)jZ{Y8_C@=Mk6pvR*aq{D9oYUhd?>X`VHmB;PA>Wr^b`+GGab#8llV z^Iyf8hP)}fM+UWg8lAJGxUbJ%l8snj5NhDk9;N>0h=SBBS?vGmXwGSBuDJTTq<@aH zT5y2?^92K!MgALr`$n(Fi#q&NwD@>RG}Hk>Su%PV`#P0!weJkXmjLf+fdW^-;wyf` z%EJbO+%cS1L>Ok3rVZI|rML?g(f7h&faHDvx|Ncy(3}m-sumz@^XmBNJtB5Ne?89{`7<2wIo+ zV|xeIQ7zyJW-~E2P=Q!9ryeMm?_}b<~DMu?e;dieEtlD|We2g+i;P-*2e~w&A|o!k{JMg5{E1 zvP=Y$KG5DMc$){qnD-2w z8dJp2O#-wP*oJgCSeq%cZwpretzQR7Q6=6xANQ7AwiFdATOU$~T|A&_`)4>-|{E zibDJd;+?NLV{m*D#D)ZaYg)xh(6s}CQbWKT!J^-WM904G6{vG|7AazZ8T?j<+**Yc z7LjSbhYj;!&h6=TNg{e?pyj8)IoTTWK6?>WQak(u?0eJNb*9Y{#9`h|N zg-@+4PF=S8ptPfCA&=D{-JaQZJK{v}5Hm>0FL_ic57T2jz$syS(mM|IA{#q<*LW&^ z7O3mPdL5XeZ^7QL0UV>1<#~bwE?UVm0qdIYjh@or(mv5eec$845?@(qvl9oncYDDC zC|MX^Wf&;=Uhe|tc0P$@@$jW%DRKkX415WR11Ev>U1tztwpXAt5anQoj1Rq4$Nl0x z%XVW)r%et%VGBV&gSL1rL0S$o9yl)d?3xd(s?vv_Bt2KcB}L|7P20DhYFxz)TOlmsyC}NjbVCvbX|j)5Ys*GRm!~sw;9v zgc&XFP%tL19hp+s2c&66rls_berP)36t~&g{X~4uLQuNk#TtWLP4#l8z z2Ox63MVo)~30!@bqVqg62Y+w(b6UdP7G@F9oQY1N3ewY+!(7g~kta#|zdt2s2!I+o zmHjeWWoL0QdRdjng}IvCXd1MQR-|V|vJ7hFO%=#qR2653 zQ1YNQQw8;w6K6etAHQKs*~@{R_#R*3^pr%(N~lRxCKEsJsG`D$Rc-mKd1+K$Fa_B zU9AO{e~#tY)$mxdzt4j^{8JJu8O`E};nTfl7QryzFH zZNrApmsWodxvs`dY;t}xSP;3UvelKxMv8l^3d!vJi}|}GD>*+GQ^x%_{zCulzIR0q z!$tDFhhG-K8y7k{CPW@8U)jJE+mBRrgzH~>iLa2X(F7HR*uNf&b18!)g0f~r`q?Pm zl{kdbrAEkxyCSFkfyCG**A@2ej|1QnANO_A$6AV**!;q?u^6ehPa5pCp(oGK0x!Ru zKc0?Q)mpr3QDU#o2oJJ!AEUrob{*<5{cIe0MJNi(&$%X)smvJghP$t$fuaBb21hb? z*N!Tn4q8hQvU)-pcZG^84k=etI(f>?Hzk6@Lr2AwrI%*`y@pLf2q?g`aeMHn4q}e` zG$4C*!y78kK#M{D%um@#dwXTwx}ky<|GcQvvN6t;IK1dZWu@xNJ$>yv#e*{^JZqF# z!W+20v$zw(TGdv^lPzvzGx!@@6r1)o^t+D`&T-!SB8#UaFtoeZkZUrv;u{REm;aFr-`}&8(;vg|iR;P(C zx0v*}gfQo0Pez5c{PJRbGnm0i$1CoB+lg!?pnR(Y+jwBiXY99iDN4Lia0x=;d`n@# znGKL^B+2l8dLmN_=K7OH1S1Kpii?D51^p4J_a$n^o_&;)0Z8BaqtA@fROf?|LJo#Q>C-Cy-5xLf zbF~m>J4rPMIU!JV6FZ)zAorqE(A6leihy--4i1OHUA5Y6?YA7v+;dNOlh z!xL0bI^@_+n<8)aWsWI5t6{AR0o#zkw;1u3*f-DJR3G2<7pzK%G?TQ3#hd=xz`w)o zh10Uh<_E8p1pw(2SlcTrl8nEHC)%;x(I++-Czu4tu_hMlHe72B2! zF1Qm*Ak2#;PwRMWeYlX#xca!0JOp{)|Gj^`*f-y7p8aS5tg~&gaA)>;oWjxO@SN&@ zzR(U)(6aYWccB`FxNH?8`(5i1)8CU_FOg#Q52suI80-AgmaT#7ddyHUuMYSJDF7I_ zEbtB-^;%m5#Mp!EvF|Hm{cE2nJsjjO*>BVtOe9B;3d$Or44%VU3Gt$!SFCAKT~a*T*aH(o+v zf_{w?O-)r1meJWzR7Fy${`#O&(Yr4OYA~^sP%+UgGF-*E^iNn~^ImojEBV#+`ig1H zp9UYf^ZTo(iIR2z&Cjm1cJHTY4SytE0ZOn;mwb?baj@UL;mwU#iK6Xg}JHN9srd@23e%rR*d(oNR?9;&7dc5lyFO3Go zL16)a`jhdtbf4Z&Nd2F4W`4{OJ!M}=lR49 znv%Nbyyi;}hp;xbRPP6F&HDZs`D^g%qgdisB?I=~ZI_lt=qY)FpoJNZnytR>rYp`E zrNP(MsN8{44(l09giv*QB-}-d(aubR!2K5T>ARBo~*zc{>ib4kNG~LMZumh`*_J` zgrJXWt#l3QHHZ0(O%1JcqR{ekqZ@bb1=?Ro^qhL$jKVECE*AE`1W-BniDqAMrx;$1 zCJm@6#HgcA|YsI(AbmOEKesHr*S??L&`@pAK5AwbIDBvZN;e2&iFN4(dsJU)B9p9S%dslC@UCi{+Yl zu4#m{fDAvGm%R*xPJ4L9-pboU!#>nKtnVWm0I*Qm%(Hpl^tJ!_a>WqzMlO$gb(l|N zUz#R=Jpub+OR!zF1Qril#|M4m%?ZP~Xd4YpaE3o*Vzk)G1S^X<9va$D8$P>`s(4f{ zwkotli63(@D!3s3Auy6}QqClwvO?@K*=Kc5F8g;>_0L;D%?BsHQd_*&>Pec4U#&h3 z+OeO0ZkdUQ4u^N*>{I+)#vMfC%^(-4t3KqjY7-0B=v`@S89{odK9;5le`!4pXdZIK zdkWo#yjFE6BB2j0R`M>mjI&uuF+K?LnJv?~c$ecC>t-==$*-s{s8YRZp8!=nH>Bb) z98EuEJn?%t$J;s4M&>s0>Z~w{4bu?n4bUfIjXE2}7T&#%d~wp(p9a9r?4XN)I9Gl^{MCdU8S}xD)BpC) zRmc$im=M$kWRK?6YN=U{XMO%t8_G0Xh~7~z?aOx5(jDswcM|Zb%xl@6RG0^B?Y|i- z`(QyNBV;Vu0$?d?H1$}Vnf2{5pt${EhGV>DfJr=+jC}mBayTAel!pbv*;|Md!%iw% z3`L)@@sgRm<)C^IFAXqS#v1mIiI~c*`NWBqlq&E(tO4PU&4;`(m*p`QX|byxTW{aq zd9U48hPbhM6_Au1PAW4-BC?T2YU%Le(0?o3XZh|zjTHc6cC*{8WAunrxs!b~Jw#Xq zee@_~`)SrI-nZH=1$*XHC9HJlU?i{TL0{q<3DoW+pUgv6^adxsf5RmRJ_9JH{1pHc z-s#(ed{uI-L;>j}C+nYcr{#&A%=Vq8&+W^rc+=w$LoBq#0b{E7@rafxM&8LMTdSawHqKgYC{@y4@|+r@xh*6wU@JL91hzEH4+~|;3A+AgkK#uCZZy={ z94~4G$9K@jdTh7_5$ov$Un(h(Q6E-#R2oRVH2z~(I?fe5iT!>WgfhP614n&C_)~t~ zju*=y#=SEyVzr25b0k8TMs5HTnmg(vn7&n0+D^JARbK<|w$BoP~Ww3vj!*F?B& zZo00GqrM$rdg+&7>+ZfYqP61J*?y~a$L9oB^V`#)EVkU)pAVj(P9wLCaVK{#wtE@) zC~#6w@I2gk7Vwx>VtdtaH3qnHwKXuet)nhc#pmYIaH<0{Q3%1+GlmlfE@V}k0$AC^ zamSK?5$lmN5FqEC$hOS&PJrI06Hw+1M~np)*ibt-GX=hDHP7*ASAs;o$b9vWzYL?w zXEgAt3cIpAb4CG`k4f}h3)4x2+DYOzj< zTW&{weqHKwky9MX8^}F3Ceq(QZKBR=gCfh23Coyv_X)Rn2S_w(CPccl<@uMSVL`Ml zYA}RN7h~@hhY{1#G#mT=hEx%a&;R@mpK3A9;)eBlS+P(o8D+arbZ*oN9n` zz5ot*Mpv;|A}>sp1fmkME=5O~dr#n&c+qFmf__x0tTi^@%u&_W>w8(BpX7VKk?knN zxcNRi8*AE@*?5G4UH@?e5vFWQImgogkw;5 zY5G@v6$SYM8A5r3qhH+uxr_Cwz%!7nzC$r&p%ikkn?jiVaivoY$I(JO_xVN2>eIMV z&)qmKr$3Elhw@mhQmGK@Zk~dUg{{8APUNeCHSxc)opQ}kT_`{&eKWhx) zc=oJ+NBD`g8atOgV%MZrudnh+eWPA)#;yajz9A763`YVT*BHxL}_cM$Z(%vaV7&Yrr>eN$Q zAJb?Ebu;Uw{NifD7Jamhn@Wg*6@vyr8&E3_x$6l#i-nIpr2r(cWzE1>!%}nbY+hv{ z2|d?#H_;K@_|7widvIUNh_BE)i*xIn_l;JhSaf%Mo&-s`ERBEIR!A@mKxx`12?ysq&tSi7x^EJ4MQeYLzd3k3sx0b>*cc zcvQCkQ<|0{zCxmx3BU%FM~si>4J@3+kcLzcE8VjHAdA1#+;Mv$ezUUB);0l=E;li1 zY;oDlRo5rU4%qC7uZeZ;bp#VNVka)VU9CxwqVSJMwd8q6K}G*{{vM`zl|fv7b81tNE9I z4x4*h7}^D&TJ-#Pd3CKlb+2NWoFX>wQgzTb)P}O3DY90x|7g6g7Z4$HIJsXoGkie6 z*m8}w$$VyZu;8@~#%HfoRt20*2vMjaPu0=4--)@c<~?68kV7N~H}v_I)4m+bfpccR?qSGAb3@g9Zou|5TswwAKnq>ZNH#B+|xpZ7)I#qP!K z)x_%s6poREe{cvkzy3jqdO@5Vs4rH`mN5 z>8Vj(=jS;c#0M+W=uYM9hKKvunun5bDo#82-%9<6DFGk;qYV|!7rZ;!2|j<;b71Qy zRb{smBKoj_&qPBl_`tFPGz7oH)hji6bGlBi(zti8i=u68fTn-+#j&xUlc1Lx6vkW? zuyHu~CAP!vpQh^k2VqV|wKx*nt_CC)?-x$$wi$wI^Ox(*L8HIG**gZqg6v@)mji6+ZY$*14B`@lC558NB?L z;a9^ime>n&$r06Z1?@2?K4aPWU8@?p>6_4;4sEWLwvajL_+ ztJf{F7k}eUMLo294+7{XDh69S6jEqWRVu1TJYbo~K2mjs!j3@v6kT6O?29M{Lw!9@ ztW4h!@q~rKHhz$Qf0AMluk{nR`{WH>oOK85OLipzf?w0rbPzn~ryu+~PknqF>sIMZ zDIg=fyMfQ>qeJ5@{=eaq+O`szegIyVnWBFJBy^5HYV)c{Me6}1;%?@wDU|9zL9z`M z5e8YMR1f#avt8sLnuygEt_pt}5dg61M+^G~&q^q>fJ8Su@^iJQ!r`cuvx^yC)r3gX zhIbFP2k)V+?l?-h-MDV5=8e9{n*qE)rQ6?U!7znBP|KFIF}rV1w`e z+2Jb{1q0tLP#k0%>RooUc;5$weF1-WB)EteA2lvdF# zgH&QpmP2C60A6nXDl+V$iphw8k&oMx?5dU+TJ`oEcfj9kA&X@P2WC z)K0`@naYk0U|e&QWC`ko%pyuP%P5S^I<79w?4BvPqN%g^zDEZKQ0KMoK5FWQr-gX9 z4Thf;%I;+BuRZ7euL;KaXS-L_!>B*=L!VnnTm|RwzZj@)RIEf+o-U`VwmvI5NQXx$ z7oVvN;ixf5LbRYHp%+P7CV;p+Dk|N+AAlA>AcE>xe=6vQ*l$Si=l@=;=6~|J_k#_{ z*hZ%IM2?BJjZEpnnFJ8O+FSScFXLetVs;}~$=3N>juJgP^TW|F$VffZ#&2)o@tYk$ z$)RP=lSJl!w9N*=vJ*Mm;{IWX> z|FAt|DOiTR7<4|G1#05l2oqoVz$Nog)K)FLX5_;*SAH-S$W>yF$}h`VR`c>ZaX~VVYBZL3Q#u-W{Olx)ZnaJD97?(>9Mu{+rvA`%s#bes zCWGiM;F zq=(s7qeC4fYLSXK&>{O1sQiS&^cRe;g)btWa;$Cv(7lOhkxHYT^2ZMK`Lq}_tByUJ z0t+Ppvl>9WL|DBlnOg2u!jYnWe<~^ctyHTAlP>gyg*R(ZAfN-+`-qhUhf{qFl{QH+L+sq%h&R^OM zspg)}T@V0Vqbz;p%BBli#UQubN}9Fr*5oMG`h;pQN~Ev+c=~3c?`N%?vlAV%GQH$P zhH8(X3~nxiBS1~rH0N~gN{VE`1L~t`WGokCH=l(B>z4KQC)D+kDD>($08wy9%re=v z;KQvZU}g=eHwCXFf|usAHNxS3oashKJ#69{q(PU1#uhV^$&c7C;7DEYVihuS_4DT+ zkLl01J>nLBH-EF(V7yeT5y$pY=);I+KLTry zWgma;Ws+Qu2xI+d|EXW}$MHb@PcRMWQIiI6+;~rd)mWoIeP~_Q|F6S&vzevENGK&{ z)=1a&H93;ADF_A6)`tn!4{h3z;WaFS#&4ar_!gDftfapw-p{an29{sN?4R5}T3@=T zw+a~5_O#Q)QQxt^lb;;dVwgC9W-I&!8eKd-UrEgwFXL|Fpyvo&hJ(z)k6O+gwb4jJ z@d9E9wZJ$vmk@{@^AG)%%()`wJtG=EGm-G{n(kX}kWClCjL>PZ3H;(^a2*f!>H{qr zSrRF0kt#@06-c3|t;C{|bu)dnRyHd}hPsLih@6~7{UZ$u-|-FR<;eRrOec0sxZgC0 zUW{iwU%1ybP4*(+=mKiUJKlPnUIa*eVKo#(vaX_&iMBCeU8hM%%1Y>!OdnAzYv~>! zb40k(CS;9>k;ihRTBbK*?!&(Jf?~Cdo~bDu84r4e@^;>bOkpxXf|6mCx(wX;q;4)o zBeTuRZM7dba*;IXwqq!4YksW97%#_eK60Ma6;SY1{Y~9y1vA?#@g@x?FX>bLs$Kgt z<*b#H=!;tlnDnV#mBPc$=-?LmRU<{j$N!WUMwpQrDI*s)N9A-+Y=*vW^qs&0?q`-4 zjzmX{bZ-P6UC0m$AaQ+xH{SMNJ}u(dwk45yPtQ5O<>5aq9+i`(QLf@9;AImX7i$fv z8&v;r=ez;wQwbiS*DrQU*^I@JMEKAPDKdYM{3x16-%;cYl?;q+XHeFuclh#vr~ zHNMRnS(x(w>;H{V|5?Cml#NRW0YHbK2~7z(sAbjuyH1YcNJz+e%9eTUrLC%^?Z3qgMb*T9FvCC3+Me*6!wIyt59FF)1#O*tBIcFqRW6<+B1)@=}-WL z481GXY_{kUJ1K{$SOKfESvl$MlCKS0Ir%#UeIob-SlNI-$A>ji^t+@t)B-i&U9D7e zKG=V?c#8I2hJoU9MgP!v5uO@jZwnxy%!-U2-} Yj5bfMq|E<)kOVw`s`aGmu~pdr0kTe&?f?J) literal 0 HcmV?d00001 diff --git a/characters.png b/characters.png new file mode 100644 index 0000000000000000000000000000000000000000..eac82f3442876adf2d3a2017912db7662758e0be GIT binary patch literal 9896 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 literal 0 HcmV?d00001 diff --git a/nails/nails.png b/nails/nails.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b65634eebeca34371bdb238741af4c8922921c GIT binary patch literal 3057 zcmZve2~d;Q+Q;9#B$7oG0s&bhltmGtp&&}RA%LP0;ssnNn?}4Y2tlz@H9$;W;!@NK zY6ZNYB$kR50zsrALc$wRQKn``!30dE1eLq*k@y4_94C zHc3YE+U&5~yOzLz<9faA4rBOdy9*{J`G*30Q_S%x8;W*q?SSFzbw|uY`9HlTN4=^O znT$@3{~j-&8dGKTJjm0CFqfuE(q}U?T)ApWlr(;NmMhO+Yx`gN@sD>iqrX?GxQ!qG z_U&!NI4f^TZQ`m}Bws+>T@8Sz@1P@t^xfk!`9Rmru;gsOBm2;GG-!Nf z(M&6k&ybce?0QH_3M87~*6u9LZ%qWwd+zkw5O(G$GY`Um1Gx z&p))Rw4rWL- ze~pj-)hj-lWV+W;J>WNON2^*whg*-tqMFbK(R+=fy}KXBO}qV$@%dHCojsjkkQwci zy8rq3Kd1b%@(4~GZdZbxv;ilDyI+f)-Psa3h)i}5_&eMyTH1a_eoe{JDx)p|{xz)h zpu&Y{7hd$+7%l#qWd+o)N(KcL6D@@`B5GVx5>jwexLjJ@fs3(hdBeB}%21q|;X8qXL|t&(Er-lNvGy_00J8tcfdoB!R@( zrk20eB>C;u?Q6TZCs3c5{Lw)MGCpeAdzLD1U-lw#Ci0Y+MEciF+CkdH@b325b{`qoG(7%J%hb~{qJf##*5c~2|L)|5fab6x+iC}S1kjz zVu5}%!l2*4>qEYhkk{}5gJv~F@gk2qGiOHbns0ITW;={ri^qu^gWJET_ITomTS3kJ zF02y$&2p#FI*%tgXnedA%bDGtQ!W%@YF6=8V^w%+X5|h_S`DbeJIUje85fa_bpOJW zjg-+S-~G zSd|q}Lx z;9PZi_MqAVE^4bEO8P>SBGi0;7j<+PQ5AelPylIm%Ja*3N8_Y3uj;luFzqe2-h!$A zPg91ADhEBG-gOhn(CjXhHO#WptWW&a!mF;w>h_E1+e!8*F7Zbz*KGW;qB#nqym|ze zxYD8M3&^j=3netj-QpSbxA$#=AK_Q1BNa=m;DBFB6V>|VPVB~0%VEp^K)+9)1_J>? z@R}G7$nIOO{N+$z&&xpDErT4#r{sYZSSV*$vzy>; zNiB(7QO{jYWm1VA*``d2$AtpeL~N5E%1~yvuFY|Fb-&D(ZgdajcjmM{;Q#a)scYTC z7g5#r9Nf77gxvvIQPuiP8x%eAUip6+B}ql0_k202P_n4qIv8#Wi157Nc{}3g=)~ZNY=H zF0!HhJvs~NiOq<+wj96;D9BBebQRF7B2becF%Cj1+nVXJUNk(VO>pfaNIig(C4@O?vItY8y@k;D^hUZ6HMbDEx1z!+!?7BPxYB4T&c(vArglpWXPs zIpODRaPKS_3q7`!$!n5qBEx}Fo;zu1SZQI3?kfQ{&E zql{;KurNy|pJzCEE3_l0*4KAW7j(V(xcqzaiIBr1yFMMZu#)12~Zxsr56< zkirX49vB+tWKQ}r_vpFHFXU~b1&eLMAc;v!^N=x7@e!s|(y%A-%XsosttXs{`|g8p zf6tp8-F#l>Y5M@QfL&V>#6MqKJ;u2+fechg6QMw-z|C|*r zUQ;Do0!;FUZp{X4zl_{Qh8wBX`~=jX+AuyIfHxmf;I zE&HeMG0c|@Wo}@Jf2S9UPb(B3Ou~H=^92ik1GiVj&4SR X00++#c4t3-=z*}!5usHZ6Z!uFk)FhH literal 0 HcmV?d00001 diff --git a/nails/nails.png.txt b/nails/nails.png.txt new file mode 100644 index 0000000..af9291d --- /dev/null +++ b/nails/nails.png.txt @@ -0,0 +1 @@ +nails_0.png.png 2 4, nails_1.png.png 35 7, nails_2.png.png 69 8, nails_3.png.png 99 11, nails_4.png.png 3 39, nails_5.png.png 35 39, nails_6.png.png 68 42, nails_7.png.png 101 42, nails_8.png.png 2 68, nails_9.png.png 34 68, nails_10.png.png 66 68, nails_11.png.png 98 67, nails_12.png.png 8 101, nails_13.png.png 35 98, nails_14.png.png 73 100, nails_15.png.png 102 100. \ No newline at end of file diff --git a/nails/nails_0.png b/nails/nails_0.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb17d652760659fa7149fda9deda1626f9958a1 GIT binary patch literal 338 zcmV-Y0j>UtP)X1^@s6%>pGE0002sNkl@bZw@sq`t@Y$tKQKGBibQV{c?-a;OG>?f?J)07*qoM6N<$f=m>LMgRZ+ literal 0 HcmV?d00001 diff --git a/nails/nails_1.png b/nails/nails_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5082a1049508a0cdc071d297cf73e8a8d8f0c6da GIT binary patch literal 327 zcmV-N0l5B&P)R%l)a|XkHRoaYA0P`uvpA%(rH>s^4YidwJxt=l^M|Q z_+ID!k*f1mZJY)&h{p|rp!T*v^#{x#f-=a4@rn`f1hQaQItFoOTsjLDnL(8>0u8|; zGjNvEpq?3eAiI1Bsu0I@cIl$P{EbUzWrTagL7zZVW>Bq1xh_>Y41|3R6`5hUCGo0Q zYA)qEG(^DO=WiC)oM=~@; ZZewp`Wpbznf9?PP002ovPDHLkV1gL!i>&|v literal 0 HcmV?d00001 diff --git a/nails/nails_10.png b/nails/nails_10.png new file mode 100644 index 0000000000000000000000000000000000000000..448b02fcea5a650cd6750c7e52518c0ae9e80346 GIT binary patch literal 302 zcmV+}0nz@6P)71Q{0002INkl-Uf?++LuQ=cC zF?bgsfeA6DN3mt*@8QPDhf)uD1MC%>& zgm^E39OIDY|7f5B#DWfK(0?HjY@xkS6>OnBP%))BD50a!KA}e-N6a89G^7F10xC#@ znnNwr1*)NLkc7HIN2oiLqo+VQY7PAWYkKoZpDGh20000jbVXQnQ*UN;cVTj60AhJA zVr*}3WMp|RV{&KQKGBibQV{c?-a;OG>?f?J)07*qoM6N<$f(RXR Ag8%>k literal 0 HcmV?d00001 diff --git a/nails/nails_11.png b/nails/nails_11.png new file mode 100644 index 0000000000000000000000000000000000000000..9e63e9f1ec3c26cd5d994c1271f8971815634593 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZB!3HE>&Y9Z;q;`0^IEGZ*+I#sUXRCq$TY>w_ z{R$k5IPZz^UJ_V)k;nJTgWL;DcKZ$(y!~=%H=kWVU|q*@!=|lgd*|BCHNC~kakKvP z#5#$$+84@m`xAUcmMR=M>w4izuYlnc?$G;NShSq775?|!?qA>JvclxabEYgO!57JP zM=Is{L>eV_ILmy|bZN5OBH{%kSh{wZuxM@(v$Foex5m-qgs9jGHo;bl6&6#RLl=mw zVhdcMRnor7S@9Q_$f8RZTHBo$0 z$7YMB8#}qJ(+fDcxxW`oJf-t5#pvaQz|M?}{eJT=nM^%y;j>aIW4B!>V`vA@y=PD5 z550N5OMQXBp$ETr{8JR;P%fEvnd#C$mlX$`yBMc2gs^O2eyZi5$1YI5{gYJbPqX&x zIyr1SObfKcC$OJcBpBT|yZz3R#e6~O2OeD4(wW43XFKDB(+=#?PF=%CFSJjr=(QsB^Ol|l;rDW k<|d}6>H&km$iy`-IX@+}Xa!sSJD^4ePgg&ebxsLQ0A^8bv;Y7A literal 0 HcmV?d00001 diff --git a/nails/nails_13.png b/nails/nails_13.png new file mode 100644 index 0000000000000000000000000000000000000000..e8590c81bf930cc366f728aca590216b4e988c85 GIT binary patch literal 372 zcmV-)0gL{LP)P000~a1^@s6lq3|;00033NklU0|?ZJx0&46YLs0#ctP;A1UecMPsWIL~E0L`bFhfUQwJ9OcD-j1yM{2ep#ZjX4DS6$ zSOz+sFPXFKRE>4lx>KDq8w-=T6kv^Ij#4ox(I*2Tq$Zcuyku8|crw|GwQHVFNHUZF zvj+n*X;%P)FgZ}JNd0Ue2r3=lrgBIo55kU*#agqY5U*ZXG1jun1=I?Y!J1Cc0xG>} zVL<7Qya#d@pmd^8svZT=XQM~6AUk#gc%be83lhjMz~3MWN~7Bz$Pe;15n$mFc$okI z04;PySaefwW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w S27m4V0000X1^@s60h=H40002PNklb*!`17mSIZ?YP&zy z^=7DLP63UtXT9DZc}zr@!ioqFms=ZKq%g!DvT%a&;2{tGVQhHG!rkdy7t7TTBJ4pR z7h0@20A>+F#mtGikQlk5Cgk4&s33%P;Q)HGAg70(#UUh8sMv*yEF_*li#&++h1e|M zXL%6$2cn4W1e=KE;Vz1B3VE2Yixl(LG-C0#sQ(7(&#c4)^U4zd001p?MObuGZ)S9N zVRB^vVtFoNY;SL5WO*)Qa(QrcZ!T$VVP|D7P)Z)9b1s0M%T00000NkvXX Hu0mjfyx4#~ literal 0 HcmV?d00001 diff --git a/nails/nails_15.png b/nails/nails_15.png new file mode 100644 index 0000000000000000000000000000000000000000..40ae7e545bdc322c140dbd60e9ba43907d34704c GIT binary patch literal 333 zcmV-T0kZyyP)!ty4a4AG-;$$tHyqDudYK->v>zY(6OrV z67YTBH@QNkI0*4oD2o9M(lJfY-)D__J+4OBt3qW130wsLEWIyz28;@ILaUIMz@A4V zir~>Ii`8Dvr_8@z7;E@jzvO4jkT$+zj_O&;5P3DogYz(tUZ)9b1s0M%T00000NkvXXu0mjf92bXq literal 0 HcmV?d00001 diff --git a/nails/nails_2.png b/nails/nails_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bc72dd76122ef845f398c339deafe1c5b2b89672 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;Asi%u$NX4z>gar&YR%`ufPh|6A zJTW14tzE*MX(`S#7rtm~ESNM|v9e7`+HGUwjTkoLo)qTHG>J0~GaQ?brT^)ho4(^K_;J~1+J a%}dTtNiABzR{svDk-^i|&t;ucLK6Ty)lcRC literal 0 HcmV?d00001 diff --git a/nails/nails_3.png b/nails/nails_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b6293d4d45d870d8ccca89a1140df2385f02d6 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5ej!3HD~56t}lq&hua978H@B_}KpICEm|2l+P1 z490{u`&;!geZfwb{$0MpBw%M#c(tB8x%P000yS1^@s6cz2e)00035NklyKS&jSeDKc(Y|uTJhBa7&X^I@_(DiywQq)S8fW&^jb5cqfc%F~j!cmTX zqUh%}*Lcs@8ixWIki}mh?(#mJ7J#5aRmC1>sfA-fyNn_zsDbr}u1YP=9Y;Wso5^{) zSfwkFcHwM^LMWT2XT$1 zkgPL?uw9y?jr~qnW|?-x5T1wLkBtfkaY+op_Yw80%a~cFL*&mR`=lf@5rrv(wZ-vLvAOWgB6)XMt;FjE>zQeEny z0000jbVXQnQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQKGBibQV{c?- Ua;OG>?f?J)07*qoM6N<$g5EfrjsO4v literal 0 HcmV?d00001 diff --git a/nails/nails_5.png b/nails/nails_5.png new file mode 100644 index 0000000000000000000000000000000000000000..09888e116e31742c999099920b2bc67022c92d05 GIT binary patch literal 375 zcmV--0f_#IP)P000yS1^@s6cz2e)00036NklwbI8Y-R5i zNnh_zwP|`*+ZD)w%>Dv#m6!8%1_&xtRrt7;S~xbe%1DBQYS<53RjJ9j;xH(3GdUbj zR%ru5rP>C5jzmbRN@C9?Z`!HtP$xiG4XaSFE26CR9DR2nsL&Q-PKc{BVGuj>aMvKN zuoRM2#t?3o#%N)`)0MSMD`E)GL+{5zg@d>thTwTbeRCPJmgx}r_lSQN(o>_5?4T@O zDF-vn_N3&Ak{zk9NHadnyyrv46?0$kvh?@%x93n`laazY4D z+yDRoEp$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp` VWpbznf9?PP002ovPDHLkV1ffOns@*J literal 0 HcmV?d00001 diff --git a/nails/nails_6.png b/nails/nails_6.png new file mode 100644 index 0000000000000000000000000000000000000000..745502866ab8d47a6f52a7bd2725de5c75f5e6b3 GIT binary patch literal 319 zcmV-F0l@x=P)?dwN*}r8oPJV+udXC51l)$h8b*x9v;M>|7FucFXcyU~Bu{_4&n%6V zf1gPHe5b1SFwPvq{Im%m0e~2)I#dld=!q5jc)k`nV{4!#I{_Ms{cONhtl-_{+JHGx zp$z6V%vS~hcQA!AoPkn79qYE#LF#iwZIvx8o2A7-V8N!RbXD>?i5*K z)+!4}-}g=uqiY+a)uixD4vfkfUcr1FH92BP<~a+w8nYkMmd^eFf5P%v_>Q*jPyhe` zEp$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbzn Rf9?PP002ovPDHLkV1h`~g9iWr literal 0 HcmV?d00001 diff --git a/nails/nails_7.png b/nails/nails_7.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6669102949b8ee611f2ca8fc0c23256a5c40b0 GIT binary patch literal 320 zcmV-G0l)rj}d!41_&O{uK&=(h0gn2k8)9BQs>8LN~|)DGHo9Uru>6a50vx?=0b@l;n9nt}{zx z<=-cgr|-M!GhAklVSd^KkN`joRUN7Z8}!5q9berdXKW3$WG6sFv7ZgNiWR)S-5W3` zDwM&zhWW}M;0~rxhBHtr2wnqLcOIQd)*{3ggLt{ctrj?ARRedu)0?4Yt_sX6+?^sz z%vxpP==PDe5{MQ&qnWMy)w S27m4V0000 literal 0 HcmV?d00001 diff --git a/nails/nails_8.png b/nails/nails_8.png new file mode 100644 index 0000000000000000000000000000000000000000..b898e74e7b487ec443b9f8dae152200a9c362dcb GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZB!3HE>&Y9Z;q_%jvIEGZ*+I#sTXM=(OTf*^| zsvY;LUhL()wZL}PGSjHVnLYLfKGu7`tZSAJnZp0k#BIa1$}PdyBNoRtOh}Giw9SO_{TWUejk_6!b=n8v#;QEUC{qi;CZb@ z087#XzQPOZ1vsBw2+{x&LK?3w2`sq~_2S(H^9^i@is2Cpq+CQEEqD~b7up!KLds>~ zsteMq_*!4+2XuHjt0zCHH?TRN`4H%S-4fS`lHmNblJdl&REDHVy`-G{{FIbRz2u_G pf|7i_%-qEER6Sro7@4@{CFiH47Oh~be+Sga;OXk;vd$@?2>?lQb5{TW literal 0 HcmV?d00001 diff --git a/nails/nails_9.png b/nails/nails_9.png new file mode 100644 index 0000000000000000000000000000000000000000..a7e256d2be9ab4e539f1123c7dc321be2145a173 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZB!3HE>&Y9Z;q;`3_IEGZ*+Iu;X>#zb3Yl6Os zMDxJ}ag8t6`z{)PVcC1kZ{zLAc@u=TT=bdDCU;{&jYl#^o2mc&A65I3Kj=A}`1W_{ zop=2eoLh9VxvG|}U{U;%+jK3jWyZp&j33Kv1H`SEJ{oV4_h;1%(C@g${(|#k9FyfS z#k2n}It*I9rl;xwgTu(gH7_|oCADY;Tm3trMg~t;KbLh*2~7YTWpkeZ literal 0 HcmV?d00001 diff --git a/old/.gitignore b/old/.gitignore new file mode 100644 index 0000000..892eb75 --- /dev/null +++ b/old/.gitignore @@ -0,0 +1,4 @@ +__pycache__ +map_*.pkl +serv +client diff --git a/old/blocks.py b/old/blocks.py new file mode 100644 index 0000000..8cfb651 --- /dev/null +++ b/old/blocks.py @@ -0,0 +1,240 @@ +import pygame +import os +import lib.constants as constants +from lib.gameregistry import GameRegistry +from lib.block import Block +from lib.inventory import Inventory +dy_blocks={} + +def make_block(klass_name,name,clear=False,drops=False): + def blk_init(): + pass + def init(self,x,y,screen): + Block.__init__(self,x,y,screen) + self.setTextureName(name) + self.clear=clear + self.drops=drops + self.unlocalisedName=name + attr_table={ + "unlocalisedName":name, + "__init__":init, + "init":blk_init, + } + klass=type(klass_name,(Block,),attr_table) + GameRegistry.registerBlock(klass,name) + Block.registerTexture(name) + glob=globals() + glob[klass_name]=klass + global dy_blocks + dy_blocks[klass_name]=name + return klass + +make_block("BlockStone","stone") +make_block("BlockTree","tree",False,("wood",8)) +make_block("BlockGrass","grass",True) +make_block("BlockWood","wood") +make_block("BlockCoal","coal_ore") +GameRegistry.registerFuel("coal_ore",8) +make_block("BlockIron","iron_ore") +make_block("ItemIronIngot","iron_ingot",False) +#make_block("ItemCoal","coal",False) +class BlockDoor(Block): + unlocalisedName="door" + openDoor=pygame.image.load(os.path.join("tiles","door_open.png")) + + @classmethod + def init(cls): + GameRegistry.registerBlock(cls,cls.unlocalisedName) + Block.registerTexture(cls.unlocalisedName) + + def __init__(self,x,y,screen): + Block.__init__(self,x,y,screen) + self.setTextureName(BlockDoor.unlocalisedName) + self.unlocalisedName=BlockDoor.unlocalisedName + + def interact(self,inv): + self.clear=not self.clear + pygame.mixer.Sound("door.ogg").play().set_volume(0.2) + + def getTexture(self): + if self.clear: + return BlockDoor.openDoor + else: + return False + + def interactData(self): + return {"clear":self.clear} + + def loadData(self,data): + self.clear=data["clear"] + +class BlockWorkbench(Block): + unlocalisedName="workbench" + + @classmethod + def init(cls): + GameRegistry.registerBlock(cls,cls.unlocalisedName) + Block.registerTexture(cls.unlocalisedName) + + def __init__(self,x,y,screen): + Block.__init__(self,x,y,screen) + self.setTextureName(BlockWorkbench.unlocalisedName) + self.unlocalisedName=BlockWorkbench.unlocalisedName + self.inv=Inventory() + + def interact(self,inv): + selected=inv.selected + if selected!="": + inv.remove(selected) + self.inv.addTile(selected,1) + else: + if self.inv.inv in GameRegistry.recipes.values(): + out="" + for outp,reqs in GameRegistry.recipes.items(): + if self.inv.inv==reqs: + out=outp + break + inv.addTile(out,1) + self.inv.clear() + + def interactData(self): + return {"inv":self.inv} + + def loadData(self,data): + self.inv=data["inv"] + +class BlockFurnace(Block): + unlocalisedName="furnace" + frames=[] + + @classmethod + def init(cls): + GameRegistry.registerBlock(cls,cls.unlocalisedName) + Block.registerTexture(cls.unlocalisedName) + for i in range(3): + path=os.path.join("animation",cls.unlocalisedName,"{}.png".format(i)) + img=pygame.image.load(path) + cls.frames.append(img) + + def __init__(self,x,y,screen): + Block.__init__(self,x,y,screen) + self.setTextureName(BlockFurnace.unlocalisedName) + self.unlocalisedName=BlockFurnace.unlocalisedName + self.frameno=0 + self.forward=True + self.burn=False + self.count=0 + self.inp="" + self.inp_amount=0 + self.outp="" + self.outp_amount=0 + self.fuel="" + self.fuel_amount=0 + self.fuel_num=0 + self.originator=True + + def interact(self,inv): + sel=inv.selected + if sel!="": + if sel in GameRegistry.fuels.keys(): + if self.fuel!="" and sel!=self.fuel: + return + self.fuel=sel + self.fuel_num=GameRegistry.fuels[sel] + self.fuel_amount+=1 + if self.inp!="": + if self.burn==False: + self.fuel_amount-=1 + self.burn=True + else: + if self.inp!="" and sel!=self.inp: + return + if not sel in GameRegistry.smelting.keys(): + return + self.inp_amount+=1 + self.inp=sel + if self.burn==False and self.fuel!="": + self.fuel_amount-=1 + self.burn=True + inv.remove(sel) + else: + if self.outp!="": + inv.addTile(self.outp,self.outp_amount) + self.outp="" + self.outp_amount=0 + self.originator=True + + def getTexture(self): + if self.burn: + self.count+=1 + if self.count==10: + self.update() + self.count=0 + img=BlockFurnace.frames[self.frameno] + if self.forward: + self.frameno+=1 + if self.frameno>2: + self.frameno=1 + self.forward=False + else: + self.frameno-=1 + if self.frameno<0: + self.frameno=1 + self.forward=True + return img + else: + return False + self.mp_upd=True + + def update(self): + self.fuel_num-=1 + if self.inp=="": + self.burn=False + return + if self.fuel_num<=0: + if self.fuel_amount<=0: + self.burn=False + self.fuel="" + return + else: + self.fuel_amount-=1 + self.fuel_num=GameRegistry.fuels[self.fuel] + if self.inp!="": + if self.inp in GameRegistry.smelting: + self.inp_amount-=1 + self.outp=GameRegistry.smelting[self.inp] + self.outp_amount+=1 + if self.inp_amount<=0: + self.inp="" + if self.originator: + self.mp_upd=True + + def loadData(self,data): + self.frameno=data["frameno"] + self.forward=data["forward"] + self.burn=data["burn"] + self.count=data["count"] + self.inp=data["inp"] + self.inp_amount=data["inp_amount"] + self.outp=data["outp"] + self.outp_amount=data["outp_amount"] + self.fuel=data["fuel"] + self.fuel_amount=data["fuel_amount"] + self.fuel_num=data["fuel_num"] + self.originator=False + + def interactData(self): + self.mp_upd=False + return { + "frameno":self.frameno, + "forward":self.forward, + "burn":self.burn, + "count":self.count, + "inp":self.inp, + "inp_amount":self.inp_amount, + "outp":self.outp, + "outp_amount":self.outp_amount, + "fuel":self.fuel, + "fuel_amount":self.fuel_amount, + "fuel_num":self.fuel_num + } diff --git a/old/client.py b/old/client.py new file mode 100644 index 0000000..9350d11 --- /dev/null +++ b/old/client.py @@ -0,0 +1,292 @@ +import pygame +import os +import random +import recipes +import sys +import select +import blocks +import socket +import pickle +import lib.constants as constants +from lib.gameregistry import GameRegistry +from lib.map import Map +from lib.character import Character +from lib.block import Block +from lib.player import Player +from lib.player_img import PlayerImg +from showstep import show_step +from time import sleep +import pprint + +pp=pprint.PrettyPrinter(indent=2) + +def recv_str(sock,print_str=True): + str="" + ch="" + while True: + ch=sock.recv(1).decode("utf-8") + if ch=="\n": + break + str+=ch + if print_str: + pass + # print("Got string: "+str) + return str + +def send_str(sock,str): + # print("Sending string: "+str) + sock.send((str+"\n").encode("utf-8")) + +def recv_hash(sock): + hash={} + len=int(recv_str(sock,False)) + for _ in range(len): + key=recv_str(sock,False) + val=recv_str(sock,False) + hash[key]=val + # print("Got hash: "+pp.pformat(hash)) + return hash + +def recvall(sock): + BUFF_SIZE=4096 + data=b'' + while True: + part=sock.recv(BUFF_SIZE) + data+=part + if len(part) [count]") + for event in pygame.event.get(): + if event.type==pygame.QUIT: + running=False + elif event.type==pygame.KEYDOWN: + print("DOWN") + print(event.key) + if event.key==pygame.K_PERIOD: + coords=player.facingTile() + if coords!=False: + tile=map.tileAt(coords[0],coords[1]) + name=tile.unlocalisedName + if name=="grass": + to_place=player.inv.selected + if to_place!="": + send_str(sock,"PLACE_BLOCK_AT") + send_str(sock,str(my_uid)) + send_str(sock,str(coords[0])) + send_str(sock,str(coords[1])) + send_str(sock,str(to_place)) + player.interact() + else: + player.interact() + tile=map.tileAt(coords[0],coords[1]) + data=tile.interactData() + if data!=None: + send_str(sock,"INTERACT_BLOCK_AT") + send_str(sock,str(my_uid)) + send_str(sock,str(coords[0])) + send_str(sock,str(coords[1])) + data_string=pickle.dumps(data) + sock.send(data_string) + if event.key==pygame.K_SLASH: + player.attack() + facing=player.facingTile() + print(facing) + if facing!=False: + print("BREAK") + x=facing[0] + y=facing[1] + send_str(sock,"BREAK_BLOCK_AT") + send_str(sock,str(my_uid)) + send_str(sock,str(x)) + send_str(sock,str(y)) + if event.key==pygame.K_j: + player.inv.selPrev() + if event.key==pygame.K_k: + player.inv.clearSel() + if event.key==pygame.K_l: + player.inv.selNext() + if event.key==pygame.K_e: + inv=not inv + if event.key==pygame.K_i: + dy_blocks=blocks.dy_blocks + Block.textures={} + Block.init() + for klass,unName in dy_blocks.items(): + Block.registerTexture(unName) + elif event.key in key_to_dir.keys(): + move=True + dir=key_to_dir[event.key] + elif event.type==pygame.KEYUP: + move=False + player.frame=1 + if move: + player.move(dir) + send_str(sock,"SET_POS_FOR_UID") + send_str(sock,str(my_uid)) + send_str(sock,str(player.x)) + send_str(sock,str(player.y)) + send_str(sock,player.dir) + if inv: + screen.fill([255,255,255]) + text=[] + label=[] + for item, count in player.inv.inv.items(): + text.append("{} {}".format(count,item)) + for line in text: + label.append(helvetica_neue.render(line, True, (0,0,0))) + for line in range(len(label)): + screen.blit(label[line],(1,(line*constants.FONTSIZE)+(2*line))) + pygame.display.flip() + else: + screen.fill([0,0,0]) + map.draw(player.x,player.y) + player.draw() + selected=player.inv.selected + if selected!="": + texture=Block.textures[selected] + screen.blit(texture,(0*constants.TILESIZE,constants.PORTHEIGHT*constants.TILESIZE)) + topleftx=player.x-constants.CENTERX + toplefty=player.y-constants.CENTERY + x=topleftx + y=toplefty + while True: + other=None + for uname,o in others.items(): + if o.x==x and o.y==y: + other=o + break + if other: + other.draw(x-topleftx,y-toplefty) + x+=1 + if x==topleftx+constants.PORTWIDTH: + x=topleftx + y+=1 + if y==toplefty+constants.PORTHEIGHT: + break + pygame.display.flip() + sleep(0.1) +send_str(sock,"CLOSE") +send_str(sock,UNAME) +sock.close() diff --git a/old/dist_all b/old/dist_all new file mode 100755 index 0000000..b7135d5 --- /dev/null +++ b/old/dist_all @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +./dist_client +./dist_serv diff --git a/old/dist_client b/old/dist_client new file mode 100755 index 0000000..45af281 --- /dev/null +++ b/old/dist_client @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +rm -rf client +mkdir client +mkdir client/code +cp -r lib sprites tiles animation blocks.py recipes.py showstep.py client/code +cp client.py client/code +echo "#!/usr/bin/env bash +cd code +python3 client.py +cd .." > client/run +chmod u+x client/run diff --git a/old/dist_serv b/old/dist_serv new file mode 100755 index 0000000..7e4dc9b --- /dev/null +++ b/old/dist_serv @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +rm -rf serv +mkdir serv +mkdir serv/code +mkdir serv/worlds +cp -r lib blocks.py recipes.py serv/code +cp serv.py serv/code +echo "#!/usr/bin/env bash +python3 code/serv.py" > serv/run +chmod u+x serv/run diff --git a/old/door.ogg b/old/door.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fc7fe8817196efbd438586b08e32577bd3f19444 GIT binary patch literal 15984 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 literal 0 HcmV?d00001 diff --git a/old/lib/__init__.py b/old/lib/__init__.py new file mode 100644 index 0000000..d1eb679 --- /dev/null +++ b/old/lib/__init__.py @@ -0,0 +1,2 @@ +from . import block,constants,gameregistry,map,character,inventory,player,player_img +__all__=["block","gameregistry","map","character","inventory","player","player_img"] diff --git a/old/lib/block.py b/old/lib/block.py new file mode 100644 index 0000000..9d14285 --- /dev/null +++ b/old/lib/block.py @@ -0,0 +1,55 @@ +from pygame.sprite import Sprite +import pygame.image +import os +from time import sleep +from . import constants +class Block(Sprite): + textures={} + background=pygame.image.load(os.path.join("tiles","{}.png".format(constants.BACKGROUND))) + @classmethod + def init(cls): + subclasses=cls.__subclasses__() + for klass in subclasses: + klass.init() + + def __init__(self,x,y,screen): + super().__init__() + self.x=x + self.y=y + self.screen=screen + self.tname=None + self.clear=False + self.unlocalisedName="" + self.drops=False + self.mp_upd=False + + def draw(self,x,y): + # print("DRAW BLOCK") + if self.tname==None: + raise Exception("No texture name for block. Did you forget to call setTextureName()?".format()) + self.screen.blit(Block.background,(x*constants.TILESIZE,y*constants.TILESIZE)) + texture=self.getTexture() + if texture==False: + texture=Block.textures[self.tname] + self.screen.blit(texture,(x*constants.TILESIZE,y*constants.TILESIZE)) + # sleep(0.05) + def setTextureName(self,name): + if not name in Block.textures.keys(): + raise Exception("{} is not a valid texture. Did you forget to call registerTexture(\"{}\")?".format(name,name)) + self.tname=name + + @classmethod + def registerTexture(cls,name): + Block.textures[name]=pygame.image.load(os.path.join("tiles","{}.png".format(name))) + + def interact(self,inv): + pass + + def getTexture(self): + return False + + def interactData(self): + return None + + def loadData(self,data): + pass diff --git a/old/lib/character.py b/old/lib/character.py new file mode 100644 index 0000000..21bd49d --- /dev/null +++ b/old/lib/character.py @@ -0,0 +1,53 @@ +from pygame.sprite import Sprite +import pygame.image +import os +from . import constants +class Character(Sprite): + @staticmethod + def loadFrames(type): + frames={} + dirs=["up","down","left","right"] + num_frames=3 + for dir in dirs: + frame_array=[0,0,0] + i=0 + while i2: + self.frame=0 + tile=self.map.tileAt(self.x,self.y) + if not tile.clear: + self.x=old_x + self.y=old_y diff --git a/old/lib/constants.py b/old/lib/constants.py new file mode 100644 index 0000000..d39dcac --- /dev/null +++ b/old/lib/constants.py @@ -0,0 +1,12 @@ +TILESIZE=16 +MAPWIDTH=64 +MAPHEIGHT=64 +PORTHEIGHT=32 +PORTWIDTH=32 +EXTRAROWS=1 +CENTERX=15 +CENTERY=15 +WINDWIDTH=PORTWIDTH*TILESIZE +WINDHEIGHT=(PORTHEIGHT+EXTRAROWS)*TILESIZE +BACKGROUND="grass" +FONTSIZE=30 diff --git a/old/lib/gameregistry.py b/old/lib/gameregistry.py new file mode 100644 index 0000000..cfcf95a --- /dev/null +++ b/old/lib/gameregistry.py @@ -0,0 +1,25 @@ +class GameRegistry: + block_classes={} + recipes={} + smelting={} + fuels={} + + @classmethod + def registerBlock(cls,klass,name): + if not klass in cls.block_classes.keys(): + cls.block_classes[name]=klass + + @classmethod + def registerCrafting(cls,reqs,result): + if not result in cls.recipes.keys(): + cls.recipes[result]=reqs + + @classmethod + def registerSmelting(cls,inp,outp): + if not inp in cls.smelting.keys(): + cls.smelting[inp]=outp + + @classmethod + def registerFuel(cls,name,amount): + if not name in cls.fuels.keys(): + cls.fuels[name]=amount diff --git a/old/lib/inventory.py b/old/lib/inventory.py new file mode 100644 index 0000000..f2a3fe6 --- /dev/null +++ b/old/lib/inventory.py @@ -0,0 +1,51 @@ +class Inventory: + def __init__(self): + self.inv={} + self.selected="" + + def addTile(self,name,amount): + if name in self.inv.keys(): + self.inv[name]+=amount + else: + self.inv[name]=amount + self.selected=name + + def remove(self,name,num=1): + if not name in self.inv: + raise Exception("No {} in inventory".format(name)) + amount=self.inv[name] + amount-=num + if amount<0: + raise Exception("Attempted to remove more {} than avalible".format(name)) + self.inv[name]=amount + if amount==0: + del self.inv[name] + self.selected="" + + def selPrev(self): + newsel="" + for item, count in self.inv.items(): + if item==self.selected: + break + newsel=item + if newsel!="": + self.selected=newsel + + def clearSel(self): + self.selected="" + + def selNext(self): + newsel="" + ok_next=False + for item, count in self.inv.items(): + if ok_next: + newsel=item + break + if item==self.selected: + ok_next=True + if newsel!="": + self.selected=newsel + + def clear(self): + self.inv={} + self.selected="" diff --git a/old/lib/map.py b/old/lib/map.py new file mode 100644 index 0000000..0da77bf --- /dev/null +++ b/old/lib/map.py @@ -0,0 +1,107 @@ +import pygame +import random +from pygame.sprite import Group +from . import block,gameregistry +from . import constants +from .gameregistry import GameRegistry +from .block import Block +import pickle +class Map: + def __init__(self,screen,sock=None,uid=None): + super().__init__() + self.tiles={} + self.screen=screen + self.sock=sock + self.uid=uid + self.generate() + + def send_str(self,sock,str): + # print(str) + sock.send((str+"\n").encode("utf-8")) + + def recvall(self,sock): + BUFF_SIZE=4096 + data=b'' + while True: + part=sock.recv(BUFF_SIZE) + data+=part + if len(part)constants.MAPWIDTH-1: + return False + if x<0: + return False + if y>constants.MAPHEIGHT-1: + return False + if y<0: + return False + return (x,y) + + def interact(self): + coords=self.facingTile() + if coords==False: + return + tile=self.map.tileAt(coords[0],coords[1]) + name=tile.unlocalisedName + if name=="grass": + to_place=self.inv.selected + if to_place=="": + return + self.map.tiles[(coords[0],coords[1])]=None + self.map.addTile(to_place,coords[0],coords[1]) + self.inv.remove(to_place) + else: + tile.interact(self.inv) + + def attack(self): + coords=self.facingTile() + if coords==False: + return + tile=self.map.tileAt(coords[0],coords[1]) + name=tile.unlocalisedName + if name=="grass": + return + self.map.tiles[(coords[0],coords[1])]=None + self.map.addTile("grass",coords[0],coords[1]) + if tile.drops==False: + self.inv.addTile(name,1) + else: + drop=tile.drops[0] + amount=tile.drops[1] + self.inv.addTile(drop,amount) + + def draw(self): + oldx=self.x + oldy=self.y + self.x=constants.CENTERX + self.y=constants.CENTERY + super().draw() + self.x=oldx + self.y=oldy diff --git a/old/lib/player_img.py b/old/lib/player_img.py new file mode 100644 index 0000000..3d66c51 --- /dev/null +++ b/old/lib/player_img.py @@ -0,0 +1,33 @@ +from pygame.sprite import Sprite +import pygame.image +import os +import lib.constants as constants +class PlayerImg(Sprite): + @staticmethod + def loadFrames(type): + frames={} + dirs=["up","down","left","right"] + num_frames=3 + for dir in dirs: + frame_array=[0,0,0] + i=0 + while i0: + if cmd[0]=="stop": + s.close() + f=open("worlds/map_{}.pkl".format(map_name),"wb") + pickle.dump(map,f) + f.close() + exit(1) + +def exit_cleanup(signal,frame): + s.close() + f=open("worlds/map_{}.pkl".format(map_name),"wb") + pickle.dump(map,f) + f.close() + +Block.init() +files=glob.glob("worlds/map_*.pkl") +if len(files)==0: + new="y" +else: + new=input("New world?").lower() +if new=="n" or new=="no": + i=1 + map_map=[] + for name in files: + name=name.split("_") + name.pop(0) + name="_".join(name) + name,_=os.path.splitext(name) + print("{}. {}".format(i,name)) + map_map.append(name) + i+=1 + map_name=map_map[int(input("Which world?"))-1] + f=open("worlds/map_{}.pkl".format(map_name),"rb") + map=pickle.load(f) + f.close() +else: + map_name=input("World name:") + map=Map(None) + +s=socket.socket() +s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +host="localhost" +port=2000 +s.bind((host, port)) +s.listen(5) +_thread.start_new_thread(handle_cmds,()) +signal.signal(signal.SIGINT, exit_cleanup) +while True: + c,addr=s.accept() + _thread.start_new_thread(on_new_client,(c,)) diff --git a/old/showstep.py b/old/showstep.py new file mode 100644 index 0000000..60e9825 --- /dev/null +++ b/old/showstep.py @@ -0,0 +1,3 @@ +def show_step(step): + print(step) + input("Press enter to proceed") diff --git a/sprites/player/down_0.png b/sprites/player/down_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1cae050ca1708b522dd8167e2c970d062f1c27 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+Crh2+KhE&{2PHWfpaXSFTq8}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_FsxNUDotsVM3>VH zl{393k|g8~W$SKQ4s=bF?LC{t6Fkw^&8%~QwV};qk>}s# zTM`d426J#r&9I44^f5GYo91jND$cf&kwN6W-glmzFem6RtIr7|Q{ z>Lumm=clAp>LnLd7L?@cW#%TPr|JRyXk_A=mzYO1-3<{QQ)ZO1WW#wc2`?G#VbicmZgQo?hYA((}sqw(vpcT?E!0UfAY;u=vBoS#-w zo>-L1kW{Icl#`#Il2WOcTvS<5lCPJUo0y)e2lT0tiECbReoAW53by)pK#dHZu6{1- HoD!M}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_u+3?L<_oC}QM^Us zKFl7BJjoh5TY?-7Ia?f)B5L_Q+xofQuyHlG;MkS$?&xX(%LN~`j!543EUf#VC~>#< zM3DrS3g_Ku?a5kB}H+gyn;D2T~qun7ZK&0tTYo3&c+!}$KAtjzEt_;d1e?z993~&azPq)N1q9iy!t)x7$ zD3u|pQZFedKR+dWabbvMdyY%?j7ImvPX)ZKXX!4cxFKLlZz_uE=T5x zsD)Z8nv3q*U%%$CO2NEi2OKRN?y38<9ElSBt2QCj^q0^@?(KR|DNig)Wk{;jOUlX5Pf4lNOD?J`D9P8$%uP&B)dPCh$iy`-IX@+}Xa!sSJD^4e MPgg&ebxsLQ00xF*wEzGB literal 0 HcmV?d00001 diff --git a/sprites/player/right_1.png b/sprites/player/right_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c7e91d47712cc0693ab2ebe27675921220b7bd2c GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CIz3$+Ln>}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_u+3?L=?g9gwd7Ea z!v?Gh+mkeOwgfe5x6I@cI{d0Q<*3DBA+^Sk?zm2IN;&@^w8MDagTe~ HDWM4fr4n39 literal 0 HcmV?d00001 diff --git a/sprites/player/up_0.png b/sprites/player/up_0.png new file mode 100644 index 0000000000000000000000000000000000000000..88ca8133c4f63075dd401502603c7998c8b92c2f GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CdOTemLn>}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_@F$n!JIC;rtGxzC zPe?4!Yz@;Ya8)qtx@z!!VKjfz;U-R3Lo86J)6Q&yUm}*V5WllPLhdX?R$n)>= zEfd$e`AHa5inN{xJ9OkB*G1o>OF0-ASvg)NG1_|o-KAUN8c`CQpH@Jg ylb@fGQmL0*R9R4xua}vdn4YQ!^q`T6YhH4GN@~#xw)%HKjSQZyelF{r5}E)!MOg;` literal 0 HcmV?d00001 diff --git a/sprites/player/up_1.png b/sprites/player/up_1.png new file mode 100644 index 0000000000000000000000000000000000000000..962c39d948a173e83061e211ae71093eb5177af1 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CdOTemLn>}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_@F$n!JIC;r>&_=6 zRx3^5Yz@;Ya8)qtx@zERzT^)ho4(^K_;9yBs>%}dTtNiABzR{svDk-^i|&t;ucLK6VDyIR`- literal 0 HcmV?d00001 diff --git a/sprites/player/up_2.png b/sprites/player/up_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7230655a9cc2cd4f2ede79408333858822c56730 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CdOcknLn>}1Cpa)M-AVdC(U94U zVUoqPm0$ipij+5C+h{1Fti9{sFCB^GP@YFJ^KbGUGZ0R!nZtF_@F$n!JIC;r>&_=6 zlxHM_iASwGAli6CV_6eN#0G_E{$Pf3btCrK?gnev5+{@z^jud~U_CLvEc)aHd3nZDV3r;2qA%d;a~>kx=e7T)=+zSW3+w(nN{GoQ^ed=y z&9LcmO3_YyRM7fj*`pv9hKB8oZ^CCr%L6^3TjCl~5}cn_Ql40p%8*p4mz0yApOR9k tmt0g?P?E2gnVXoNss{`WBNNxWq7`iQ?|>Q^JYD@<);T3K0RUB{YXtxR literal 0 HcmV?d00001 diff --git a/sprites/player_local/down_1.png b/sprites/player_local/down_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6823682ad5bd588d266942dd541bcc61dd465a7c GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CHhH=@hE&{2PH13a%-i_?h5@q? z1E)yT%0KqgR<<-bCKVh#(UtJ!=w`bFGoEJAW{w#w9c+mcl7ux&LxLyzvUoP#FmN@n z>vEc)aHd3nZDV3r;2qA%d;a~>kx=eV{PE|~p5Fo3uUq08Q4*Y=R#Ki=l**7)sh5vEc)aHd3nZDV3r;2qA%d;a~>kx=eV{PE|eVPq#%FjLn1Txoj?w5t_ey!t)7K-{~aYP6%Q;DJkoaZ zu&7dYLuCIVftw*EmnVucGCbJM_(o~{A90{3bW2<#N`mv#O3D+9QW=se^^$V(^HWkP t^^%J!3rh0!GIJBtQ}uwMVPxW(mzluR?G_*TyQ26e*6wYgjaoai~2}I3#6rg3I<2-{Fm2 zSt4l%4%-Os&XvERGC^q$SK>T|jT1$awn~Z3YvT^)ho4(^K_;L1AR#nwOlPl3KKat^OTQBZH@_pUXO@geCw#MrO1C literal 0 HcmV?d00001 diff --git a/sprites/player_local/left_1.png b/sprites/player_local/left_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ac63bb03b619c81ea9ac5d70de7fe2bc320a40b3 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CmU+53hE&{2PH13a%-i_?#SBK- z1{UtMA^+r0hy1GlxQ2fQ+s8nW!y=6$4F*2UJcmV_B@BceZn${Ko;zkBd4xgJ!fvzd zI)UXY6|x;oHYG{81y=n1dh@>luR?G_*TyQ26e*6wYgjaoai~SyI4F`hqix*{<+lbB zk9kT`S~uSQCK$%?na8o!;<2^nx%c)w%_@A-5e$Z+-L z)eG_w;qQSi)-7?3C<)F_D=AMbN@Yl@)Jw|A&reCI)Jra^EGWs>%gjwoPt^l@-N?i> ZFF8LYwP*!f{X3vW22WQ%mvv4FO#lv1W8eS) literal 0 HcmV?d00001 diff --git a/sprites/player_local/left_2.png b/sprites/player_local/left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c5d647a93268726b5fd8c586946e2c453158b3b0 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+C4tTmahE&{2PH13a%-i_?#SBK- z1{UtMA^+r0hy1GlxQ2fQ+s8nW!y=6$4F*2UJcmV_B@BceZn${Ko;zkBd4xgJ!fvzd zI)UXY6|x;oHYG{81y=n1dh@>luR?G_*TyQ26e*6wYgjao1$4-`D6Cl|)w+`7S;B-R z?za*xj%7)0auTpEyKT3@*dU2x*@q2{N9$+kZkTW&fFp?Ikiqf=M=FEn$lqa^;S|Ag zpoTYyIh;eNrB!iLrb6Wgr;Lgxb>1q|96qhHL*yce6P}uFe;6 zsXS_Te<4ewO6ruZb&a#PX}blpnlHEWQahSr#Jlp!zkeSj7<|L5j@;D`D>K% zCFSJjr=(QsB^Ol|l;rDW<|d}6>H)*V$iy`-IX@+}Xa!sSJD^4ePgg&ebxsLQ0J9@? A0{{R3 literal 0 HcmV?d00001 diff --git a/sprites/player_local/right_1.png b/sprites/player_local/right_1.png new file mode 100644 index 0000000000000000000000000000000000000000..43c541539ed60a565f222aff4fa021df06f38d09 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CmU_B4hE&{2PHV zaYmBB?;mH%HZVkt_nOxf-QzMy}A`2+LSq}m&mduuj!f~ zdMxj@`y8i~^AAEhjOR^$^ylAU1CLJ|8d)WpZ=5KS;BvHUkL+C}a5JQ2^+ZudhWhna z<}MTrbpbk9x5PD~Bsf2q7`iQ?|>Q^JYD@<);T3K0RV)_W%B?4 literal 0 HcmV?d00001 diff --git a/sprites/player_local/right_2.png b/sprites/player_local/right_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0fd312a6525df75394b11cc2804d55d707a096f GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+Cc6z!vhE&{2PHV zaYmBB?;mH%HZVkt_nOxf-QzMy}A_zT1<(eS6BR(%WQur zvEE65ZKl}nT=_e}5?zU0jyWm*i5e`GFE%u?+WZL+Q9b(eZ+j)n5{{O{SqV}OSr51p z4>s$vHi|A%*PozZ#kP`>;cmsf&!*E19s@n0TjCl~5}cn_Ql40p%8*p4mz0yApOR9k tmt0g?P?E2gnVXoNss{`WBNNxWq7`iQ?|>Q^JYD@<);T3K0RRJ#Y2yF@ literal 0 HcmV?d00001 diff --git a/sprites/player_local/up_0.png b/sprites/player_local/up_0.png new file mode 100644 index 0000000000000000000000000000000000000000..32cbcb1f934f1adb24b5d982ea22eb79fa183659 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+C)_A%&hE&{2PH13a%-i_?h5@q? z1E)yT%7%{{eN-*jK0fS9?3$puQL9aJPsKHMS4NKJBLO0_JXS8&V7sWmBYZr7V{u|w z(+`E7M}9LD&IC(zO=xCQ>kJk=q1C_T@c+<|#Q_E$JV$RmHokq3$-r~QvKzU-56p84 z literal 0 HcmV?d00001 diff --git a/sprites/player_local/up_1.png b/sprites/player_local/up_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb6c6c6d38e3fee68c4b98d683b8354a51ee726 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+CmV3H5hE&{2PH13a%-i_?h5@q? z1E)yT%7%{{eN-*jK0fS9?3$puQL9aJPsKHMS4NKJBLO0_JXS8&V7sWmBYZr7V{u|w z(+`E7M}9LD&IC(zO{nFYd}Q?r<+mT|MXzdz@CZ3?6pIw>=snk7{p`n?Z~qN=Pe?@a zss3_!XO)w{c+9{&sZ`yE(TBNf(GrXO{}p(;6`v$9bsl{3kSnokqTwc)u9Z6sJa`$z zXMFl)`~Hgo(8;gTe~DWM4fIs0fH literal 0 HcmV?d00001 diff --git a/sprites/player_local/up_2.png b/sprites/player_local/up_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d0b12d24d225ce19046fa677d98786db58eee022 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^AhrMp8<5nmf9C+C)_b}*hE&{2PH13a%-i_?h5@q? z1E)yT%7%{{eN-*jK0fS9?3$puQL9aJPsKHMS4NKJBLO0_JXS8&V7sWmBYZr7V{u|w z(+`E7M}9LD&IC(zO{nFY>=M?pNZ`mv59>eiuBKe9%|{&0HS89A^5I7A?+23%d=+*+ zHoh&$l_)bqN#a4*n?PBYjYx(r0rj{f}1p7^ANp<7ZwT8%%vV-2Ha#RIO1 zzOLr7k%9~z3%=+sTwGQLbh>VdYeY$Kep*R+Vo@qXQl(x}PJVt$N~KbP0l+XkKU!7;w literal 0 HcmV?d00001 diff --git a/sprites/slime/down_0.png b/sprites/slime/down_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa205bec06c97d5d0f05f10dc9d6ec227c8e479b GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!3HGD9`Ra&C{Gv1kcwN$2?v;d>|ptye3<75 z!vv@Kb(#itbywJW5^I{;4wxJ^S(Ln|?Z@vMO{#^NZHW`4CPX!{JxEI4!L&^9?#~}Q z4U$Y{oSWRf95^h-b|UMb-a)ZfEe2j|6sj5LC!UyRnIfEpP*UHx3vIVCg!0Kjfk0RR91 literal 0 HcmV?d00001 diff --git a/sprites/slime/down_1.png b/sprites/slime/down_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca4bd6c1131e98e47d49b7ae234dffb3ec1b9fd GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9sY*{5$B>F!$q5ITe(YfRpM03- z2*U)Y`E{BGc6C?SdJ=1z+76f;Hd&Osr|rk@8%?T(nQe&^q$Wf)u{}smHf6Z`a|h3X z4{T@BzBC*b=QD6Vpy#-KW`IJ{juw&I8{M?ea2xcTHc0U`=nF!$q5ITe(YfRpM03- z2*U)Y`E{BGc6C?SdJ=1z+76f;Hd&Osr|rk@8%?T(nQe&^q$Wf)ZBv$RJLhJ|kY>DV zf1xD9XSO>EDYGx~9u#9ck#+E4 g9?&;NCa!tO`6;PIE7S*n-~?o7W5jNRbYK#qIWidc|xvh zSckW9*INTu1I`*hw`uIZLu_ds`>7^@6x5>mB^ay3Vm~=zrFf*69Ls(0=q5uPf zi`)0yZW}3XpbKS*n-~?o7WCdQc?^`6%wgE%mZJXn zQcsfgCZ!VQ4Vf(`oB#IfPbkQ2VV65|^Mr)uEDkoQq63M>JhF>3j<8PPJ+h3E!8iVU zZcg?2W}x-DC9V-A!TD(=<%vb93`v!GNjdrXDJhkD$wid~CHZ=pxrynidO&{|nYiX9 Y=cl9=tzfHv2h_;m>FVdQ&MBb@09JBPuK)l5 literal 0 HcmV?d00001 diff --git a/sprites/slime/left_2.png b/sprites/slime/left_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c884dfddee1722fbec1b282d0dc41d8ba5a8511d GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!3HGD9`RZNsd7&j$B>F!$q5ITe(YfRpM03- z2*U)Y`E{BGc6C?SdJ=1z+76f;Hd&Osr|rk@8%?T?T!|)TJd>DLs-9xVVM~-?xZH8} z=MA2QO6EL)O>SQf99||FscT`gq18&UM@aib+<|n7O==?g3hk`B5^osz$R1>24fgP0 zX5b2EoEE0Q`V8m<-4fS`lHmNblJdl&REDHVy`-G{{FIbRz2u_Gf|7i_%-qEER6U?y dj7(hflJiqii&n7JzXNJy@O1TaS?83{1OT}ZPUQdq literal 0 HcmV?d00001 diff --git a/sprites/slime/right_0.png b/sprites/slime/right_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc5749f8d9487d7f969628b421dcce6575ce5a8 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngj!3HE3xL=O}QbnFFjv*Ddk`oRv{@B6t|F8k` zMuuevm&bGUbsDiOd-)?!nuo`j#d-4n{|ptye3<75 z!vv@Kb(#itbywJW5^I{;4wxJ^S(Ln|?Z@vMO{#^NZ6_NuCPXdbb-31Xm0^Zk%sF>+ zk!QR+98XAHWaf{SP*}~{&b}=`y(KV-^(OZZ9_MQcq5q*Ur97gZLNF!$q5e3H8D;99d9g; z=juyL;`zbgbNS<9GYN?_jyAP=`P=`0m^2yq$hkCMIc)mqGLMk^^2DluoTJMn@BU0U zdt%ZKo&#$9-|Q9lCtc>?x0$hdqG6HAL$1<_1&Zu4W`{2rcDcnc+;qs1V&MAv`K$Z2 zUHU+)bxT|$N`mv#O3D+9QW=se^^$V(^HWkP^^%J!3rh0!GIJBtQ}uv;Ffwt?OU_S8 VEn2}={|=~;!PC{xWt~$(699?OP`Cg9 literal 0 HcmV?d00001 diff --git a/sprites/slime/up_0.png b/sprites/slime/up_0.png new file mode 100644 index 0000000000000000000000000000000000000000..021b547fadd67ab73c6c59d2bb50d283c3c83f53 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!3HGD9`RZNsXR{?$B>F!$q5ITe(YfRpM03- z2*U)Y`E{BGc6C?SdJ=1z+76f;Hd&Osr|rk@8%?T(nQe&^q$Wg7$~~URa3-y!UicH+ z9fg$HoRUpC{QUeuIme~64fGEf=pCM5y0C&V+ULPx1=EOR#^^0d$uX}O@|xIHbW&!V z1KO-x;u=vBoS#-wo>-L1kW{Icl#`#Il2WOcTvS<5lCPJUo0y)e2lRrGiECbReoAW5 T3by)pK#dHZu6{1-oD!MF!$q5ITe(YfRpM03- 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 literal 0 HcmV?d00001 diff --git a/tiles/bed_bot.png b/tiles/bed_bot.png new file mode 100644 index 0000000000000000000000000000000000000000..eb18a65026102a4893901d7f3f6dc0635ad220a8 GIT binary patch literal 696 zcmV;p0!RIcP)Px%a!Eu%R45e{lFP5tI24EdIJOffw@Lbd%N^hX(yWFBLYmDi5NrNw#DXOnX;zE` zNHfs1w7qGY#C80{SMuUm`ab!0jt~Ch*}F%-J(hJ{)(cChG9IM7Oa>v83+|LE7^TRM z-9a6X?T_!Evz5I5y{s!tA^N~L&hoAu+Z4IBILos8NJcS; zk_P0@1X&rT#%*Cfe16JacyhHLBi2A;7O|L8281FaG)_bha@sBnOiBNB{0yaQZ>082 zs!^HHa|)JnPeKxaM~)l`y}-lGm84b|c0?Y7^(eEFxU*!k3QVF(%po6<=|y7tGm zp0NZZtdt1<*)+@RC;P$g2gK)3h+IWJ+w4y1h3i#?%{i!@x%+=vqGd_v!+9*YEJaX$pokHg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS+m`OxIR5%gskiBaYaTv!x7w^(*lgmq!i^jB6sDnsaTy(ChxLJ_e z*2Pk%{sVRjR8YZ}#kEMmp%n)=L7a-M22osuqNXo2MND6EFS$#4KlAg<(AmMU&-jJs z^L>HiJ6_;FET9bbCgiQjFo*x0xy*-^RU)obICtqHcKbJ8*s~TU@uE?*T$XCXW3z5E_wX_Cz5>3gu@?lS z`}=UhWLhdiM4X5q!hVkL^Wx~rBUd~#Q*>R07*qoM6N<$f`4rDlmGw# literal 0 HcmV?d00001 diff --git a/tiles/brick.png b/tiles/brick.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0aa79f04cbcafa5e57034a21e74ceadecee64b GIT binary patch literal 721 zcmV;?0xtcDP)Px%i%CR5R45ezL>Psu{wi0w?6%A9FmF{m%QY94&iV|W4*u(h?|=LK(U;$T-5Y)L&Mo6?QL>>| zyKei-Pd|V6@SFK+2{|Zdh+rW_+JJ09mM+f;Q?F0j>8qiaRmBZk@x_A9&31?+8Shlw z10@t*g@tai4HAOe80xa=6`92H>dpB^---?BqphcP1W`mwGKzow>fvU)mGjmF7Xd4y znx;8ib<5fG?dDC}O0D&DIeY%(+#g2;uW z@2_Xh$I-+3cs%R7H&@u4Ig$5ntur8e*7m(hw!eL`EO7+g;~yVabs}FO2n&89qU^-=iCo^#n;~g(TB>#OOptsKNo)c*Wt4Qq$2Is=bE9;5#*UD5lgb*Wwv+MVq@T3&IwfS^LQ(UBo5&~-t%L<&Bw+^F~)f~kX3HL#3XCPMRp=;5cK7I1ck01yh zysc;B^VEy}MSqT`ypI!d5JJ|mLe@J&bH_Px%y-7qtR45fKlFe%qK^TYMnVsFuW;b8kO;b&(Hnx6SZKI$R1Qi8EFZCpX2SNM? z6!fp~=Fx-TMUSE$6h*;HL8~o>wy9}j6Wf?HADhj7XT~Ww48zOJ?>Wr-KFDT&1K*EJ z2?zx60*J^!!U60o-*FXDfdGK;%>v|F%*FyJF)0Z?fE$1)1Eb94DDHK-N+b#l0m8rp zp!_5%(uvh(dP3v5GZT9Wrd|-VeK#7@^t932ZWAw16@?-3W3lMkz8qH(vls|a$fWMx zyb)8S<8ySE7x%h5=i9kq8;7E* zmKim`voQ#`w6)b^!N<9;ju=u!09B-lxY=&RG6q#pE9|W|YT1MPH#!~AqJ;O@SBGpR zdGFCf6`6=Kgp&-S02DEwv2BL&;fwJPb5&DNK?3A@Y+_IDK*pwKJ1&9O2R^H@u?!#F z+FCtuKvu!@0moA-^=RpLmB6&g@mKT9LiJ0jO2Dpb z;$YNB?@ni(ZmZdEIQHPg$pQy>K|@iC8%jd&bde@jco?yu0k(7X#PRJ~H>rVc=q<0W z#1lJ!+0|vW)ogVv7|JHz{8)sjfPx%rAb6VR45f4l3Py`K@`W&%+7W%-EO;7ST0Q?NU=r`5MuNJ#gG^ueKX-fKY+gZ z=J(K#pne2jh(^?yD1s6Z<)RQEw6tv7-F9!?84pe-nRCwk&YYPue-bAFqX3}?Ndl=f z5G~*oWWYgUP$UlAhqw(?0>$WZU_coFt}+l@69`;Y&q8vRa2D}gPzgv9NO%TCm~oJT zAXG)NaAn+g8nUD)hV8Z^CC1>uYL9~(0K-G}mJ>##{S zk3u){i15YS?A4Jzj>5YV_3QbGPSqtKRbGuM{}zFVzIkCU}OHp)|IoAkNZ`XDw*t16>T_ z76OPNOoFyh6h2eP4EJe`O1)A6GY{!37JzmWT6M5($l3WnRe$Bc4MR#e7et`!+T!Gh zU{S(QozyTffqN~g0f?@s*Gcan&@{G=aRPxCq;*C#3n+4o8_@Z$R@E>mN(#C}=Ri{J dc1O+V{{XeUNm^Y;%HaS2002ovPDHLkV1oOVTJZn? literal 0 HcmV?d00001 diff --git a/tiles/coal_ore.png b/tiles/coal_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..5e855c07705c22db22e229d1b673bfb01944ec51 GIT binary patch literal 1253 zcmVHg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS*he=U{0GY(5F_?V?R{R3#0Nfdc zQJt_Nr>9e|bPx%gGod|R45f4QrmLVFc6hwU2Mmwk%ZMc4l|ao;~Nlcke&cb-jOZv|KKg(T?Nvx3&;Mt=1Uh%{p7HR^!p= z@bHl51tA1i1z#){9%U7;ijw!DFpkyJCbOGLDLXNr{SH0<%hhLFBLmPd42dzOt_d)T zb0eh|g0Iu2tlCQ8&IFY92w?zt2=#*=&K_5=(fQM3C2CpZd1nMKgjC$pLU=Www?fUX zZ+zz6W$Ab{#v;p)CKJktbk+W3r`6`+arxq4pE0Ie!^^xXD$nx>qN*$$-Jv2~2d+yU zkncj7F3=M|-=2I6_GhVS)hcFh)X_02sUOx=d6hFd8DG z8Y$}vfR0kkT!O7KH@DYy(^y$bA;To@x~^^{bWjwAd7c9RzJC7}1!0zDzVACh98J&8 zT;H3`|Gas7P8eA}J*JyYCB=NP;JhqF^=f(=#gX3&u0CC1KMvPL*6;VXCp*iB2jHNW zCnv4xgb=RlTkU7JKc%X5(?aYZ$3e^0!`Akgd2W{H5R))Unoc_edwzfksg;tdX*)w0 zvn+(F5hK+4mZoXf0ZY+}Z@C%`{+p@lT2V?Ngi^|9UoeKR&(DJ(@Pb|t#s&hZlx;^z zk`)Cb#5z!M(YEccAGgQH$CsCvxJTWy(`nKlTF63HwwG?6)fn~%S{t9aXpC$+Mb7tk z_x|49qb$v1Khm}0o6N&3V7`qbg0LSX9;U5oP=_Kvnv8a~2VdFD^P`rqijI v-`j*jiY|?rZ?N9#z2G4eXk0?ZV00000NkvXXu0mjf$puMT literal 0 HcmV?d00001 diff --git a/tiles/door.png b/tiles/door.png new file mode 100644 index 0000000000000000000000000000000000000000..389583e7e0e08593196d80e5bfdf6d97a7280fc5 GIT binary patch literal 1857 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 literal 0 HcmV?d00001 diff --git a/tiles/grass.png b/tiles/grass.png new file mode 100644 index 0000000000000000000000000000000000000000..dfca6ea829f1c1fc99f6fad352e864ad902cb224 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|^;lP!kDSry^7odplSvNn+hu+GdHy)QK2F?C$HG5 z!d3~a!V1U+3F|8Y3;nDA{o-C@9zzrKDK}xwt{K19`Se z86_nJR{Hwo<>h+i#(Mch>H3D2mX`VkM*2oZx=P7{9O-#x!EwNQn0$BtH5O0c3d|4@L;p!@;Rg)$-uyz z9P1P8DPmWiwj;vp;)Ppc0$r>uNrq96-tD^S(!>9VIosq~hR?JV`JPVule0`OPLG}E zW0q$U*(+^!to`l`-)T929C`okX;>#DpxUs7^;fcY{raE{OP}7mC!a2*k|M0WbEft4 zIq&DZuQ6tSV0`*%QKIkV9jWH!f1cbdp1y1S>T0WR7Bkmw-MaOKalnJV((?5dbA7F? z*WLM1yr}-n+ONF5S?ql!Tp}5$W5E+29&zZ7lp~3&(`r_5??Z5UP-J-Rt>}|`b18?89Tb(caTatbK-nVb9{E}a49@tkJ z&OT~dT6W}hNrK6`HGmkQfIUMHUx z#kiK5D%BW@e0JTi@D$goRR>;N@P4uTDtBsXm8s?t!JFIPzsUc+-@0biu{`$q_8Px! z;!;dzfBbby>p{k^E-vFKue=j(J#KB^UacrLi?uqLS@qCDk1uPT%uH_hzszt@nmA>z za9+^;I~=Yy{*G1~X82C%IQpRO{C-G<-R;p6M0ZXrX zY|AY_bYpek4X^K8*=%igeP>|%HLqde83w-RVW&767il<%OiM+99jSo!l&k zd=fX@G(YrVv-ks9`F5WyxvbZ34y=!4?$Wu;GRy1qs^a&oLftJ6Q>Lw(kfYWd8X0!_ zY?{f_nT;FHvn%fB_xiFlVWUaVLz4i}(5D(zhLevu8FjU!ym9sO`v2ndk9m*3H%_>D z?Zy|^okx{~=eaL@DS2V)i-j}7mhR0GS>f?W$WLvN#*6PRLB)qMzt8Txys~_yfolJU znzV;W+O|> zl}TkD93S^TU9;nU*#4EToV8TD7p>4+ChlSJM_bm$S+_2W6(*;g~H uWTUrb`p%9%7nuHV>ZZ9DV>$obKkuHw)O6$9{71Jz1(&C*pUXO@geCwHg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS*en~_@R5%f1ENt%o&p-iS0qKpE`GjJ`;wOA4e0&@xY?9~(Vp9VX z1G@mmL8q}9gzh@93(y784Z_EVyMSCnu!aH5Mv$R|42HV^rU@I3&k(#Wz-Ab_7*Q@j zjtz9zkn93v!$7Vf*#LAe(8mCDesW9A literal 0 HcmV?d00001 diff --git a/tiles/stone.png b/tiles/stone.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7d473ef83f7d5a804e54138ce26f2b9a88ec87 GIT binary patch literal 1571 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 literal 0 HcmV?d00001 diff --git a/tiles/texture15.png b/tiles/texture15.png new file mode 100644 index 0000000000000000000000000000000000000000..d787a45398c6ffd2d7e967c985c806d623a34c01 GIT binary patch literal 575 zcmV-F0>J%=P)Px$`AI}UR45fSlIg1AKoEsZ8eM;at$h9a+iW(&Fl3G6*tTscW$ouH%d%dtr)esL*zI=n`CRC_4vrN}Q53}c z{hmNk6e@!t$n)GV49l`wtrqnnmePB@WRmdL6s0K3x9_)1ldalln3km*Mi7P%*UgK9 zjCwpC>3F-{Ow(+zSJfm*p3mp~erHQth&iQCmSten(P)JF&1Tc@_ccwUX}8-Y0QY{s zJ2M>RuhZ$Ut?ZJd7-$qlxFQf*({Nv&s%tIVO7bi%@;FVhvS4i( zdb{J;&M%pz_oo}gQItp(ro-U?4Kul1E^x3Vi43|y%+crbAz(|Of?F<^+ymWvy!CT}DJeA1tAh$YAbFs6PMm+xLAU5J)Px%>q$gGR45e<)7x&_WB>qQ+kfKoA@QNMlQwO-^_0=E3Z|)=v~XB~Aq^qzZW2P` z5qJe2f(zaN);q45geo!A(gwOtQ?sT`oV1Bgv17-_#Ae?+eDL=lKP>UW!K+scVm`i? zBUv66D&s`_yLJ6Z^YhWwiD6hUwK(d(`RT{K%)bC1RjaMmzZ}nRtk;?k*Z(>01{snU zO11jd>(f(Npu;d2S-vQ8aiA@)RKSzFcY0b6LJDP(BN=%2)7`St&<4)oVGEwmrtSzW z7I8*!T>Db9ax?|GcDYzxG+kFWjdDc@X2{RK>>~)qv*jgK`u6FUs;b&!pI|9Kre_x> z*yhREJlo#BH!$_EfVfE>hI4B;_AT>=@1DD!{r0>K0CsZvU;R#FIGrF-6sWQYpd_0` zR|6x3i981cjxLD8i~V0Iu5_atXQwB%N(EqaMOuJjtOHEU|PF1S=A6>w}BldFuHLJpbmaC$;6(ku&K#6K@)*41If9rRgHiU(Lz@z@|~=Ej}k9P{ki)0JA?u)LMEhN!4< z9Nt=zM5dT#IZ9Fljwe9~N}0D*TUL}c-FCv*YZ-y_dkv~LGJZ?B$_?Czs8biyJKntJ&gTs*8)2VF&K^Q zh>qZ5lz1dtMsVrf<)F-vjaBLEM<2wVr%wtw%J#HwNn{I(#G4Zv!3c^b4dbK|sH6ph*7%wsdt;0PL>y00000NkvXXu0mjfHvxcY literal 0 HcmV?d00001 diff --git a/tiles/texture18.png b/tiles/texture18.png new file mode 100644 index 0000000000000000000000000000000000000000..342d36094741a5a0105a7e21bb88f198128a79fe GIT binary patch literal 685 zcmV;e0#f~nP)Px%XGugsR45gdlG|(3U>L@~d`X(LNt&i@)E3MX_K<1In>u{y;-iF=lT6E!pBRz7#T#K zB}bfm?N=>=7%Cv>bSIxc2<=)WGwL`_i?1Uk+*LMcMDi4k?Wyb6h!nH*>CNzkQPd8s zJezMDo=^B$IeYrzqkDfj}dHMYE>o2npW>_N>vL()z zAV7r?5D1`wOims~x>34%`zF<-*59sl^BHZ|Z0(_D!?mi`!9=>Ksz(R=28Q|<-_IFF zksRx#rlxOfe*E$E`9iQBKsFOkc3Mrljd3EGHY;_nVXv=z$4=|i#WRZ=-*DUYk%L#~ zmt&4_Na=xpHeqbZ((02M|+Ab{q1K6xw2F$NLwVn%U~;l$laDb*EMYx$;IPoz5X zr3%l9)w0pul{NKpHCG}QMl(@1-pF||LHSuI2ywwiI>o@NBG<+YA(~|?n@Z_sj#Wsb zso}q5KOfdyLr^3k#{J&e?o1}MVks)bO~W>gy{Hh?3M!0%_!uWD63EyPTSqPpZ0xKB z!-!`{ITWts>Jpohf@ug)VFUyMXdq*P!ie_!#)m4jxt-f2aa-v~yA8*+TnJEM1Ox(T zB#Fs82ZDM<@4a&F_;CN$>YB`l)x1g~lJNa{O_LIAm9Zx7-;<7|7vFtwi!~f{!y{vp zGfy5nj1%jTw<=rlj3~*WNCyi6DvW?Y0FCv+#LKfMrlu$Udwirw|9gDIe$V?4^qftM T{?)fV00000NkvXXu0mjf@f17^ literal 0 HcmV?d00001 diff --git a/tiles/texture19.png b/tiles/texture19.png new file mode 100644 index 0000000000000000000000000000000000000000..0a05c29b83cfa54fd6da9e2f6f12622cb2568c77 GIT binary patch literal 806 zcmV+>1KIqEP)Px%;7LS5R45e4I%*}oVjiytpZR$|L0pb zFr2-Avbw%?7DBfB&kN6wHqU=b-9S!iAjv}LB4@s=dbP)Q5Id%!xWjI@V^xoz@;sh5 zj_kJwN;1cQY<+xQl2rji1PnkL0q@?r{{8AwVr@0gS@5o9M_fhF1W|K+^7*B!KoS6= z5T`!8cXxk(_v>%IeE!$31RTJ=B>4iNnXI<+?BC-j&MvK-$r~HDf4ncvWn-WLoc;03 zcI8O%)yo}43(1x|z-uWKl6FQ>;!e$;3-h!Gos&NdXxJI*PdUaQnvTP4i8C$6QdSu9HwTj;U;Rt=0C1W8uQZuK-k_k;FrR zsM_z3?$3P5akybt0A>PFCKJiFT_Sc$D<^4h1WW~S4&;Px%!AV3xR45e{lFN_PR2;{DJw2zVJ*T&~wD&R2)sTVc!lnNZt|m@`s2Q1&Oaj6% zGneoX6A~aM#;7X@33~})!ODfvm0>Z43@}sgtMA9{X?v{sF2DIMKA(IQnaKu$q)@}6 zf}n=HhUV-2t!~f0xW1_ZQ0M?~4TgC}I0f7$j2nZd4I~-NclNj4l>zUn>+9z*)O+`@ z7EyI+^T5QIv6Z|4B}h`vl^Uj3?tYoc8Pc1nzrY&l4+oxiESu`g`yb}MRE2ZttJ@lM zl|s$|vJhVDP>z4O^6Hut5X5V%gN^gs8t7`` zzKgQp)Q}&(c||#)j7=9I(F{>lZqG@QP)eo4PE9Al?|=OD+shYd5iCA9J@TfP8XgjC4?A?0qp-gYIEoM1xh!c6C4Wgvb{DLW0P%#C0s4DimQ2G%4`Gg*y^dq#-_9 zS(~3MPL90Ma5QiSU2ZZ$-|P3LCteyPmSKTVQH3wxyrzNCYCTM0P9PfpyfaUZC9bMk zK`N0=Qx?n9qt&Csw@s@5xcevv-GTu|;8az9^TC0il$dwQs%Q}ip@fiF1d})MuzN-` z9Tl7|^ut870&Ew5)TH)z-~2TG{2?msj<#9^B$+8qZaHjicjMkNWF>U+!gTl$Nq`2( z_3c|Z!2kAid*{<@?TLtD-r2h6&vFTLymQw8muoFL{0A%rUeIOh{r~^~002ovPDHLk FV1gPObc+B0 literal 0 HcmV?d00001 diff --git a/tiles/texture21.png b/tiles/texture21.png new file mode 100644 index 0000000000000000000000000000000000000000..42ef5bcc51468338dabdacb29cc37f86d3b7e014 GIT binary patch literal 824 zcmV-81IPS{P)Px%@<~KNR45e{l37SpVHC&Dz27)!KIZ-S}Z3iNwdT##J1*M;lV45}maWQ%OXMypAe>C24WNA#AVNdFu3;y$w}5#B|UB zfH=?sN{AyRE8YwM9(V_5DyHZba7GGi8vpyx@cE0UtM_f>0T7_7#t)!7IKi9l5mTbc z89ag^5Wb>%lg}&2dMq?G^61Gur<-p$S|3#-45YHkH5SMSEGyFk9Obv}^vCp=*XP_^ zy?p*6*7fOyJKgs)5FVQt-Lt>4`PMZ?5>aiivTmJ*YEn@+f5WO7aauQ0+jf+-cXs6D zc;ccF4zr@-tcnW%^hB(?vu8=cV%`#7KKQ_ai;pYAH}5uO=jK0q*0H!Ce^c3JK8<-Y zVeQ6z;*>{5f^iX+E-8t{BV*#Py2IrpugE3KN@L@p!9N2AmGc(loH%(b5a=x`UN$uu z>FfPhx^Bhz_^4YDUbQ`s#iL~C@6d%y7rYr(-olJvFc=Dj2v3eQ9&5SX`muYgWTiI} z4K-cAQo44-+t=M6+xvMJq`NqG`%g9@pJMY@%t5rMvt&iJo zG~bz?h$fW;SATqqrfJ{4_h)D4HXJzk_FY>-4z6Cc{MW#6-R}DEROI{D0cn>wkP3?CI)ZIvpETYIpB?)ArfzBwzZ5W+vsO1%;(+*2^jRe#-++ zqmt9%k~GC5kXbr;_UyT?4?iiTX@blHmK1GhefZRVwu#KrU1_dNPFK+B0^sa01PQPx&7D+@wR45e<(C<$ZcL2xnyYKzJ-nG3$TChb6t%wkvSee8JmVl9I&_#@i#;AKX zjlU9oU?RzU;`YdB;zP4NF`1hWh0HBkh#{#E(4iG%r4|a7>z&s-==I0_DqihB@cF#+ zf)8H0KRo<>$F4RMt2O(PKc0NF-CI>z=XkDEs({+2=R-oMRk?v! zw5hRkVth^(?ScYTidbjI?y5=r`_FVspvyM#g6hDI2MO*uH_$(rOr~|6NhOz096v2& zRaq+Hs2f8#UEg%G-blE;P|zx6Llk8swC^I0(>PAey`T4Z8nT~q^5=~U=g){aZFza6 zsFh(D4g|NZtz{d1TW;O_4zMh%s`*SN69}}x5OVG6VV3o*tSE9`;(71M;Xz$5B@+KZ zkYgB?+qa*9U0tD^lmUpXs5u065ESzHy@~fTBn9iHqO40^9=md_51`gYL23S{c$ilTtwu-ikH$|}dxT1lRpFK9(&==jlm{xfj7C|xfbhGAQq9LK+U zHHo5lPfw4kD)p7WUOacZnR*OKlJz^Umj`2GV~ztEx-~L#wB{fPpfHr0nVt;>TT+YZ zM~}`|tJQdXl5u&?p4lnp6r}Ue56w+MsD`eqtYt!Kz8H)3FQqerAVnfOo<5x*37TQJ zysX()pr~2MsUPo6PEC;{jbl{3iy+94AJZ)BVi=mD2n2;O472U3ZGEYW(-Z^d7iQWb zev+zHbagQ`Z(G=P8w5JHRf?|wZyQ#RKY7AFUf^_o>FxZT|x zq$;Ms`@q1F&ITX$0yt m66%h244pWj8yg3D_kIPUWOgK96hQv~0000`6~>;Cgr8vK$Q%hu6{1-oD!M<<|7w2 literal 0 HcmV?d00001 diff --git a/tiles/texture24.png b/tiles/texture24.png new file mode 100644 index 0000000000000000000000000000000000000000..3423a4b0a7dc76d9a6e9cb615e133ac1693ae46e GIT binary patch literal 750 zcmVPx%s7XXYR45e{QcZ8$Mikr+?k>M1iliu|sUs&r6{hekRLO9Ec!SFe@ zfWBBPbw(}Qh7g30t4_yyb3XNgZ|?5HZM1K#5=sC>nb;ogi zzi$|NEgEh7`eOYU-iNE2A6?s-o}Z;<{^9bn2DqpMz?3k9nx@kd2ttHn*w98wO@oaP ze&0QP`4VES5{<+y($Y;+Dp+yeG$PB7Pn#z!IT;KB%QEYl+oq9~`7#WNuIFv2%%q0d zuFJC{ugbE><0R3%VSqF(PQDgpNtoZxr)bOKmLy zpa2k}5vl=hKTrU}7K$|hP*s(@sw)1!2p$A4@**>+29!J=6NI2pY9A-evht#=+V%=5 g1V<3CR+p0h0Fozlq|&o}!~g&Q07*qoM6N<$g5DBlBme*a literal 0 HcmV?d00001 diff --git a/tiles/texture25.png b/tiles/texture25.png new file mode 100644 index 0000000000000000000000000000000000000000..477aa283b3721657d80b1d853ffdecdf89e0b718 GIT binary patch literal 678 zcmV;X0$KfuP)Px%U`a$lR45fyl1*zAK@f)D?w+2V+4;!sMp0Kt0!Cv35{NM(l0(plhul00K|%50 zK~N6?FM>A@{slq&7aqL%2gKk(6NCA1ljyp$JG-;<(QWla4>mQ$bk9>&Z&eR_a`A-g z`|F>-Dj-vsnVu-}Ay=7Tii4%P__Fz%*%+UkY4`Jrm#^Yfx&G+t(=`-~UGs5$`EnthXRqJT9?}LBI7c>sB>@dh(j-WrRRILAIM_Ql zJUu>vcnDdA<%0VVK4cvtKq0}aCE4on~jb=*e=NUzf!!VdCWz^xTI z-~?b+AuPBqU$}IRLEU-$2n=kb(Hj;8<8G}H7aWe4YfDtasM`Yzi9UX5KkX1QkggK>SD3v7t>soMLWa(e_5bZSYET@JmWbb0ab2 z%iQ#KL>pcFd#g<~?%sQ7u9I0|IHJ;w8{$ZJnVX8k{03xvV>@QHkLDQS#K^XtUeC;s;Cfy4TW4Tc>^1?Icm8mClB#R>eQlbdqbGXg$#S4}TU4dGk_J+5i9m M07*qoM6N<$g4=C6CIA2c literal 0 HcmV?d00001 diff --git a/tiles/texture26.png b/tiles/texture26.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a352144d0a0f4b6962f3494fbca86757eade61 GIT binary patch literal 533 zcmV+w0_y#VP)Px$&q+i$|gk$0gxJIJzqmkPr<>P@!uO0#Wh<$bSG)(m+Q+ zO@Wa36_j-R3K9hnLOI|R$LICOdUu%hCB{gI(Q5Z;=6U8l?~2FwZzRiKKNd%MTIduH z?p^!-?dxP~Q)>;WjHUg%&>lV(E{%jbhvjxlT)=n|YxbfZ!H<&u*uNOpK0HcWmhepK6wadX=~*)`ET2cP^6 X7)IK)^&Q{x00000NkvXXu0mjfchc^Z literal 0 HcmV?d00001 diff --git a/tiles/texture27.png b/tiles/texture27.png new file mode 100644 index 0000000000000000000000000000000000000000..bfeca9dead69547567809917d4418919de301679 GIT binary patch literal 676 zcmV;V0$crwP)Px%UP(kjR45fyQaf+dKoI`CUiiD>*wXL6P_I!tOwrs z_~6gARmb&i%-tM1KkRtH@P)DIYtyauRcL*EW@csOo1yavS|N?zJX=y(98_JWVzpW= zW?D~Py$0CZ#l>bLFpK=-hxhyK*wAULdR^w*FcgXeCPNa#bzyL{_s~3zCpM&o3I;XXnNSi|4l4r>b7eSQjtWc;+BW&4rKPAFZmexH z&Y6Nv^USVPNGTCT0a!Ng#De&Q&|nPVKB|7b9*7LgfMU>&Z2{y8uEj}@;*@XEyJeYV z7stDCba-)cfE3FL7FtAN7rKDn(NgD3L9efs;B^3&T(rs00lt zljg0te`)FpGOdNyO7|~H^W%by;x5%FlEXtSQk_P6=huVVvws0yy&*?>mjC4d0000< KMNUMnLSTXdf;<)g literal 0 HcmV?d00001 diff --git a/tiles/texture28.png b/tiles/texture28.png new file mode 100644 index 0000000000000000000000000000000000000000..43408d9e29120ce8401b2d57d30feefcc60bc1a1 GIT binary patch literal 769 zcmV+c1OEJpP)Px%yGcYrR45fKQd>w=K^XpL=A1cu&Yt7$wwsqU$@C$jhafA;pr?X}qKDM3h6z1% zd5D5uda37L%L;-n7?EX3P(c?^A_~%kGLbZv+DJE7-95YKJ~NFFd=Ee0W&VHu8SoZL zA`*fLw;}`=f#Zrm{6{E4*OBCs#DuiD^F<^$^D2@+x@kD2MZ>ayabOG(0zv>I$F_~C zq+50XxE?o=(0X&;4ORf#?S3x*rIIXfc2Q z00>n#H#b~3bG)IYy0NKF268`Ua#MLpew_XWfMho{7DGkBELoO=)~31>-FtvI*Y5Nq z6=VPfaPn9OFys2I!IA8YFlkvZEXNFG156V_w-~>Fqdyaelm%%MWYKs1p(K-FNJHSu zg9-K{AOM})wxaSpE4Xh4?pEfYlwX1@-afe(%{fx)XxpM7@Ip{x3Xp(LPmWwZ-Q9Qd zMs+IezjqE-$t59Pg4a(Uy%-ogd+Nlc-rGnpoe~*yf%>&IWOjDEyKCq0@Zit{tl7AN z5c1{yuegm4b#5;fr;~{gYqkItE8z4T-mg++StjL%#rA`{YikTsi(?>1kLzH6<-0GSH;@OLlPviO5A0{S$7o-6zCI%hZ9ycjE-_xZ<(a`f( zBJ^9^)|Tu7R)~nmx6j!`dilD|>m5XTA3SyfKrR<5g0QkkLxy8%IpBs>8ADepZrL(3 zLtnG1Osq+KruySQRGW* zL*B;s3zlX8S0E6eDBN?fi3K2=VM;XF$QPA=M2KPtn-=ao00000NkvXXu0mjfM!i$P literal 0 HcmV?d00001 diff --git a/tiles/texture29.png b/tiles/texture29.png new file mode 100644 index 0000000000000000000000000000000000000000..f646d8442209f1e02379aeae661fc95a4ccb742d GIT binary patch literal 839 zcmV-N1GxN&P)Px&0ZBwbR45e{l1WSx0T_k<&P+EtrIi+h+69nSWsx9@wqS}|BzREKxJ1H1jS@93 zi5ES2FkaLcV`4a%7%_@yyh*%}Kt(hWsVPzoDiIV#n__3$ndx*oGrvRf=lywy_b%Vl z<$0ux04e~fs?tBggaFyPwLXIpI1XmMP61&BpaCo(8-O4w$}DG6DXZPCg)|GO20Rr5 zPx{3iuc~s#_FY3ShRFg7WCC;~<^b}-C&Y#Iffa5$fpR9F{Dpb8)@`jXH-{TmR+a!N zODJ-fMd7c4A`+C@y3XUhee=foGpDOvZmQ4*f?}o$kM*405$-ZzAt*-3D|LSFk;9!* zI!!^&t#HMcE?n#GK0up{kXizpL*doO_ns4!>GPK)D7s)ndDos`TYF|H+J>nmYqSMYJIM4_5M52_|Mwawo~Vi%*27RSn?g6t%HLPz~SWi+{+h31CRPuMc;ek zg1>70{QP2z&m9VfoObuy$S1ecK{^YBV5o6&B04h>UsYB)J~lZz5}~d74^xp!zinMsow9A za;%ls6QsJarAf?6dWs$$d8;UTk}x+lhu%l0vSMy_@du%!EgF3jZCO)Oz31TmZ96+h zM&Hp^w=CP+TD$gk^-j+%j=%fZv@wJfDxv^lT0m_h3{ze1t*P*xJATw_D?$k|hx`J! zj5Uq*fpvb53z0))wRTJ;SdPx%Y)M2xR45fCQax)^Q5b%6Z%Q;YRtx?D5nKhq!QatI#K}RjxwsUxgNs@_H1(?{ zH6Lv{L~F%Gba4_Lx(HE(mbRu%(tO?CBQ4)AZf>@t=osKR z2z=fP#i9)ifDy1*E_dR%6^7#m`Pb?1_XbZ31q*0G@9D4y@NH>Wp*pgiVT^ZQzH)dk z^d6N82`GeGx{)jC^m45{HGSd6wd4IQ*rNzP z%<G$qtMMR0jrc8)TOqhYl*7u)RFJF=QT9pAaNNVT| z-BA!P=2!S`gg#eoE3big*Bvn^3dp_6%P)A3H`W)*C0fpmlpTSQ0Z&#-d%!NR11x>o z;6SfyGZ$gH_h09jOQYS3Xj=rw4mfb4r22MC**`{|o!CEgU44ou+(^0nt)#&|O5{zv zmR6jh4f`tKC!lD0)3Sy}MvRqG@oX|VQpy)`Pqk8UzuPNS%9&)Uwzf`JB9VdTO-@bz Y2k#0)zzj^zng9R*07*qoM6N<$g4pCNbpQYW literal 0 HcmV?d00001 diff --git a/tiles/texture31.png b/tiles/texture31.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f10db17a1bc99bd7b560e971a16b3ef706aeec GIT binary patch literal 761 zcmVPx%vq?ljR45fCQe96IK@{DY-Pzr?+g755Hq=6b8-*$*pn-%K4H(`KkT*#reKBhE zPf-=4Z$6mx50K~!iPS=al>lXJ%NDj@+uhlZ@fIhU$<3W}=bUrza6QUg#x7cImw7I; zY}V}g`uyVL?4t>nH9J&?q{Ce5vzBQC62XBmhY{!cltT`W*xdYswP!1hM&nmu|J&C* z^?bt1h$Gz9LOx^vBgQ#CvlpK{_I=lJ?LZ))gd&<&{qcPlbEIq9=k?3c(Ij@=K3;F= zh(obhYO+iaAFw7=H_NTpP!zdnw_16Bp3rEvMee|Bpx5UGp-uVx*Q-&OA8-9=Hl_V zNaWMgzc;QA$x`IJeo-hCJ&$2R`VFpDtD2@A9Q>w~?(FPXmW2=k18`fZRNxXAI-QOn zV8nb7?D~vO&ty^~iDL053_(@L%H^^s$~TiEu7h;lDD3U?ybMoc*t{SllgW*Z4bYuP zBve)PJTIM2N25_-Afm9ozMjcs07-49UqES3QIxH%tzxm5&1M^o^R=~AO*;c`Fg~El z<#HHfU9X7}=}Y2}|N7O-cE>mY9$*qttvjKVPfWcr27k<-6mP@QszQ;@K2Ne8s@|9P+X+o(lv)fu@~! rz6%W9j;X5S7>Q=re!u+%NWk+yUlntKBNUM+00000NkvXXu0mjfUPD_& literal 0 HcmV?d00001 diff --git a/tiles/texture32.png b/tiles/texture32.png new file mode 100644 index 0000000000000000000000000000000000000000..762e1baa7fd39ad5308cbc5e08841f5a71aa380f GIT binary patch literal 822 zcmV-61Ihe}P)Px%@JU2LR45eAP)Qo91s@{lrx|SA((*6#EAof8xx`%P3JXf)7D8G+jE@QuRmjx<8%2*&+mbG zNI-$kK%PRn`SC|yoOX@=^2&;B+f)WBbBaH-?tgQS0h#AGqO8C?j{$&pns<{NsMYGF z)iqWSynyWO?Y(+qr`zdVsLucX+XI%SzW??+;`=BB@QvGVzx2wDrKRO$MCftowRNJM zVPkUo_hUIl#B^Aeef{RmH{X3H6Igib?py0?>sg#itoX%epI4MJk6GXIq9`g?Dp8i4 z8Txx4ye}x?n0SusqCx^uFf9wp*I#~BtJYLiJwEA{=H?Vt^#hV+S!1Q~^AGpw1k4Mn z+q0rDY%e_^Y1dC3MTl4uUZsmSupW|NmCUM(J+c96sk12>`o zTNHyd+TGo?219C^bAX}~O^+#=tIX~9&p!P0lORjRWb$agwQ=ovnUlPcbNHX8wGL{m z+x;(Rg<+r496kzCImjhvz+J^1CpcMBoE_f17l>_#3$z#&Uf_FWOfCl0A}%%r+qQI(}~BDk?Dde*8&PRISqv;|P*G!2r=9%l%+` zb2InJ#I`OiT#Vy5OjF2U-FDiJ4G=V4S1zjm1MPx$(@8`@R45g7Qrm75F%TV(z3Xi@Nh^v7mm*Z8!c(6>LR_ABMhLzDsX~Zv0IC1M zcfn&T(55Ad+9a&-cCYp@>uf_S%E(%KJ?G4v84v8ecu4sXEyh$EvNkW8k|-@4e;Z=6 zL^U~H)-S?-FZ!~-5534tCLo;F@+>POEfD^-_D=4O;)BD(X)=EP`V9yrglq_;Lcu-& z0R-(@()kW>Hk}N6dVLTBxhnky;MTONE899RS(g$`nuiEKlOIqQ;jqUv_5`YPU!w4j z0A$Sl?Rz&iH$ZWIa(OPm1=!ZW2Tu5xFNC7>$k_R-a@EB1R$^|E2X$*Hik37M_6VUk58(qlG3~L91y{|D2iI#Rfeo_ zk){$AR3)s%wK3e(tB~Ct?mXCTK#uNgf##?f^oLoNS;tb&8^ubzu9m@FY5@C#_3z0s z5Q4QVH_(yuC40^}jnSTlXQh4ggv?jO6VtFnOydRK{dW=!G}CaQygkm$HP)8IN~m%x_chV4Ir$ bH{O2$%vRtK@?B+U00000NkvXXu0mjftNHa% literal 0 HcmV?d00001 diff --git a/tiles/texture34.png b/tiles/texture34.png new file mode 100644 index 0000000000000000000000000000000000000000..50c7aca2e72b29e3d6bf4a8529a39e8c48b15887 GIT binary patch literal 647 zcmV;20(kw2P)Px%K}keGR45fal3Q=nFcin_IF}~Pr7dh|+5m~IllF?l6CZ|Y1F6sZ9>BK)O{?}Y z!Pcf}u1iwe@!`LLuq^vre&-zf*o-t`Hrs**(o&UqK}70#K!9qbBJ&J9lkDUB57lY| znv^cKIecYV0)3((7eix><15pYDp06{C&Kej>$#9P>w%jIIRupDPF1Kf}8 zBi8?d83x;N000AQVf1~E_452&SjZuL-$x{7;QLUK^70d0|1f^~=IHF~ES^r#gl$TM9@vYUFO}AHQ4c$n-mm+v+on0n8ckyA zjbn5;ii|-wwAN;`*^E4&2J>*gGO)?W(~e7$F?P4Sq3XRFJaA)$wXLix@MXbH3iBNf`H1`lAuI1g^pib6wYSysqm6 hv+jP~IhKQO@dw<{kDX>huI2y$002ovPDHLkV1ie{GcN!D literal 0 HcmV?d00001 diff --git a/tiles/texture35.png b/tiles/texture35.png new file mode 100644 index 0000000000000000000000000000000000000000..1b265adffba3d056c09e8520e969275504301711 GIT binary patch literal 423 zcmV;Y0a*TtP)Px$VM#Z3-qozm`lsT5aSbTrJzdqlC z3-)zB$DK|G5JAeX?RK}@an5cDhQkm%4;+W8D2lqSFBfSQ)&T-PPYEkRk94r6BMEJMWoelLVQR;f%%#tPx%aY;l$R45fSQcX`2VGy2vEn6ue7C~Z3D8?IlA?iUrc;X+Jc)@tpgCrijn0PgU zm^2`%+e-N|0!I0`p#Q*|#smW#&>S2OVlSNh``xD-JN0gx(lso~a|G28nEKoRD*#GJ3{ zFS4@$X;*U?n;u>)zNvOyGIbW(CJ*R zr?(d=Pc8B2;R9S9qQ#ZvR@44~pG{7IsLKAx(IqtGz%rrXEuruAPlxOU1E|t0mrN#I zB8Ta9Mga}OvBA5eO}3j2NJN^ZMJX6S<6eWLAiW@52eB9Ryx8tUqZArB%U$atb_ zs#d+!*H2?_=UM~`ri1EvqyA)U97aJ{&1((bf-qZ{=SrGjO)advoSDZG_NuPx%LPw5Kiqb#KR`-kWGtNrv$7-bNMMDZAp$FA!}QN)|##{B?Z&^73L?r;HJ;QS0~5vMjMIi_l{6cg49fpFaoN zT~Uz5V%6<-S+m)kOeSw{Z=FtW>x){g9z}_5&+R{RTo57&2>>v_3{z&a8Rs0!wcBk< z>1wq$jFw@TxFAFl5&&R;d9_-tR4Ujhj$=wo5rnEzt*AA;5-tc~R2(M&fB|N%>x7}G z*Xv;z!jt!Rj}Vq5SrWrOh7d_e2S5PkaIMv9U0ht)wvCC)<#M~-20;K%eBVc7IEFJA z40K&zuh)FD*}xMByxon#!E_)1Wy5=9x%VTx#{=&ilSgSY?kd$ftD!1 zR-Ci{NwiNAm{y~s;m|Zqbj6PV*KyJ`Jx-8i863V$QQ&Va9mnBl<9VJCA)qwPK_EO% ifbpo8W$CbY74Scnl4430IbA{k0000Px%TuDShR45fqQC({jK@>gnu}O9}U&hpEz-n5Hpkgc5R$u%DQWbmn zUm)VMpb!2SUj&hgwzjrun>Msb+jPlpvYXwRaduPD%jN9M?74I9J%jl>6Uu9-!z~rK zN{GHMe5E>p(ikWeDkYOte;3rYG9O%ZIE zJGbZVgD^t4l!|exNfcm^1PVzKkod6OYGy4fpR<5SI7b?-42uRrv-NKRsb&95(5@32 zOzkx4hys?k0ij7L9#biz;oS+I2vOTctyU|S%V1o0DgB-XMhT5C{uc^Vf(n42Ia?`> zl%Fmx!Z}8kQbYH4!qr{r_LD733gR`Jy>O~^&{08Oq1d8;I;^VMoDm(#vCn)`bPhtt!uWMQh1 zFO@!jsjC!13ZCNC(W=3zX^^F_^?U(d7Z=7$+{kQfHwPj90PGtfKjE=5)&Kwi07*qo IM6N<$fPx$ZAnByR45gdQAtk2KoIO%Y$s$>juA-6xkWjG_ySiDFW?DCh(q{-`9LJZe*lp? zmypGv#6cqQGVwAqwBtM=ZjD-{c2!OFm}sS;OwlsroQndr(;V7~Rm&_9QZNCefFQ`dc1HP{e@k@Xz$K6blyDyJ zQz`qs-oo>O&F0Q=;E3hCT$$s94{#xu)di>RKf6 zbo|vhId0V(%iq<{++D1^i?eg`aM|~L-*sKjlkGN8N^IK}LNpqU(de_;WI-Ui-Hu@x dlgTtq;UCn$y{D^&YYPAX002ovPDHLkV1f+4!UO;S literal 0 HcmV?d00001 diff --git a/tiles/texture42.png b/tiles/texture42.png new file mode 100644 index 0000000000000000000000000000000000000000..d03a23f78097be8992c90bfd14d701caa89b2b05 GIT binary patch literal 660 zcmV;F0&D$=P)Px%PDw;TR45fyQA=wSK@k4BXLjeYJDbg-Nsxd<(fCOG2a0De0sR3vcoV#MP|%|X z!RKL*;>DlgK`;kBsNe$?38ImZ&2BdPnAx3~o|*2ldp9T+A57KsS5;qCAte$-1raF? zNh+T}5^0~(Xh20qBBZ3>ym9sXg3B4eCxG_;w_&gAI4+b#o;|yF_v8C_f#+}w&|m~; zKutf>8vU$58e+gsh~hW@dq?TkjF4csarPE5sWP^nbX+*CCW ziu8DfHcE7Z11r=d!LLF{=yMh9=&{3`%o>zF2RB-&=GjVjf!Rhbq~2=M@56PUKWV;r z`N|LKoO9Tmrz1VSvbnTTl#A5YJrhy)EKuRi)G!z_SY@Y@2*r^JkTMr10VOEhFIy6$ zp6@{PI*`KbFsOCfZ7J2auRl0srurR}fZ-lw%<>3w#GD+-z7ud1V+^}c`Fx|{l}fd$ zYr|%oE6DWzotvyk&z?T9x7P{7==!6_7{_L(zVr0Px%-$_J4R45e{lF4gRQ51*IePfa~HBHRu&?&94R+Gj$V4b3f5C?=-OI^8gp$nI~ z(!artU~!`&xDi~5;zleg*xE!RrlV%)ko0MqPH(#JzUwXgHs{>$oCB8+QLF%RScW9X z5)jx5uHPTH>~gv8J%0(J2Y6t?x*>`>AX5MXgTn#D0!spu-oAd#gVbOkRIOG4v0>Aw z8?xUmvULc9X#@FNqIiRDZc>v{jnY+>mdoj&cPQFIE0wL1HQAG@lG+l*tBBDzt`5n9 z{P^h$TTwW-`*L4zz}rj+`BR?%P@D&jyE#0pTl%xtugKb(07x1cc`|r04MZEbblxdS z&Ib396DfpHaCRmcXbwceZ*#fBd%6HPzR8EEMGwY0y`s$<>cRa7EQ^kQ9^dBi*H&v3 zn?r*aip9d@@3|eFv5%Qw(|<}rcdRGTwfAH^TF&PX(VN`O+rz=`{e6~=8$^C#zA!tL z^Z5e(M~|pnW1{aUA|~C}-sa~uT&qR`zU6=QNHp$^v^bs4;?&PgrGRXVL{ZVfYz$>4 zr#Oy>a5$Vwr38s<^0?!@iPF*n;z2jHMWq_;>I_AK>zf-@}Ypshhl|Q9%^>d_I5Y*3GGz={>QI#D}Wu` z9z2yA)HK6xm^<8m`r)GyK}H;KHnH*D2M?-i+CLSWoInw2-5qAJ*^h97qTWZ ztJUMMC$pp3(f2ljMA%?NoJP;oYKUP j9PiwQDQq>E`6B-x8v}3tV$DYM00000NkvXXu0mjfA2)}G literal 0 HcmV?d00001 diff --git a/tiles/texture44.png b/tiles/texture44.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8ca02e3618888b9b25eb50d0beee934dc55258 GIT binary patch literal 833 zcmV-H1HSx;P)Px%`$RRRD$0z4Nm(``7Ijx>{Po12xd5D2?C>K~pOb3MLStG$bUL zkm7?eqGF;EpN*05;)9WBObiGtRDnPhD1o$5%(j%@LQ7n_r9gk&U3X?@cXnp(y-ac* z&q>btav(}sF+KR{_Qd`j3)qwM!hIyHXTouW=?IT`)fpjjg4?cT3C4Vpy~!r3vIAfA z(f~Ph_{U0B`{~?JWu~CNSPO}RRW@~W>RPPtj{$HOoXg4AmUs7bpFDlESSo(?*~h8A zKYf#)kYSI!zh@^{^y|+*)KvYW?$iqYih+Hry9G>awdiQ$zZ_peT)W8X-1~7Z$eu_aU<`;FY z-N%uz%YH94c>L1fy?^H-^(~PF%SP}0m+DVLjsv3P6@;ebEJFlk8@vjXg&$BjYBV<% zS+cTqQCpK0a1fxN8epZz2WN|13NBf@vMbLF4_+VyV%T{Ix~#c1plC#J*L5c+r>I=W z+e6tWcTG!LvtkoNSRi6?NvAR5pV9G%N^9Yxqg9aqh5MK&>h-Jt#G(z08=HgidPo99 z@fUN4$v#_F70@6mAW{i|;@F*w70XMm+Xo{AH4M+6Q-xrDeG2J0;ct0IRW&2^00000 LNkvXXu0mjf9{`c< literal 0 HcmV?d00001 diff --git a/tiles/texture46.png b/tiles/texture46.png new file mode 100644 index 0000000000000000000000000000000000000000..8cabbb1beaf0945c4a54e75f4d52e1e1e11eacb8 GIT binary patch literal 846 zcmV-U1F`&xP)Px&2uVaiR45e{kxy*XRshD|^LzHQlQ^-%oY0asOPfGxOC_`pSce9Tb}bkFs1qQz z1Dq<5R>XyY=qiDxZ3lLpcG`8SsvXb-+u*>3Rf3|b1yV%YG|+ZU)5dljH;J9(*?7`- z`t-i>1gzh)M^1bp0_*PN@A%u{ zvtze!Q-)kPd_a_fEC;V%`vyW6A*k!-mElu9A(&s^xHCRZ7<&EOSMcn|zKO|+-+ul{ z3JEn@>+L&)B`LhKnPH%|k+TYgXHTXWm$7T$()C+ke|Zj$9EtfkKxpyMNBahbj!oYC z^F?O0+HfI+azJQ{%I8m?d2s))*>uLJ^9@Mg5B;6-c$DKRb8}Ct7LY{H982ts#xzai z1)R;yt6JT0!QkM~`g$du&Y&LG=-uDLvM{WKI#SKacuP}Iy!wgdMd8XH{z(D+`#axwo@H9>jLF&b`cdQuR_I-h@FJbq7ku zwh0hf&MYsyUfz>xjeHH6jtkNg}GK5R=|8Xb8&^8~M1RtdwVj>PobbTpOhOm=r3*h7K@ z0LL!X=bybgUh3;ec-Vhc3kObOi&^;Jui5gLGu~MCyp5NLw`EZCxe7UgX1^k>~ zuUM99DnX&IcRyDChvBu)eT=t^ilP_|$6A;2t5l*kYIp%cIb^uWNL*W6G0nV-Ooy@G Y10?-hk*Q5DF8}}l07*qoM6N<$f~wGu(*OVf literal 0 HcmV?d00001 diff --git a/tiles/texture47.png b/tiles/texture47.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c3c1a2c2c2de25cf9c74026e645b86462dcb97 GIT binary patch literal 728 zcmV;}0w?{6P)Px%l1W5CR45fKl3!2LP#DJB)2_6Kb=jB`%o4d#FcUUl5F>X+Yuz2;&Jeva#(>v) z0p93$K==TBfW-@xF{3U{49-YQmYBfIh7!j3GsfC(?Rx4%V$(F|eV*TW-}Amb{DX)0 zJ?zv$caGMNugATULwbc`iAg*eU&*UwHQN)r&uW zcYc?PQ`4H~HStbO>j)vjnqPPh3@~q5hNfw4+v@MX+}C#zbz;}A6$%AZNG6lTVv#ET z{r!V-xzg3um08OYS(bCT++po_U|?{4{XHS%_2P1TcqAT=V?lTkA}j#8PoHI(ik^oe zR;g4POO6mC#9~7yC#R1dJ?1#}ZSx1heE#d|>M8)!Y@ru|K3vz+H2qRvbZm5dX=%Cs z|7q0grwAd!0sss>i7ENs=ZeZftG+1O}KW ziqCGdU@#a61k>rXuItTa6Yb)`Lcg0zr{4tN1%toDwjB+YtJNEn#}LEw1ic5ug(TJ6X%%y(}yz+Bhm4dV>^Zr`~zIeGK= z_z<~I>PKh>BK}7x6!I9~({mx8|B}sSIgg0g2hVZrYPHH(M^+@CPiVDFh&T_v7!)j= zlPVOUXj&##82QG=22b4H-d?|-VxaISrF(mO)%_aozbHyj0RIDbnrPR~0-i1a0000< KMNUMnLSTaJQ&0>5 literal 0 HcmV?d00001 diff --git a/tiles/texture49.png b/tiles/texture49.png new file mode 100644 index 0000000000000000000000000000000000000000..b3bb7105828abfbef81e4fce634aeda21eb62355 GIT binary patch literal 653 zcmV;80&@L{P)Px%M@d9MR45fCQcZ8uKoH$8JGR$O<3vppx3oxAgVIoOLE?a@xT798AddZk75}9N z5S&Y!q^?NfkJyQ0@A6i$R_oa}Z+7R+41NFMt!>+!^SZ8^reTZ;AtQgZrAg?-EL>jLLde{1b_!NVsN8nSw&GS77LLl8^@|zLNa1=LUm0PuGi)T zrKr}F6V9~NRHVo%ki}?pc@iDVz|Yf65#4DY5JuBgf)Ln1U;}CULAK7Pk5BZ|$In#h zS}W2h++{J|5Di;VA}G@gZ#MA4h8HP_GB0Mc*?PTpT^CyOJV)MAN~8o3dVJr9`m!tm z4u?Z#asD`cST6rb*TqU!%PdI(DY0PSxW_>N4P@cCHZCKSM8^YDO<_)_XD8-onGHBz z00AG!LhBtt2}}{SslJ8;tyE=5ss`?PHgfy^?Q0l@gw&!2+hTAe=@L6(8e6$Bk_bhS z^wae3?d|QpOTYj85=<~vS7`6y(V~vO1 zf_yMuy>2&td8xKrPfCd6uIpc1ycrIUS4oD!n@q0y{lRP=L(S#n%Jcl`?0GPV#^Xs8 zon(0-&dPx%H%UZ6R45f4(OGZPKo9`nncdm-I(Ci*nzm6TkdRt|cz_>(kPs5r1An*w1aU|_ zP=y{Oik;YNdoL#42Wxibv*nq=_e+sN3<1g<+CAjv@SIM8PgTLF1lt{+O$(qv3PC5! z<4+$x3IV%nottbj&R47J#bN=F?(XiF%kz3?ZP$;dk79(Yt1EhT@#N*}=c6KTnnp^T z&8JT{8)FPW?7Cq-pKmu+2&pKFwz0o{f5TS=jK@HR>Er9$`=ZRX$?9q!5oVKe==x@F z&rgo4^=25tz6Ls5oCuE^ydGjU?HwJX+tWpUG}D9MIbi}(FG7Y|b3J29ItFT@ z+6mpDYS|?m5cNag6Skw48Dl~Pf~1fn6iMP=4WlfEi<|>ac5k+oi$F5DAjz4+_j4W`q!V$~bsrz>M*K XHMUIglC1R800000NkvXXu0mjfwmu=7 literal 0 HcmV?d00001 diff --git a/tiles/texture51.png b/tiles/texture51.png new file mode 100644 index 0000000000000000000000000000000000000000..bdea999454d7f82fade4fad56f81d11ddf9ded2e GIT binary patch literal 689 zcmV;i0#5yjP)Px%Ye_^wR45fKQaMjlQ562}_THNf1|%axB(elzqA@6q3o(YmmYCSs`a}F1w#LF% z8<)aD3yg&n8jT^)h@xSiVVF1X-R*cL@#Yri+_Qc6JD;GEC_)(gKLX?dIlMlg45%d# zB@i8?#c4-!KxlwKrK55f5jqMLg@nq=S~7$i6LR(XC5HIn^XB>yMJ8846-;$!ZLxiEYO*%be)Z|c*S{yajNsvE zz1g!)5oNUz&f>=i3}^68Of8zqpX2VishQ|Vijau?1hsh^e5DYOo`4kw`yQS2W5BIz}YK&O%EMU@+p zH`1ih0z7HpOWE&=dLtbht&KJ>%(e%%qX{-d=Y;4-C5Ji^A$TQu>qcu6vda9GYuh{9 z<Oo#y0;m1&7R+ZCK`ZA^`HHY$ozYgmgUi5@b66<`IY8N*Px&8%ab#R45ez5CiZ00d+e{_4won5#j_0^5*OQ6B7Ue1_1Ey00aaE2?iDb{0otx zp#TyBWkW^<{}u-Z5Crq}=RHC%IY3AF{^}bX9r^qE?C$Ul3=`kq>h|;j6A>J8WLx|F z?R|cB?CJiJj+z9Q#HDLTHw6+VLPa>+-PxR;tMc*y85#=z014^k?FI!44GafmXjcIQ z@gpW61`GEDYD+Qw1Npqa%{DwJ*V@|<5f6BHY4`d42nY-F^7RA+1`iGffP;T;ZDIEJ z0T2=g1pWf~K0hoyKrR0O0nyObI5$NN4jSv<;r{>oA|xZ{=;Y_?;`;so6BZ4ztiJ5; z>;w@K13WxB{{Zy^1q<}_{`vX@%gfam7#8>V_`AKj00H~6w6j1$CF<<$+T7osw!H!W z?4@#HTYG?V?(Ovi0UUsUjtUG5`TX_q_3tn*BIoGhH#aUE9TY4nHPp`Wv97@Za7qhT zSWy!g3kwPm?Cb*n{s`*s=>r7(2o3)Z4+s7G_Xr6E1Oxv4`wIsBCW3#I1pN90A|WaE z`|AGw{L0JA0s;mX91R^2m}BC`RnWM%g5d3-Nl}(u>$@41M2DS00921 zt*2yzcfZ2C6&3^(7ywzIs@(9{ucIye~}3{O=r78?xh?(_Hf{QUj_jf|8? zNKzmkCjtTn0s{CN9R>&n1H-}3!M?`Px%m`OxIR45f4(c5nmM-;%}nb|XYzc^ky#<7hnsAxc3BJqHzD)GikRf+!;@yY|L zRG~gK1tC(Qkha0GA--m>GqW?Z%fdYWJ{_Gi__yK6AiQ83Ac!67Gn7p`DnHGxr;rMW{f9w+|8RufH)YA3qZsaBFZNZjO^A;3L z5R&)%y=}q;Uuqz24BSD=uYgh^)3q+H>MgQN?|S$h_@I0!_8v;p^z zj!aXA0pJEztYP`L365`@4sI|?GgVde@8fgUAix^^{_3x@(+{ilg{qKiBf*gC7%eE7 zwj5M)1SabD#f@ z&%lodhc|AH=JR*gf9L^d$z`qRm&K|D!{LB{q&8K``1JpJG`jci*&JNUmW&%1KF{VQ zOB~x%f&f?;k@;)^R?T=}JCT9CHuFpuA~EX-f4JW?7*`T{d%XadN&$ zuCge+R^}4nX2p1te(6L(+#Oimq2C{0to{Q{MXq*UY<6Nh7)&U&m8P=72-VcYU>r!v z384+;ZKf&554)2vvKpMKIxl$HiNf`|be-V)$7Q{qdzGY~?E>*}6Q+sy3Wf4!AdX2Q Q!T_`Tzg` literal 0 HcmV?d00001 diff --git a/tiles/texture56.png b/tiles/texture56.png new file mode 100644 index 0000000000000000000000000000000000000000..f88ef8f87bdef70622d5b1183859b4710fe42fff GIT binary patch literal 746 zcmVPx%q)9|UR45fCl1Xb6Q51#m8>+g-R60Fnu!C_1LnIIpL0tt!1(&*XBmO2`x^_Zw zBPi%PAPOo`i5fedq|)hBS68R%)f=jOt(&*{-o59Xdr(;<07!8`Oizjufq@Ok8BiOB zFia&`bQULeP#s3mM75!R6aWPozg_@kS>CyQyVnbIo^EXXSX*1e zg^-#Cg#XhLAQga3;025r07i{QLkQtHZY`LkP*Q9N7QZ-*EZ5!l-LBUm;X4%6W%ux*+Pa6OVTcK80hP8bSQzJB|rv$bj4R{x+^pQ=84 z`h@a4+SwsOx)qC36J!CLOUrTyK~X#)s3ZV+dT3J8?Q||JuOOD5oSDl8gAe0ab#xdk z*V^3tWf`WHXkp@8m8$O%rFfdQYEy+2zH28*(rUHF9{LCQbfa->e*W$IcSqW@Sn)>> zA5?>&ABHvGU;pxXVQ%*4#s=p+P7(~DJyfNgxRT@gMmtUuooUCBc+tSIyN*2z=ZTY z`_+pVDreDtZ?0a~=M;%r|N6yuUB=kr;$pYk)mpNgVeKK$v%THzm(L$pC;Zhbm#ePp z5^9xj_QWY9iPx%m`OxIR45fCl3Q=nFcg5}*ts120VDFYKNFu^$J#A_NkJ z2{tZ+jc#poSuV}RNgM|wEX%U2bB@pV+2HWWQ-O!JZ3nA0LP$}RAPLQZ&53B~tu3dY zZ!%I~qo?+uz)^}QrK9nFQ`gh!v?s}JM~#8WqB#UnPrAFcwMkQVFd%tV<;9y1@OG61mUx+n-mgyJ&eaeaAx1CT%{4|!BJ zZCc=e3`LfgS-vVUr5sCWc}Pk=FDr=`_Vy=LLy;`wqPCnnNLG=qs)nIM2sKp|r5@?% zv*(9-(`-mH|N3PWgnpQi7D%$@mBHEz_%uzKtUS*d02{s+s=AhBIlH;8NZYpK@wlo9 zD-@@j(cYLBMUfG!sv5^}5Cjbib*ex4)=D<%j6>&eC3!&wDRaDq@-O*^|c^(s>DstC0H7-nD+ue3|TvrhhW8!JU2e+}N8iY_? zH~(B-v3Iph-S^j7nn1v5vb4DT9ffPsl&U1K2_8=m=4aipoKMF491pxC5*1l8 zv^3A6G#L(@G`gLRCWr$c-oAs5VSYP3T`U$aj*dt}4AVH6O*zQ^OV1fPd!t=h61Ux< zF7Px%Wl2OqR45fKlHE_*U=+sNQa&xj!Po|Ref+{a$uwuS^ejjJ2pJIO%kHeSMukQIzrV@rl&r)ayw}36I%>q0jFPh5|#|iAJNK zjozb2mVlm}oweI-3cB5HDwTTq;+4c5y#-fDCQ_M9W_o(M|7bF5VA(#OPt&wgsbm<2 z*XtEUF&2wS+|hes;lu9k?#jwaGMQXnUhe6J*C*%m`QdQ5wzhU~Z~&!NtM&E#i-N|Ho&Z*MOU2;AP@e*1pTSkts*S$17l_Ik9g9u6xKT%mM&dU||(-05^Y9uL!D z4>3U$`~e?K=!G}oh(bnmY*&fN4c zn$g%ZaHE4d^{_nBeg65N_3KwOlTX@8;icZ*RkDe}BJH zsW1c_Jel0MzL}UznSBd$Nsf-hIQSKdMO1>e%mEjmyMHv$e8vCK?o$_N{{_v7X+&y` Ryb1sS002ovPDHLkV1fYXSeyU= literal 0 HcmV?d00001 diff --git a/tiles/texture59.png b/tiles/texture59.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd555b668a3a9ca5dc605f77280100ead99e19f GIT binary patch literal 670 zcmV;P0%84$P)Px%SV=@dR45f4Qaf)HF%X{d+TK@g_mU6+0)!NW01C7qg$NpmP@tjX40E^ah+s#B-82}d{MTp*mv(A{E+qbBq(cgzQ^9AGr7(*$Ts7mB)=nXKL zv}r0K;kxh9hv*|?93q1vha>?8bhzmnS*>ad1U@?+*^@&d)Z+&a_jd0c|C{{nKL9dt z!7u-CZM|M#`@*EcXm7(;OVGZ7OQJ{ zSqA`OSUAPJGkI1JY&JcC1T!JD)?|()sj@ifwVP`lLL}WNa-Q*oQ@~^f$~-67#>V=i z``c?vsZaQ;Hy=+r&6majnI95z-WwiVU|b9sLiOGL{{EkXPhPd(ejZ-9dSi3zrqXU| zd|eHLND{$WdP)Px%$4Nv%R45e8C2n{8G(~Ug+_4iwd7^w2X7OEPC za5suc4U{N7=!h&2sc+|`GEJ$NK|m-(WwXzZdaTuUeI)eGi`M~mIV2IL0l-v)Q4p8g zb1Lc)i~87yR}a3O1R*K351dhNkPP~do;`_r-Lfo4Nk5yW(11?AwZGDKSVoXEiTB_;4n?VIFVX-xR zuQPl<9t;qJKOO!sAYPw^P->-=P5vqz$^0+ouA|zA@;reWanyu*=r=&X7d3H@BDWAs|#oL@+{sz{Q251XsLvP#^Zij>s*Q&0*}!K zfLWTh+A(x-g@815g<)D`xaFgSwL-^(h4LGeI4r7AGhGZx&_gtCaQ1Rymtw*a9_hS@ zeGV^uwANvKf6(T}sfv<#9*tYO`BH1WFX=nF*&dIBD4gVby5()nCOCQbt+OXi%gKDm zLQcG*DE@x<;P|PNHrO)VwI6Ya9!3ELk^f5UUB7h`Ki}A>py_tIA!e)DoFGRRr7DD6 z6)q;pTCXu?bH2?uX)u~)d$_|x3LIQFi`jG#M3vH^!96#yXSHst@s4qE?D=&KDyhPN z!yk_xEM~hO58p{JQ}d-yyj+#oa{+=)RU?FKzX1B#_=WCq>45(Mkf~U}`*?VP00000 LNkvXXu0mjf(%f-x literal 0 HcmV?d00001 diff --git a/tiles/texture60.png b/tiles/texture60.png new file mode 100644 index 0000000000000000000000000000000000000000..8d10d4c4be6817cb0cf993038d5a4f6c2e7661d8 GIT binary patch literal 775 zcmV+i1Ni)jP)Px%!AV3xR45e{QeBH%RTN$4+;fuLy_{std>k}`b}+9wsCN()Y@I4zWdl*~*fpK~WS=YF2Md**G!UTg2Y z)?SE+0-Y%3Qx?bl4T>iedOv>t2?b+Q&|sYsWm-gfTloge6Aj6QZQDR5-4eV$;<4lK zpKo3V4=|IXsb^XM?0k_j@VtdcWgv{Z9hz*xWw&lDU%YgVSwqke**0@HVg=%qFu}kh zA34Dd!JV6BmHfBYK5j34Sao%#w~+I``|4A$Fj77!Gbl9yFBM>_R4E{yZa#0fKO#M1 ze0-(#{`X(Bg-~EYzG_nxSquefHiR(ak!ei*4=%h%6zzMpX*+T_SpVjyAFf_)ojrC0 zQM3y%Y7HTu-<2dv#WznZzS5jq`R$GJYI3FqgUM;8`YArA|o51~_7 zIUtFolm+25>U*C(dj9bKQ%arLJ^Svg+;&Q}y2}v-$jd?*!jc-CvNX^caaQ{K&qr30 z3sj+6IrQr*4H*YnnchVEESSi zO1=g22SR3HX9~Og&Y{B%w;n~|W^ZeCb3GaN#= zBBe}>!!MUE?=OjWk1d?q+gO~hf7ZT8dNPx%y-7qtR45f4QcG(TK@hI)?b+Sg*+=$~*}P0lMA3**5rZO#B4Pw{(V)R#(1XD! zcu@#=5FaSs{0o8}L?OB9QHhEo3X7VD#AqPz>}J-@%+9-~?6tcO1@%?cS6_eNApSKC zM2>-ro{6PJv@2+p9}Zut1+MNEmqf}m4U2mM%s7G^Q2+w*uv#X`D1h~NWJF0YaLeHM zQaUeEvMh6;t`AfqfF1w>xF(5H2sFSVW$UN=4nMec1=1nZSIa94fYdRAa0sZi0gToP zJkt;@?%uczVcqAenKU1`&~xYdMUoUV>H&i=qjnW&RDzHg;y6-D24XR0-n%+*uKzfp zW#rnxK(Dnt3&izJQ}k7$f|3Nl1xXIBbEtFs;9&plNB6bTq8yhtHLHkD&xvDT7&QQb zV*|AffDn*qq_e%FF|S&>t<5cT9Xv8wm}E+7^u<`Cn%~pa#gv%PB@z*o5iu`-!V zGL{(|eI5An)Q5?$AE##uv$*w;ra+0p0}Omiz(Nd(=T;dD)uctgQ_XH}PZENW>J&va)LZmv4ox?)^_+ zK1U`A18I7N20#%)!dS&(DU-{D6{)E$?}N>vU^tazHbI0Dn55gT?PFac4OPUF<$3u3 z1orUxGrO9y`&x2GJ3HDGc5U!1@|w3@L<>=X{{dC^Z~!@kTkik>002ovPDHLkV1fxd BUQ+-7 literal 0 HcmV?d00001 diff --git a/tiles/texture62.png b/tiles/texture62.png new file mode 100644 index 0000000000000000000000000000000000000000..a2796f336f2a3d45286fd790f7216b4359c15b81 GIT binary patch literal 839 zcmV-N1GxN&P)Px&0ZBwbR45e{kxOqAXB39dH=oCz@yM4nad6@|H$pB{2_!+5X(_iL)O)*WBj^uk ze?X|js_F(Ab|4U_I~Ju%vk8?DML-b&+QbCvsKkhn3pI`LC5dNZk3HjWzBwI^9_cJz zomWSC2v${)B+d!A+zg;n=dznp00At^tjLrSmjKLm(pp)UeSU(Rag$L=-q5sQFkpj| zGPi&taBx6yV3k^(q4G`>aHq#an<3h7;mpE%4S5wU?Zole*iaPJHDo2!OUOBLGz=tl z)esdAID^hdCZO@n!MIn%_~=kH(stwb+a`)vZr%r?Y;RWlp+-UU*uZqqvX@VN_x)!d z#5|!skM`AYTS#4L*jhTWGZ57O`?9O)WNhG%U$0^@Pq3<;KQ;01>eB4J`<-FBr>9NO zie`g_0FuQo|;w6#7>sQNNk>*tL;oiQ^m(QLK@7_g$%%>Ix zN8%+$o-MEIw##5hN9`4?FYPLS>x;RF<&s4oS!dOjBKvZ-`^Js`;+s9d||zU-K-d0l_{B$dg)$Y`*;w{JXgj-Wbw^-MzX1)bKP zf0-01jf6t6;lagJa^KKEcSp2ll-IMlmn*BbAe@<;a)C$Q-mbU=@xh(Dy{*j>g=2^I zo7!fG8Z9ze`)9T_5^ZVlx4a+U&~)&6sb9_QXpQFb#l+;)?DgrIw%H`nW}g&o@;54y zM|340KlU{=JHDA9KcD-XU|j`^0Y&4*qSPJv?Z?x!x+NH@;~^Xl*MX>}J(F5W+@1ld z07K#JLN{Px%`AI}UR45fSQdv(EQ53#2oz`hfZD}c@)CVmUk&tMNFIx2vU`&WSNW=x@#U((1 zC@B_EA|?h4;Z1`YMIvsf39;}X>I*^wXbeG?LQ5@+6sDcdOgo+BdNlDQ=jPs=@B7Yj z58@IjjIkt1adsVJxN|JGgmJvAy!iCl5=n`rr3AzQqpIK-f&Vv2OtV11I3dbwKv-u& z`w#2}6*0}rvJ9}asG_ulg`~&{yeJ7OPO-vD%bkWpNB2f!q3OW*$@1gXwHG1ICxx`6 zfHqtWJ;TY6egQsnCDIz>@LoZ~Yx zj8(N&zoRSBwbgBo?dQ%{<~p`51cDz12BRA>Z*yfuJvp(!EN-q|+ubE>1WeR(O;`|?F3 z{HxLH$uO9%He55%hCEk(Pj_$ev17G0b(997d+k0&QFb`<;_-ylmbDlPdpsVJq&QxX zB_%~jb93{1_wDoh2dAc{HHuER!7!QD%+k^muU^0L4-Q=Sdh6=z7sHDO54q<8fuW%< zdkPD)?AZiK?sPgeef|A2Gc&R*jg5^nOw8qSJ$m$*ruEtO9G7d?#Kbq2@nf-sxSD=SNZK%k_g1R-QF7#N0`pAUw^;i96Vf`WpY>MCkI7Vqxv z&d<-cTCIJ3eOj&7?LI=&1|UpKeE0c$CX=bDsflIT+1Xj>ip;W@gYyd}W5&qvSF6Qp zx7nRLoP2_x{4tr6oukTXhp*$xrOR9F*_O>_v(cbQ%Bsa;fjwz!yXW`&VO%zwEfflE z`e%_yWOQ_Nd3hPChg5Ihy(dx%fDud=mP)53ZZx-wq6p2vwn0@K$2lC1k&)r2PaeV( zBSdP*zi2Sfh7)k0R99Ei=&6szVs~1bVFpg8^LFc9A(vgTsa3r_$5002ov JPDHLkV1lwbj6DDV literal 0 HcmV?d00001 diff --git a/tiles/texture64.png b/tiles/texture64.png new file mode 100644 index 0000000000000000000000000000000000000000..5377634f0fa0c99cdad633ed22608962d253e578 GIT binary patch literal 624 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 Hu0mjfQ=}yU literal 0 HcmV?d00001 diff --git a/tiles/texture68.png b/tiles/texture68.png new file mode 100644 index 0000000000000000000000000000000000000000..6880cbde2f9d7caebd53777d57040e74563bb2fc GIT binary patch literal 845 zcmV-T1G4;yP)Px&2T4RhR45e{l50p)VI0Q)@40w(+{N9T%XwL?&2mmGC$tLf;)jx?q97_NBIpW1 zpMvN^K^G_}5~BJdQ4v8=bfuy!F-t0MW!SWmnLFC@Hr?4dJ7@2CJ3ZeYcpiQ~L_`8a z0zLy8K-L5lqh)~N01)UQ83plb$e)KWmP9l-I>`W&S{9t2%8bhrjtXf|RLY=*N=p<~ zjt&cmHHN*u2Y2tL#bjG+w?EIpRC~<(4{WMm9T8L6x>B2l6{DFP-W8!~wz10k_|r5m zqGS7xY~Qi%{qt6Dei5nTRz8Tmc{oC_qHj zPeXmpa#POu#>V2AztKHg_aubB&CSgUk=#DF!&83wYWs)IIN|y1|B?iNAvXBMWufuR zbiDufqZ>DedwQyUCF&#;*$kT-YS*o)TDrtb8M1)Wh$tjb;9M3Co;kiBNduS8p0H4W zWjK252uAp6+iPJ~8J@^})&8w3I*fQLBIH+SUKvkv>%vuYU8vB?bhfpHD?>EP-MrIY zvcNr=;eL*RO!FOIKW7=D7y9J1YM?v;N5P6nfW>08Yh+2yd`ZrvGB7kYAreb_w=g9u zwqj0!G@6vZ**G^~yH2{M%#NkmLYq(cJ#MwzfrXa-&wzN)SWLr=rgE$Xgd{a-Dlrt- zrcy+i4Z3Xa?mQW6={a-g_(FRTQBxtmr=l$A$}h|kIfcg=NLec9SWCS|vpM(n?PpHj zcI)~ze<0BJ^<%!3iuk?Pnof&qTo@ZIcN?Pd1gvuS?wvRpeRAc?!={y94~YqNfw`4# zbHyAZQ70BSjXN6_U%$9@OTDSW0YpxqrH-6M)m1K!{YNa`H<0KWiecps&Fe^60DZlw zthm%OzMv8r0o)P6(-gFNDOQ+S*TrLL#t*A6lyL7DoRhL9yIo*kW XD_v;7*w00j00000NkvXXu0mjfdv}Lg literal 0 HcmV?d00001 diff --git a/tiles/texture69.png b/tiles/texture69.png new file mode 100644 index 0000000000000000000000000000000000000000..5798156d5960f969613395ace4eba740a64ed18f GIT binary patch literal 808 zcmV+@1K0eCP)Px%;z>k7R45f4l1WSxaTLbie|B0Zv=WhmRd$Kt-Yu$U`AO<&t9D?XAg5=`v4c zgQx1}g7p2}*Rl7XGm5-pS1=_fYrMRFL#2z+X6I%I;u6?PY2@&ZL+NEDnKB9IX5AIF zfq=WZ;?wloc>LFiqx+8^+5P7E!@+?NqXESO-MXQ^yJ6ee-ZP_5!-`Hn84Y*r-ILZe zd48_AgnW2C=5?CwZQIt@jt~`P9-z(VzuSLPo?Tv7vTpdnV<>jLoSvLb#spufjIz^3 z{w5+dm1W^qFBk(@(2XL&bte=mw-{e(c}`hY^*BK4$HG)|XAp>Knsj7w#fD@lIiewQ z2-b?UZ)@9HLP=tTV+FzE&TwoJt?<;B+e1SF$A<=QO-_9Lk0Fo7s)2eQb7@o(sEVkI zm|c)_i;W$drk7{uQ_|5>Cw(<_nOFw%$j~-so(7_|G;Wqx;}&K9jz;q=kHCIknCt7m z9t^Yt!%{R;;wec)<6ve|9f8ejO6gbO;Tr>&z4crcV-kvgEHQyPUsvgCY4*3YCKcU6 zL<^xSP&@woo+N&~aOw1x&Z>saswHhPi#fafDxzv*O2`@AR7^9EW;UOtokE7?iMOhv z?^>UOcYYlI>_Df3D&`GJS;{#D)?so&5g`U|&8@sc9?4v%)`k=yvyRJTrR$0000Px%vPnciR45f4l1oceVI0Qa%elX2&Wz49PL0##C>G4349ZL_g^Hs42WS_5gBAuY zq?Sb=B3wpMwuiYCA1`12uT6MB|sxt6A*Xx_av@A;q0RV>(2SE_}VaCon zw!QmzZ*%hyo*gR{i$#P0O#;)@8BcuQ#TWy~85M+NFw(*>Ry2!q&^T%;B5vHcavktw z_0xwq;S2L~mGVd&1@cI`VeK6pt*w1#6y2P^2axt=Wd+`u(jMHqdw!~J>4+FOjoiTR zK2>NQ;@#m6!kTi3##=rm)&GQ=n+vE6CXID!h`hE4Li zqIm7jNN)Jz+>A)QjrGqQg4s)RP_@5p?Hu(&J72Jg-fV`5BTryIqHWDe$4(a)u3ey@ zdvUftJzJMTS{cfb1SH0ghaeJIQ@p^nvgG#tJI|gkJHtaMViYndq?Mr@NkC!%2_;Rj z5ISXg7^_c~UYsZv%e8vlA^%^=*X>_2%;ry0#x;AAA)?b>IZ!N>jo;7vZldzcD8i`j*J#66P2aqr!BYFatBgKTPhb+6G}j0 zrILe>11gtne7x4}_gn4u;^N}VSFf2s5bIyoHy=HE{Px|d;OfNqnO3uRxZi*ePff~2 z%I559t-OEm2VhEBq^gR%Lz+?r8-OXJ<+0u02mPMM8G`eqVrMJ?S*P33ZLDfAOasHv qWFd+YQ?+OegCH*CN>E_W4gLXz{#A95xK0HC0000;#j)? literal 0 HcmV?d00001 diff --git a/tiles/texture71.png b/tiles/texture71.png new file mode 100644 index 0000000000000000000000000000000000000000..c94dcd2e258c621701cf48b32aa5d742853a208e GIT binary patch literal 832 zcmV-G1Hb%Px%`bk7VR45e<(9LfYRR93+H*e<6n>RB%JJbE>>@4k4DAupCgb!(xqA^en(G-c% zqX|hhL1QFvGXxS%OGslH6F3+=aPR=}=3k%(FPa#*sHN?;?6%$R*X(q6zGvPH{QiU= zbK#v?%q!*cl#hdEhM^7&EQj&!}m3tYR~5VH&bGz`N= zeShNcaod%HnwXGQt5vB?nEiq0#!sKDJ%02X z^L`P$a!e1RE|DOIQpbsifGsPK6$D`_D%f!x9+Ae5XN;DgKG|gr2faCUN)fYh5W@r& z)$*}JRl;T+E6tL8r99r*>p@B~q#&}!^YuMAG5*?Kz2y!)+jK-k%A-bYV|%~eA)I)1 z@ynuCSo(fBp)~TNp=D>JJZ$wgHJu7A}4E?d>~JDnM3%NWuxjdLeUm=A1Qf z-Px%1W80eR45f4lF3fOP!xu_v}LT62nbY)MIo?Zp~%8S6N5V!u6+rg7DGZ%2!Sv| znJF^)g}Z2a&+rfDTv3W@ilUgNx!di0KHu?pbT}N9N=24sNsy6UT-iMTr3u&(Wu|=pH8PhAmDPjR8DsAxi{eGs0 z9#UwNZ_{_AH=9lE_lG<1XakQpl8E$rJ)9)X8{$}%5ocKzUktE5O3}?}Hk-uhM-tk~ zFu>w?5x@h%w^pl>O(YUb zpR6cqDsBh?!=U)*Ags}7uq>#M3Ix8<388pTrwFkus-a>sDC7xcvssqaZnsea9M}}V zDLxDgVVb8k7!1IIga=0a YAJx@h_WI>*2LJ#707*qoM6N<$f;3eDwEzGB literal 0 HcmV?d00001 diff --git a/tiles/texture73.png b/tiles/texture73.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1d1f679ca65ce9b7a158099e57d75777e5e317 GIT binary patch literal 497 zcmVPx$t4TybR45fa(hHKJKoA5_kXHQb%o6LwoM-Q_m)MgV;a?C1aUOQWR?J{gotc$Y zP5STepXWPPtJV2@p3P=W({x>TI2<;c&Ha8KkH>A>CP}j2?_t7jw}V%5c03*zi^c2p zO4Ic5cqqmkT7J9TvMdWlQK(X#OeTbv%jIA&2qA2@+tFx*2?U@BpueM_BqWra2|c4~ zRaLYJ4c{@HPQ$INOlwtFiLaj5>lG&a`uMn9 zF5h2YIPAy2r0a^$&-HToyC|Hx3Ix)<99veVuckOuy^6RimLfnU8Vj1*oqa*OY3?yS z<2La*aioKrHfrc^I|TOy#JcW45>KH6?YJ&9YYcUDyPhwTeB66z+B8pwS;$5`^wss1 z_R%~??d$2K%hEwWvS9v1G)f*hhNAIUaO6VzPeUVPyzwc!(HMD?z;OkDOvSozf`5S; npJsqY^KHIQa=8Re-DmLwapilt2Pv#w00000NkvXXu0mjfO;zT} literal 0 HcmV?d00001 diff --git a/tiles/texture74.png b/tiles/texture74.png new file mode 100644 index 0000000000000000000000000000000000000000..5529d6791da5fcb9e8358c58a1b09cf5a6b5d5a0 GIT binary patch literal 838 zcmV-M1G)T(P)Px&07*naR45e<(MfL;R{#LudGF0U&v?Ad*dDK7f`}spCj=6^Ngzb63ax~oZX^!9 zw6v<=z=adr2_bPnaA^;SAAp2}IP^fJs<)yFnyOXQq)CtoR^xr0+Mdm`8~(s|`M}Mi z1RsrGxpw2>{T~^dI>g5()3K9hSMEHxg?*43k8`sN)i-s+#C6F+-XOX-lj?{A%rtxXGo zx#PKuUw$<|mj^afRMh|`W+`y@SeoG&4H=(&d}`zO-<*LAZ5Mle!o-m`dnH3LS%i-y zQ;~$wHU_m$1Dy_XE_{C24gu2h*-5R}8@Bti#}{92?Di!q?2jPJAx$+k5p9lIHf6(htBOeiK^Wq~6v?QH zDNCb3fCC5yd7qcXG)*#II+MvT3@i4AXe|>XpgVmc`_0#vou#7A>a9*7E+C9` zO&X~Z=VuFR1&ailZh^6v_PeRrqPXbDWnN8+K_o0vRY?3Nc6a~KfkK0h}o)n5Gk zOH)(3vW!;4dRT}Ag_xpP`q09V2?av6R>L5j{o31PBJ%v{lYck<3G$KRew7QyATc%> zn%ddf$z-OcGSf5Jxpuc7jz%#}(JZrD+=e886l7WU!uf*ZjLD_^(&vF!>4a@56mlU1q9kc!7>ym&h9=K)txDy?#`jk**+552 z6e37?=E7(BPx&14%?dR45eM1@Ui-EEzU21kx%~9# z`GKpeSpukqrF?C7PjG`&TrA9=yZ^9y==S)LWC%!%;y&NL{>8_idO{3F0ULTg&9Yjj zYgrcYu@OX;3yUiy=buVk8F}ONHv@>izIr`?UWlV~W`cR|Qt|z3*M7VCQ-sh|`mEm7 z3dN-#e*Ia;h)amOd)3NLd2VWEY*=w^*VGN>g-qhx8#gvy-kh5~SAXTu2`=9 z{QBCRKmU>h30ctWp7JsN?RVe76k+nCGy>$Hab%qKcoaz#!?whO$eea%ODoa`G`6p=x5`}Un)&lm&% zz~CrFQJB|~@${L|&Gi=v#w^V^C^&33C?(Ox(4?ZL^ZA2Xjq}4(wKbE=8m$vnV7a$G z_~@(c&)VAQ#nMVo)0Oe@j?-URzqtO=W@tMTi4olH_SBZ9X{oVsu=C;8kH6d;Xd_AT zCsymuvD6;%yI*U5pW?dCVWzYASSEm%)gAj*~?M!EK34SO&mcF}N z0aBdh<2Vf4jmCxLXHDDmsfda5%+_=YhY`(jgaRNW$H$F`29zkMmQG8&<2sY63AOh4 z!qPIJsbD}TVf(q&)q1N*0eUK%J3qgGNYv>YASog;5FaDkok^XIGmP3$A%y<}y$qTw Ttm2?<00000NkvXXu0mjft#_l+ literal 0 HcmV?d00001 diff --git a/tiles/texture76.png b/tiles/texture76.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2c975d121f0c9570e529a4afed843063bc48bf GIT binary patch literal 808 zcmV+@1K0eCP)Px%;z>k7R45e9j(z8mEW`V+@LT7Yr1rfENT2N!*YaiBVT> z_z{Lb;nIbPK^F+#VjvPkiH2f?NG(E(MX4=qr!#G5=A7efzRml+oA-Hu8I0sfnPm!W zbFCaLF`e1WJ*>h^BcCK+n}sZR&1h;5cr<1Hgkxiodrv{{GwQ?Y|NkijSN~%z!Rc+@|YL(PKe9Z!*f{26cp1#P1_6v&YiGEuYWlk^U2?AW8*_Pfjji-;4 zsnODQZpTOyuo<#+no|SH)SH*GDkqbFe*B306t4pWOFU;Yb7Ja6Fc?@~SprNL*gIB6 z#N5p6=fQ!2w^OffT<@*krG_uH+EC$(kYgOZ**7>o{>&@+QX6^&N`6rVprO#N@u$ya z1ryy7fmbB22pm>H77_R4@w36pH;Vs?2enYsspIY-UDqyN?YIv0&EZ;BwI+9t^- zdygHiKYj9yo-+`ZKg@r5|9ZNi=}5ItsT8v!MzZWPOvvn5@wH7}6?{&iGCi?SNEq2n zL6E$rLv71mU0MwWs~Qf}r4mV>$`K;0|N8CH#Ghv8ZPPw`^mt|?>l6qx(BeW=5@k0^ zr_x)A?eO^yV#2rBx{KMi0sAHY&z1OkEOAIXge~sl;&;~y1f0VN5`;SK0H%W1qdGgf zTOf>J%dt7xyQg|DVuH*oz_4u*n>q-gyCZjEu~;FeTV;E6bd)jRJsd_DKNuM?3Px%?ny*JR45eGZ3E{ITeTly0! zEqbqay?C?qrnHDkK@SD>(7!g1|GtQeD=(fom4ct*6gK8jTOytGc0)I2s3& zl4aWUlAHjcF7RT~?QxHGe#P@sx_A{a5YBEQ|sUC>OY@%l$zQAlPg+_PTqr zq^h#cVul1f@qBMI7Fn>n{_fd?h7TY9M#9O)`uPLZ<9U6j(^)@uQUHbTzk84}aP#J; z2ui>F{Hs`*0U92+PAp$M`$ZD_x-3qneHk|$=YuCto;97t4^J%>us(48KmKehQYf6X zKx=IQLKaV51foXW^4vZNfv$t+FF?})qGY5{iJ6!rp#4u5t(avM&j>NL)EOS8-p(*^ zvu4!_hUD!x-&i?x!mcg1|JoK(6GCg)_aURAE|+Z#+cidj))gA#xX2BcsjYK&%Hu?#=|@-u{qA9SGz-dS}_3%1T2z5B!MoCfi}WMoY6 z(R>LbQNSW6k=OqF@s&&GQyv{&Zp1WRJN@3hpYHDrJbQj&N@%w?K!pN&%bqjzl9?}& z)z0>Ix4UCn*2Isr;_Q$2AEZF0Tw*{=IIhh(|GnIXz22^f3*Eil{gFF2?=%(`NeVwY zcVQF~sc3K!&(7I73L+BIBuN=+9j-%^Rw_mYqGPKol!X_soV#`VtLvZKAT+sp?b`2; z9w|i~iG_s4X|5a``3<{j6m=4YwQ6-^bMxzO?o5K{->sLIE`NOY+j}I+1(Y~PuU~hw z6bhTpl3lCjP6pGV-8hi($aQPx%t4TybR45e{k;!WmK^Vomx~liRXL>TDCdM%#UNi&@C>SMC42l=;l7GRQ;Ms%V zE#RNvQF9hFc=Mt};zl5=BiSZ1-P3z_RWFvsJAChZ?^l-(++M!ky)^Cnu_`wrzu=$> z0LOC@!!Q_UHONSjs0NB+&#=V3y&aSe-S(_LGd>Af0cVA#TD~8aMNI*SB*W0c$m2y+ zR&C#Re+@$?w@nOf-m_>B~{l4`QJbnDU59LMK`1UVk5 zT9*R!Z-LjB?<^23RJHPH{j&mUMDq0K_l^DC&6ATo$fg`m?1nPv#}!~&j^Ykug1NGi z+U;%}mjuVi?lh0iPRiqK{6bTfP_MV`ICh@JHOoNO_QQB$VlqjKt({$nL|TRxlU$za zs;YvsJdPr#;jBDau}o`b`pV+s{q5~Pt{aky)lFO0^qrjpI3cmEMhg@bk2rycfjijV z+A*%l_1QC6`gZB1?fZt6siZEg0DiN=54+QUCg76Wp8`w+!9V?O~VVr jlwd{@i@FjNl~mPx%5=lfsR45falG|?6KoEvw?|S1y5<*B(6%?)!571jAE_eti7rZGF1tfR?6eyyq zB9YiR*p1I#+kD1_z43Tw=KsIhUE}%FXKyZFf4~0riy@pm+yZ4yuJGHQEIK5rZEhIAdcfaPqHk_^V~E|DWy_sI2;mCFc=KFP1kiD z$MHOm1f6wV_qjApjm9X7${BWwRNps{xcj$`$D`IoT4e-PRp~;fX)X*4^R{h!Avu{$ zY}>|RI-SnvbIgmTv~3kdQC-%Q_MSor9I%o&Fdy7VmSrh~0+e_*n-ysR63o!DiAmRh zJTr_&BLe=B)JENZTiszWG1~Z$#Yc7`;A(JF-}eopp+W1?vMeQ3UAJUel-)Pb)DMKl za=ElD^T*BgVzFSJa33mVyN=5#GbBEcn|wf|2QUJZID1YaNfJCkCm;m^*xfK))8Acu zi8q@Kbx8KNMl%xN(MAC`+YR)8TyiX72@t&(Px$)Ja4^R45falF5qOKoEx2ix$h+*w{Xp5JVtz$umvnkcS=^A7%o<*I-$))Qh^6 zPic~-DXMGxtNv>7^~*P7%xbk7$MJAD48u^CC6;-frIgvfBZR;bW7ID%&mn}Ws=BVL z>pCS^Ye^%Bh-sRT=vr%~lzzLs=6Q~r1Qe3dopbp9SH(#AC7Sd8aY2Gk8>t2k66hs$ zg^^5hI2dJF$vJbw*dpU>g`BMGxk|?=jH9_b|Hy=wDsb`Yrup=EJo>)h@AuSZ7@z=5 zO`;cn44T$hY+W-Dgd2=_mkUfHrAOri$$3iMGigII;senY3Ix^^j+89@9Va0 zDGA!?bb@67*XuQmW4zsN&;`B*8aA7zp)uZoT(8&j`Aj45Ml_vlx7*|KNC^}eP*Q59 zN3t9gNLC7dSrbHwEKA!6#=!Nc$H90vA?cE0Aj~ntvaHNAQ%wA#@O0LTr>D>C6=+(d zX%d)(8Bpkf8PeyV7CjTDzd!%LM<{E8HPZMUyWP%v&#X*^g&bU|uD-mzr%sRzikr~7 z{!I`G#39jfk+87z^WzuG#|lXLMG1;09|Q|7EJ;}w2Nf{Gs6u4uTp^aHa~3qM3y8u3 cnS`PL0W^Sk4#()Kq5uE@07*qoM6N<$f;%JmYXATM literal 0 HcmV?d00001 diff --git a/tiles/texture81.png b/tiles/texture81.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec6119aa6ab06f2bf963906983fe66266c89866 GIT binary patch literal 676 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 literal 0 HcmV?d00001 diff --git a/tiles/wood.png b/tiles/wood.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8219bbe2d4e014cd4389168995061b666bd206 GIT binary patch literal 1258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-HD>U^2)Ii71Ki z^|4CM&(%vz$xlkvtH>8? ztx|+t?VyL%(9@GcP=o{)8=ws7Xl9`4>8%PGC4eT$7bv7WwtO7DCQgb3* zGILY&ih)kEGc>aS+kzp1a3_++2wWPGB+xZF=jY@X1s5bHr`j1p?LrblQVnvom48uY zDlkAn!3I)}AqG`%qYnyGq%ej=AXpR_gLYgt`ta0X$F(FXXc;i=WO%wbhG>YYPKwRH zY#`E>{QSnb@Y$uU+g9(|ddcocdw}30A-xA(^S8zynEyzO^PnCZQ;W;hvX{5kWzIgb zQFyj-nV!z`8_#Xk&u4%7=o{{p*^_A^wSD{cLK*A6#asIpW!TNy%# zYf{$~b?EebSaG;w^VM@HdCUzK1+CMyB}@4poPO@V?(wRqpLgQdeEQaCaOB3RAh(Ui z&$gFen=yCVue|8*a_k@eU9DW(E6x#obA5QYc>3|Zb>GvbnLNtaeUo!Od)$oEJv(dW zzjv}{+Bvy2b~j(B*VC2Co1Id*!Wm^IZ&~Jc{dJ11RPUTyuYwM5m)BNoxfbn}sWo?g z{pa|}_c?rD_rCwlq0Z5y5~(IV<7^rS*SUH7^0r2CnEa8yk#05j+wZ@dbSCCZQrR1) zf7)nD^!qcLKYE|C+v8Cxb+vqetdYxx+*C_{!MpM#cY91ck?=<=FVraxRJCmWBY9ecMIu| zC8tskvRHh-qN?t6{gkSLlHk!fT(624!o=cMvj_Dp&$2P&03UHx3vIVCg!09n@d)Bpeg literal 0 HcmV?d00001 diff --git a/tiles/workbench.png b/tiles/workbench.png new file mode 100644 index 0000000000000000000000000000000000000000..7da79819038351fec527a60bf2eeaeadcc6cfdd1 GIT binary patch literal 1858 zcmV-I2fg@-P)Hg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS-<|mK zJOHo2k{!>$1I(5MVh1}|jsyybNi>?Ej7Eu_*s;@g+kJ8Op^k?Y3rafOb?UEQ=dY@B z6#v@83i_y3CYY{pB&IE}jU%>BLFFJnYE6$9cT1ixPzKw44y)*|zx<3~^pc&jjinUJ zL=)#5n3AO_7ZthITrJnsdi#9)ZCA796`0HdGRvXUY??zD zPp1^}ly;-W%_?IUDV**;-+liRmM5oqI_2H{HoHxi(bYABwu?(dxEODi@lDKNCg&Z= zH5|jWZQEiIr<`8DqF>7BZr8Y&+)?yB!Zg_^D2pl+YYTQcnlOxKIITS)TiB~G!_6%Y z`aSyPHNX9F#-o!Sp)}1&Gbu&tFWC5%BBy5~9=~@&Woa{tEDYD)EBVBu09{!V%$9uk zMwh$coE4hfvdEN1XW~o04K}-)$-YdyNHAP0O_uC!HK=+Hi$%yPiRrXl8Cgc7RiZ65 z8{fnXW^zof;TW!!7T{h73|C`z1~qPz1+SI?{lgl=B-||Ho0!2&j>$C~!?mL#(0GYuCBB z4e)Bd&>;#!4!bpi$vs8OrRY^z7pk0Hjwm!T|C@9vBU=|Z=Vxi)uDd0Y<%B2>aYg=k6{FlLG14Wml1xEIb2?s$ zNXl@FK91ie5Z|7x=bXItfW_3|&+}6*#`^UO3Psj`>|A1pzS55dN4Tv%7f*kG{Tc_| wwk}yBM;^@Ct?2w8JL&ow<*?EPE^jC5AG)PmS#@Z#VgLXD07*qoM6N<$f>ZL6$^ZZW literal 0 HcmV?d00001