From 7fb798edbe14043490630e62e455b72c96d2921f Mon Sep 17 00:00:00 2001 From: Patrick Gelvin Date: Sun, 24 Aug 2025 11:33:31 -0700 Subject: [PATCH] Initial asset library impl + tile images --- Cargo.toml | 2 +- assets/thumbnails/corner-ne-1-wall.png | Bin 0 -> 372 bytes assets/thumbnails/corner-ne-2-walls-south.png | Bin 0 -> 373 bytes assets/thumbnails/corner-ne-2-walls-west.png | Bin 0 -> 380 bytes assets/thumbnails/corner-ne-3-walls.png | Bin 0 -> 383 bytes assets/thumbnails/corner-nw-1-wall.png | Bin 0 -> 375 bytes assets/thumbnails/corner-nw-2-walls-east.png | Bin 0 -> 384 bytes assets/thumbnails/corner-nw-2-walls-south.png | Bin 0 -> 377 bytes assets/thumbnails/corner-nw-3-walls.png | Bin 0 -> 386 bytes assets/thumbnails/corner-se-1-wall.png | Bin 0 -> 374 bytes assets/thumbnails/corner-se-2-walls-north.png | Bin 0 -> 377 bytes assets/thumbnails/corner-se-2-walls-west.png | Bin 0 -> 391 bytes assets/thumbnails/corner-se-3-walls.png | Bin 0 -> 392 bytes assets/thumbnails/corner-sw-1-wall.png | Bin 0 -> 374 bytes assets/thumbnails/corner-sw-2-walls-east.png | Bin 0 -> 378 bytes assets/thumbnails/corner-sw-2-walls-north.png | Bin 0 -> 376 bytes assets/thumbnails/corner-sw-3-walls.png | Bin 0 -> 380 bytes assets/thumbnails/full-0-walls.png | Bin 0 -> 299 bytes assets/thumbnails/full-1-wall.png | Bin 0 -> 318 bytes assets/thumbnails/full-2-walls.png | Bin 0 -> 317 bytes assets/thumbnails/full-3-walls.png | Bin 0 -> 319 bytes assets/thumbnails/full-4-walls.png | Bin 0 -> 319 bytes assets/tiles/corner-ne-1-wall.png | Bin 0 -> 403 bytes assets/tiles/corner-ne-2-walls-south.png | Bin 0 -> 405 bytes assets/tiles/corner-ne-2-walls-west.png | Bin 0 -> 442 bytes assets/tiles/corner-ne-3-walls.png | Bin 0 -> 442 bytes assets/tiles/corner-nw-1-wall.png | Bin 0 -> 313 bytes assets/tiles/corner-nw-2-walls-east.png | Bin 0 -> 317 bytes assets/tiles/corner-nw-2-walls-south.png | Bin 0 -> 311 bytes assets/tiles/corner-nw-3-walls.png | Bin 0 -> 318 bytes assets/tiles/corner-se-1-wall.png | Bin 0 -> 408 bytes assets/tiles/corner-se-2-walls-north.png | Bin 0 -> 409 bytes assets/tiles/corner-se-2-walls-west.png | Bin 0 -> 448 bytes assets/tiles/corner-se-3-walls.png | Bin 0 -> 449 bytes assets/tiles/corner-sw-1-wall.png | Bin 0 -> 408 bytes assets/tiles/corner-sw-2-walls-east.png | Bin 0 -> 446 bytes assets/tiles/corner-sw-2-walls-north.png | Bin 0 -> 410 bytes assets/tiles/corner-sw-3-walls.png | Bin 0 -> 446 bytes assets/tiles/full-0-walls.png | Bin 0 -> 142 bytes assets/tiles/full-1-wall.png | Bin 0 -> 154 bytes assets/tiles/full-2-walls.png | Bin 0 -> 159 bytes assets/tiles/full-3-walls.png | Bin 0 -> 162 bytes assets/tiles/full-4-walls.png | Bin 0 -> 164 bytes src/assets.rs | 82 ++++++++++++++++++ src/main.rs | 2 + 45 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 assets/thumbnails/corner-ne-1-wall.png create mode 100644 assets/thumbnails/corner-ne-2-walls-south.png create mode 100644 assets/thumbnails/corner-ne-2-walls-west.png create mode 100644 assets/thumbnails/corner-ne-3-walls.png create mode 100644 assets/thumbnails/corner-nw-1-wall.png create mode 100644 assets/thumbnails/corner-nw-2-walls-east.png create mode 100644 assets/thumbnails/corner-nw-2-walls-south.png create mode 100644 assets/thumbnails/corner-nw-3-walls.png create mode 100644 assets/thumbnails/corner-se-1-wall.png create mode 100644 assets/thumbnails/corner-se-2-walls-north.png create mode 100644 assets/thumbnails/corner-se-2-walls-west.png create mode 100644 assets/thumbnails/corner-se-3-walls.png create mode 100644 assets/thumbnails/corner-sw-1-wall.png create mode 100644 assets/thumbnails/corner-sw-2-walls-east.png create mode 100644 assets/thumbnails/corner-sw-2-walls-north.png create mode 100644 assets/thumbnails/corner-sw-3-walls.png create mode 100644 assets/thumbnails/full-0-walls.png create mode 100644 assets/thumbnails/full-1-wall.png create mode 100644 assets/thumbnails/full-2-walls.png create mode 100644 assets/thumbnails/full-3-walls.png create mode 100644 assets/thumbnails/full-4-walls.png create mode 100644 assets/tiles/corner-ne-1-wall.png create mode 100644 assets/tiles/corner-ne-2-walls-south.png create mode 100644 assets/tiles/corner-ne-2-walls-west.png create mode 100644 assets/tiles/corner-ne-3-walls.png create mode 100644 assets/tiles/corner-nw-1-wall.png create mode 100644 assets/tiles/corner-nw-2-walls-east.png create mode 100644 assets/tiles/corner-nw-2-walls-south.png create mode 100644 assets/tiles/corner-nw-3-walls.png create mode 100644 assets/tiles/corner-se-1-wall.png create mode 100644 assets/tiles/corner-se-2-walls-north.png create mode 100644 assets/tiles/corner-se-2-walls-west.png create mode 100644 assets/tiles/corner-se-3-walls.png create mode 100644 assets/tiles/corner-sw-1-wall.png create mode 100644 assets/tiles/corner-sw-2-walls-east.png create mode 100644 assets/tiles/corner-sw-2-walls-north.png create mode 100644 assets/tiles/corner-sw-3-walls.png create mode 100644 assets/tiles/full-0-walls.png create mode 100644 assets/tiles/full-1-wall.png create mode 100644 assets/tiles/full-2-walls.png create mode 100644 assets/tiles/full-3-walls.png create mode 100644 assets/tiles/full-4-walls.png create mode 100644 src/assets.rs diff --git a/Cargo.toml b/Cargo.toml index 97d7d62..f4ae34e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2024" [dependencies] -bevy = { version = "0.16.1", features = ["dynamic_linking"]} +bevy = { version = "0.16.1", features = ["dynamic_linking"] } bevy-inspector-egui = "0.33.1" [profile.dev] diff --git a/assets/thumbnails/corner-ne-1-wall.png b/assets/thumbnails/corner-ne-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..0131e08482fa481a6147342f822cc17117015bd8 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI?)FK#IZ0 zz{phBz(Uu^B*f6%%GAip#9Z6Jz{nC}Q!>*kacg*e-8m1aK?80>NoH

