From bffe4e088ad7261ebbd3b3d2cacdb4c332afb1e3 Mon Sep 17 00:00:00 2001 From: type-two Date: Sat, 25 Jul 2026 22:20:38 +1000 Subject: [PATCH] Fix two runtime-only bugs found on first live run: missing sidebar icons for the 4 facing-sheet units, and waxseed needing QuantizeFacingsFromSequence MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds tools/check_assets.py — check-yaml does NOT resolve sprite file paths, so a missing PNG only crashes at map load. This catches it statically. Co-Authored-By: Claude Opus 5 --- mods/vinylgod/rules/economy.yaml | 1 + .../sequences/assets/icon_boombike.png | Bin 0 -> 2332 bytes .../sequences/assets/icon_compressor.png | Bin 0 -> 3850 bytes .../sequences/assets/icon_crawler.png | Bin 0 -> 3477 bytes .../sequences/assets/icon_flyer45.png | Bin 0 -> 4868 bytes tools/check_assets.py | 28 ++++++++++++++++++ 6 files changed, 29 insertions(+) create mode 100644 mods/vinylgod/sequences/assets/icon_boombike.png create mode 100644 mods/vinylgod/sequences/assets/icon_compressor.png create mode 100644 mods/vinylgod/sequences/assets/icon_crawler.png create mode 100644 mods/vinylgod/sequences/assets/icon_flyer45.png create mode 100644 tools/check_assets.py diff --git a/mods/vinylgod/rules/economy.yaml b/mods/vinylgod/rules/economy.yaml index 6ed396b..eac3e02 100644 --- a/mods/vinylgod/rules/economy.yaml +++ b/mods/vinylgod/rules/economy.yaml @@ -268,6 +268,7 @@ garage: waxseed: BodyOrientation: + QuantizeFacingsFromSequence: RenderSprites: WithSpriteBody: Interactable: diff --git a/mods/vinylgod/sequences/assets/icon_boombike.png b/mods/vinylgod/sequences/assets/icon_boombike.png new file mode 100644 index 0000000000000000000000000000000000000000..08e4b8d399a04ab827ec0d43669b3199635e3357 GIT binary patch literal 2332 zcmV+%3FG#OP)bj$#SG!TYDcQm)Fd2I7fE{vz8Je?_7gcKA<@S!7kQ(tf{WAx~Wp0W<0?Vc)}s@ zghSv7hdjw2BM>u~s!p|eVXn4U%48Ram10T8pga8Hy`8UKR!R{8#Oc?+BN4y^Xh9+Y z7|Yql`fpx*O`B7=;>mucp9yPiE3RZq;M1 zrDSXFsxae#rs6&fEy;3fEL{%;)9Fi+kizI|)|og;=9$@;NCHeLIzN8#>CxQ$>Df-J zP49eo_qt8O5S>lRj696ypM@B?2qO(|{tDUNHY%3eTw1K3TB=9+b%tL>up*%vyA1&e0`1r+<5P8zTaVT@_A%r z8MDnp43q+~&AH*QT6b*vcOwcUE#1at3Nw#xzM2QAR&4G40jtG1YcA_ztktpU%7-|c> z&Mp$uM%#0-Xe~mLgBMmWtDIxW4?g*_Kd}Tvv6?+-b%$XbX3v+autk;~4P0Daf?Yq0 zgf)l^h|wto2_f0Ii)c?n4FbITkB{wu6h=WZ)*K+lXq%N%b=MDfeP8`k*?gmVewH?> zLKRF6+1Ubvph?4sJm_p0YUL_>jz{O_D_U{#_g>e(7su+^NsRzXUzq8floCRSn+wbH z7)>v5V)@718&)37jL@mT8Fmqx8B+B+8-u1G&>6#!4I(IJ7!#`ngrEpOq99bP06Ex& zbTUApj@+n&s<(rjDNt4}N?{8&DMZ2~(n@$e=j2|*e15%gU+ z!48V*5W2ApSt%jYy^G{%4U!10b`M&GscSM7Lyy^+ECQHWrbBCXQWDZPk@gX|Actz0 z_lsBxOPFaDF}st+9L{67A9Js_PYcy-?1oA1;e0E-j>}IPS5NS%rMc@wBvTcb&pL~> zywf;UFX_&PM`xWfs(FQ`5NJg}!!{8OM(7c+8MZi+chKqt2ktP~5kzqmC&|w4!L@Pt zDKRE^zE4`IBu+G1&7<{p&e~fnXRb`=O2${o1DK~TBJ1SATU%(uM^e(r#F~x0gxuaC zZ5$2O7+}jZMfyBVTm<|t99w?2IyYVW^>eSyynlEPw+{#O>X}n0*#zs`~tx;Uc?roxOB!DR~~Q|46twfk-w z_G#re_J-(55b&swQG$*uLaW&w>=yc4$WWrI)diftd<~gl7eV!caa34<>xZfMQB15J z&7EWd#A5}Koqpi;J321TLRL;AW&wZbL)Ff(v`vA%&wYOsPNxyT8ur7vW77d+&jGe= zZWr>|O)zwlBt~!GzdTI^BWmuUQe$lU9@ZY*hw=O`A#{koi(#a>>^SBfLx>|O4F*xM z-}j%JNCFn;XZGf1s;`d12(C9or{^AsI7u@09IDv>+Xw%`?Ym#&jhBv48jaw)xeRMP z%;#;(ww!BO$3nT3^FR7@y`wc(CXN6pWpNa#Bw>mZt<(1Iu;U!z=8eDbxuwfkz3>a1 zni&Dj2shU@_@leG4JoMG8~A9<02NVYZf+%fGvG``w?dT)nVb$>L!C2Rt?0 z!k_(7d;i|PymonEt`l=%V|Sl3trlsdCB*o|kQ|rcv;y{nAe06Y2E{5)%r`$+_g`OK zxIxJ3AU2%B!dWEs28^|@LEeDP^7PuRUDs^8o^k2C^IY3aBFmIU6vvafH|Tr52Tr8c zTC(Qj`o0$?mYvPSjv87E)v~@&j__sNg_#8UU=Ti?v1Q*f#F6WHaumjrwZ`b1+F&S|#^!-I|swnO73O#I&rIIcI*+$YikD=?<<)Lkzsl z=5=NbtvII{&rjygkkV%Xoc-@kIWaSnDGXy>1^De-zlWVO&}|;!erPBm;$!KYDE-W_ z5IzCOG27Rv41TQPkR~(3^@8$&+fV#lL13sfXCg9e%WLm8ul#2oL8mhE;Zd21ZHo*3 zhUDXMtO^12hta(2MMrix6rt;J9K;~4%*T$z2xiEKbB*uZDKR0)(9p5x`|NryLq|H@ zBzi>9clMMRz6s|vC)%UoXc!i0 z2UJwoy547>bEZ*eC<;hb5#zNIK`9Ok8jAF%tT_m}R5-~>9U5(;V+m5R%!PbtnGKkCm=YU@AlZ!rd$g(QeU z$nhL!05oKLWY&VXIA21D!|RtX-Y>YB3+n5i3#ZSGv2zjORx=|f*s3)e>((6B2nypR z5{YW<#_eSkDdsNx^qpQP5;NWU_Tz%zAL1<*iiC%E>?l2RC{_OAS>A{RV5SYN>}2(E z+jc$*2nzVep>10WPoy0VWc9ibG-l|~5!d>5>flsc`?QH+S-jP2V;IkI9CUScs~#IZ zq|enWm+qF`&UdYcZS^(Mz z@H{55mnrxB&pB;hKX3Ob9}FwJcjtC50V&YyX}w_bv^g2^s}sUFMgyitPAV!WDCh|x z&T?Gq6k#44J%3T==W7$>PoGv$YZBJxpFj6gus|T7^m@Ih=exnVhtHk~xKmv6U{S;< z7rjPp#q&I}ur?_Hwq>wkg26ul*qNTL)HW&_qQ^$wT)!c?Q`c_YensH>^b5Qdzj{p= zqif+4K3kb(1P@yc9tqEL5JJd(y+0*1CFMZ2RO%?&wmmsGBs4S^f%og)y=edLWdB7I zKFX=7c-Fl4^vOzOH4sAnjc~xE#jzQ&t3C}L(xX>POJluk`rM@%5fKsZoH=>CWaQ|v z-V!0yY}u5g%F4>>kK;JYw!sB{KiIzs4n$6!kvV(r{N63ijoMSE(jUxXL*PW!dKUil75k`ztTBJdhwv>px@3dN19)@|3!ojK06s!t&)YKyI=ynl!ug-qOE-oEA{B-WT{=&td z`8_GS?ElfTXDI?t5Cj7(6dcDH1Rml9HTt8d!i=mur~Ro%wG7J<;Smw}2s|2Bl%45c zT6pi_jAfscw{;KL)(Jzx$NT+fa^DD z-*gHa{9Z1@Fa%PR*`!-3JdP6#%d&)1N7sriJN7+Xym0=Y_d|MNckbL0*C|!x&fPl( zr5!$a*UQ`I5t?xA=W|u>eK?|5yDPxK)vaUcoqQ6-^SFc!HjMXGgolsrbNu_GvTnXz?-$*^W$olF zwQcu2K*wVkZfC_#_-K0OjHtQt=ZdFv(uOaJv$HM-m6Q~fUmN*x(Te4k15491>+R(w*p#$6V_R~vf#r?v!5A)Y z%G9Zuixw~J=i9BT&8Kl|GY=owBX3s)kfcC2dG?B%Vq62hJ(Ak1rKMSF4t0pJQ7lG& z9~+-^W7?ES16%5=7z|>dgR_iK>qwy0^T5Fd0<s9%Nct+O_zV@gYdbh!hd`{IL#jb91Zo?dn@|CF4r}wqSX!THwVnW&Vr~W_aN^ zowWT>Sy)K_?s`oFi{lU|n;2d!f(&}8@#-{ylT{l(c-42W~n*qyzES9KlHsN z2^VbZ1OymughJG-w2cmm*t}j@>$+)eT$!3CFpVAph~oeQhI}1xJSr)Sy2lKw@Mv-L z#uEgA>2!MC{OE;^jg3t*vqE2WCiI;p;M=t!f)s?~1YLAD=iTp*9m*oDWH`?;h7f1K ziLjd#zyls27r_Yvfnn{X_HbMB_8a%^-Rpt;-coRXc}IxnIUF@Y&i-)BqrR?IFA_3c2lfM$k@z$PW>ijjf$B zdcjg(THDMs403yD@cn-eG`<tRlo0vX*dwZ>1wKAXOP=VNfd;r^H zQ5+{&RIGe7Wll!;=X#D(Q~5bgbp7uJloV$ctvByn0i}!R?L!Gz?=@hEI~mBMM+Sdk+KxM$I6G zx3-cH&zo4F*Xwwlx)HEK2hgdr6lnDfsC`%itVk{J^ymmgVhKi38bE0&Ml2B{w$P0U zA6NbO@uMy;t2m@~;<>Gzlu)ZwtXM3T z?AWy(6N@EkBWB}%=mN~(5#N{<@YUIuDos^)si-J_H6{Leq-&73}?vr471 zDY~2E?(O4*Icdttx*8=ne(_Xp__V=X!TBssNb6zs^ZI8>rBYg_sPbGedm4T{ulSKv z<}9kHcuGx}`0>DLGiGHXZb6nNmC9-lrlr=895tf1PNzf7QxsvjH=qC>`)YHd{r$(k zsV7XF7PNlj#(Snxl$<&5pPA#wg!gZ1sMdOVdWg>aaQfzgc?qB4$B!H-qbN#Dk^+50eXVQk!YJG8c_oi+>|~;f z@(SIOWuMA}Lc(sL&Qs#X4b>qbL0z9bsn8}RZF2mxYVkixf)K}9j%D$|?|+!RX8l(| zGN~Qd`sHUCmooCmv_pr3?In!P#nnyt879Ti{gNmKiEaraTH)LeE>L0#UBi>3QhwuccU31XHk zyLuu$eUQZuU}P3V0rO@9LkH(fkB;l$*3rpJQT+fsd{9hJnLL5azjY^X&aBz~=JBn) zofjXWo0TAS=un-U@*ONK{k3ClO(j2f<~Yn+LMRgxHw6lHk0YgLYg_Oc5rd83LG+poHcp4 z?A_j8a9PYJ*H4~26-tt%o~CJmB^X{S5kjVGY*sKN6xawKKB)szM=wY-Y`s>imAnd& zVJ^oZ?V)Qky#B201KSfbo<4aHcH-M|YG80k>9~oJ z{c)1K9lJE9C&Mr(VQTZwSdjlCP(z1@XGPCnBuCxk)P1`$^Ka!F`u;0c#AmKb+&v&S zFSJ3UYP7dh(U_&FFxpJ&&_OX`Y-H*2)NNs=Tpe?A?(l49N*XT@?dQIA%a*HKk~R-| zF@^oV*GE|%2VFb4KS?`!!r9Z^RdV!D>a`8)*P#cpDBnOX1p5UI%_+H)-GkDqtc?Zr z8&bea#QdDYAU4)E4PS2BS{5;8l>djrhL#rJEAHMFC74Zm@Q@ML*REUdw{Lgyz3;v~ zCO0KI=Ipc8Ke}o+1z;G)qZ>h7;MU2#%0Fn}lk&31c7Pzc55`2cbar;KUA|ia?zEO+@-P2V z{K=xZURtf%#&RO$F$DfqB=@@D|C288w-pH9a)ID27x-5n;IEed1rVh3i1n)V%K!iX M07*qoM6N<$g1)3_wEzGB literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_crawler.png b/mods/vinylgod/sequences/assets/icon_crawler.png new file mode 100644 index 0000000000000000000000000000000000000000..e17fdbfa18e554450666424e9de042d6a3972beb GIT binary patch literal 3477 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 Dv(vBi literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_flyer45.png b/mods/vinylgod/sequences/assets/icon_flyer45.png new file mode 100644 index 0000000000000000000000000000000000000000..05225bb49c7a825c747853accd1b863b11161e27 GIT binary patch literal 4868 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