From 9d808ba9910cff4a030233e30170f3b8c1b4b36c Mon Sep 17 00:00:00 2001 From: Alexey Usov Date: Sat, 8 Apr 2023 01:08:48 +0700 Subject: [PATCH] products.json, product id, next tier --- mod/build/DataExtractor/DataExtractor.dll | Bin 62464 -> 54784 bytes mod/build/DataExtractor/DataExtractor.pdb | Bin 28480 -> 0 bytes mod/src/DataExtractor.cs | 143 ++++++++++++++++++---- 3 files changed, 116 insertions(+), 27 deletions(-) delete mode 100644 mod/build/DataExtractor/DataExtractor.pdb diff --git a/mod/build/DataExtractor/DataExtractor.dll b/mod/build/DataExtractor/DataExtractor.dll index f9187a9c4732094d9a4b2cf34d48aee555bb3e42..4913d97d35f0eb3a41651574c1e8c1ead5ba394f 100644 GIT binary patch literal 54784 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 Qhy5S*_y2eE|0xUnKN54udjJ3c literal 62464 zcmeIbdth8e^#?wiY`4kg?k0D)O`AT`7o<&F`h*l(pzj9yP9GGCVVi8*rAap3O=v^f zr2#>zfbvoi5X(bEtyp;rhzN*?Am9r`6hsjeL=+SRF2Bz?GxyHj-Mbq={r&#m3tO8?Z8~oj+L~J1zWOIagnCyxd zjjcos5bNLor>zk}a#{3|l3^*-?3@%FGAUR+>6aySSeKv>88H2I1BuRHk~Rs)Q)Fr$ zYDtAjB09}4cA!^OGDR9z3mc@FKSmjx)_lXtEV%3*`RguMNB9@WGN)juS z#k!PO;nXe2vKHVD;#cPKKi)F%`hV#ot^ZHaeYRo$1kQlm@eEA8Pvi9G^8bTzc7CLB z4lX5s$+6zY>b(d?CZZD$U;Xc4yfOao?Rxe{@`b2B*I&ts|D9D9 z?3)w+8+*)A7^cU@aSGT#Qr-@E4)L==_YkqN_n7yImA%ItJ^-xjJ*Jsh*?Y_vh!xE5 z_F>|?H=2(H4y+%=yLY_TvB2K^F1q$GM13GP_{6~RGTD{H&o1GwD3E}=<(+9hC_uMD(ctd08IuoIk4tJ zob`MYsxyPpT3t1g>zOemgAutILo-9O7|}9emPO}RM;A1#0#MEQ=7Q^}W^^HD(o54Y z7uMCF3JzqVKDtQvxmcKsdWS=@X9Oi9so7CTqD$*nMV8i$CUTi5F_-n$l6(v$W06?Z zX|&JNhHM)vt?Mk6nTC(sg3#IUYsdPruHLl4c= zJ9JHEvO^EcOmXPpE_y^}s?Cp<3$r}BygIs~p_SHnxw+yxYM=ciy3$$bm2#nR$xEXm(Cf_A<~nT6)<;j$tG7v*C-u%kW4Wt$ z3RdqFxq6$idYg-^-sZxqcdEI`Jk?&kQ=HXPU3#rvYA4LWiMdJJgpd@7o@@>Gjwm%vdjCUEX@MVm(^rdc?6F@gnOHFT5UG%`N6u zdp%m6^-x{*vmR2*D@tzBma9Yb3q)JYfZ0-PrB3^BE7gpZYBrnAPhh1E@k;Hdl?v$o za#w1Iy;5_W6)}WqM7LE(w>KO^E3(bp?pl$Avmyz(BG{Dcqo?Z?*&)o+dyn>5k#?*| zyIheDtVlKby2lfUwwVLXwqgsB z_;3rc9SgDD+-`2eLVTAO;s7m#>vmG^LZt44!te`QdDlw4g~GKHh77!R!q8MrIngy` zdaTz@7{<4uuC1GkN!86mBJ>J`hFyr05$%1)LU29PLo&xX^w7-l4qcO(Z`0ARFvHQ# z>gdjf;k53Z=FaP=ZZzdAd8%#!w3E0mS07F54!eYz?!^fwxMvY1`s{KBmi!F4gbu$yglZb(!9Nnd3&XK2aqs%+hHgBVCMws^mn~qiqvnqOab@Uu*(zDHTq)9*NnDmp))upFN&&xIGr(n`g6*K84 zKb%R=fl1FX&oR$dCQXe-IPr`#C(1ZuhV)P<&?JcM8EDL57vjQ;0?l%mvTg;f3p0jf za13@chGte}Gioxcvl!8cFeA~=R7Wpp=)jrF{ET_Qb<|Y!LXpNLRv>zjc~M|5meDWF zi+U-SS5p_(twB3UT;tS7KWl!rcP*8gkVL;4`Knb-O)#XRpHo85E2rqiDKya;y~I|+ zr!~Re_0)`gWfQ&BE!(q!6mVMfz7mUGmZ!YuB&xBAn!GV`qg4$ktC3yKr?=?mW%dP` zeNkpt$m~lpyHaLX3DtV<$uxjdkkoCahQC%nKJvA?Q;EDum^XP(^%4P{Pe5nN&s=-P z)pnbEXzF{KDbaEK>p;cVB`UrFRD7cdD!x$|72hClHTFJLyw1GH>3uKuG{3uy zAncEP#k|N0;Bq~X-iqexwjmLb1H>Fg%K_npc=#GOskRGOyP4%r9%2J{1c@Z!k^shGNm- zLYMOwxvstd(cuE~0`oJ74xf7OgAaz=0^06EJidc%xLsm)zO<9b`xH|W!^0D z`fZWMU5r5Vka;Mu7gr&`>!DuCC0@TR@rqjm_0jK`-|1~btDbnhMG3u~_*RM6+iWEd zyx#7X^@rCx@{|kX^-hVxyUas8h`qSn^-I=wWp=mB?vdHOGW(uTUG%nN$}Z6U2%!Cu z1nncje8hXcw+ZOvf%ZPTO;6DN7@+;J1nr}6&_|1a_R+$i{fT*>`4bzoKh6W~_tmVD z9kh^c(B7XVVbJ~{i^ZUQAdBS%+6N=|yFvSqc}Rm6Vc+jA!>#<0ADD-%0B)jXf%XAn zBA{i1_CXWP^-?PuUtmx(njt~^L-YIQ4{gxiV%}=rX5MbzVcu!N4|>T3%@v&E~g&+`Vq(CbNKw^AbL0bU`^fNSK47 zk5xw>Z%E+Yl=+zXxJ2$xVI2w5pGuHoR`t;*%qMzx(%O1$s!uARx6?i)LHaXW$pfT6 zcgy+%=`Zq>3xo8R5_P|_tKb?Y*qcV8H}t2a$}=+iwalKC*>7a_oKW?9yHM2y+UEh< z=Ot)g5atWs^Z%KEP9A7~Yq#kM+TR1Tzn7qW5ukms2xwm{4B9`Kzcv40gZB5%`SVHh zDf4IM&&^+$zchbkK5af@{@Q%j{EhjX`CIL!ylB!@e+O6nT`^bv>4$UG$Kk4vn~$51 z!BsDK|AP;P*qcl@tg1Je=wM+Ej{dPa`clJvw5R;hd`WudpG0~T?I|ytF9-Hk0&Bv2 zxtDV3u78s5icO|I`il8V?-^*-(_R0pgx<^b7wN9A+Dabo`kGtTpS%7wPr0zWzApXk zZ>mai7p9Qou5U<{zsu|&GJ8{IZ^`VRLe=lxo#n1pm>x^1pJs(9XScP&K9IsPDD$?* zt3v6s3qRmGEdI;x$IFGSa0zv`%?eS@u55)%sk0KxpuDh4EBQDKKIcXae~4j){itsK z%Q7feeyO?{k2+H>aCV01+qNZpAjsO6-pP{izVz=b7Vk^%X0g2XrS~H5xc8;^&6l0t z_u`(O-(AM7C4c1K=F3(9pW|fhOYai1Hg{io&qQ;*)QZL>7}Shr$bHE&-!?62ixTtC z=3mTL&DYGony;IGGv6@(ZvMl3(|pVPr}-~k&wN|cjB_je0anK}Erar6c>mLf!~09X z`%C6a<{yFgBe6A&UVb4yNTch-GqD=iGd(1O`yPrOn%U#fHJQB*JuH)P=;4{O9C}1% zpF@w#^f~mX%-Ie-x;%4^E(9~5)P;)7xw>Fv&eMfZ=2N;5&YZ6cm6`pzP?h<#E|{6m z=t3lOfi6Td7wW>G%tg8|IP+OusLp&&7lvdm)`g*&OLU`4ow-66YBOKbg)x~cbzyAgDqR?txmp*-XTGcp6EfH6!eN=O=)&Qd z1G-R`xmFh@X0FqPNtx?)p+0kiE=5t*BGVOr+vx-dQS4PBU# z`KB(+%pBB(S($I?!tBh=x^QIX+q!U6=8!HlWWJ*db27K+!qJ&qb>W!IZMrZwbGt6g z%iN(0$7b%-h2t`J>B8}u@9M(*%-y=MAajo{EX>@i3yU(}(}l&E`*dMR=KH#^G;_Z$ zEX({r7aB7U=)wt^2X*1Z%tLk|S}n|KD?9-47+C;W!%+ihTOp2R5aT+6yA>V?(mr5X z29@f5h*s#K%6cnY#_E*zK1|#nA+f@EY!;1Z?jy_{M%)mm)zmiM-?751W@!!r?-d3hw__xH7v=^2a-Q~xnie>__~qSd3C9Hhy?nyd!tHfQfo(Uv{{Tj3E4>&j%0tFQxr)piV(0D|)xZkKa%|pLPK%7nkp=TSc@C;4P)Z{Ep;(>Qt_ef11rO5`6 zYTmuiz*O!)b_`?`$S7BVY_3$Ntbm!wHh>t{$qQt2WOZ5v?-(`@5{hAzs~C1H)qz)2 zUMz;Oyl@OV4%ID#24ERPJMiJIWDG+u(hX>>EkiD|Tur$~WO~aWt6K&c+%m}4mO*B= z46?9gkZ~=8>?*s{Skdm42fDgSP6ULxnjs`5UmU@bMUd0t}JK=a@SmB(+SrH((Y(BIN}< zVIdS0U>0dzFTgC$7WWI7B_8@k0JD?^A_22ZlZ~1@L6awHa=9i~XmTY;HSb>7J_|5w zAS1v~t^l)Es#8|LOk^7XhU?@3W|gc?tKbcoCP)Y{lqDoAnBK#3m>x;GC>=y?}E{wzyy5Z1&JE0-RH6AQCvA&}6eF zPt#;flUp>|qRCc}YTh~bjIHo?$Ot%;E8rxgI%NgSM7Du_xlSH%;<7rehBt6dhlGGb zxdP4(ssrFqUJN)aFASVERJRNofMpQv0EfGBfFs?2*4i@UGRxJJYec5E46?dqkijj3 zY;752X3HQ8TLu}|GRUs7J8$4@g`9vxc~Ri7=k^C2_IL)4h1*xO(-4P%!;&oE;22vU z9VX0S$=@>`+M(Gnu#|>NWb#Gkc7P-n<;g!VD+AIBaaz4r11Cvr)+^u13a7Kh{Q|4YL%#^Hx}mOsb%rK)X>zwFdo+2bCVN3DWAwg+ z3A)d1XF*12qFkYApH!!;fbGa&Fgn-CL(?8votDTOO?{9MnkZLjI-BYMO_Ucy6Uz&u z=^RwI3>tuC5bdCeyK>MZeS;jpGUVFJC6o(8_O=W%wPlc%ErU#H8DvGvkiI}Bw+ynj z?9Lladm$$@QC<{H?9Tn6iDAHKdPSj$ID{saWT6R{#r4tQ!W^Fb6NBWF&}{ew-%=tn z`7(3Q1xYiY-22>i9wbs;z!N?N1%;yXwXWCpvp-whFG@b`p&XsJc*B{WDknJXhtkx=DwWi?rTfSnmt0$7waDY~MorEZE8>p9491Zr!V-&Svg? zjcb09Yf@VGS1{^c*9w25@*AvmF*PK&)JrsZDb+2wW~rTc0;}%tT>lEzq;w90(z!Qb zg}=liN>iUf1+~WiKs61&Ufiz;UXaGb>fQt;J=ik1(hb>__7EodzS;%d+4`bNYo)76sWeE& zAulhseitmlq%DJ*wG65!Z&m!0J0l-(s&~=APeHXtzRuneM|@XK8} z;a3I~X;T?AWNeU#mp~?XT82cX#GQ0|!hvNF!mJR%!}SE9>{&-*%OK0Edrp^wq)<$` z9g0_bT|#p#q)=QKV(df(F0MJca*)0Rx1H$7LmUdyEXfMeQ3}!{ggGMlFLspcpxN-0 zpC(9T@@?i`50Y4vCyU;?zX2LjuYlit6$&aa-KcfFg7w$3#r+2Bn>_T31naLm>L2b7 z{WqYm0^v6`c~Fzz(&WvW{I(_!fmFuHy9a+eWQ0M=6$bB+>Xa3*B^eMt$aV5C_#IiD zmdqQ2cS1rKq+DU}E~*0zQeF&$EH8|~@1nY8&;TrhXa|GbmBgScCf~w}>|64~qFcd0 zRm#-;_`5->`|(7o`|+IMu1DQF^V$n&;eLEJZxHc9vRjf^feE?yIez(^blj4a6tj4)w+bfhpxCf{Mtco3Qmqe^K)L?-{u+=oCCi*oPN>klE3@;zfv zC2v0qKMVyG5Pzg~*FiV;8t;*8alZla#~%7c0^*~Ndh%VK+;CzPKE3_~Vigb{)8ylt z{HZ3N(BzYvd3J0SiF z5(d{yjVbFdEtQg460iO4Zt#pcA&>yIfoMIE94NCA$>tExm-xOK4f*v zAcI>5+1fJ5%$7kGwhS_^WsqHEcN%BxVhU_Ohn&Dhxed0(USKQa*2O@^=wOgNr7jVP zLm*>G7RV5(>!YKDIV$-+d)%*~*$`%s5t+1@`z%PB5ar$=`wb*gUcfP)gMtFtZ?&!$ z$bOeC?iXawd*~Md*$Xrfc{%laO}^+f;(hby4_ft)ntVxAEiqXKJ`n>`baR^i_k)U#p9?{X7tW}?)RTI?42y;yG0|wRKP``e=Wl)|J zKDr`(1EerV^RKs929-QLBKOx_%-SN#_M*ssXa-Y0Lsul!Ee)T$m%~TT&NXm!te(L* zO^#QS8A6kpAj}C#ACLU+XpJUAd9s9A{{Sh>acVMD`f!sOZy5!Zoyl-NdNNd`$uL_@ zW}Is>hv^v{uE{zznV~e9iNc(iEaj2EiPmT`lqdbndJCj54_A|+(ubQ&on;hMb|%C9 z=*du#Cc|tsnZsR^nWSe>uVzp~Gng#Q$;kmc+<&5phL`zHACbubbN>aBAVj%$7=IfQ zDfgV76@CW_DvbYI>w1OpceBO)hVl12^oxY?_h}$9j9Z%gz-h!gjMI-Xs#-oxmT0n6 zlYWrO71$N=VUk~+V)G?Ro=y7fEC$?2C`dK5hFxtT^Tb>W^h`)!M;RGwczTZ zuACJrxd}=q;}=9~@xTs9+c7^s(R zBc}-@gFLxGARBPW0-F$7SHaxDq=&~ktC8brDWs`iQ8xzf1w)7%A{qbkj};yY($z~% zc5xVrSa)hgqSedW>i~aTmk(zpYQQpxmaA(S)P|db_IMNqb&bcekm{Ht)pc22(2ihL zGJ$0f?RXAP+`z<-{udrF`)yR3!m6Gj#PFmHY3NTz8wx3wA)|>58Zs0R!YzZqjc4gO zC2->V3Y-#>@r4Uc3BS^T^$6Xk?J~&eU_iMX;{UjFJd=yA^kCGfznsQVkH;LHafsh~ zp85*~=wb&Hj`OsM99^dFITDBV5tc}!tL;Z~ z6}0qtUX)Y0xN^y8B`kv$!7`-%$-sDQl~b}i9#i9#>?*tShSNgG2~Lz3g;OC1E(RyY z0mJEKbrDS*f)h)!;535Zbc8UENJberjnHg(2MHbvq_GWR?g=1?MY%VePUI>iFW?x< zAyRN!p>@6Bv@%=VFPv6+=of+0Y8r@y(;7{#)nt<<*J*OSCO2quBS>YJyzS^@$Ou1_ zEBu@y)hR1rCbA9i!*%lTbCRsiRwm2k{N{-j-V6o859JC!r&1l@hw@_hVR>Qvd;--i zg9dM5eb4vbtrE!SN_8r(|2pAiLvfHBQN{vO915 zY=WHdLwQmB6!O?&_+iIq{QOJdhd6{EmSo{)B;jY8FsCI4Gg6wNsm^#rCaaly8c3QD z<=*&-K_cY^9AgU<6n#=K11j#y0hRO(asWJ9%Bfspxp1@|mO)El8FCfKlz32$Q?k2dkje4* zET`0+H>i@35U40G3aUbGTnto<1_qUV#v=}aiX~Z~8bzR*F3jo4Aq<~xXev+7Y5a*Q5{bJaZ0oUD(=bwmGljA06bgDsa#^YaI_wHmXuSu3S>$= z=*lVC-7?7JmO<8*-FbuRT*wJjloth6AvZ1tDn>&VsE9+LVo4ULMiZ!J2y;eq7{li? z&{QAv6PX;&+zUX`gedn0)rF8qc>%|`2nq^RpVhivp!!_4xL;6R?4e%-RF^pF$q_s` zOc5SSspof-FNMAW;boe}sh_Spi#;0WoB* zlLxXd$?CLJ-XQxjBm^?b709lkIsh5v#X!dL!XWz!s^jTYPKkCv#$7oelfFU@f#(Q0 zl}j!cQmzkK9gh=oO18EPGP7lng)M`OYZ+u$*_}7Yu7sRGMtM{rhAY*he$m|dL zi9;Y`NfyXz31l;cIWswuJ?;QB8@Bjq^h72{G51=KB7HdDIKB=vp36ZR*o#ld=z%U0 zdt>i zM|A)z%8S8@<%MB&AFAVVGERwhV8vZYSh+s0_zo+wyVSB{-NFn?lQE3k`GWqfn%@Gx z6~0X~TA6XXX2ikB`58(pdVY_)e}y-s=o&FFt|C^MKhre2|Uj0cEf3 z@qs#e;Ht zM>P3kO+Kp0pJ?(iO+F4%*&^>Lzb7H1C`Gx7Qcp>B$_ki{>;=$qoxCXZQ(2u>#(VSs z86*^?C|6PH=TrxdPkFH@#qz>Y>KCYv$MHBN+KE!!m9zOv*P!*sBXOL{6_)EJmxHWs z8DwzFAX{4onb|VP!g%_RQ?je@`b9AH91TS7^1s#O?=<dqTKFF`{1p}Z)53VCcX z{IKIQe(Zax#3B5!Bnv;VSbg+JVIG-0jFIvxG}Ymm$mHS7eGQ~YPvXP#UqR#fN~D3k z!?E|HKw@uLz0S%cFW@hKgGj;Z4Xx`1tG{Q9`-Rm%JoJme>P;Gmgw!ofqQyrfDJVt3NqNP!>SQ1SH89WussRV^|b@E_5 zlgTOhEuNp^l)Tk4$Wieu5~t*za@BO-mO&lrvfAhepnnQflot(DglJC}AFzoW!0}fdQ$Fp2%c9a}AI*H_E*ul00vdya3ebD*`GaRf3dl zF|KmIGgFl(xe%SFDKlVmX9KsJvvhXv3@Y5j7hU8>M${1)iP;|#LOf!?MNw;^=S>{USK3qk%{qP1NKh zP1b92vL>f!a;hee0IBBPdj#y`J}}ROjBrG`!qF_LPFVpnk!@gKu9JtOX|g)4hWE}s z8xq11M5f1c zZk&?A@e~}VWM(|q#wi)sGRUs7J8v9Khn#Rkxs4;w?{N0#xyA6rKwv!mNnLmnhw#Lb zEIi@sv-QzA!km+w#xQAsWJ>at zZH4C&DLr`}k-iGz9t%?TuxBQE@cQFHR`@urG>eqdwD9&HEyC~K>6Yhf&Do@x^Xsq+ zwB|xhF4E*;O)dfH9J8$OQWW8sJl7+s=~~(va91qEsRFkW*S%JW0nXt*m9xqFM&6r?j~48xQD!tIO)#xCTtZE9G(=1s(`5 zgp6W1Wq>hGKdW#`9KtC}BukVv_=^M=r5*9IZWbspsl1>D_gsBkP^VqdJWkAx^7L)_Nyt zy<=JLi};|`3UTVb?AfICj$=KJR3S?1jt3(-pSdS%wFS)BLW~fn)u-rgPtke{i|K84 z^!6+wJ@*t(b!5GZA}Vaq|uE@k7?L>+$X1m6{D z25BCR2VamE@JIZGCV;-svKRA5_8#`f@2FoKB@X!`OQb)hu0;Eue^Bok2=IqH&7(Dn zivK~qxyqsOc}{(Fo-pSnm+&gIpx1^=*n5dgE@f^jNU|j5$z{yi3epO3TD{p>R@U%# zRu=U((mFYthUA^#=Fy*8hq2>m-kgiy;iDca5Z}?8!6RZLec}W80|~?-Be6sosoW@F zq}dRVk>-9_BOR-ZgwM6=qsIyJxa5gE_igC40W-mnh)gbL?skx5B+5Ne&yqbWpxj$q zc-x}tQfVBNa_*VP*7vOZFm13>!8UqV@u0uJVCU5J`&@DktNYbh)33%_XgKR#hoAn$ z+9ohV^H|HE+*w;TB(Lp_^ra|#2bVaswk%O=+f-<6`_$SVTYPO(2MRUtifX{@r-5;y z0^YR>0`ji<;tfm^^G5{WC_>1l-*GWAH6J;#c4g zD7g6n{8acjjBz3m>*n8%GM&p`9F)!P#Lp>=!rU&x$GvX-;7}pDpr09@&3_V)KK&eX zz5!PXbJ4$TpV_z$J%Dz8iOu*(#Ya($0^f&rMkA)7E9bQpWzrvr+i!0DRp68UYVh6q zUqJaL=pR2dTYn$;<`zFYqZl)nf4i>7Dm-v$0C=>H0QxBe)6&+lE#tL7;5jZxCP zX#4}g@5b8h0pG3v0Lm%o&xR3Jxb(jX{wv^L4!&FeHz?DGb=Mvz#A28JL*Ubu*T2Dc z>(4)4`rN-3Wb01?e**MZE!6rn&dX8mK^|U|&EJAD@t@7%AAvy-|7*zYeyN@IMj`OE zAF=lYA@DOn&Z}&R5TAn`zIbBxc-}z$55WH$_;x!~>8Ry${I9Ld)~^Mh#=m$~w*Cbu ze;WgsyEa?D8~oAGzYKhL`_H0G{h;JfvQZ;<18@}z8iKln7BiMR#g z*6&1_Fn`$QZ2e8(lYRz#xBf#Y)B1j{Ya4U+Wb4lbe?9uW7<_v?D2mWtw2l0Bjl<2=|T-v()HlmkORIy3#$HP=kNb(ukDsSF`zwwxWdp zIPE~WwNLtgyKn4ze!FkS06Fu=jwb)2U!nQ4!pEOKc35W&Jpc2x?f=((V;8skF7a3* z{v)z3&p_J7zU3pyCv$;$;z1ONT zj!L2oZ*19k4Z)99&?_LG4*qUXK)lWAH-cXqR4G2d=mX-u;58Ki@$j&wP*5x@dlWjG zBS~C~{>^s|F6Fu-ml{DaB_OJU;sW#CVKc=GSmU7Rt9*CZF^az3+#Xn{=tsK9i{YGc@B> z_YMt;UQU}hZ3u^3daY1cTzX z%EyKT#U+&&A|1`?(UsK8u<+9rL9w{%x}jn5fRAQ<8s-}o|MHC*@+&b4w!-*Fu0RXz zBT2dn76^(Hp%WC{oE}lxhB1$=8i&@dt^CH2h&WL77JAtqy3`1Z_s~vIEFJL_#=i+^ zSS%{J6n}?MwtT=mY(!A}+Z5HKePrQ?c&zd*v`|`g#o&l|5bcD;LEj>@@I;te7>6;0 z#jn8$h@Zf=+t|)Kl;wX=K_eVkbEy#!m-%RAj|tv8^l&wc^Ngnk->oz^@Lc{d;8NpZ z#hEkc(LrHxOq5#K3V#TS^GA?Zd=8$2KW~Ip2#cSf{eZZ;qA3&>_g7zPM8t}+jlqCe z5Nrws#QSBGK2?1X=?_Ab-aUfSqsl4W8)^zg#NC572JiL_fOFsHyBP63DC#So8!_5< z4(uEj`vzT!F~3sv?y!J3wxkI^J)1y`y3cnDc8U9Z_0Yf1cOGyO5M#>61@8831?P3& zo$&M5ee@9O>%P%|!0Wyk02CC@!awi!J;J@bX*R)n3u?%pr`M3bU5FWdAZ{5!nt#PA zj4mNMAifK`9quFg2u|D`=$#Se#*B~OM;g5sYM@~)}D6|m$GV;m6i?69W>e}?^mF#I(9f-sMNzACX} z(E73(E|sD*4U!r>GB-p}sRf{~!5oHi={$so8c~i&Lb8((AZkQNjN;Olxl|>_aOrnk zii+`EszrY=lsKGAF)r00uHd1*z)O`!iZ=&P>H{4RM+RO&x~lp$q@SyP1L>8VMoQk! z;gpw={*Ov?`4{A?|u z@Y_?Ta_PLG8{pwSahWWMuh-Bm2xE-E>pbBb7QhANWn*P&$grBKh?qN0mVOD%YH_D3 z9U3O8hKgz9rR>$3nyO*q=c?2-Y)sWCasC7;I}fdl6O#{A#cz3K?@wK`e)(y-&JjuzjZC`*&k%0jV@L;Xv>nS)nUEfp_+n`AHf23K#W zIzjwJm5!`9wdzFiS1z3=W<=vvE5sXIx_D^MpsuP_V#*1rxo4It3xE7il#nY;EFEmdQ zO}A^!O=2^b&cT}RuG%D?R;8`ttg4em(;Zs#6tS60=ZLW-yQ@wSPpi_OO3$j=3^ku< z!&P00xCf^IpO}cKQ^K55@j4=hU!04$H9$Op6I?)C3Y~#sKdwZ}L^(9e#TlT3;w_{V zq6$(&3`eby7z$2Uti+k9QoKD__i_o&6{R9gXC-kNQoHwcOuvqEj6D)LDr&P-e2YgS zbtL~`^j<2yi`3830m3cC<^$&-lbjjG;tvehp5ExQcsk`Y)#?VkBm{ z0k`i>qya?L4cJR3BCWzbCgMz&{L&wW28;Pj8=Q_Qy{e`je(`uFLrPraI z`%6pF!d&J*Qu=-H7cu>e?`@2M?DK=*lcl{QeiVG6^wGfM!B;qagVT37-H%y66 zeE!L04Z&wh7x^AXx}cQOIsV6k>tvgyZwunQRPuOmGjq!QvC@GRH=%`!igN#@LkA*V z2~N5HY|vMLAE{_%&5Omufr%BSe_74ciW>jkA?F5b{5O`(tQg~eVORswDaO2tCrhSP zEU0+Lcg>)s74!Ye1~0E@gUy>Oy4dDjY}*?D7cjzie7`MERoq{4ZfJLfucSSc0ey1K z`AE;KxfJQcfiG9=fwvs2_@sEE;+~2Nn7)kZa{o*pjc_`~c@>YXvE-UTFIO~{P@Coc zvJgrCi1d1vt|=Kg^1X_k7~8qQIsR(~`HXV^#6bfqzRA)}B{d@l<7Zl~88jRzwGi`< z6a$g2MlUgc8ok8)i~ZE*gAqzYoF3q`uY@?4LBHHz6Q%Sy<{UGS=oHiY%ZR>|>E&GO ztE^dqF_il^Ra3f!$NVYg>|$vRufjy`_gv;oWSwQhN&f}r{Fz(3gVWcU^NvB%!@2j( z+~e6iwiB3stem8`FfQHka~ZHYYk-nr_ermb**tLukr!$>fqVN0r>FoNIx-fu(7kGapYp-ejjX@ z{1ij_{2e&+{)VN0VCnsk`ixhZ^Coj1!FV1v-eZp6M{(&%a9%L>`+bN-PeT7s_%qDZ z{vehN0~KWF+kO#gxDIlj+Eb_HK$&YR4c@1t3~#~gnNjlU7CT^nxX z_+yl?ZJ9rU>G4c&g3d3(lbJJ%IWchF2*6GaA17pP8x0HX6Cmt ze@@AxfhCnaz8lNtRrL7oHr_*eopB;K$5u}Y_4wu^a`yOIkhXEHF0R$*dwkfo%06Gq z&^Dw`1?E-s`F56v@OSd=i|(v^#!vgvn9_~Wm7>qLv7!q)^EquAPWrzdzMx_cxAsYH zZ9m5Lxyt>%hhWeBzFP;L8@zy}m$CF>-?Jkp;V&qSFeq&@4pv_5s~Aq{Un(g5GW1{Y z)1Ll<-!#5c`G)_Y@&@q^BLDWFS^99`N0q(-bB8}(`Hr9V(5X1_Tv9a^pLAY{bh!8~ z(sAN}suoc%LgqP~UdQPJoW96usgI=NI9ySyRrml8X=A=Kd%a(pN2k-^hYBu zsv>SF&Nd}DKb3$QC???3oTb5&gBJ#`41PU$SMd4Z>p?46Td|=cQE`36Efo(}JW=tx zihooX#uQ_NkudsoLxDuazo`OD$lC?ROMBb*H`-YVJca#9XO%k0@ZmvSJ{jc9liWKZ%MD9 zn`U^qd6&|Syd2&})+4+4m1P3R2jX3ZcRAkps=AmhCIn}T^YOkM@9Xit1@B+u{R-Z1 z<2|fmws;2b*YFM)v+)Pa4*K@seGT5X;Qbihui`x~bkMg3@6++l;C%_+H{tz#yx+q+ z8b0Vd0`DbwpNe-E-k-tyM!dg=_pkB(C*Gk-=;6H@?;gBAUpZU+3ZIbRgX{RVM7k@U zS`_b$ceKVkS`zW}v0Iv(r%w|rVu_Bfct@9*Np0&v>$*x4py6K{+J>J%Z8>36QQysCEI5-PZ ziPmjIEbiEr=pbTUs=H+e@+IBzwso-%B3HGS6^}2ArOt@c)FED&OtzuRb;(^^#0 zQ?V{)EZ*G`J44ZVCY$bQGH?r-Y`R$4jh?r(#ZQ|q8W(qTx1%FfYQzHVR)zU3G&tz2 z>QscSj8RclTURw9xyvyz2%FktZEcP1?cH6}+Wb^1)&nlq3YKUZKlj*%=H|9!OROzj zY@jpHN7u|5Vo72*(%f~_oW*VN7ToFHnuxcqn;{m)$mC>iF6J)w46$l=&$f7nz4$Zi z#h+m>{tU4q(UMBGY)^Eqh#`eP%uxO?!@cHqS1fg}HU#d~o+0vAn^ZblQt__%io|Ys z1SZ3)KO=YbF)C;EF^cZg7K~?EV%zrBsdzd~T}#&T*y-d)byFQeP`PCo#|nZnK|}=vNP?O`Eg>V=ZwHDG^3d` z3v`k-3-4BD6>eo#P6JT&2v@TUH!wS=0jPR3aAe^Ij?8HQsvZp-Rk(qpavCV2+EBQa zIb!aLWNUX@{8)ickk)NawCw00cTBX!(@VsPRg0PzHLh)5J%8OYv3mLXrHw0fnS^Us zty-r!O+5f?`_#r&Vs$Fnl}s<%B06niMQm$g>cV6yK6OENqOFxa&6>J4o{q;-E!&sJ zwutt0OET4#*a8=^6&H7OCAzT3OkLE|5rdBk)&9a{8^sC4wDeStt`IFqV#FyGKU%yR zY3f3ZZV}t!UCoWHVt#8Yf3%j?(TSYrbns+Kub7wr&j36Ix zZei)RSbKb9EWJD#YlSY*%adqMcg9h)gPSXqWd$-Gz`|sEXE$wJh#hH!?N;X6qsM3* zev7Ty++wT7Wsq!vnr31yYvX8>_o21%o!yBPT3wgyinTR$#XHju3sY-OIhr7q>f$qE zok{FduwnlYBTQ1oJ!TShgIl>oSK18+khxrk%E(ynT_!jcyX1al$Uf z5^n_}6vy^P&0(L?#YNrHbCx9SDr5|@4>v4ZWP6DvZLySVfO4qh4r*hbxjdOfLE7G> z=n5OaUKdZL6P?)St9a}DE*u@UbVIZ#zNLHHHa@R7ymhqBT}x81_O4`VhgK#mCgk~T zZM-eEn<0?aa<%lN2GN#88*rzk6izn8+PdS2Kpov_Nz$5kNwTp6AuQIGIFoGNL6Ixg znT{`uW8d#ul-Rlz^WW{kC6u-(<>u|I-P}s*?Xlh70u>w8Xs2$7r_z8jLJWd{e0qQu zUq&6VJh@F^trp`@ynGpbm~js$F;gKj~?>dxWj^nFG{3V$GWyF zmjUEg$9guxsnMu&JpeCRk?a7Ej#7xVjU5h0_2ZP4#;Wcvhb8;%L;!B*MjE9{V({w| zJaimTZ77R{DUMpsJkiQJY-s3NMp-_O+svkTR~H}TaZMnW#8d6@4jDb^B0=pZ3zM-n zC!(*2b#$ZHgjrzL9dSt7+Oi|q)K+koB$KTxa7o~@tVUr|C$3X~hiz~~wV$CcoN!|u zVlAR|s^`Q+TZc$?;?n7i1T7&WNG&JRHrPa~LY?erIi122XR`a+JLTH=R<%>w@v5<7 zYtnOI3xSWMYjRk#q_8~#8#Kn;1x6BAMP18d-5o94SI1fvQ|*8&ldUv0sIBa7!HiN2 z)FwoBL}4jlqsPhAY$ZN<*C*pS(%OWNY`u8nbQ(~3cx=R%kgm$9snb)_mesn~m3-GxgHKR&O-ftYia6Glu3DuU?HPPgD~s&AaY(5_MXy!VEku9;* zLM->TWU5DYrH;-@mnXwc)#BzXN+H&CY;&`g$9j_8U2e|yPHBckxMd<%CEDoLiC7v- zH+GyZ597>Oj?w*f7QhRbn90QA-P>c`>8_@hRQHxG@syAo6axyS)_A8) z!mRREQx8H>vJD8cB@1JSq}Y=X&KGoV-HK`pQ{Cz9lyAp11p+tU&%v1K9>R9SV~7Cd zM9U&vQpDSEz@Ym!VDkMQ9AptJlh_3?8rb|bE#O&T*! zTqu)gYR17HLU#EKK3D3pZ(S#z+b2;mNihD)5~Mfrye!iN-WS0B+jFTbHyY zQBI_rVJBuZZ)FZeWH?O=F8?532U8**EsCeHt8`F&5c3nMrg&!zM?Gp!-z=iN#Z{8_ zbwDVu1*I)y)fC@Hl=M_O_}ep4p(1-v6;oSS2m2dL?%E{bdup2|YH2FgiI|CC2`fxw-Q`@&nEP4?D&f7K7>7DePhD8Wm;4V9^ab8<*r*vZt-c+MHlbQh$Nk9 zu@RRnIMEBbbfH`i(Oy+L479}QFyNND%;&nV>DJIz%0DY8y+XbN%x^`r=@k#VHt~w!|>{zvhc4%hH$dtoW!_MK# zqeu=@g_Rtx>@1Hd?~CQI>FO$%m3=Yl54u`k39G<<@IczmGwdigkPPVk$kuM;M z(Txwg1h>P@zfL8?-sW0sKBU<`fTPFsY134-^nzqJuIbf;O%f>cPd4+GSa$K4CgCs_vE3hK!e1cI9$9_gaY#nd0Etq zGrUw~4_0$-Aq^dv*xRwCO_k@(sq#drY~4t~TZVAOkuEJ(;6~TV`0g%yKVC=l##Ev! z4uo*QIY}Uf)2fp~i^>tiQ!(5H*d=gg+9j55-Ocl`uh_WIm|mZtJB)OVO*T(-f_4oX zZ6(`#1n|ViXu4C3GZVtUec}``;xxCY11L8tNAJ44pw<`T1~T0(BD%2yH(F(hZW-Bk zodq4=aZRYp((RnGa>J}UhG>W*Nqz`(B(7?7KhfdSEvG~aX5EAPhz_Y-nC{s22yx6J z5ffc_*W!DryFsNuw;)e~s>OG~lcE**0(`r=Ry2Z-!;y$1Z5N_(IixYjai0>>|DYvv ztmr^X?PzJNI2vzJiuaJQVyEZ^zXSay@a|!$DD8zD-(o4{yNY{H(No@NK7xRzm3OBbCL5^HR{O%Nwm?4mdI+jrKDz) z*ZLH1-2yEiK9=o4ei1{P(nc}#L;m7go#A60i}kqd$o3vL7PZNH;;5BEz3tFQqm4NJ zsTqtOE4HA81nku6sxPg73ReA8_6%x=`lY?9>py3!^I*r7wNGghB0A#LK;PO_D9 z_)%#WT79=}C)y=6bfe!c+vCQJ6?GEHLYiH&_0gaqi zOyWRbB(30(k2*ZqcROZ6e%T2w)u1-mz8DSJwH@P371WS5NYAqktP!;+$5miX&}nCj z(%73Z4iC$~U!;!hgWGv*tvv6vvMkUv-`10D<>H1~CogYiZzk-}n7ZL3j@^zTD<#lk zifuw(Pb=SyGWkeSoWU)SHqd2ws7dG}TjfM##LD9OxufJ>5G%cFQQV+jc45q2uw7n%$9?#k zo;^>ACWwnZtPDagK4K=?3rwW`_e4=J8&ra`u%h_+H>7N*)y@Jkyk_+LDfp3FArR@ZiWMD59P4{tE`4b9%%82UQCuBhA?(&3Vp$ z)*ERqmj6|0#Yofnzn(gXoXTm8(>SLIPTM)%$!RyIJ?@@Sb8psAz}VN9$2r&Lka#~g zv+qKgT`aT9Wri=jlgiaHJ0PtEb2Gu8-6-Mb9pSkZj{12P^UMPbN9i2J(DsJ(6d=3+I(H~Nvk z)sOrgFZqfxb48>|_3%Eqpz~sNPRu^vV6$(4FVa`8@(^j6E6hFt&N`21oj) z!w$0xv>Z0qn|*T%Gz9iMs!RVzcpDqd&j&;!r{=d`XwI@qEE4;uRpODjM-{UVj_7Gz z*-;{r@T}EXv{rkh-Bkz!)XkS0F1kf}N3_uD0Axh7roeDOBIJ0JX&y zpgYo?-$n6J^+b9;YL&f_z0#)p`VdMLd2VFixr*G62%6vKhpb{F3`!4>-l`fC$yZj?px+1dgijQ3BYHTYXxzd5iz5^e* z(hZS)H$=wgSK~E`^u@e=tRL&%6xnxEev|!FIvCk^@FQ0`6xnwuQkP%tKN|jRk$t!2 zH`&kd?~3fZ%cGLn7cT^5>Av?y_TB4Ik0+4r?~cdcj{}3dirJSaG5c`(VLUt(+4m5F z(oR);B(m?3aG5~VzS`_Nz{E|U2h@s4-$70fae7;6z?_HQ7BOd=^9Ca88)ME6P4i(t z#j#_QKzTqAXnV3uZX^4iEDc13KVbGfR2~597jzgQ858BT0^~C|ArgxZD*jr0chDb* z^zElgk5KX$l6^1Wv{*v?CrbilesnQsAgbV`Gl%>8qut*hx%i4*e1(gz*~Qle2w!+) z80S&M3Cv`%n!;jMd&5?HgNtw3#kaWlj$M2Q71xsqR+#Hm{S~b7zOC^-W?`F;}iYr#a3vu9&CayOInpQq-}Cx~+V%@8^V zkHT*w;J6UrGx4dUNM0Nj1Eu?(N)62+m6%kCDM5^QamkA-UYz@0Op=6@B$On$P~wXevLx+weat>rvCp;H=Q4Z0 zV(+)v`=t-9$E-GyM=&AR;#8QJ{1n?N*S%2Hz0j_EA+s-5?2B#o#WacaEW2FEF1KZu zGy4j~zQSf-!R)IQ`)ZqgHM0*W_5quHfY~=F_6;`s2I_Yc%WhJ#n{3%l%s!~t2W|F2 zs&XpJ4k_6oTXu+KF_zt?WVhL}+n9ZqV&7%6?_!ULQ^h!I+^aP1wKeV~#~DM3j2ibV zh5K!V`%!sc9~90`lmrm-5VN_Zhm_(&w&FwF*G?8bqJ)pwLJpm4%4$o)=GomPVf@WR z887?xhs&tm+4#Y9toRrZ)Ii_Zn!W9X(0Zh9$m*r zYAfB_3ef{=;p2Ff)ehi196-PHs;!V^nHsg_x`?6qA`>H1N&<*Xk-qMMh*y!mo{}(f z72Wnm`ugx=Up}c(F0)W+oe1MyhIdJs4_|Ml7yfp=Ppm7c-iYV&Rwg^}98jFU%d&2J zD!D7|gWfss#A7pYG>;f(X?#-jM+yD)y>~0s%~g1B_#(szj5wY-&^yG%H4Nk zxc2K8MAzD-?EGPuo)FFW=G~$;JQADekl(b6$N9SoT<3!cXe4*a*{%Iw2^R3Nk?=!P z`?Ad;f6WtjdGq+Bw+!!-YJFleIiq@QE|~=izb=M*lpFAr#ad8}`1E8Y%8f{ufTq{I z{?{$(tz2{x{FFYw{77BRGH(%5A6li)FPGq+DBW>x#NE%WxI;;=@%TLgA=dG|SNar& zKDV?#e_{pkZT~&+D<9u4r+d$I=QO`1`b#}N{!ENM7n>$#;nNz}0QXc&z_<13u74VL zXQ`detbS^tI}O1?>u%tC-S($0G?r=jj7Gl&K0}B=pJpTPV$&xSZLpX8+=k>dmzc+M zD^n2%=%V0I{7NI5dKnJ}{om{Ve-`+E E0AOzHqyPW_ diff --git a/mod/build/DataExtractor/DataExtractor.pdb b/mod/build/DataExtractor/DataExtractor.pdb deleted file mode 100644 index 8c22ede5ff29577010ecd434ad54496488559c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28480 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 props = new List { }; + + props.Add($"\"id\":\"{id}\""); + props.Add($"\"name\":\"{name}\""); + props.Add($"\"type\":\"{type}\""); + + obj.AppendLine("{"); + obj.AppendLine(props.JoinStrings(",")); + obj.AppendLine("}"); + return obj.ToString(); + } + public string MakeTerrainMaterialJsonObject( string id, string name, @@ -1164,6 +1224,11 @@ public void RegisterDependencies(DependencyResolverBuilder depBuilder, ProtosDb string capacity = "0"; string unity_cost = "0"; string research_speed = "0"; + string next_tier = ""; + if(machine.NextTier.HasValue) + { + next_tier = machine.NextTier.Value.Id.ToString(); + } foreach (ToolbarCategoryProto cat in machine.Graphics.Categories) { @@ -1220,10 +1285,11 @@ public void RegisterDependencies(DependencyResolverBuilder depBuilder, ProtosDb } - string machineJson = MakeMachineJsonObject( + string machineJson = MakeMachineJsonObject2( id, name, category, + next_tier, workers, maintenance_cost_units, maintenance_cost_quantity, @@ -1834,35 +1900,58 @@ public void RegisterDependencies(DependencyResolverBuilder depBuilder, ProtosDb } } - List countProds = new List { }; - List countProdNames = new List { }; - IEnumerable countableProducts = protosDb.All(); - foreach (CountableProductProto product in countableProducts) - { - countProds.Add("\"" + product.Strings.Name.ToString() + "\""); - countProdNames.Add(product.Strings.Name.ToString()); - } - string countProdsJson = countProds.JoinStrings(","); + /* + * ------------------------------------- + * Part - Products. + * ------------------------------------- + */ + List productsJson = new List { }; - List looseProds = new List { }; + List countProdNames = new List { }; List looseProdNames = new List { }; - IEnumerable looseProducts = protosDb.All(); - foreach (LooseProductProto product in looseProducts) - { - looseProds.Add("\"" + product.Strings.Name.ToString() + "\""); - looseProdNames.Add(product.Strings.Name.ToString()); - } - string looseProdsJson = looseProds.JoinStrings(","); - - List fluidProds = new List { }; List fluidProdNames = new List { }; - IEnumerable fluidProducts = protosDb.All(); - foreach (FluidProductProto product in fluidProducts) + List moltenProdNames = new List { }; + List virtualProdNames = new List { }; + + IEnumerable products = protosDb.All(); + foreach (ProductProto product in products) { - fluidProds.Add("\"" + product.Strings.Name.ToString() + "\""); - fluidProdNames.Add(product.Strings.Name.ToString()); + string type = null; + if(product is CountableProductProto) + { + countProdNames.Add(product.Strings.Name.ToString()); + type = "Countable"; + } + else if(product is LooseProductProto) + { + looseProdNames.Add(product.Strings.Name.ToString()); + type = "Loose"; + } + else if (product is FluidProductProto) + { + fluidProdNames.Add(product.Strings.Name.ToString()); + type = "Fluid"; + } + else if (product is MoltenProductProto) + { + moltenProdNames.Add(product.Strings.Name.ToString()); + type = "Molten"; + } + else if (product is VirtualProductProto) + { + virtualProdNames.Add(product.Strings.Name.ToString()); + type = "Virtual"; + } + if(type != null) + { + productsJson.Add(MakeProductJsonObject( + product.Id.ToString(), + product.Strings.Name.ToString(), + type)); + } } - string fluidProdsJson = fluidProds.JoinStrings(","); + + File.WriteAllText("c:/temp/products.json", $"{{\"game_version\":\"{game_version}\",\"products\":[{productsJson.JoinStrings(",")}]}}"); List storageItems = new List { };