From 1c454fd5238f440f7be40dee2d390f9ee9a575e4 Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Mon, 5 Nov 2018 00:21:56 +0900 Subject: [PATCH] Map & mapgen updates. - More textures, more transition textures. - Old ImageLoader removed. - Number of tiles displayed reduced for more realistic benchmarking. Also makes running tests a bit faster. --- assets/flowers-2.png | Bin 0 -> 6041 bytes assets/haunted---bl.png | Bin 0 -> 5427 bytes assets/haunted--rb-.png | Bin 0 -> 5398 bytes assets/haunted--rbl.png | Bin 0 -> 5399 bytes assets/haunted-t--l.png | Bin 0 -> 5432 bytes assets/haunted-t-bl.png | Bin 0 -> 5393 bytes assets/haunted-tr--.png | Bin 0 -> 5451 bytes assets/haunted-tr-l.png | Bin 0 -> 5408 bytes assets/haunted-trb-.png | Bin 0 -> 5463 bytes assets/{haunted.png => haunted-trbl.png} | Bin assets/haunted-tree.png | Bin 0 -> 5396 bytes assets/sand-----.png | Bin 0 -> 5410 bytes assets/sand----l.png | Bin 0 -> 5528 bytes assets/sand---b-.png | Bin 0 -> 5412 bytes assets/sand---bl.png | Bin 0 -> 5504 bytes assets/sand--r--.png | Bin 0 -> 5522 bytes assets/sand--r-l.png | Bin 0 -> 5415 bytes assets/sand--rb-.png | Bin 0 -> 5473 bytes assets/sand--rbl.png | Bin 0 -> 5289 bytes assets/sand-t---.png | Bin 0 -> 5445 bytes assets/sand-t--l.png | Bin 0 -> 5493 bytes assets/sand-t-b-.png | Bin 0 -> 5466 bytes assets/sand-t-bl.png | Bin 0 -> 5434 bytes assets/sand-tr--.png | Bin 0 -> 5507 bytes assets/sand-tr-l.png | Bin 0 -> 5312 bytes assets/sand-trb-.png | Bin 0 -> 5429 bytes assets/{sand.png => sand-trbl.png} | Bin assets/tree-cut.png | Bin 0 -> 5372 bytes src/main.cr | 124 +++++++++-------------- 29 files changed, 48 insertions(+), 76 deletions(-) create mode 100644 assets/flowers-2.png create mode 100644 assets/haunted---bl.png create mode 100644 assets/haunted--rb-.png create mode 100644 assets/haunted--rbl.png create mode 100644 assets/haunted-t--l.png create mode 100644 assets/haunted-t-bl.png create mode 100644 assets/haunted-tr--.png create mode 100644 assets/haunted-tr-l.png create mode 100644 assets/haunted-trb-.png rename assets/{haunted.png => haunted-trbl.png} (100%) create mode 100644 assets/haunted-tree.png create mode 100644 assets/sand-----.png create mode 100644 assets/sand----l.png create mode 100644 assets/sand---b-.png create mode 100644 assets/sand---bl.png create mode 100644 assets/sand--r--.png create mode 100644 assets/sand--r-l.png create mode 100644 assets/sand--rb-.png create mode 100644 assets/sand--rbl.png create mode 100644 assets/sand-t---.png create mode 100644 assets/sand-t--l.png create mode 100644 assets/sand-t-b-.png create mode 100644 assets/sand-t-bl.png create mode 100644 assets/sand-tr--.png create mode 100644 assets/sand-tr-l.png create mode 100644 assets/sand-trb-.png rename assets/{sand.png => sand-trbl.png} (100%) create mode 100644 assets/tree-cut.png diff --git a/assets/flowers-2.png b/assets/flowers-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f51b3f4ed2f704cf10454092ed02ce36f437c408 GIT binary patch literal 6041 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 Z=4RZrEjpiEJ2Gn&kx!7Y*lW?se*sd%xe5RP literal 0 HcmV?d00001 diff --git a/assets/haunted---bl.png b/assets/haunted---bl.png new file mode 100644 index 0000000000000000000000000000000000000000..38bd6f1eabe432c844b235633e004942a5dc05bf GIT binary patch literal 5427 zcmeHLc~nzp77r+>5h|ysRd7jz3tF-#ki-O85+Fi^0u@vgUy_#)Nb;!6bF}x;)*D4NXG${p>DXK(mJ?+Qk^d$vdo~Z=S=^Da~|;B?{|OSy}$3? z`v@x{rUyIY-S9XZ&RG;9hy*`fEYCnk@O^B{I|zsC*OD3?i$y|4f)+*ON)=4NQnWAu zHYw#eoax4%n3)G3dpfn(PEH-PE^EZP%#oKZuC$7$I5aKHC$|g_kF)zOXQN}zmU{N-!5P~4f*bdY-rU`ro`%IP z$?#U@uAkTN(&LP#efDgwen#u{`w3I#I)A2jzzNT(ahXkqSVHVdKH@))nprt;A$|4W zs+JK;*&6#V!;U$ItYHRvJ#c#A8YgguqjWNPLxwPP z-LcdMm*$UckKKw^-^y?p8?gM#C8JnJ60TOdNW*9oMcLyoejC0xGHg;~PSMCMj39;S z-q8!iWjEEY=GWcb{4y@Ww_?~=>NS$B{hqDr`+~)z#I_?;>)S zVxi{Q|7zYjqow|949{#hb@I{n(SzL!_6rv58C?f9S{FMa0prg`TZ^{f_y?rG-D ztLoU-r~bC{Ilo|k~V$ZA@MMYi?P2v$x--$>y>rX+`ZrS6?2QA2)GQ zN&XePntnyiQH!wIvwWJ4IpjBN{Wr@mHMV6e&b{qnNbB}jt{C>i@hexaB8AKLR?YT& zbfAh-&5v7!#qY&XQj$}pIQP=#fFcV18Cj5;-j*_V{qx`5(Lp))oN$-)Wo2eO#{+Md-qH$ zt!RA_`G!xOb?&X(h=rvy>+N}VTSKdg7vKKE?d_GH(@V|2pTE=MkOoG9ixRYdtT>D- zMbu=s$wmelK@}7lhr^*z=@dGh1P~-$ ziUxyBB#q9)Leaq?fOS$-sl}9thG5}@B#0j46NzA-U?T^+QlSYLZ3kG^R(c&KqlmzQ z3Gx8|3Y|)2lc;nOokQvF4|c`kPH&CQrXtXjVuG|38ktH_t9y9pFrlIAyk0$Y(O?Qw zB4Hh(N2RdP0BbOh?uY8INVrRrKS2TDJqWZay{>!EdL3*rSrb>u28+ZI zoj#U(P$<<}tA_>M9VwG`;{&7=kf(CJhbhrwp~3u)clMH(FjX{7LbcO`IV zvV1raDpOAKVK7)ECM=PYAUez>abyt9M+V7h5{Y*=if~j3`Tl6WpGYTDyDSkZ2$LhInokT7(1_43{RGd-`DPW3Lqp*4a z@wkB~3}FZwjUXyM(Gn8D;%V(40?*bN+%QB6SvtrHhGmxKvb9$Lq@Y-rJj%zw|HBlO zfEYD@j;9OS$>NV3tu5Z$mAzCeL}#!$ zQW=fJlFNNSiLoUlwoJw%u{faI7*r|5W2=alHf{#WFqLr^mC52eFvjT>zUV0vJ_-?1E54ZOz>}sJOBZ_bmOR zJqzRklZ)G%47Q%9ebC=lnU=A}6ggga!+6S-3KsSJ2DqslYNw8!}Ue!;w8KkDY1TR0A*$z(iur>>0#ZEAYhzGI9*U2FfZdj$HnAc literal 0 HcmV?d00001 diff --git a/assets/haunted--rb-.png b/assets/haunted--rb-.png new file mode 100644 index 0000000000000000000000000000000000000000..f8887336d19db8ba8cb700e6d0cd4b753374f384 GIT binary patch literal 5398 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 literal 0 HcmV?d00001 diff --git a/assets/haunted-t--l.png b/assets/haunted-t--l.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4d725d52dd1d54c03088bc88bf927d3ccd89e9 GIT binary patch literal 5432 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 literal 0 HcmV?d00001 diff --git a/assets/haunted-t-bl.png b/assets/haunted-t-bl.png new file mode 100644 index 0000000000000000000000000000000000000000..32d3701ea1a9ea8421760b411a60a02354838c22 GIT binary patch literal 5393 zcmeHLd010d77wDRAfmWisrka_xFva6Nn#?y5+JgO1Qb_%dASJ>lDv@jLc-#%qqtPG zIEY&9d>{JsHAiV@I( z71z*c){1Yl@ild$dMtW)%kzmlC*&}x%FGLwQ73uBU*qqO={~Hc zkK59iE0vM1Nh-G^W7GC;JW6gb|IjI;N|?86AJdp#lB?XH%ZYq7qH^D{x>562o4Z^e z@=fEFZ^$bCozX)$BzSgcg?dGApT&>5_>K(DtvdTpAZ&Q-dh9{$wM@>rm19$#x;54B z4x6j}vcQa$os#s*!pV}Znu3QTg+Cnlx_-EJ$sCn5XLe%#jkUD?sA2xVy@vAP`F(oo zu1^JjU)4LEn>B4rvwP>*l1V#y3d_2j%1FMnl5?TpK)<3TNrz~Q3ak6Zuems{zIfKJ zyH>>pOxbAlTumP}aZO$I0uN9BD@fU{y%ELBTw+$P=LZj%oi#AGbfEIm`Qb~v!=ggQ zkKB=ED&00{H!n#0>|9F0hFh zq%%cPp?7vZ2@e|0^^hUH&L7;rK3h)tts_?1XN4o1-3! zBGia8=l-A)bFWhi4lm5fcu?$B=feAZjBs&mBsR!6%0orJ`^mI>>G{o!CZ><)>;68? zONY2qC;dKiIVOMfk6T^|g7Ub&K29rVh@^u3wX>8cdkizFX%0V0wEjrqG1sN)Pk8IL ziJmUJw?|x^*1$UTX(2cFam5Z+LDz$Q4;;knzUaO+&a>o@n`GF_=>xx?-7p`SdSRyL zaPZ@*(jBR5<3?QSp5ASZrQgV*#OR@)hm2~TwR_^K2Cd}Yw63?2%&NGwCiiWVubg14 zm^t9d%4^8_h{jSAF|nHAJI+;V zl|TYLpisJ1uQQMmtBhgimB8;dGn+xTL#RXfQAP=yZLwHb79NW*Y1tgHSjn=%NlMLDzyTk|0|9IdCgEMmC3qu=V=4JV;8O+_qka9%M9Zy6h-G5@r(yda*OO`AzzGuZ>zsWogEm3`~&7Y$Z~N4EOd&OwXojdl+kx;;{j zwc?Cslg^G&V{D)UdKd`_nK^Iap?|AGhr!s%?Mh1m3CwI`Q3T2u(85yVY6&71`S=S1 z`2q5vKn_RF7x9q*e=Zjhh1z~}IIJPuzV5b}c*0`%V?1rpRu(@KWg$$76HF6S z2>_$s&(jgOl_?4~Hj*->D1IlX|H4UIGBE`D5~h@P>nlN0%c!OM=y1DKbh^FbB`9W7 zQN|$AWT3Vm0o1W&3X4Y#S^!(Cqb%Oo@eZ?>2UY1dHLl%Xa{5VF<%9U?7S2 zZM{9D<+$42{NSEjZ1AQE@6qhmo3tZcZ590|z8q!nC$0dgKQ8h?`hJw_qg)@Pzz2ap zX4gl#K1hKN0)Nb||C?N{ZIAiD0Dpj5;6wb{F8f}>KLA`*p}~Q)MYJN?n4rchzR=R$ z7&3*V(OBNL%gMUkHyIkcQi^bS*BZCZJ-RSw#@-nVO<9USzi81#ta5Yy17GLf)wSj2 zMxpOm_L-yF>_K~y4|BK^b93gy*9hmwPK8cVsWev4UtRl`vU%*d6I(=mT*{;`BQ`qS zq+NO)-pL6Dn#cui4Zu&KyR@cOC884~U-dT)!^yznDdVcLC zuO7EDxbrey7PxF#GVW4n=W9*}=ak;-wC)Q<7h0vpcWH4J=Mmf=O(Bm6-0weY!G8cf ChRC@9 literal 0 HcmV?d00001 diff --git a/assets/haunted-tr--.png b/assets/haunted-tr--.png new file mode 100644 index 0000000000000000000000000000000000000000..22a9b6c6d9f6c6318b033cee118474eb56ccc945 GIT binary patch literal 5451 zcmeHLX;c$g77hp~2x{vH*eJ%JPNOE3og^k~Nx+P30xBL{s8m%TKo+VB5^zIWTIsQA z$98E&6gNbtwFeau7r=1?k;R3fMdi3nJ18n6iVWf~FChZXpxvG`{g0eeN#1?m{oZ}w zyZ2TqSz#f8P7a?tP$(29#VlDk_#9=rhS`DliEZ65g<|8778yl`!v?Az*QwNr7?n)b zV^qwjR#7O%#zXU?Qyxxp>}r^%vL80dz3QyErex-cs-4!?vv1u|h;mt3XOFDEJlA@3 ze0O(4^GHTjONDx^cdAZb@^C}7tL*5KrL`BU-=r~%&*tW4yEsqvgWl}XRr#DdJaJ4$ zbonNKY|mD|AC$AeB?fAqtW=y^Yl?doi?t|<80sI26} ztP^kkBv1FG2?^&;{;k(sEN0)c}MQ+c($(ASWNh1W9vzk}5>44Pjvyn-=CzP;$-}mIiv00T z&Hv8CxqG88OCGn&incw@%P4PKrNRreSr(gANPlzGeT@J2yBKYYy^RExTly<7M zQyv<+7yKGvd^qP39qPXo@#Z2Fw3h}fz zqSvQ3c~5WKO*?buF67%hCiQSd*&U*}@L1E6=D8^oXQP|`>Wo|}3wjxPH?LcrmtA&q z^jq7mLypbIE;T;~9b%LkbcLwkAQ7U|Fkn=t#27}69&`-~MeJkL!$<-~Qk7V&S}UPF zKUGGfs!<7TJ};OVte0YO>RD+x7LgVbiKHbULX_s??I1Ra0D%T0VX9G+s3k;33C+wa z0^dz$h(r%Q6RBDfHqy0(hl!$xLxvFuuGW)kotA3igq6BvQbMDF zd8&mR%p!6lFj^Kcjm`7~i9!l6;DY@C0K{f81#~8x&K5%b{lRQ-aId$Pu&4<1gp9Br zVlkMIM)RHrLCRD5)*H}+hy=|U3daatGLB&K6iiEc^k0-9!?8Y1egy@9zek`?OeXpV zolIaRlX>Hbs0sqRGKb!O(LhCTSg()i9AecPz1hQr?vF%~UYtG|Pc&mt1i}(A4cG|* zm|5@Pfq$>VfSWOso0S&HbV#y^MIn>WfQ5moQ4v!p@bc%&xKeq5jKz|31ze`opUr0S zgd73SPtNM+uFw)BtVOVQ?rPxfg$RYPk^|FGj!;GCvQai2=EE?Zg$hwvrGycT1NWl{ z#nqr5;KYF<@#12bQpNP5BWx9*;;EE$Sb%Zpd=?+$vX!uq&rzAFOk#@s!W0r3o5Ad} zgeAhHN{4GCv>>%M+1NJ`sn%c-By19j#pAL#91cs!W(s*;EI}V=9)=Sj)lHl%CWCLD zKoL;@AcR52sWosc2I;l2<_RF4NQz@Hsly|6x)h0H@S^fB=NFh#`a4BB7E(+BNk@xw`j4o?WhLzVFuLVlcQAaE~JIB0AH ziKi-lVN?Hw6Zd4|Ea0odQ~RwSfhF~fdb&@d+AI~7YOZ(@jF?oE&@EP;Y0P^!H!2bO;hJTCv}S=kpmT`^lEG5*tPlEIGSk%7L<&>pMKD(t@e#yN*tjAlb)2D)-5l4m^v>#o50ALS8kQ%|XgzjUZ_lNWxSHGJd zh`GlGZmQrO4fWonE$M2i=-=>VDTCi|1wcKx$S3JLDA%A|pQOMifd{i|P_9o>;FG|E z+4X;u%c1WvAJc*#pa$>|Uprc{1pEPDr<@%qqpYT!qRa?ruk!&Gd;P2h1ck!zFkM#0 zeLg9`IFwWb%ZJ_{ZsTZ29e%z-4ovw9nO~%!3hC0#kF%z+YXtEZ{NH0-hyL0l9RVN(xFP;(8W_P8Q*?3Ntc@|t;mpr$O5w6|c-QUvE>2vQ7akZnmWz?!p z+m$=QF)=ae<5oYL5_RP+mvV>d>g%;W&uX>fp3t+WTM5BlLn>?vUL8$5_iS~z`}M{w&cYJz_PQ9F4abN(xs^Cq=l)VwJ9*LaiTOZW|>4GxBJy&R}$A@QyCe{U8?WYy^ z-z_c2^WThgH)t2-=MO(U_)+{l*V<9_PQPVrViiOve`Z7egmd}ey3;O4X!F{#w_Rwx z6y%dut37V*m^-9lp4I0?E(6v#dl!|~4K0hF?50=S7Z&z*WVC)BX1hLF%G+P^ zYStXzn%MA_>ey^rPV4DwB_n!U<<({3i#YiiM_NxT+Gs`ZJ?UiTh^(IDIku0_$b&u` z)OUbP8Xx&j)YF;2{ip4X!j0KhIU}|xR((B5HvE*EY{lkWVr1prOxMW0ij8^1rOn4x zv#FAMbH3WFo@F$3(oS|uR$LGC%5N@w1$mzYbR%*?2e6l>S z+Pa6^zF`+8*9?A5_gQoB!7rXC=Q^LyEH^mzDmhTF`jUIG*TLw6%TMCdpX@$+CE)qM zx}+Z`)#V?|2-vyuMM&R)WjE)$ZedYF)gy+^$1YbRLoa&NdOf+g?zT(o+b_7ICJMJz z4GAD$vu!K(E_$lD6Ppv=N-oP6tce-u9M<&6dYH#b?u_9(8mb=cy*_subHvtPzV~D> z8BJT4uc9X;7dG~P5&PhN!RDeMFCsFJJY;ZZmLHk+lBavxvut#t-}+@&9ir~pzryV# zyK7I*_%h+;2A9X-_j1Y)43YlO#LGLkVklW&zJNzMdsjToUAEi(KSzZds(jO@j?*4$ z88YTA5Bu$C%Y>4p2g@CH7FA@l)oX}j#~LLomEJFVt%Ty*Zq(dE1jl}8sO=wyZ%Yy; zHRQ3_jj}C|0*k8iTB5gQUw)m`n0B>Bd2vQ~Rrr=Eq(goE*yNP^s~7L7SUur(MMc0g zet28N?mMv?J)ci(+Wp;Ldw(7Gbx+NKq#Fh9>i(el9aW&=$45nq5nRK9QCyC(3>qC6 z2sE0nzd;8h$rweKV@j1)!uY-T7=x}tC5&&qqu5cpU@S=$mQG-C>0{!N^khVYGW`8) zeGOtjpus4ZZqTT;q}U)~n0UqDccU3%&`l63S;80}6+;ik35?EX@mXwUh(VRgW%$|B zeF;<{j+KU*DZom?NTMj67=rYAJxkAH;e-<6h(scY&4svJCO|OBG%W=im|D`+NYTzA z#Yluu=_nPhr5ib6Ii5mE7!0saH1B*XxW<^aaEiJqiTNCp;skPiSrTsB+CWOJEZ z5oGBPcB7&?ytSlRMW82SfOQau#fCJR_dG}{B(*bMmmXw1n7dFcM&c<1f`z1FTFTWj zC`rX)otpdw3IKnPK&MV2Ef1YSVn&lGaW$%dKvt%sTLv91i;C&+G2VkxrO}x@jA%fGws5 zI6dE`=W84fQBh(`0nD06F+v5h3ng%kDROummfHDyA8Zl!8;o2cuAYf)!5O0BJ^x;w}x>Dw(=w_Km3 zz$bybtE*eCPg3BMz}?mLf0N6$^J6}y1%H6*!H0N3s!byJ2Y|IaVziVtk5)|kI<%$C zA6WY8!X}V38q3xA^e}ApPX$IBN){DjQ)Ab=pY?zf1J|AcrXOX}zIb)O5K?RE?Lrp&VwEwr1v)ZhQak=g2!+f}>SrSs>jX*gOCL literal 0 HcmV?d00001 diff --git a/assets/haunted-trb-.png b/assets/haunted-trb-.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ace6ac143c5cab47aa92c8d86bce74d5e31432 GIT binary patch literal 5463 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 M5ij35I%Up(0Hq${@c;k- literal 0 HcmV?d00001 diff --git a/assets/haunted.png b/assets/haunted-trbl.png similarity index 100% rename from assets/haunted.png rename to assets/haunted-trbl.png diff --git a/assets/haunted-tree.png b/assets/haunted-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab216662dd20f877d9b924d2ba2b5b9517b5d14 GIT binary patch literal 5396 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 A_y7O^ literal 0 HcmV?d00001 diff --git a/assets/sand-----.png b/assets/sand-----.png new file mode 100644 index 0000000000000000000000000000000000000000..afb8a7eb3baeeebafccddc3c9f364de90de7f110 GIT binary patch literal 5410 zcmeHLdsGu=77toM5m$Vptacpg+axo|07*!sK!QXKP+&z=w8LZ)hCC*n3?xBYQFIj* zd@K0E9^YNp$GSf8feQEn6t#-h`l?#1pi&=r5ZC=CM8GcEdd~Jgb4~)^{eJg%@Av!e zy+g=~jvU^>vzI52$LpYuP{x3t-rT#bJNW$c$!na)YyBuaZVVfP+aL==>nI}$u?`Cf zk#vVuiV4{ji~7cSg1xKLAl zcuLT#%#pdhr5!2;JnA4=Hh$sUaO~x-OUA1Qws}~otChdp^UfWbQV?9XyF_34?7@s1 zOTRAI6+7^B)cBki7P&A8p7*?0k7a&C3RYbbuYWcnE&hB$@SxMx%r~#AS`}{coH9CM zIcc!e`ps6k2V9vO^pkmuZ>DaAsj~XajuS#kE!#A%w{oh6;e6)vBV zkTc$1q7hHHIqSp{wDX*Ap{?@n>AL!Lf6Yn%^c)#bQ|Re9c@{h8Q<@zVKGpkS``A@4 z%0uJ#qwz&!kxgCh&T6OISuF^-BQ#w;xwBZ}pHq4WlU%sN^X|JF?zyRQM~!ibVg=NB zd*Ya^8w32TQ>y}z!tY}8WP5j9%v?FpFW_1``SIDO%q16F!57kpE^PaE(FrE<+x#0a zw)p$+{QmZ=7nX9a>Yug=2WyYaQw;X-9e?&lSX*@6{I%JFl&5HsPi(1rVR82jCpUgR zXv1PA{H)idp0s}M3CE%`v-x}(jn5f(g_$~e_K>lY+x1%-$1F)1vUJKb|LAQ0@2~C+ z8BykMIy9sExRiZih9A=|?RwcKy=wE%nY)Vb^9_@aU#;CzlVn2f-rf7SxL0Z4@#7y? zMzR+7k|NZnW2Rf%vF`f*|FVj5eOKmvHm2*~FSAqU$2t&q_e7$i+`~4p^y|~Un{`DR&S~Lu^+U4v~7~1 zd!6R|uG-4g`mRr+&nFyLmwj_)%W}5$`t=)q4teBt>~?+r_P%4UWiP+&wM|-QL<-j} ztEhKV)^#fGVcBhn3oR0{_W^OW0VfWSnuIAk{&%~qLR0XunR;CId}gdrz{H7MXQnrJADW=IGV zU;>1%vQudyc$g<7XS6z5j56Fs0agk)nPn|9q0nZt32b5k&FF=wR4NrBBB4mc2ME5^ zVPl7Fq?KSO3ro>vh~vbQ=u}n#!(bnBk%L`AWd}xA0B-H1x3XHH8Z0ny z9sm%E5JbX9M0}A{*xVoNYBY`BW~)m@pr_D|TZE_p5t>YId01IhT2s6hJ*;tH0t;hE zE1k*^q$-UxvwqEkTG<$~Ns~W70pM>DSd6LG=1HeoNzUXvxKXPUf>SwDZyt2GS`*#q z!`*|PGFhA+9J)DDOElsvsf^Ky(Go(^NSeS&tbiGP3lIDo9a=n$liaDaOi2@|9E)11 zfPqDzrL;0cDhUh?P-0=Ka3zYWFbRf)g^EOozf>&o4^g4b+|_0)i<=4ZjXMS012HWw z5@}IB5+DxbV*zL&AIDKKAJYctaIp^2`r~*riYSHx{eT-=%0#Lo0#PX$$WJ1~7$3s` zm6X(J`51|5btEd0B6yOMiW5^760KIiA_3B5i8kV_j%G{>cobz$wKr|VQ6@5$#W|r+ ze+(6i#S*bdjGzHxaT91X$yhw$+XS<$9S5c zjVvJyYoi%M6cd${LK5uzd0GNDGR1(wW@QG!4H9MW)I%^rRr=LQ>isDfv-u<;@7Dp#(f|HPN84gSOkfcj&Q z57PIeTp#87AO$`M{IR+|%Jo4Cd=U6!b^YJu@@)E=Pny9Wpf>O&UQs3~0{;MTPZ~K~ z$(znA;0+Cbel{3b+F2qJtUR8;k9)h>*9WHoqX(1tM|f>?JJ2dgnROG(=$di9{oa+M zQhRLo_I2;NkC$(Yj)75XYUc3Vn|C)qtBkz`LS#jr@)4|&h!?cy`QC||z2tu4ERZ8l Nt%_7`4gGT3e*v~r)h+-4 literal 0 HcmV?d00001 diff --git a/assets/sand----l.png b/assets/sand----l.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa809c704b367409136e62e94b3b40677a09426 GIT binary patch literal 5528 zcmeHLdsGu=7Ecufc_>pz`dUSoEsEeS2lw!3j_ySa{N=0kMTG``%2@&Eh+Ir6RKRG9m?|#4g z`|kaH_ue5{mJm17+ath(Mx%KvVq}TnuaE8JJ_7uneD5(rqq(FPB&Sh{h=pz(;K#R|UpD%Tm|K%h$Zu8vchLa72J%UMV^NODC zLi3f|>D9j!-mBWXYlT~P!8bb}?9o)z4G+P4x3H2nOc736NK|!{4=Y+utPgoZ9=mhl zP7lH8Evn%1;cb;A)3BRoG#OuJE$!Usd7?7(t-^B*w~9F%ww#DLGq?TN*@d3RUBBX- zy8XImQ_=U`-z3PI*S6nqKkCk$^tXIX-$&Gln+swpPSn2|y0Xz*iTV}qzx!8T_o^Ds z*=0SkT`P>;zAAsOn+vN5Ts#4`B5_3}dX3x+Sa@7Ke>lQnXl> z6CAqTFXes!oO`;vbwz5=f;(tg!=hpr@98BzQ63^<&6h35eb89W)C#}%)(3sESi$*x z4Nu(UUfCk94ZL1EvG7DyX~aLrlu=iQJscM@yKv-`b;(5D+R%0H-{-Fn&~4j4t9Z>u z*if@%!h5;XbiZ>c_7v8PJeCX$zMEEf5;luF?Mmid2=z3 z-BohL>gV;=cSe&YaM`}27urt+mCCC|eN{e+nC4x7%Q+$z`E^u@adJcy81fT(sxG-f86FB^ypfPDfeXB zm`CUD&V3M1+}m*_Dz2tUoBYv;% z$43i>Oqw!QjN%3sqQ+Gi%W5!zAw;7|BCI9^)nOD}g=K4vQbtepVFq2RmNHWLO19Dz zh2>~t3J5HzATAj#(4itVBVxLT#3}{^28=@JR)gM1img(HomULr+sqJyZii4hDI-mp zK##%+j1IG47Mm%zYRz26bPu|OP;11AvS$@&_mY{3!yHK96(`I*-I`CVS#~wFUxN*+X|e zbf!X?FyLdmhit9EWcRS4osnvE0B6c0^mdFIg)lv40GW`0ne!AL_zyS?nT(y>uC!Q& zqj@$Kg-pr-7M5D87PCdd@EHOb93_vIaX4~V2(zPRaJg*0h$rMn$~jK%3L{A&MihJE zt_ALba0C^Fi%@1bU&Up@Y!1v+3D{~TrU4bE<_mZ{fxw9(p3s7RK=eaJ!qf1Ch>#C6 zMFNb^gi*jE4Ckwv8W`qbh=$J*2*T}DHZjGK2?{BL%VG~&67&eA!3l$u5vw)kSqC?g zwFWGSLTo~D_%MgZ9| z#8Cu>P&ko{<9aE>782d&Y40Dp#L*ezSR6%c9b^Y%YFl$T+G_@q4cV6x=y~A(VM@xu zEyh2_GYB1Ei6kfsPUzx^cvUWjQqSiZ3OvA+2nHKT5&4SWN$S6FlKx7J0lqkq?{t0= zHm`rxKYjFCyHs?#z2n6QYEx0lAQ3aBwqF6zv40EAL5$fL7_E-Bcw*NMQLQjnEfR%; zp{GK)FcXG_0;Y%!3z=Lt8m<<=Dolg*7t{bdiEAheLST{Epl`rEgSNHbGd zd@wU|sCbL}QD8qL`7ypBK6_r2o2{9)2L^ej9kGf@d@|@Q`+ttF5E|#2-f+ z{D~(3>X(PSkiIYFdMVcnDeywzm(}%Bt`}0^g}^VX>;EQ~$Kc0&%n1GgwSW)tla_3n z0KNbip?YVgj8;OcriDfKeis2OBTX^sB#p)jw7p)jejZ^4MmI{Kl)H6$x_FHZ3%ii? zCNOPL$Rd-4jcDKF#}UJ)EWCECK4{#lVSTs!${&_o^}j5wc1bneJ5%8G+L@+dvwmgs z*~NaJTx=U1zOZzUX%nMR|tf2f>tzMP3 nieJ8ZP5O8I@{czJH+@UHpBcB2Szvhw#7k4i<77K#WG(&=sbvHr literal 0 HcmV?d00001 diff --git a/assets/sand---b-.png b/assets/sand---b-.png new file mode 100644 index 0000000000000000000000000000000000000000..6f710bf4a14724760eae9ad39d00f808307a5ae7 GIT binary patch literal 5412 zcmeHLc~}$I7LOY!OT}UlQ6vVJVoheUFD9TsfQSJLxUZAU4U8n2I5Qyu^@$?Z1r?uG zt#zwfx2lL*7qCTI>w>7*y5qi8ThT}T1Vnhgn-BrtLtDS^^*{4{ljNTJJHLC+@1Aoe zlet6VqP;x=JXkE2w8uJ&&5J?QC6jKykGpOG|@Nx*Du3q=|TBVaS>7QhB} z!oXtLuk09}n(=!-ue!Wpt9r9%*!#Obt@*w%tFTTu@pd0#zb+Wbs=DkOOO}hFS0A3D7F z{_H}ZzJBYjU7mcebalDWv&+&48#MzzNyx0(rS8^C^Toyklj-FXm+WZEJL0#?fGykL zw(-`8F{uf%-xLTk>sjBW$9ySw7@&1LbHP5~v8 z&M)4U;T<3*sxA!3yZ++lu^yjidGk{K)pM4A!tt|FUBtEix}1>vy-w&nf4Q5uu5;pG zc`y<6Am?n?9&&Q`8C&PzIWS}ziDMRY0TDx zn@;U7)5UUaDLcv^7o^>YSfqM3b=SU;)9?jrS4=q*fLw6Xn`^T>UYPj7Ex(z^($;4Q z(LM`{?fzZ^%LFpv;?+xvuih-}RlI&^t5jL*fpPbW{r#B*>H$Glr=iu$qzSgU(&zK! z0q5%7XwjB2rPJ9to!?vg?d8A zupg3suSTzno|nu&J*?H1P1DMCp2%mpt3D1fPg(k4bltYlg0YKmuz7pP!Ly3MWBUZx z6v?Bc^DBl|RrX%Dcergzs$ajs!tClvDHrBG zOUnmEBa*aNdTu09rFT~qR<-llSEu<~`aO|osTVQHnRPjLlCM7a$P!k(;56&G-?8kV zab;J7UVkz>$iR!Y~#Eg4k>}o=wOjsbqvN zm&*}UfCvO!h~U!cW(Ko!&2+GXqJbk4(0YonFa&94J2){NX=PL#4xDGZ$l%l8`0=i43LY){D8@K|4M9LKb_=XAee6B<&5@0$RkfTDp8AUurzN! z(wnWH2qrg-8oG~>a7x8yJ1bs+=^ZMnI5d_98uAJ1*f6C}!OY13wpLeJys{H5WGi1T z!C|7xxdvRS=Zd6!As3Utjs`PEL-O}vp;qw zS;*^XTMB@i`~;ONP?Xbfylf@n=$@~_Q##s%R;y?(fJ>7|KoKyyD2g;WV|O+x1^(um z6}+`(p**m2DO!@jRrCBe`nxjI(bg0iN9HG5EfymIsMindRRX^Or);vjisjGTo5LEs zBS=d+>=`Lcyv_X996$|C?MMO^^A&41a*y;6wbd zc16$N9{_H;*yu>sELI__e^gaj7_@Y-#Eha@EMBnVYGwaAEDajn8I4x$e%rIH*N1`A zS|_%GrW{S=pd{Hzecj8KVQmDm{QM5XSl%ORF7i1~yDs*I6$h z&BxPC)Bk3hSwGCoc*vU2SvNl_hso@oS+mM3Hpc#4=BcQ$vp)=UJCG2}I&gASo-Cxp RdAKi@MjaQqGkoIA{{V&w!x{hp literal 0 HcmV?d00001 diff --git a/assets/sand---bl.png b/assets/sand---bl.png new file mode 100644 index 0000000000000000000000000000000000000000..770fd5af222a9cfa37a5ca78594aecb998801770 GIT binary patch literal 5504 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 Q2D>Fm#J-}vp5Y0<1HWYsJOBUy literal 0 HcmV?d00001 diff --git a/assets/sand--r--.png b/assets/sand--r--.png new file mode 100644 index 0000000000000000000000000000000000000000..223ccadb5d801e483b81c40c6469c36df0efb42c GIT binary patch literal 5522 zcmeHLdsq`!7LQdxK@`MR@R^O)VlkP?lO!ZYOoB!UZv|_$3^S83kYvJSAc1v#Kp@ zch5OPSQZsA)!TEpCxgN8)=X2yfKMO$tG_#VA9KGGVKDl|XT>GZF^H9Erbr!Oz?pQW z8E4`)LdRg(u9U_TYwiaQ?AQ}~+SiAHJ{9BJ{fU*@bK|DS9ZmJy?0F+LwrWGLCn4(&!7d7jiXBaGTt;+W-iHI)i9{_-TM9eidt^? zhkZD^GOy!-l05DMUHWmJ@{aKgXST<-k^j|PE#}QJpI$_5X^N7WLL1HwiGHOxp*F#7 zL%?>QsTU_#?z?_!S;&Fe!#LCGZx_o`O1*r>>`$!9KNud<68O!h9^R{KSBTtp1+4pV zh1c1%=8=2MwI^0L?FcyRFQ4amh`%5^?!*u&v_8oaDXR2bHE@Fs^MqcxTJ;O@l6qO3v=Ox2yuZ>5Q=M;}2{0x$k>;z(=;< zFQ8~K*BFr7ewfj()IusAjvjb7@WIx(l{R1OzT9+7%$zS*j89ZQaDi?6yB zbR#+H;T!9=hF;aRu09aF>nlM`pl*m@R#R=<2l;v45gLyUMDcTVap#Celo>mHxOZ~- zKeN8N8rQsLZLIdf_68`Yera0;f9ZzOBIW(Hz7zg){Z)gP0=YL~+=S*?6gzKEEjpcS zzctSA-s@o@DM8I67q2&Ye_39*@6o_B=H}cVsw2|c(groOwB$#&nan3sKUul?tpg(u zP1Tj(Ka%~E&xex+bu7po3*sjQO_b_9+`oA6b8JUsG%N*+bRC{6zc9+k}fU!_$I7Iw#)ST3pzas;)0&mPiy8~Q>uM*U#!j=tVLuf5PMYsTl|z6Q6|W9i_mfKX)8sx0M-@wxFtlenzxn8Kh~x}lZ(?eBa?8B&1eQAh{2F4Y-R*a#c5^|t|v@#)}6{47L&l_tazao)|!=g zGBGWS!eg@{;?S&ARD!V-lRRZMDIhT7G{UqQ4JM1!CTBT#rQmnF8DcRV5IR-PO3+3z zl_Z5T1snkfW~*&P29Gt#lPRMxois)j=Ar;AIV+i_%~A-mTCE%_pF>i5h%1puAeaa7 zcx-@RTQW^FVq=>uW9<}94i#=eDZ)$>q={+gM3TsKTFzpDeWr^X?4oKLFuD$~uO0Lj z8iO=oAprRR0K|h~F&pNwc@n6nKiJi3ySz;nmx@47$cC69E(eB;#%DY%v^t~vyk0#l zabVIzF}Q_Hr%+s-ft%>DJrA|eF?hEoe}DqOpCK?C(k(rMPPgE8lOu5hrh`CMj?jA^ zI#r{M>hiJQgPt&&9UgXcPb7wR;mqlj!GXb02shwHkckB_bDzNj|1O7KlW~wcl$NSU zG~LdkQOQ}r!odhk3QNSnQ$#9(QXQt^a@7K{09H=n@nE5ZFBXQXxjo!9CJT+2Q2ePo z0o+A6Um!wsI<^i8=CTF+U_M(Sfcb0$MtFQ30*hb~)`KFFB0xVNhTbBsC z5k@?gM(jdyg#s?0&zA@Uf?$b&C+Y^x!YK;W+Co{s)u%3Pfx4JT2=-a!s9j@g^b)m~E&J>*!*pyz@AhbcCh zw3_}HPdBuSC6uDAB$XOTMJA=-DE)k%-oRZXX8Aq$o-n7kk~C+6 znUPFKT20SAz89dAA)G*QlZAX<=sh9M>+13F12H>o;Gqhh(NNbz+EuRhj{XyWTy5|t zo&cy{9`Zu^zLe{wTrZ@+3xQu&*GsuxNP!muzpSqRn_QmVU-NMj_yg1mzQlhS?UN7w z0pOlAW2%brE~An$F|6&J0$2u^r_Hu77@V>8S0CGUMFuc>&>F4UV;Byg%|atb%bl@qND`=_`3N bd43fj`f9_FEho_$5GzBYj!^BMl9>GqZTkMj literal 0 HcmV?d00001 diff --git a/assets/sand--r-l.png b/assets/sand--r-l.png new file mode 100644 index 0000000000000000000000000000000000000000..339809edffb59edc61268a4e2a6d91159c69c6c0 GIT binary patch literal 5415 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 literal 0 HcmV?d00001 diff --git a/assets/sand-t---.png b/assets/sand-t---.png new file mode 100644 index 0000000000000000000000000000000000000000..89afec825022187328316177397e6c8079d8b0fe GIT binary patch literal 5445 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 literal 0 HcmV?d00001 diff --git a/assets/sand-t-b-.png b/assets/sand-t-b-.png new file mode 100644 index 0000000000000000000000000000000000000000..675f90301a4c16dc3cf20c6a50da2ff78e700229 GIT binary patch literal 5466 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 Z7~1I(>~Yay=Q)rwB=cJ&Et(&f`5#Qs+v@-T literal 0 HcmV?d00001 diff --git a/assets/sand-t-bl.png b/assets/sand-t-bl.png new file mode 100644 index 0000000000000000000000000000000000000000..93547a1430fd5a1cb09f27516f7201081c5e9667 GIT binary patch literal 5434 zcmeHLc~leU77rB!0b4|ih*(2#tD0mo*<(}y2-t_Vp7Z)2oD;}*zu*0R_x`?n z?~r^E6E&v0yPrFY#p=4U>K z8@CZU7Ry#&JYjO#wV|F(=ZEULMX*0QwtvP(ovZap&5XMP77adfq+gsM!OiJXu3PcT z=j20=#am|nEK;rABehMT)Ue-a!^sH;jC=l*RoC}}6otZh(879hZTjjLeNrmByOH&I zV@Aw_uT}L~uz26K(%CmIuSuWTwXCczH9cv8^s`&uYv0+S8|%pINs>)vi$9d)&hvPFFPc46mt9E4zUD z$+woDY&sR7owF~7G%9RF&e9l8dBVN~ zmjaJ}1VjxVy}R_<(G`753VBnus0MFxKFe`gV4b`zc>^t)coC^#C%>&9a#U5Mz zldlR)eh)rel)npB&g+pQXxMOS`ELc3b5ilxyt=9`!@e6^@oi~N^^}YQ9&^nF`M393 zdsWor?g~6NC%7Lp#sC%I9;HLBY{Oko`lM&qn92+H|FfEv=|&Ip>0%inSyNo5@2PrE zXwLa*FnayHI{u8z@!!B=Gg|B_ANTa4Z%H zKYqC}t-GI?czkX|$>nE1&02JHf7jlkMz0XhkAF@qTX-leY$*3;-?R~TBSFp{T_Zhy{e!o zSAP5KbB`PA9*+nwwy&<@=rw%TIBZoz`TlQjmxt__dZFFubF&k_O&Sg7=MqcGf%F# zar@l3U`$!wb*^>ojQL&2h0^WYFZd>gaDqZ&rR%1gNnLjQl0N*C`pg5fV>O4dk8^7cc3Vm9#XsXGk`gTmH$Yw3X6L z{$53EZzj9$-qzh8%Mlil^t7r<@4l7eFJy5FOU_yYBu`bwwF`1SihmRp$xnJ3VJxVf z_Qmm2TkBtJE}XcuX!7yiNwa(|e0BKdrr{~$YR=c)Eh@<+4T4kCs%~Apwe~k(OJd=`T$onoQ!Nl+)z?4YPL@H2|k%wR=EzYwU z&0vbKSjtg0GlC}L3|ouq2{MRtfA?Mvo4|rN6U7=xV-Cd=iHI}`k4uY+N7Ir~ImQ_^ z(p_m&00JY5mrf-a#KtA*Ks!Y< zhYF`riZC;TiDcV35v|F>1aUZEpWQ+ZcF`~!Ft!|EUpwe&2IH&2LIm;w06q*sGA;yj zVL89OKiJi1TD?iSMMa<|--ej^0v^OS8ej9EnXr_$^E&jPzd!-tuMwCH7P@`V78or~jDy^vv_fSvId#D%mNhNG}V z3k!7)D!Z79;23of2j)R-mKX!V=uDI`h!aVW7F*j!JYmG+7{o4=Kr9jng+du5mPmv$ zSl$MjfKxOmbvvg3;z=AE7^(;dgb1iO!ieZ`zM0fJHh_4FPzpyF6BTbV8G<x3beF9b-i(JXjC<2HZ1fTgN@Khd7GtG>)>rF}eTG>Y~Dv}mHjDFS2{PMM63+#Q2TfxWqB;kWiIkOxdIMTasp_q^bZ{wc}o?cwyo)aIK=BZV|@v>v+rzy!VGrD@S zTo*$JPQ=~mGrZ}JZy#S@-+bR8&ck;O7@1*n(LZosa8;DqEpL$4Dch;hFz2)W(=Ws8 z3tZq;wY3lXm-JpB@Jwc>zxXwKK#5n5OUV3EFG>+mvSii!3!);b=DVD}#me*d;Jx(j p>oXwBDJ?|Hkv?^+$gExF#;Rx()7?gVl>q``sl%dFn?q*I`7grt(R2U+ literal 0 HcmV?d00001 diff --git a/assets/sand-tr--.png b/assets/sand-tr--.png new file mode 100644 index 0000000000000000000000000000000000000000..613ef20b9b6a6e191dc2a8b986dd8e86323a3510 GIT binary patch literal 5507 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 VTg%Sn`hd+)qUEu&@4`~E{sZ&|oe}^5 literal 0 HcmV?d00001 diff --git a/assets/sand-trb-.png b/assets/sand-trb-.png new file mode 100644 index 0000000000000000000000000000000000000000..8294ea7e1efd9b002f982dc3159d9d3aa3f07a76 GIT binary patch literal 5429 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 : Naka::Map, x : Int32, y : Int32, z : Int32, tile : Naka::Map::Tile, object : Naka::Map::Object, draw_x : Int32, draw_y : Int32, zoom : Float64){ - window.draw texture, draw_x, draw_y, scale_x: zoom, scale_y: zoom + window.draw texture, draw_x, (draw_y + (16 - texture_height) * zoom).to_i, scale_x: zoom, scale_y: zoom nil } end def bordered_tile_drawer(window : Naka::Window, base_tile_path : String) - # FIXME: Both excessive, insufficient, and broken. - mod = [ "trbl", "-rbl", @@ -119,27 +95,42 @@ dirt = Naka::Map::ObjectReference.new( ) sand = Naka::Map::ObjectReference.new( name: "Sand", - walkable: true + walkable: true, + drawer: bordered_tile_drawer window, "assets/sand{}.png" ) water = Naka::Map::ObjectReference.new( - name: "Water" + name: "Water", + drawer: simple_tile_drawer window, "assets/water.png" ) flowers = Naka::Map::ObjectReference.new( name: "Flowers", - walkable: true + walkable: true, + drawer: simple_tile_drawer window, "assets/flowers.png" ) haunted = Naka::Map::ObjectReference.new( name: "Haunted", - walkable: true + walkable: true, + drawer: bordered_tile_drawer window, "assets/haunted{}.png" +) +haunted_tree = Naka::Map::ObjectReference.new( + name: "Tree (Haunted)", + drawer: simple_tile_drawer window, "assets/haunted-tree.png" +) +tree_cut = Naka::Map::ObjectReference.new( + name: "Tree (Cut)", + drawer: simple_tile_drawer window, "assets/tree-cut.png" ) tree = Naka::Map::ObjectReference.new( - name: "Tree" + name: "Tree", + drawer: simple_tile_drawer window, "assets/tree.png" ) pine = Naka::Map::ObjectReference.new( - name: "Pine Tree" + name: "Pine Tree", + drawer: simple_tile_drawer window, "assets/tree_pine.png" ) rocks = Naka::Map::ObjectReference.new( - name: "Rocks" + name: "Rocks", + drawer: simple_tile_drawer window, "assets/rocks.png" ) altitude_noise = Naka::Noise2D.new.tap do |a| @@ -178,18 +169,24 @@ map = Naka::Map.new stone, "map-test-01" do |tile, x, y| tile << Naka::Map::Object.new stone end - if altitude < 0.25 - if altitude > 0.175 - if humidity < 0.33 - tile << Naka::Map::Object.new sand - else - tile << Naka::Map::Object.new dirt - end + if altitude < 0.75 + if altitude < 0.175 + next end - elsif altitude < 0.75 + + tile << Naka::Map::Object.new sand + + if humidity < 0.225 + next + end + tile << Naka::Map::Object.new dirt - if evil > 0.5 + if altitude < 0.275 + next + end + + if evil > 0.4 tile << Naka::Map::Object.new haunted else tile << Naka::Map::Object.new grass @@ -197,7 +194,9 @@ map = Naka::Map.new stone, "map-test-01" do |tile, x, y| if altitude > 0.35 && altitude < 0.65 if humidity > 0.4 - if humidity > 0.8 + if evil > 0.4 + tile << Naka::Map::Object.new haunted_tree + elsif humidity > 0.8 tile << Naka::Map::Object.new tree elsif humidity < 0.6 tile << Naka::Map::Object.new pine @@ -228,51 +227,24 @@ Naka::Event.loop window do |event| when Naka::Event::Quit next Naka::Event::Quit when Naka::Event::Update + p "FPS: #{(1000f64 / event.dt)}" when Naka::Event::Draw zoom_level = 4.0 - 128.times do |x| - 128.times do |y| + 64.times do |x| + 32.times do |y| tile = map.get x, y # FIXME: # - Please don’t draw more than one layer of ground… # - Transitions. (eg. between dirt and grass) tile.each_with_index do |object, z| - image = case object.reference.name.downcase - when "tree" - images.tree - when "pine tree" - images.pine - when "flowers" - images.flowers - when "water" - images.water - when "haunted" - images.haunted - when "sand" - images.sand - when "rocks" - images.rocks - else - images.stone - end - draw_x = (x * 16 * zoom_level).to_i - draw_y = (y * 16 * zoom_level - (image.height - 16) * zoom_level).to_i + draw_y = (y * 16 * zoom_level).to_i drawer = object.reference.drawer - if drawer.nil? - window.draw( - image, - x: draw_x, - y: draw_y, - scale_x: zoom_level, - scale_y: zoom_level - ) - next - end + next if drawer.nil? # FIXME: Maybe print a warning. drawer.call map, x, y, z, tile, object, draw_x, draw_y, zoom_level end