S6G7^>bP0l+XkKxI1Sd literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-ne-2-walls-south.png b/assets/thumbnails/corner-ne-2-walls-south.png new file mode 100644 index 0000000000000000000000000000000000000000..584e6755b6cc3902c809d21d47fac44e86d6744d GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fIgTe~DWM4f1DI%E literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-ne-2-walls-west.png b/assets/thumbnails/corner-ne-2-walls-west.png new file mode 100644 index 0000000000000000000000000000000000000000..3533769c51849b9d9f91aad5cd4ba6a8d449455e GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI|zA%^BwrY2TK#@Yr3Rt5%3w=82s(U6;;l9^VC zuEEI4#2ljG^>ybwpau=N4JDbmsl_FUxdrHYfc6+c^c<;dI|J0i;OXk;vd$@?2>@(x BX`=uD literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-ne-3-walls.png b/assets/thumbnails/corner-ne-3-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..25e88d51afac6839f2a5a60cc1625dea69c512f3 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fIU@(#5JNMC9x#cD!C{XNHG{07@6uCSm+v=gczDznHpJ{m}?stSQ!}1>iT^NMMG|W yN@iLmZVj)mJLds4XuxeK$;?eHE=kNSK-UAZ2V%*Q%C<8=Jq(_%elF{r5}E*vDQ$KD literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-nw-1-wall.png b/assets/thumbnails/corner-nw-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..77cea63092143218b34512f101a490efaea18c32 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI32Rba4#fxUPEAP_V&4faRd_0j5WB zOqbkLkA7v_?0Ejq?(Ls)t`Q|E zi6yC4$wjF^iowXh$W+(BLf6P7#L(Qz(9+7tK-<8;%D~`awaYpb4Y~O#nQ4`{H7rp3 tBLvi-0k@$fGdH!kBr&%DO^>O$m8lWLk|ULEXMlPbJYD@<);T3K0RS)8Y0Cfr literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-nw-2-walls-east.png b/assets/thumbnails/corner-nw-2-walls-east.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb82c6a9dd61b580a4375684064ab17fbc179b4 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI0$qba4#fxUPC~BjW)B4rWIU3B@;J zW(Kp52D8O!l^mV@wrRWjo;~tQ`GZ6%oMSu!AMh3`x*lATdTG+4gv%Q;Jpva!WKRy# zWpqD(Y8KEq)e_f;l9a@fRIB8oR3OD*WME{fYha;kWD;U%Ze?U(Wn`>vU|?ln(3&Fr z14Tn_eoAIqC2kF0ELXb#HE6(XD9OxCEiOsSEkM&_YHnp}1hM2uW!o8`9tKZWKbLh* G2~7Y)&}}vV literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-nw-2-walls-south.png b/assets/thumbnails/corner-nw-2-walls-south.png new file mode 100644 index 0000000000000000000000000000000000000000..d491ac64777abfa1885a50a5ac2a10417859dbc7 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI32Qba4#fxUPEAP_)57gyo=rBkP=t zE=-rgQsri9f9sn0vwZ%!$JbtdT{t0nVSt7RSF010I$OPsG3B;)6w7H*UZ6RuC9V-A zDTyViR>?)FK#IZ0z{phBz(Uu^B*f6%%E-XV&`8_Bz{nC}Q!>*kacj79 sa5>1O8gLs*GILXlOA>Pn(Day^TbV*FIa1kn2B?R@)78&qol`;+0Cx>*9smFU literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-nw-3-walls.png b/assets/thumbnails/corner-nw-3-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..f207d629d1d4045309b01cc48e3abd69744fa8dc GIT binary patch literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI0$pba4#fxUPC~BjW)B4rWIU3B{ag zN;v}gY5tiND=&!Vn{nTh`}pyncCJU@1MWu-T}<%;>_H+WQdYd0TxzD1XNjoBl`+QN z(spUtc8m{bplXS0L`h0wNvc(HQ7VvPFfuSQ)itotH8Ke?G`BJ`ure{$HZZUBQ;SOya|_V)n3`Le8bK^MQrUI}sE5JR)z4*} HQ$iB}T`y=1 literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-se-1-wall.png b/assets/thumbnails/corner-se-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..c22f0b68ae504bdeae08c9df8c16b0d98bdb973d GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fI`sfOAZM^OOvc=DZ)S@Gfx-C5RU7rCk+J;C@>s2VD8B- zqQI;<^_1hLl#0h@d)I#3UmL9=)ajx$(E~y8UG0#!oA+Gk8PEjP64!{5l*E!$tK_0o zAjM#0U}UOmV4-Vd5@Kj>Wom3?VyM`LBiiX_$l+3hB+!|O!H3EPdG~hOr jWag$8mn7yEpz8tJV+66}NM+j@pdJQKS3j3^P6I?IhMFtb!TFI~g4N)y|jVMV;EJ?LW zE=mPb3`PbnIpS@;)T zSa>X%OHydc)_AFs!`k`z+^1OPuy0%7nIpS@<{_>{YSdGp%sa zWyU)!+JO}d3myQ?R4s9hC`m~yNwrEYN(E93Mg~Tvx&{`yMkXPK=2oW0Rwm}!1_o9J z2BjVo-k@m6%}>cptHiB=MN}gIs6hj6LrG?CYH>+oZUMR;kUbDflK6TnfO;4_UHx3v IIVCg!07*%30ssI2 literal 0 HcmV?d00001 diff --git a/assets/thumbnails/corner-sw-1-wall.png b/assets/thumbnails/corner-sw-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..4714e397bba1876c667c170f53e08d00a5da211f GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wl3dtTpz6=aiY77hwEes65fIde_6{^VeVN>n+WFd*ep`!2|;d9=2v6m63h?8LP$}ZRtq47h8ZPsFt`!l%yn< zq*^5xr2;7iBLgE-T>}eUBa;wAb1PG0AksE4ure_4UArX_MMG|WN@iLmZVfgcc9i(?4Kb=8xGf(Hx)4jB9w5_lLY z)EYKrr(2xOis#q<{fjcYmVJ9#Z!8a6^T7lI2_WTods_}4*EP-9w0)0KfM%$cxJHzu zB$lLFB^RXvDF!10BU4=i3tc0V5JPh-Qxhu_Q*8qSD+2=t?pb?KH00)|WTsW3YcRGl vHHK)g`M`4*s6hj6LrG?CYH>+oZUMR;pgmAMNqoH(Ks^keu6{1-oD!M`P?sQ-QXKRBabKZ^v_RLo`-KRgZ0U51Y z;u=wsl30>zm0Xkxq!^40j7)V6EOd=bLJZBVOpSp^+rYrez`%FymP8Z{x%nxXX_dG& s*nHr*3)G+ix1l66H?_DVF}DC+56B*fB}sg}6+k@zopr07sr|1^@s6 literal 0 HcmV?d00001 diff --git a/assets/thumbnails/full-0-walls.png b/assets/thumbnails/full-0-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..52a86f2b84f220af617b4e40cb54e40cdac1e2ef GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^5+KY7Bp6QcFoXgrg=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&V7%KUyadQ&FY)wsWq-*bA!unTJ29jc zD8%pS;uyklJ^9D~|Mtwhh784v-FLcNoOc%}rCQ<|QIe8al4_M)lnSI6j0}uSbqy?Z zjZ8ue&8-YftV|8H4GgRd3_N!V6{Bd#%}>cptHiCr;>oJ>Kn)sj8%i>BQ;SOya|_V) bn3`Le8bd5e;_Iyd>S6G7^>bP0l+XkKt!7L; literal 0 HcmV?d00001 diff --git a/assets/thumbnails/full-1-wall.png b/assets/thumbnails/full-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..8780936ec958691bca394e3468ace77e72c0d24a GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT3?y&uT)!JgDI|LY`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=wSRfKP~PW>(h!|NnWdcOC(XFeZ7syD=SW literal 0 HcmV?d00001 diff --git a/assets/thumbnails/full-2-walls.png b/assets/thumbnails/full-2-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..9a68658e6fb43f94eb80d385ee733e60ff2cbd8c GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT3?y&uT)!JgDI|LY`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=wSRfKP~PW>(h!|NnWdcOC(XFeZ7syDmdKI;Vst07Mm4CjbBd literal 0 HcmV?d00001 diff --git a/assets/thumbnails/full-3-walls.png b/assets/thumbnails/full-3-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..a99066aef48445cef85cebc8342da699464e4cf0 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT3?y&uT)!JgDI|LY`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=wSRfKP~PW>(h!|NnWdcOC(XFeZ7syDUO_QmvAUQh^kMk%5t^u7QQFkx7W5xs`#bm8prgfq|8Q!58PSS11~C^HVa@DsgLQ um3tQk)Sv;kp(HamwYVfPw*XC#skxP@F~pK2zTOI;9tKZWKbLh*2~7YsqE;XP literal 0 HcmV?d00001 diff --git a/assets/thumbnails/full-4-walls.png b/assets/thumbnails/full-4-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..e18f062540b9baedd8322316adff8ba76b4fb69a GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT3?y&uT)!JgDI|LY`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=wSRfKP~PW>(h!|NnWdcOC(XFeZ7syDUO_QmvAUQh^kMk%5t^u7QQFkx7W5xs{Qjm7%e=fq|8Q!4u7TRTK@m`6-!cmAExb tEjd0Ds6hj6LrG?CYH>+oZULGeQ*$d*s3l2!y%j(`44$rjF6*2UngG*#Rh0k$ literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-ne-1-wall.png b/assets/tiles/corner-ne-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..61316a3d2e6c15f5e24c058995b0baac11e87c7c GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>-zdQ}(FqQ=Q1v5B2yO9Rs zBze2LFr{(VqyRbWC7!;n>@PVa1WoiqV=r$43Wa&PIEHAP_dTu1$e_S*z+jOeqob*k zLWS3xcY0>m7QB^t?)R)yNY!hKM&KeBA{j~V*h8XD54J>qxOhOFJtqd)#j106546F^p&L(!0%pOTqYiCe=0wLd~Y4H|G8 mN-}d(i%Sx73()kK8d;f`LoC^IC}|^54}+(xpUXO@geCyj8*j$| literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-ne-2-walls-south.png b/assets/tiles/corner-ne-2-walls-south.png new file mode 100644 index 0000000000000000000000000000000000000000..a61dbd48cf5a00bf2d0a686fee928598daa3841b GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>-zdQ}(FqQ=Q1v5B2yO9Rs zBze2LFr{(VqyRbWC7!;n>@PVa1WoiqV=r$43PpIjIEHAP4?Vq*@qhxu0Rz9=oE&Ah z{AMf&PjZfRJtnhd&iSA6Y28AqUQ;vz7rAs2#n@YNmhtVq0}~=1)%XMLP%UwdC`m~y zNwrEYN(E93Mg~Tvx&{`yMkXPK=2k`qRz}9!1_o9J2CXT=KTtH}=BH$)RpQq0#d5U^ rP=f~ChLX(O)Z&uF+yXQ`rbbpK<`7Hv97@^<)WhKE>gTe~DWM4f2=jE4 literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-ne-2-walls-west.png b/assets/tiles/corner-ne-2-walls-west.png new file mode 100644 index 0000000000000000000000000000000000000000..ea872574d4b653d56218c00566010d55e53d8e1d GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>-zdQ}(FqQ=Q1v5B2yO9Rs zBze2LFr{(VqyRbWC7!;n>@PVa1WoiqV=r$43e|eLIEHAP4?Vq;@el*gfdf6qI7Aj6 zsIF`gIXUIW_JH!%zVD5Gk3P4He|V}g$EA~d@|_t^EICyTPBweW`LL;$8NErladP1i zpT3zg#;j9bXkG|ju)IacR5i=%N=SgxawosmIZ|Fnu5_#vyzIa^pUsZ9CQ2jm@}Xs| zz70ax`Qxj1$$2vftN}ViwZt`|BqgyV)hf9t6-Y4{85o)B8d&HWnS>acTNxQx85(ID z7+4t?teqpj9z{cLeoAIqC2kFO4lWl4YS4h&P?DLOT3nKtTY#p=)X2)j9Ae3yLrEKf PdKf%i{an^LB{Ts5Qu&Fp literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-ne-3-walls.png b/assets/tiles/corner-ne-3-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..971af22faff71859db5bcce6f87cc002b3559fbc GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>-zdQ}(FqQ=Q1v5B2yO9Rs zBze2LFr{(VqyRbWC7!;n>@PVa1WoiqV=r$43e|eLIEHAP4?Vq;@el*gfdf6qI7B=f zzklKoN%8s<9a!Gl_r1~YQPl(18VgSKz(?Jlbu*sWajF`e?Dfp^VN)$LdXsYFPx#^GQTORA_Y5~1?lmbTZs057S zQ3#m9lN~UNCo{kTPgZ~xo{RuXJkbHxcp?Kl@I(c8;fV{jmI+}0*_Zf6dsR& zNIcd7(ReHaGVoXhWZ|(0$iy=nkd0?1KmpHafC`?G03|%V0cv=90u=GI2B_j`2~fuK z6rhghUqA&scL7!KTm@9Za}KD6=NM2C&mK?}53p3m1HAU5A|BuefH%3eeBrXP00000 LNkvXXu0mjf>y>q2 literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-nw-2-walls-east.png b/assets/tiles/corner-nw-2-walls-east.png new file mode 100644 index 0000000000000000000000000000000000000000..35bc0d057e8370f3d7dc885c93ed851f3b4fdd60 GIT binary patch literal 317 zcmV-D0mA-?P)Px#_en%SRA_4skn1KZq7e!(AA8*HrB|;cFC^V-+dcqGG^A$- zo{Rw{o@@bUJir=5XH$x9lmlw;s0P&HQ4DCoqZZJLM=78O zk4iu<9)*ArJkbH8cp?KV@I(bz;fV;a#4|g<8qdrC4?MF1yztBj@WkUC;El&KUPx#@kvBMRA_qcX%oU{KKOj@PtP>paqX=Kr0@_fF3+*0lj#X0!Hwt1dQTQ z2$;c>9WaY0Gr$5*R)7_ri~vhK(E-+YA_F||LP)Px#_(?=TRA_9g@7wO>H&9nlmnjNQ4M&CM=_uUk6J)09;JXD zJSqXbcoYIg@MH&!;>irKz>^hVg(oAx5>Ir1HJ-=-4?Ix;UU(t`Jn?u3c;oR5h`{3& z5QWDhAQF#tKr|l9fDAlV0a;M1&07*qoM6N<$g3qXY4gdfE literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-se-1-wall.png b/assets/tiles/corner-se-1-wall.png new file mode 100644 index 0000000000000000000000000000000000000000..c80650ae0222ca72cfc9c78b6fb6a9f4dac8293c GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>&pI;LqgD0-^cCIXP{7or;B5V#(Cezm0Xkx zq!^40j7)V6EOd=bLJZBVOpUBe%(V>+tPBihb^X4Cq9HdwB{QuOw}#i(o%4ViG~hOr hWag$8mn7yEpzAS)TN2E`*$>pi;OXk;vd$@?2>@5Mb@l)N literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-se-2-walls-north.png b/assets/tiles/corner-se-2-walls-north.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd1f058d14a5bb6be91debd8eeaaafeda1188ff GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>Y3CLkD@$_|Nf5{;sXsYky_UJQEDALo#F+}5h=xIa71_Ooz8@!wk^(pdl z%FOoi+f-+J$yavsf3?kQpX1I1Pg3zD1<5ykIxyi(-?^VaOH@l-BT7;dOH!?pi&B9U zgOP!esjh*Au8~QIp}Cc*k(G(Lwt<0_fx)b<-pF literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-se-2-walls-west.png b/assets/tiles/corner-se-2-walls-west.png new file mode 100644 index 0000000000000000000000000000000000000000..37dcf9a255799c45f620bf52c17579b20af2ed02 GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>Y3CLkD@$_|Nf5{;sXsYky_UJQEsKL|4F+}6M@9CY4hXQz50;fI`;&3_e z{DvUm)JUHpl=pi-HL@85a zf~VqSCpA`9EzgiiD^wObs5kmC&1Dgpam27QS*V?9wuG5sPEr6vr;JL`gcFWR@+zP9 zanvL#`TW~wyi1Pxu@^tkEvhB15hW>!C8<`)MX5lF!N|bKRM)^l*T^Kq(A>(@$jZcA z+rYrez+hI_?@K5ea`RI%(<*UmczxYD52!%{ZbM0CZfbE!Vr~Jt9%HyA!3>=JKs^ke Lu6{1-oD!MY3CLkD@$_|Nf5{;sXsYky_UJQEsL|8KF+}5h=;@t|OpZJ(j;&>i2`_le z^qmegXk1*MwnlUD(_>HgpIZk%_{?xm{DY7Kqqo>J9i2#x2PY3qZd7MxRmya^)Ujlt zgIcQ(*Gv(S6)J(Aizc-&&1JFTED;Jw5IU~X=PARLlXT?)FK#IZ0z{phBz(Uu^B*f6%%GAip z#9Z6Jz{nC}Q!>*kacg*e-8m1aK?80>NoHY3CLkD@$_|Nf5{;sXllAqMYp2Sh>+MQhJ! z@mziCU~I&JuXpzM8K0}0$?7#lBXE&Rr;sX9j3+&t?Y|%0CL$)ad=bzN)e_f;l9a@f zRIB8oR3OD*WME{fYha;kWD;U%Ze?n0Wn!*vU|?lnQ0g(^4T^@`{FKbJO57S)L^T3{ n8Z_WGlw{_n7MCRE7GUZzHHKJ{{Zy9;sE5JR)z4*}Q$iB}5KMKO literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-sw-2-walls-east.png b/assets/tiles/corner-sw-2-walls-east.png new file mode 100644 index 0000000000000000000000000000000000000000..036a7682d747a2cbd8b849306d63ebcd45129c82 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>Y3CLkD@$_|Nf5{;sXllAqMY@R!v+Ee0;DTiq}MV& zRK2-+N$|IS%e!nBl-BP)zl%fh9P=CL14{&w)Q zJ3cet6y0hRbd6I1=n~Zu*NBpo#FA92M=EjSd#rzmkFqc!PC{x JWt~$(695{qhvNVM literal 0 HcmV?d00001 diff --git a/assets/tiles/corner-sw-2-walls-north.png b/assets/tiles/corner-sw-2-walls-north.png new file mode 100644 index 0000000000000000000000000000000000000000..6becac23f7d537c34cf7cb7a8328abfc3b5a196e GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDD3?#L31Vw<9Lb6AYF9SoB8UsT^3j@P1pisjL z28L3g!dD3l3|2E37{m+a>Y3CLkD@$_|Nf5{;sXllAqMYfSw2!)H~H6DoA|Y7Wy~)>?P2zsq7k^rrBg_iFk?>PHSU^i>ki~U=Y9*cMYY5= zq9i4;B-JXpC>2OC7#SFu>Ka(+8kvL`np>F~TbY<^8yHv_7?gTUc!Q!LH$NpatrE8e s7Ez4=pau=N4JDbmsl_FUxdoVdOpPIyWIxqq0_tJ#boFyt=akR{0B6E=Y3CLkD@$_|Nf5{;sXllAqMY@R76$>Ai;)`@OEMHb zq@Q@r6KM25^OS91QNSn0dGGXptF7r)P-pI$DPpXdX4G(T@yv_|X46^6sh+I)Fuvn9MRxsbU)n6al;_?qj4$&APT30`xY zz<=O|e(Bn^FVgzO&j4MbTH+c}l9E`GYL#4+3Zxi}42(>54J>qxOhOFJtxS!rOw6?n z46Fk6v86v=o%o1pPDK@ YZ$Hb-hf`F-faWuJy85}Sb4q9e08iL1E&u=k literal 0 HcmV?d00001 diff --git a/assets/tiles/full-2-walls.png b/assets/tiles/full-2-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7ce7eae0db9b3a45678ef47c51ae65f95c0186 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@H6;@Bj cAOe*6{B_LnPpT@CfR-?Ly85}Sb4q9e02M+rt^fc4 literal 0 HcmV?d00001 diff --git a/assets/tiles/full-3-walls.png b/assets/tiles/full-3-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..51fdca42df4493838f77a381b1f314dea94d40db GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@HB?|1Mtl`OoerrgxoKJspE4 hh^XMDPTn%-$Yb_onZ2xK#zmk#44$rjF6*2UngH^CHQfLJ literal 0 HcmV?d00001 diff --git a/assets/tiles/full-4-walls.png b/assets/tiles/full-4-walls.png new file mode 100644 index 0000000000000000000000000000000000000000..839f56bf1d87561ce8e4a5d78dbec0c078af2e7a GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@Hx-yQkU<0c~RNboFyt=akR{0M-XJVE_OC literal 0 HcmV?d00001 diff --git a/src/assets.rs b/src/assets.rs new file mode 100644 index 0000000..8fddd7f --- /dev/null +++ b/src/assets.rs @@ -0,0 +1,82 @@ +use bevy::prelude::*; +use std::path::Path; + +pub struct TileImage { + name: &'static str, + thumbnail_handle: Handle, + tile_handle: Handle, +} + +#[derive(Resource)] +pub struct AssetLibrary { + tile_images: Vec, +} + +impl AssetLibrary { + fn new(asset_server: &AssetServer) -> Self { + let tile_names = vec![ + "corner-ne-1-wall", + "corner-ne-2-walls-south", + "corner-ne-2-walls-west", + "corner-ne-3-walls", + "corner-nw-1-wall", + "corner-nw-2-walls-south", + "corner-nw-2-walls-east", + "corner-nw-3-walls", + "corner-se-1-wall", + "corner-se-2-walls-north", + "corner-se-2-walls-west", + "corner-se-3-walls", + "corner-sw-1-wall", + "corner-sw-2-walls-north", + "corner-sw-2-walls-east", + "corner-sw-3-walls", + "full-0-walls", + "full-1-wall", + "full-2-walls", + "full-3-walls", + "full-4-walls", + ]; + + let tile_images = tile_names + .iter() + .cloned() + .map(|name| { + let thumbnail_path = Path::new("thumbnails").join(name).with_extension("png"); + let tile_path = Path::new("tiles").join(name).with_extension("png"); + + let thumbnail_handle = asset_server.load::(thumbnail_path); + let tile_handle = asset_server.load::(tile_path); + + TileImage { + name, + thumbnail_handle, + tile_handle, + } + }) + .collect(); + + Self { tile_images } + } + + pub fn get_thumbnail(&self, name: &str) -> Option> { + self + .tile_images + .iter() + .find(|&tile| tile.name == name) + .map(|tile| tile.thumbnail_handle.clone()) + } + + pub fn get_tile(&self, name: &str) -> Option> { + self + .tile_images + .iter() + .find(|&tile| tile.name == name) + .map(|tile| tile.tile_handle.clone()) + } +} + +pub fn load_assets(mut commands: Commands, asset_server: Res) { + let asset_library = AssetLibrary::new(&asset_server); + commands.insert_resource(asset_library); +} diff --git a/src/main.rs b/src/main.rs index 15f823e..0323db3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ use bevy::{prelude::*, window::WindowResolution}; use bevy_inspector_egui::{bevy_egui::EguiPlugin, quick::WorldInspectorPlugin}; +mod assets; mod card; mod constants; mod widgets; @@ -16,5 +17,6 @@ fn main() { })) .add_plugins(EguiPlugin::default()) .add_plugins(WorldInspectorPlugin::new()) + .add_systems(Startup, assets::load_assets) .run(); }