From cee7652e09013d59cf4a8e1a2698d93429d5f4b9 Mon Sep 17 00:00:00 2001 From: crumblingstatue Date: Sat, 15 Apr 2023 20:37:01 +0200 Subject: [PATCH] More graphics, live reloading of textures --- res/graphics/tiles/dirtback.png | Bin 0 -> 2591 bytes res/graphics/tiles/platform.png | Bin 0 -> 568 bytes res/graphics/tiles/stoneback.png | Bin 0 -> 6199 bytes res/graphics/tiles/torch.png | Bin 0 -> 694 bytes src/debug.rs | 5 +++++ src/tiles.rs | 6 +++++- tiles.dat | Bin 92 -> 220 bytes 7 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 res/graphics/tiles/dirtback.png create mode 100644 res/graphics/tiles/platform.png create mode 100644 res/graphics/tiles/stoneback.png create mode 100644 res/graphics/tiles/torch.png diff --git a/res/graphics/tiles/dirtback.png b/res/graphics/tiles/dirtback.png new file mode 100644 index 0000000000000000000000000000000000000000..59927445381d118b9625563337189c976ad42da3 GIT binary patch literal 2591 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 Tte(Zdz`)??>gTe~DWM4f`r+81 literal 0 HcmV?d00001 diff --git a/res/graphics/tiles/platform.png b/res/graphics/tiles/platform.png new file mode 100644 index 0000000000000000000000000000000000000000..ab06dbcd382db336f9d286122616d5543521c612 GIT binary patch literal 568 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78h^PA3g+~(>mTl_pvbd%tve0RTXjG}e&M(}vwy0?8^)+Q5 zJlKD9Rde^|b$siZ6n-#1di7|@3nkTm`kGrhK0eqX|NforyL*gIt52C2Phc>)Yh<)? z$&AzMyZ)}{P-sbP5u7|Ta{lBcCN{^f+t$?V?f$IuzPP?machFn0d*nuh`Sp)%sbM} z)>=KUeZ--CTI-|b#}-F%mAWUp9(|I2KIt&i`5uXzXKV^vB6PlPxO8|;PR5bTM*>4H zYsR10xu)peqcx$@Yl{8<9ZGPFk9=lz)^N#&4pk3?i0WLPlEkdd1Kk-ZTtIkch@rgnBS$dl7FWkPpKi%r@UxwCCMeEjXtMg=FU|>t~c6VX;4}uH! zE}zW6z`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0SlK;TMwE7BSj>hJk^>)YHW=B;xSf zONP7*3Oo!4Cpk0;hRG~sd8neJu=w=cCV4w129L0BUDKru-2Hi1JU5ePa9G8^zK&Jz UTc)5a0|Nttr>mdKI;Vst0Q3;^;Q#;t literal 0 HcmV?d00001 diff --git a/res/graphics/tiles/stoneback.png b/res/graphics/tiles/stoneback.png new file mode 100644 index 0000000000000000000000000000000000000000..a8fdba98f4a69e0626f7ea961b1d2c31d417a417 GIT binary patch literal 6199 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}2dY9MN`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsJTlI0_wB;MnuI%g!;<NM0%WBwDsyNo=Zy#w>wN;{C>{lH+!0$H`T1Vthr%og1OCAsrUU=cD#RHiB0XE zc+WW^eWB-%*V6<4^jy5yA)k2V5XT!QzUFtyOK+9z?Awr++4gIper$0RSE+ll>(M9a=aUXIo$ryjdB&!&B|_)xhD(RnDwdXQjoq);EqlW_-TJ_Z;8?R1_fMBax?CUp?b)Zv-;&>W&~*Fu zb9R364LYS$_c8MEHAZx9x^8>V_QLJk`_rxd{$*(WRJ2amaS96q18+rUNJL45ua8x7 zey(0(N`6wRUPW#J0|?mIR}>^BXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zob zswg$M$}c3jDm&RSMakZd%cjDrBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{ zRw=?aK*2e`C{@8k&qU8a*R>+E%t*m6W&?6cnI_SL7D>`ofLRD~5(ba(=FUMPh-zp`L+$ZmvGEj^Yy6vJ(6{ibE<3 zQuTvUi}Op1l2cvFQu9ibk&Q@6hU+gVEy@9VCnZ@wH77MUHLs*t-%!sG#Y%Ti-vGD{ zP!ObN<`#f;Rpb_+s4U4$Lj)FzZ$L6&?;ty*BDVl;E{bZH-@%H(VPxf!pIi!Zo~Mhg z63Bk5l>Fq(6e}>((A>h<%*?`4*DyKFK-a{~*jP8w(mX}i%+$=-(ljYCHPOrj$tcgf z;*!L?C3yNusV{nvtooxmj{* zqKN_6sFY+YxBQ~q#1dPj%-qEERQ-aybg%>{z^xnuJZ+VX^dL&XA^|yxC29FZxwc9^ znR%rZ2&EyJxv9Y=iJ;IlG_x=?wJ@?UHa9V}FfcMkC<;q0D$dN$1DR=Ppl1vT5Ky#O z`4?rT=9MIZ(y6VIAy`L6Zh@6^QEFmIeo;t%evYjY$N>sQdWI0^fTVp>OA=EOOA=iY zOHyr>j0}v7tqe@83{69f46KX{tc*>y4UDV|kksd=WTsUTQf&vy95#?B_sA?R$uFt| z3qf*JaB3lh2jS*qf>bLgD1bACRbn#43&n|LsVQJ@z@?Hi67$kiQ*4!>$rYw06H8Js zF|$Z9O|&%BHAyry(=|ynHr2IAG)UGpPqj2RvM^6IH#UYO1-R+O`DrEPiAAZ7>8W`o zwo2}qxdq^`QqTZLlqRZM$}>_yv0z|itZQJRiwH1tXn^TMylA5jDl=d{w$aB36Nmz& zLdK3u0U{RU;%3KXqYp0WK&2kUKv1beOAL(*T3Vr?Flq@&;X4{!qrpW|2#}1$&oIW?*38Ebxdd zW?zXV?mg+ru09ujyCoum zk=wH_dA~Sl{Q9r{D)#evsbMZ2DvWy?H|1w*O%7BjxFh??{{OG{LhqkcB${f}D~K#Q z_w!%UWtBgU$6Rj7t~~V0_rijv0|oCxd`@_V1xnnr3Orzyc~soKPrA@F%N$^>spkyGn>zw(rwr7k7 zB-C3c8A?3&6e|&5v13)7`j6%lM?|);WwS=-Kaq-uYPlPJuHTEr+)8PdRGIoGmTdJ%{~u&7)-<@6WXSeths0lY;VsNtJRY z;TQNGZOMK9weE3LhTIIzslxnsFU%6@`p(;{RIIeB!+~W*=?aJ6%(3i0j#

