From 1184f125ad967cdd97ba8956854cf38b80ec0805 Mon Sep 17 00:00:00 2001 From: whosit Date: Sun, 23 May 2021 01:18:24 +0300 Subject: [PATCH] use texture rotation to increase angular res and use less textures --- init.lua | 14 ++++++++++---- make_compass_textures.sh | 4 ++-- textures/arrow_000.png | Bin 1005 -> 1005 bytes textures/arrow_010.png | Bin 0 -> 1633 bytes textures/arrow_020.png | Bin 0 -> 1648 bytes textures/arrow_030.png | Bin 0 -> 1512 bytes textures/arrow_040.png | Bin 0 -> 1635 bytes textures/arrow_045.png | Bin 1418 -> 0 bytes textures/arrow_050.png | Bin 0 -> 1648 bytes textures/arrow_060.png | Bin 0 -> 1493 bytes textures/arrow_070.png | Bin 0 -> 1610 bytes textures/arrow_080.png | Bin 0 -> 1616 bytes textures/arrow_090.png | Bin 907 -> 0 bytes textures/arrow_135.png | Bin 1419 -> 0 bytes textures/arrow_180.png | Bin 1026 -> 0 bytes textures/arrow_225.png | Bin 1411 -> 0 bytes textures/arrow_270.png | Bin 922 -> 0 bytes textures/arrow_315.png | Bin 1412 -> 0 bytes 18 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 textures/arrow_010.png create mode 100644 textures/arrow_020.png create mode 100644 textures/arrow_030.png create mode 100644 textures/arrow_040.png delete mode 100644 textures/arrow_045.png create mode 100644 textures/arrow_050.png create mode 100644 textures/arrow_060.png create mode 100644 textures/arrow_070.png create mode 100644 textures/arrow_080.png delete mode 100644 textures/arrow_090.png delete mode 100644 textures/arrow_135.png delete mode 100644 textures/arrow_180.png delete mode 100644 textures/arrow_225.png delete mode 100644 textures/arrow_270.png delete mode 100644 textures/arrow_315.png diff --git a/init.lua b/init.lua index 8af3aad..4566821 100644 --- a/init.lua +++ b/init.lua @@ -87,22 +87,28 @@ local function show_hud_waypoint(player, point_pos, name, icon_name) local size_x = 9 local size_y = 16 - local angle_steps = 8 -- number pre-rotated textures + local angle_steps = 9 -- number pre-rotated textures -- vector pointing towards point_pos local v = vector.subtract(point_pos, player:get_pos()) -- angle relative to player position local angle = math.atan2(v.x, v.z) -- snap/round to increments and convert to degrees - local angle_snap = round(angle/(2*math.pi) * angle_steps) * (360 / angle_steps) % 360 + local angle_quad = math.floor(angle/(2*math.pi) * 4) * (360 / 4) % 360 + local angle_quad_map = {[0] = "I", [90] = "R270", [180] = "R180", [270] = "R90"} + local angle_snap = round(angle/(2*math.pi) * angle_steps * 4) * (360 / (angle_steps * 4)) % 360 + local angle_quad_step = (angle_snap - angle_quad) % 90 - local arrow_texture = ("arrow_%03d.png"):format(angle_snap) + local arrow_texture = ("arrow_%03d.png"):format(angle_quad_step) + + -- TODO it's possible to color the texture: use it to make waypoints have different colors + --local arrow_texture = arrow_texture .. "^[multiply:#11FFFF" local hud_id3 = player:hud_add({ hud_elem_type = "compass", size = {x=-size_x,y=-size_y}, --scale = {x=0.5,y=0.5}, -- unused - text = arrow_texture, + text = arrow_texture .. "^[transform" .. angle_quad_map[angle_quad], --alignment = {x=1,y=1}, -- top-left? alignment = {x=100/size_x,y=100/size_y*0.7}, -- above cursor --offset = {x=0,y=0}, -- in pixels? diff --git a/make_compass_textures.sh b/make_compass_textures.sh index 63bc904..e9c2d32 100644 --- a/make_compass_textures.sh +++ b/make_compass_textures.sh @@ -1,9 +1,9 @@ input="compass_arrow.svg" size=64 -angles=8 +angles=9 for rot in `seq 0 $((angles - 1))`; do #inkscape -w ${size} -h ${size} compass_arrow.svg -o "$out" - angle=$((360 / angles * rot)) + angle=$((90 / angles * rot)) out="textures/arrow_"$(printf "%03d" $angle)".png" convert -density 384 -background none -distort SRT $angle -gravity center -resize ${size}x${size} "$input" "$out" done diff --git a/textures/arrow_000.png b/textures/arrow_000.png index 1d6630874c85b88a53d8f9a2eb8183be41d4a951..e17338de97a5bdec79baed226b8e9bd71c874fac 100644 GIT binary patch delta 66 zcmaFM{+4~iYesf4c1adLxAe`Q7~2_zjEt-d%&m+}wG9lc3=CKUD>5f{Gs~k1m+&08 JI(ZMXApn1f61V^W delta 66 zcmaFM{+4~iYesf{8JTlWANFqk#MsU#WN2z-WC29l1_o9J24_CsNSoZvERQC@2I(Eq4^y32?GHYlyv_5OBW6Rh*Z7QIgsJ z*B7N+UZMt^366gaC|DG5L5@cus|q%}YX=)=hohJR;<&Wbf*V`egv6MWd=y*9&& zi;cNARR7P+&?9AzLfmYIvI2Koz0TLV$_sI|1?v8r8TzQ*TT_D9SWe(-qsQxBKL<5Y zMn;BaKka`rLjKPP{WLkyPhUz)lJ9bZ`_E~?$<~T>K3czKg#4Qw_H%m3vo4=ky?*~@ zg;scIsEP4hYx4LuCFn+z$BI;o97h#11tCXuvF&-bzov)uhZ!(4GWzIA_J!$3n98b& z^C$>&O$;~qFfri&obW}7W=YnHw_81T7TED|usEuVHu`Fd@dEwI*!oYI7Z`bEB|(0{ z3~WqXL1Mbw6y@W4m;PAAEq{K8VD9$|631_8WxX(! z+yBu!<7=GwpQ8BB?V|hUvPZ7ldNll^lJMHc+M#b>^98<1UHz}xZ354t#m}B>d$(I) z-nFItyqR~TCaG{*{k$z?cJ;mG8eN4yZ-FjgO!9VjVd!9$^#F1>3p^r=85pJknbQ~; z=RcnK0LWr5@$_|Nf66K*#xBX?=avrC^W4+LF(l$}a)Jb_3!|IbsV~NxHw2|INL#bJ z{<7S;qf(=oL0{fp^%pBkYm2Lfp+m?TpO_{gb`P(q+@8S+4LuRAsZ-a;-2CE=9HC})%@l!O!S*q$Gv#w=4HNfEUNpKidM2k+&(kcJon#` zPHwSVla}5;SNCkuQDJqzocK*w4o;L|o|7|8m;F~l-S4ic=boszT2EgUy1J2X#{JD{ zYgfxkvhDb|HkzNS@u#h{*{+WA(U32+ar-Hc8?M+v2x0f*2{N0xOekQ+B!lS;q z|CWenF~;pKdp~nW`THZC)#~qV=L>smVpMZv=WB9ec+%wDeze)M%)#Tu#Ko8UWbF$- zT{+U(?a$phG0UOi!pzOj&&BVkc=>7SYT@OvyX72{7K%x3{c!AT^!DGnxl7*N*<1eq z;F%1e$w?JHk@YK_a^{$LyZkxT-Y;kG>7nAeKPYIXZ&BAgM=fFJs4BOgm($O0HTE=W zIIiujV$FVN+UefYtE(saM+NCzc;xa()BVHLqhgc9*fQ*l^tJewA7NlyHYq5+izgxB zM98uW4S@z+ZU;3aSe1b#_4kAG4zz8qo(W6^swJ)wB`Jv|saDBFsX&Us$iT=@*T7WQ z$SB0f$jZRn%E(mPz`)ADfHklp6GcOAeoAIqC2kERJO{12D?NY%?PN}v7CMhd8i!PC{xWt~$(6981=?fn1% literal 0 HcmV?d00001 diff --git a/textures/arrow_020.png b/textures/arrow_020.png new file mode 100644 index 0000000000000000000000000000000000000000..c0035389f62d4d55bc7e85f4cc15ab2f435186d9 GIT binary patch literal 1648 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 Mr>mdKI;Vst0Q$1|C;$Ke literal 0 HcmV?d00001 diff --git a/textures/arrow_045.png b/textures/arrow_045.png deleted file mode 100644 index f334c7f04bc9478eb3f7ee3a5c6106786d03ae65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|OIRfKP}kPyrPIBZ+1) zVbj2fO^`%`u_#A2l^83e1vvRRS;ctSlWi3HLiM@XnSJ%7w&vPA>-A$}X0lTinU`St zy3haroG@K!{_bGCM;+dOXNLZt9VRElRqmm2rNRBrjFA7cLjTVU{Wmj|hn-o3hb_fM z@kp8D&*{PcXM{ZL@U~SI;pJfQ)sx(uWAk}((Ek~se`kcSvoP7Hh%8Jrdj&LnRv0jd zx8D-3d>kyBvaKJqdl$N>{hl6Tsv!8J)2Gy3{a~4+qA<6P6u+0QBrtG# z)+@dO23u@NkY6wZqpGxQ{sMuh{qH$FR(+IVHJ$PD-v?&3mfL?<7M%V4LMUS2x9MDN zYt5(q`@_Pd(R}xhWZrqfn7!Xuvzg6&rrvbtxx3tjpMQf6eP;LVKJm}1_xL}bM^c{0 zI-efx3RK+?=mWHfG0EHAg`tC0)&t1lEbxddW?+~GWKLsXod0;@10ajN#M9T6{VA&$ zzl_Yerw@C9dTx2TIEF+VPEL?uU7R2?fn8$e49!dD51l&Z(pXl;=cgCuwrOke=MSHb z7JZt$I@Te;BSIx?O0&<~q(?%Nf(k!wy!7VD%k*gzr+Rz%bWMJ)=)JpX(WIgxudJv= z9bD#;w?eO8*?Gy>X!E9EVHMVs9M-(Pm22nR+4HAqjYux1Y|z%%uU<+^h>3|#pE7M~ zdf17s$*b<4xZ$#H)2dy|wyfE3Ud&6)O};(%a`1KTOMEV-u6JK?9m!7LvblW1tJm`lHi|5f zg2o|D?`Yig3F>*#8~^fc#J^|ohrmbkv@DeFGIcW7jL%(M!af? zYeY#(Vo9o1a#1RfVlXl=GSoFN)ip8-F*LO@vH&7&0|P4qgEOCRq@ifY%}>cptHiBg z@4AFrKn;>08-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSV(@hJb6Mw<&;$Ub CK*V?e diff --git a/textures/arrow_050.png b/textures/arrow_050.png new file mode 100644 index 0000000000000000000000000000000000000000..d087d05085511d313e454a799c51164783c34b4d GIT binary patch literal 1648 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|V2M0G|+7paR+f4pt_D zhBKn7U}i!SK$Rw%hszWeRP%Y+S#TN2%8bhlTso*D&c((Ibd{sJSdF))wj`f0H(P*# z^omrA2OT~w0Xo1Sl@;VlvsKzzVE2Av!2da6dy4Gkgn*iubfx*Ly);i&I)9%U{BKt1 z|Jh-WJAGU=#cfqZdPDVZG<*D-5%M1>J~Q;kwBR})Eg^0;e*>vSNoLQweE-Z0{XZjQ zd!DVd0B53=!nQoy_Y(sC&j@|c?yV)sSL&vIqSE>6l%W5!!hTE*uJY6X29Ax2NKdH# z^(K#B(?d4r*hunom@5ix&9(VHE%;ummz}DJsu)kUgYt)o0pF$s0fSwPmp#}>dP$1; z({A5?Geg&BT8Z*Sz9XH{Stm>glaD$P=qhdtR^(M&hbDFhX z`FU7b(Ea|aAgRa=FaQ1SVpqvO^y%MzrIw5Tp8FYZ`QBQv@852D@fA`z(6#Mq_gx{Kch>bd9X;usQfI5|Orb#a0Sk4!?!A`fe0 zZf$ASTQ@B&cJ8P=aqZmcL+H9u|f_C9&y)XD8zwKOIzjrELl z4PCo;@n-K>=T4rtv(`j0-MVYLxAw1aNr~rmy+zB{Cm0l7dZHP;+}GSh$?{2$ug}@E zGjmL<&)uo~EWToP^n_)14_!KSYgz8YMMu4-=|yj=Im#1lJ!#8r>kP|P>tnW7oxQd6 z^fle+U3JZqjX8Ho#>U*eW4kQ>&X!8OfZx+fy|!M{e9W15_mjF{h+zk(A3*RFN%lbgLuWL53mOOMsB zEb9E;usy_QP5qsd!I%BsM{#{TF!OEtV_}a@hGi~`ml*UHKi7}h!}9IGQ|*(QOJ1-u zZo9IjWb3xo*Qc$E-u~qm?`)pTAYKMH*R*L4-_KUQo_2Rvt-H?blD`fK6N|sSyOiqv z{_gp+%HHTjw|0B zJslqSR5V5UK!E0tUpb*lKYvO7SQVX}rFr3ez;roL=Q>*^mao5fd#Aiee~_8A%)_49 znOnJ)t*0r_fXnUR2}TCy!z5@$GB7aNne+ukLvDUbW?Cg~4X#gafzq5L$cEtjw370~qEv?R@^Zb* fyzJuS#DY}4{G#;P?`))iiWody{an^LB{Ts5PEYZ0 literal 0 HcmV?d00001 diff --git a/textures/arrow_060.png b/textures/arrow_060.png new file mode 100644 index 0000000000000000000000000000000000000000..68def4eacf45b113421cfec346f52db90d77a9b5 GIT binary patch literal 1493 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|QfHfKP}kPysywI|~z$ z)^W0eyonVsF=7=S06{ipCTRgq0WMZ4ehzD8;T%VmIq{~GBMcQqxPd;E;N!4S5y`Mu zo)c$ss>kKdn}p(m?cER}>M`8npsnH;Zle%a&qb9%`CS)u=Dhn=o=VP$5tQWnm% zS3Xhc{HoXQ=d|E|v%>xZ(ag|`b#9L8qS+2Avto@;RyzNm5pt!$-9=L@%1rK1xzo#D zzhBcs{sGOI5qiDJ!%a(ER*GL!~}VYQd$ zgLdzS9p2$4vMfxD{svM{I(?X#7%$bkJ?Zj|w^R`4Wq;n|mu{;h$i=$9*x_}bf0lzX zF9*xEJlp?s!ru1#=R2u#u`#d9vidM7u-H|NgOzDQxIwMACN~>1Gb5v}6u$r`>&DNV zzy!*WSrX(I%)rFPt>j+pz@^|(w({zWsgjI}r58W^{O!ht{-rd-Xz({yS`}(tF%A=#-^$*BKj*h^H5vBuICkmxprzEoDsdc6VXuV3qX%aySb-B8wRqrU9AL7#Qb2p7;RB zVlVOZb!C6bDkjD*HP>DIE>O=QPZ!6Kh{MSV60D08M0%PUS$lk@yhuw+OifN#2{vX| z7dPkEm*3AIS;cDEvZJNa#pS5cQB{v?{8w}|Rdtn=r%jzZSyN5hebMHps-hxOr-X(S zfBwYH)g2;o)#K8cReHQvVq$`#!r}rWLt_^&Qgm6f*|b%q_29X6y1J`Z=V#<(<>j3W zzIaK^&3N&$34Gg?0*bTqqN^+2)5FXC^YinA!eCUbL-W{0n1vR<$~^Xn{8y>%)t z*_q7C_icTx)#x|l&X&4cZ2bN~UyThaDu183eZ!=(=<>3&*|mQ?uAe{fKz>7N(D^6J z*52M!5y^VeP{APMci*#Rb9ZlQ+IiyQxdQ@8o2t*>tNq>WeE5Wp!;HiHGBzbYJX}Frk_|4@LvNGVHyk!4?R2fs!l2cm7J<2t`Q|Ei6yC4$wjF^iowXh$WYh7 zRM*HT#K_3Xz}(8nOxwV~%D}*6XVMoG4Y~O#nQ4`{HMl;x1xibP0l+XkK3jo2~ literal 0 HcmV?d00001 diff --git a/textures/arrow_070.png b/textures/arrow_070.png new file mode 100644 index 0000000000000000000000000000000000000000..44817a6970e7ed6d50310646c3829406def4adff GIT binary patch literal 1610 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|V2h0G|+7pn{{yePX_njaZP#X6`RhxuFfnqnG8eh3)%$4mhZ(F+ zx7?Ozd$`Q;e68z^CXXkbJ}-OxK1>YwGCAnywBX+}LjKJR{WmN0|Lm}Tv%^kTy963a z$6Clg==Avy6r2_Ie`e^H$$@j@Ow`4Bqs`^+wt4-Z5&C~d$emWN97h#?PS)Ekp1-Dt z?8vuuP!sjkk+|CE{<_bQ?j-&vvOYF)Y6m^CGM@3ne;of@#4k_-@X6(ccTT{!xznAcg_ZJ z`2Jg{?Rx1!zT>H1`&g|1$$P!N8fX9J`x=v{wc^>oj|Q-Roc-@sp5V{zPF+gZVodMn zinZ1Kd<=99W0JSK3quF1tOt<8S>O>_%)l@W$ehN&IREj)2S65kiKnkC`%_jiF?OlB z?&5cWdd_*eIEF+VPEL?uU7R4&(-dgH!Juq8YsQSoh?_SoEq3mxtoS*j9Q+dgeu-@1AG8W+x)xN%YE%9%S`mxd+> z7kg(%@7~(GR+f>!>z1{J)y!y%a+5N%^3v~LzJ2wdVUhW1%F4^j&d;zsedp-Z1;6iZ zxqCbP{2b%*dslvPi|Iw}NqM>Hsdm`9sJ&@#cYWP#Yjd;n!sGRSfI)#pj-L{2Ar}ZZM z3tnzMr*J}-vZuAc5%oE?+c_neW}l1SAu)T#5vNskZBM3nPj@`Gzi6wesqWkzN4lBz z%vl$Ef78=rhh}d#GTQ8M{oH{GbBli;cxGL`-TL{nr;``YKe+kty;*<1%ZqrhPh2|p z;M#&~hux=lb$NT8ynH_4dC}{SlQ(_hsx$g(yy59Kd*2l*mY)O{tlD*VMcbDX?hUuB zBn3B}vfIJo>z40R1mb&ZTdjEt-d%&m;fv<(cb3=B+mCVfHCkei>9nO2EggX@!9pfn~4vLQG> qt)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWA_h-aKbLh*2~7b0YVGv^ literal 0 HcmV?d00001 diff --git a/textures/arrow_080.png b/textures/arrow_080.png new file mode 100644 index 0000000000000000000000000000000000000000..2527d282e942d08b7ff93d7056e683afc9c2ced6 GIT binary patch literal 1616 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 diff --git a/textures/arrow_225.png b/textures/arrow_225.png deleted file mode 100644 index b54ae836a7726cadf0bfd9184e642e2c80e1a7d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|OIRfKP}kP{F_gMn;7F zNKAwvE*3$>$R+~~VIrsj)g~4uMxYj;CNEt{9VvcAVeW%vj-~GEW$x;~XM}9avlZZE z)s^PI(%}AocG#0nA5#TEHfE--5WPP$LjKPT{XIRT&_&HgMdU%d_y1X;|7V13%C_d? zVBzIpS(s?{w97ZpK$@SE)mKmQRiFRAnW4{ne9aYwM0nUX<=Fh6750Bd=(8^0G7k-X z8U7R-#m|!if6fRwROaZTCn+byb)?MkYJn-IX1ScB0TKO^Ab#b^`u_+`Tw06`l!QOjF)|DuFd~BVRot_$u^45di}WBnWY6d z`$F}dRJ+`OArM;<&3y0nv{PX9G3gkoz1?hi z-yik*uxgzD_u;tLzZ1SPcm91o6g2JcPdWGJe}&dQGm8*p`lfdF&)w#hKmT5sa!&VH z8TE3;{#E&^3o<6z6ay_{O!9VjVd!9$^#F1>3p^r$g42M^X$*|>A5VM$WU-fc`ns|| zWfkL>k=^;|qBKy?WltB!kch*{2@N)YaAZtYoI{%wJY)U2Selo^U%pzP9b#qD71P7JZuYJ14LyjEUv|Rj2!=go9U5n=I`^Q-r7L#-Bi1mSEWsjD8Qrhru(WfsbGlSps z{IrPdyq^DFz`j)K1fzpVt(#-mp2aJKJtw}@nKm^xj`7mHdlA7_lcS?zT9#-`NIgH_ zboUD87r!ivrB{WDJc;qRbnd~aXJ+|q7Z{&jR{Of;Q?};hIScRFKGV<8($YUO&+6jk z)6tiwhWy=Qw~t%=sZN}c_UZHYohJ0S$S79gP2NC6cwc)I$ztaD0e0syiK Bz-<5k diff --git a/textures/arrow_270.png b/textures/arrow_270.png deleted file mode 100644 index f21bd945999de307b7647dc0a02c6dac028c54d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|TRMfKP}kP{Du$HWns% zAudZLVNOUiGWax}&$Z)$3=YB4Q{jFe}!WorURnx9`jtLH=fndd+J%*Z+_nRe{B)JqSK zL;I!!wJ|1nySp%Su*!M>Ih+L^k;M!Q(}2ur42<(1PkaDmv6p!Iy0SlI72}tY-TCOE zG*Azxr;B4q#Np%w3D(64B0Wuk21^)}g^jtjZ|=Hz!_s2sj>;2TW=-#pcL?x^j*e*Y zS?zlCNNLH}FRCghx7<2#;lzz2SI)$AnXn&Nvu(qcP1`nZ-CVA4l<`EEwUy=W9lLhz zd@b;nA!N1fotRi#+q--AbQS|m-*t7}ymbl>9((sNFG)>#`sC==zkisSnwt)WweN6p zm@uzNN$}faGX)bL$IcxWn5!KR9Wao&%AF@@bxKR+SiFjcz~Y2P2~o9$UNt&Ng&omb z`lK%UITUvA9Z@X%w#1V0rlM0q`;22QlU}iew7)oZY~n)}k@k%2)!7p=nXV|t%sQf? zX2bU|^_tRt4{4~U9sC&>^xj&ZJ27>pBru#*OI#yLQW8s2t&)pUffR$0fsvuEfvK*M zQHY_bm63&&k)^hQft7(lR?Fo}C>nC}Q!>*kachvinVkpJAPKS|I6tkVJh3R1p}f3Y gFEcN@I61K(RWH9NefB#WDWD<-Pgg&ebxsLQ0BEfn{Qv*} diff --git a/textures/arrow_315.png b/textures/arrow_315.png deleted file mode 100644 index 1ad0fd15bdea5b310b2870b65c2fe9c3be41ad1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1412 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N0|OIRfKP}kPyw|7BUuJ9 z!L%{L7-SiP&_ua0{G6=P0-SxJ`pGtmV!Z6ndi}QM+W6{8akDf3pA+`F&wpNmsjaFA z8#B}Y*?he+|mFDMRXZbfX^gj^I3jH%99Z}*w$xo+ zM~d%hm+z)*>p~YbQ+YuFPS%BqX3u+k0}Z5k*;yWRc$+H9pBKyn{~hh}WY;{_`KY_sNAS4U ziO;@=nwIVZ|wNNQpxJ-X2knIT(HaE$ICA; zC@fI*JWJrpmL*rVeChEiGcDyU;<+&8nwQ_{Q|C^ey*%ymMOAf^RFO}Yxw*Q#yuD6; z`NGT7>tS}lBXH%OMJqOKSg~r?vaowMj!a1rmY8Z>{F>`^qnn9|nd$7A(H)bsnz*Xt zI4^KcZEe+EoBLL_Y1)#uWvimn!_7VH1-^dy_OvuA^7X9=DNSo*BTEAnIT-$4v|m`V zXvyAYWlhUiXZICpLMQ4L0JTR>UhXsZ*^@OVe49A+zHPl6-EiwQclV~WGjmL<{gzKy zut}Tqr}G(yeJe$uv^4Gf{7gUM#j$tq9%jCB_0p)2HrLnETB8%SCuOC|?*8@5HCOJO zeDlbf+Q`7vYinBT{>|%|rSgi6G5GVDeUA=3y7YqKl9B+U4$Eh+P0#ew`Bj4LohPKG zXMSAMdhm((Io7JV zVR2!Eh3YTK8KTM>tF_BG~jYOs3F0s%+J6e+fwGHZ!QT+392Qo5hW>! zC8<`)MX5lF!N|bKP}jgz*T^Wu(A3Jv!pg`}+rYrez#yyT@+A}vx%nxXX_dG&NZ-uP y18R^2*$|wcR#Ki=l*&+EUaps!mtCBkSdglhUz9%kosASw5re0zpUXO@geCx2+qR(q