VDp_+ zIBx-O>ZUi$y(jnOpD`5J@2ILUBR}GHgyfv$i)${(_^;xctfX|%O7FgHbpD#R0_w_h z&m^b`2*2g8+T2}zJ0d%A-^JNVDw3Vw*smNqW1y+!_vlBj*Tq}McwFVbOV2)h>WJw| zuMg7E?-jhxs^2P`opG9@XHNdMzm8`nU-`S}klBhS zKY!Qjt2kS&57am*(`>2#?l_l|RaS40_ro>y327>R$DFc_jyHav%cL~<@lR>v)Xhgi zW*(n>Eq{heYI#cS!hIY6{?K<3nQHU$tYEgnDU0|ug)z432Ca{T=J$A(FTB<{gVE`B z{edcDCj-GLDXs#MYqmN}E!?-BvA*$mk?#bx-0^zIZ| z+hiJ7aoOZ;B8xo!n2G$ zk;MW}k4TBveO~gu|Mj$6vhROSW&FiH)ivdBz1oQdTrsRi^q4R6=HIqApZZ*WmBMrR zFF&gmtGsL5Z5(##7jMyq_tr-eWc25q*MAeOeTQZ4{BXAuuCHZRma<9(?_$o9d48nm z!X3eN&m~@;VoaOyzT$pfPvwPe)|EDy_trBcnY(dqVL!_x7?C|eu;+5es|+8l$*#w> zKJJ@n7_oGQ`LAUO{Lkjs2j42Z{`$dN$2s*HfhG6NqwY`e3bL9QQ>@^?lk)H2r`~6s zK?35ex3>wadh8E=u3kJxqw`nqnS@^Z>j%y)b}B`TF19HgA+sU(oc<>$1b0$n3)V=1%(8FEcI7D0?Wiv2dSV zW}1l8{=Z4*3NyVprP!BpMm{JHS*uu=E>oW|ZH4KxpHBPv=RfZKYJI%0=KO&tYy4#9 zhp3&Js;HDGqkrsmckTYh+&8yVU*6L{wTkN&dq~o|H5?+7V)9*jF7WFa zrg==4;DQhSk5+np>yP*Ne;{^aojYsE|C3xV;u54c`lZDh-QLpCvMQ;kGfJJ?guf`Z zXx;6tEH5S03+?oIXH5S6*X_ujDO&6yg?sD-1B+xT_C;#Xcs_ZSzs5n)ZFR0Y*J>(1 zImN5AB`y3zhPAQiM!yilxcL=(FaG?u=x)8?{r!fGLdWkeT&K06PvJ?0P^h?_=o*bH z){1={MvD~GpMP`-omm|8*>{cSlhos@yb>aIZ?vx~Dso?2dhKKTB|gh_wi^$Gtcdyl zh9j$YQroY-RhMEpZ)Oxde6J`8w)G1kV^t?M-&%khGnl=mni}j!}Sx;9#mvv4FO#sy2rPTlc literal 0 HcmV?d00001 diff --git a/res/graphics/tiles/torch.png b/res/graphics/tiles/torch.png new file mode 100644 index 0000000000000000000000000000000000000000..11852cb0b45ee5a437004d816ffb1733f3ecd9bb GIT binary patch literal 694 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfEt$^F0iMpz3I#>^X_+~x z3=A3*YbV-z9Cna78h^PA3g+~(>mTl_pvbd%tve0RTXjG}e&M(}vwy0?8^)+Q5 zJlKD9Rde^|b$siZ6n-#1di7|@3nkTm`kGrhK0eqX|NforyL*gIt52C2Phc>)Yh<)? z$&AzMyZ)}{P-sbP5u7|Ta{lBcCN{^f+t$?V?f$IuzPP?machFn0d*nuh`Sp)%sbM} z)>=KUeZ--CTI-|b#}-F%mAWUp9(|I2KIt&i`5uXzXKV^vB6PlPxO8|;PR5bTM*>4H zYsR10xu)peqcx$@Yl{8<9ZGPFk9=lz)^N#&4pk3?i0WLPlEkdd1Kk-ZTtIkch@rgnBS$dl7FWkPpKi%r@UxwCCMeEjXtMg=FU|>t~c6VX;4}uH! zE}zW6z`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0SlK;TMt?I2bzn4FdziW=|K#kch*{ z2@(khJh~obzwG%x@n@9rf8(H63~F8`i>*6k4mho1+bOwlMPEY1-}#d+BuKq5F?hu= z=~BbBGyi)wSjcY>NcdWw@FDKBoq=Kl&js1S>e)~0L)ZW9QMMMmckkJc`U5f##L8>7 z$Vf2qDX32jv}HNro3l7G;fHm?btUg#77X)UP1g6E*w~;J*dWKXTP$+YTZ>7u4sQbz x7L_krydu42b;L52kQ022Q7R__4HOs{!ov(67Q0+r!oa}5;OXk;vd$@?2>{OQG~oaM literal 0 HcmV?d00001 diff --git a/src/debug.rs b/src/debug.rs index 9d434e5..a6655f3 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -7,6 +7,7 @@ use crate::{ math::{px_per_frame_to_km_h, WorldPos}, res::Res, stringfmt::LengthDisp, + texture_atlas::AtlasBundle, tiles::tiledb_edit_ui::tiledb_edit_ui, }; @@ -87,6 +88,10 @@ fn debug_panel_ui( debug.tiledb_edit } }); + if ui.button("Reload graphics").clicked() { + res.atlas = AtlasBundle::new().unwrap(); + game.tile_db.update_rects(&res.atlas.rects); + } ui.separator(); egui::ScrollArea::vertical().show(ui, |ui| { gamedebug_core::for_each_imm(|info| match info { diff --git a/src/tiles.rs b/src/tiles.rs index dcb25de..53ca4b9 100644 --- a/src/tiles.rs +++ b/src/tiles.rs @@ -118,7 +118,11 @@ impl TileDb { pub(crate) fn update_rects(&mut self, rects: &RectMap) { for def in &mut self.db { if !def.graphic_name.is_empty() { - def.tex_rect = rects[&def.graphic_name]; + if let Some(rect) = rects.get(&def.graphic_name) { + def.tex_rect = *rect; + } else { + log::error!("Missing texture for {}", def.graphic_name); + } } } } diff --git a/tiles.dat b/tiles.dat index 883db8180abd1d6d3575ad7208a930cff33d2d1c..9e30cc01d1e5860e3a72637b345f80cbee2eab43 100644 GIT binary patch delta 139 zcma#K!^kvo);L%Py{t7 PC9|jms%8U&0;2)|+x$5c delta 9 Qcmcb^7{fGi%0#9p01=Y|P5=M^