From d759562b8381de4087e1d76ff5f0c5ca60915f60 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Fri, 29 Aug 2025 15:52:40 +0800 Subject: [PATCH] MultiFuelSpawner --- 1.6/1.6/Assemblies/WulaFallenEmpire.dll | Bin 308224 -> 317440 bytes .../ThingDefs_Buildings/Buildings_Spawner.xml | 103 + MCP/vector_cache/knowledge_cache.json | 3106 +++++++++++++++++ .../Spawner/CompMultiFuelSpawner.cs | 128 + .../Spawner/CompRefuelableSpawner.cs | 138 + .../Spawner/CompRefuelableWithKey.cs | 24 + .../Spawner/CompRefuelable_WithKey.cs | 163 + .../Spawner/Patch_CompRefuelableWithKey.cs | 59 + Source/WulaFallenEmpire/Spawner/Utility.cs | 303 ++ .../WulaFallenEmpire/WulaFallenEmpire.csproj | 6 + 10 files changed, 4030 insertions(+) create mode 100644 1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Spawner.xml create mode 100644 Source/WulaFallenEmpire/Spawner/CompMultiFuelSpawner.cs create mode 100644 Source/WulaFallenEmpire/Spawner/CompRefuelableSpawner.cs create mode 100644 Source/WulaFallenEmpire/Spawner/CompRefuelableWithKey.cs create mode 100644 Source/WulaFallenEmpire/Spawner/CompRefuelable_WithKey.cs create mode 100644 Source/WulaFallenEmpire/Spawner/Patch_CompRefuelableWithKey.cs create mode 100644 Source/WulaFallenEmpire/Spawner/Utility.cs diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index 574c39529545b6fd7367c7d7b89557f51443ea0a..7f2393897c55cc884cc93a17d0499a7dc87f90f5 100644 GIT binary patch delta 93606 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≫C_HHc7 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 T#S-sf#ktI{@EcNHr1t*-QSU9p delta 84994 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%0D|4YoM;E} zB09E%l!%PC_f9m=PlY-i#&Bc2FQuk8AYcRt{kK2kW?WD*}qa;Ur)5sHhoO1S@AyejE)sB)GGrFV1#zjzgD*CblXEB+a zA!KhRnc1s1lcJcL$=342e%wuR)Pn@FfqWfP6E}Bn;!^e|h*hhR<*vjRSp%(&f9VDB z1JQTv$fC4T#Ks0$ zflgbeD|NdNYae)%0cYXBGBwp-~JU>)CfJ!!aRSw zhiVWx0r8fB>MG3-tAdPqJ+E{SyeC=4Ha9bB?jrp53a1LqjT`_kEv#<$x|&Vc?XIp# ztkEvMcZr$Zd8Jp>Y&R>??kRp%B`(S^<=N>Oo{7p>vBgN2@vuF{;1thQ1t)zS6P$uZ zBXg=mCY9Qe$xx_{OzEK9=A4H68JKibkU#?S3p+5+;?q8}tirlP8$Cl;+qTJFXV%3e9Pd1~pp8dKhO$6R5S){LX2gApM>?JwaL{PeNEw@(hBU zm@yHQW5Q?J(_~C2YmW*0TspMhqbTf=}PBlTY8sQ1~9|Z(IxJb4ve-Qt2=mXA=L#n`v*nb2{7# zQMlEHmEZ;L#l5T?*Or@J-0|XMwk;6+4ScwZ`o&$+5bpk2J9_s|{YgdwK7nEhr_}*V zhgm(HMp}sVqfW(rJ<%HX^>psFReiIa%dS^Dmo3^)fBCzTbS`ZU5}=GHp3dO!cKI)s z*>CafU-a$7sz*J%Ls)^v@FbHrO8f~5`)3c__W_U+h512+{e8RljG;)VrXSZJU-7O!o z;BI6TblT4v;_yQi1wC-1&rf&d=>hhhLd3Hjev#`4EJQor+W^p7oYf-U=-%zokCkeI zCqgNoD7E}0l&`$eKmCSlO3+{R=w_`x!w(EJ8GfZ&)Yst8K&mGFhF{tn*OkD>`K-s{ zjb0$vqZLajBvATHRc#$)$uPbFFTs z8kt-#+oi6WP0I5*!}45e^DV>jYO7E&7$xe(#k6Qs5-XqdQ|S0W!e9CkzCV9ho~fSq zm(OsiwF^io5PIL;EVtc5m@$vgXiexHLiqUr!l4VTZc`%q%adrt_a!t)Z=kscLv?uh zOd7shnyKtU%5L<`r5sRUs>VIVZ3c@9a{8#n88IB7H`PGL07`HA_`9$Nk|-By)Bj#9%XsSP^!-HQT2|?2;+|sCW|Nj(}v|q zLN7eb^3fXzKfZ;v>R&W01SDKYWc(b$Z@q+zu4lhbUB}^gI_r2{mzsASDLtl=GD~{- z%DMqJxm35wggwOvUV&u;*nsO=X~xTe``~)kdRXX-dv?bUh&DIP|ki{=1wH6Or_BNL4+rSeYlYH_6t}cPvX3C8o9^C)r+5I`Rgu>hFeF_LofQ1 znz__PA=bLNJK>vN4$$Mf3HOSJjQZ3zPWCRQ8ddzANu}pHb2#3RDR=E5 z%8a_3Fl{0g{XU*BX9Qu>{-j?mqx)_TF>VLpy}ha7cNxU4Q%Omde&=D9xm14{f_L!C zr(iT5OW1Kg)z!X{@biNddSMdbS{dC-Zl_GR7h|Pp9L;^`7Mg3#ApOxMgg^hw>UNof z(SsqA{`DO}`n$U*|6EVX?-gwo_mKX1dn<&?8bMsyBq=dyD-^j@i%SSEpF;TPs9||G zIaY3=>NN#)?4bbZ|87Q@HOlJNKrK4RQQz5@Mw=HC?rKL^PjWzSnU+@z{O%#v`g@ht z4e?(oNW*-RCW&?TA7MEl@V+5bF|;G$2amDgZv%u)+EV7GCrSVMBEo(G{}9+!JQpwJ z*_bIV^=f;{bh?=^;eKl9!1Nqa$2X82zL+p2g>VQbhWdOzMV+@17L6x-d;{UTUUFMw z$V~N!FwNeHXZF(!wDQwdwlqwUvR%siidC42BmkV+T8L#A5%0x6?b zlF}3z(^P*f*uaQFX27Ah5#B1jECH;o4kRVsoQhq|@0}Z~Z?R)&tX?Rf|DHgu zgeQ>JvX%R;kF9Lgc0bq5#v7@vPe}Tq#DV90w63KDP8*5*+azN@A@2H1%8SIriRh)N zTJ5I%jbheffv;l*xztJt!1_{NA>N%NojEIB940M(Ez#zfFG%-xv~h?G!G}}1n9h*q z58g)lR!PbCN@e$p%oZ&#BmI}=Y%EVChqoZ*xqC>tRfb^bH7xIxP+cNMB#7jLH&L>^ zbZLDTiT@YHx=kXK^*q^cUPHJ?LZ+YW21ZY&I-f-EBeHqwFUxeEEHf)Mko&@B!amac z+81c3JIKXsVisYOe&n7O?=EUW{Vfn}$p0=$1v%2pYGJfIM7D7&LuO}Jj=e`laqL1; z9vDHlFIYyI{F|uy12KK^K9+CWJm4l%y)0X9@xKy#^yEO4` zt_<$FLdy3$8e%GV|0v;n>1D|iY-X`EzaOei)$lHkcW1Hvpt$aIJ}bW>J^tVb<=07H zk4rFSN@6L^B)wRM>8oYZn0V#5P+pP2^7NPe|6J+8v!dcs?DZO`4<6u7=A8))sJAi+ zf4QIVhmnkovrln_Tqz;;mdu^k4zjTarQZ`}kGt4wbz7AdrRkA{-FeQ(S zr$Kd*GeX(wtr^Tp8*U;T)|I)bT>7-AGleoGt?pY%6|1vJ$-9x|FJwjkLAGM+CX+H$ zI&l3O%CweU=5i{VB`68MlgK|dHnmKl=J`_4?iRec4U4<@nT?g z1PeU|^f*}c14opF_>4<`OkZ(94@s%@ug3tKon? z-7AWh>JfMx!HQjXQF3$y8w+eaFu(A|46%801-lv8cs#JUNwB#qD~i|Xu{h~LEq%)> ziXQLS$a0f`a}9>=9tM3f3H=YxESgP_XlL*~Aoer(lgT*u*roNG*WUt7p<{ z)6^2-bzf0YTn6kO;a%UB*mQND@D@+4C|;yys^x-hoLUhQ)DpDgc$@i?J)*JtkPkKt=J#xCca{;w@^oFq6^4U22|sPOz<45}U8~3%0k&#tsPf;*-Qm)gi&Iyp~u< z9TDsldcOJ8zY z7d2J{+bY;9^|tUTceCDV^^RbJh7nt%-V>}-6Jl%C2ZDVziCE|{by84YXQG?bDZw%u z5qn&n5p2y!Vo#_~1luu>PTZ_M6VtjD(zI>r8{x%YUQyiA*criQUQdr6Qr`)0>{?>S z)c1mU1bZc<&I#H8)8YVn`-5PEE~T0`@b_vMv%j~fD8AVE2#?-~J#||}aaZFsp12cR zlgF_9RQ)N~K49a4{Uwo5g5DnhRw>w{5$tb~{Qgiy@o3{y3>0QsiaG&wyzw~@VhLA} z`MHV{?A##ozQix6GT3f}X$RC)+1ClBHhrrz(o48)sE*!EVOXo^E`t z>I&9Uuy0gWNYLH~$ox(<6KoH#pm7d=Duu=@6zoU*%rLRZ`4z>t8$YYgf=vK#DX?yW z^+bc`)vv0%U^9U&Gk(QySFzqIU@HubUwb6hs0$5s=>8gCS*EBkve#%MO%IY@%o$E* zn!Z9rpG8L80N!B1t^@Wsu%Uu20=5*`aKYNanB7K(9wC@1rg`)v!Csz5$s9ddu}T_V`Mmr+e89Te;i!TRV@!A?SQuO5va zu}gs|?8I1ohhVJ`7YA_8?M}gF53MM!&=d3`V4)PX5|RJ0FXm}6!E8QnT#G+H#^z^%SKo1yepawan=6X*90C2D zV2cMZxC8omVt9Rr{X3`W3+@qQUXTa{a1c^MH*uEd7ySx88t-#IZ%6 z5^M~x`ueawEm(hKkLixX`V+x=irI(t7lQe+D~hjo9Mxw93*8EIw&QjEm7pi?Ve=>S zpMsUQM<6;r)_)1s?UIV(1&%LtqQM@XfZ5kOzSPNro$ZCNbo{Ps3zm#vyWRL*rwg_U zkwC1Tjlnaw8-M7gf^820T?({N&{mQ@{?aW4JA$=wg+m!d#saK{Pa$_7z{}27f|d5Q zvDPB_1}5GHyl!hF*m+=&I~+z^!QQP$uQ`m11=|a3ykQ#c1?$rdE8b|JodhlDMrORx zS(^AOolV3WT?MO!_3wa6G`fl86PP1g9Z5!a!QKb9-H~kc5bOnD=T&W^zhEh{Yp87u zf|e9D0z+{CyeozG*>J3X#~rne5rVpJsVIH}*hs<7w`OLmZHyHxsSQk1DaJU#-Ujb> zM~ZQkV2@1TFr^ri1ltenfRScQ6YOs61^(^GFlGpr+OeYeeTT=GBiQe)^iJ@)Y;8AE!b$}{Fii3<14|QoLEuZ(>cKSk6_=y>;vjD?8F!s1;Z+e zCpiZi34#^+$Qx+X5$w&mHs%&=40z*1V5SM$1L$yI>4JTO@M>)gH0lag3$uBFV~CL< zSSMh!9Yc-!f{ks8wBwj&v={7CG%;LFGkOSi8F=H>Orxh@=azCqGus#}*vr5k(V^MK za6y}6kr{227$XF80K>Ov#z?`E5KzO_d}EAY1;EAw8|&bRp5MSe%{RsgPc7lBm~V_1 z?EKv{^j704!J2Mj3k!|w1*-#Wym3d!xIxf7^l7nknXyo?mlteXHriNiED~%du<;nA z#nRxJ2evIcp!OT91nWDz?mfgF5v)Z7TW^~-%;x<|utO2-QNdok}J4qOo1D zWc=kMEbzv@7@cn!M?=Ewi}`&(y=S~C*vEpsZ@ebhOuUpkpgu582(})Nh!3a_jW-2z z;w9Yyb<%iSuvOB;N5(rbO?+mY5*~h!9+F=gp9mITi`ZG?b4Q4M8dRI;*T$E^oQYeI z1L|AjtYCMEF~1l;2v$~yyx)wU1ba|0!%->N8@O>fppqP>v)XIPjsz#)J%+C%ua2XZ zlkM4layx1}9U-7+#cipMl$eU?j?@?|!%vvg?U8aWsjk zm*;32Q?I$BxnQHEgZYj^U|9be${4nCv=inlGHPuc9R)isq8%MQVz3^L{(|8*OwnL} z$B>u?2RTLyk4Fvc_C$s4s%Qq(Q9O!hC8l~5gp~Y#<>uF zdKBl252!JY>tcB09W!FEi4LC=IZ5SBRcfi8?C?7saQ?O(tamlBM$vG-#!({eh4K^0 zyv}ixpgSalZgG?ec2FF=z_B={;$p}B!mB0q?slw@29I@NgZDeu2+t17)e-EB_;8J5 zo$&1LZgOn0b>jXT&2Mo$Axww#{%OZkfK^*@3vz z@tnlPF}%e-pmsT)7ao3t5ZFP-5y3vfpN;~0*zsbFnl~M92(yjYecEvvm{OiB_V9B@ zMT}$xF$|2|-)|h>3btG7edqXIFt=d8I(`+bugoUx{97;>8bb39r;ei<+is`R5!Xx^ z*XF?)EiWyPGnKE?7HmL1esFAWQ@wL>R=laMY(?1RF2cGEm*Xe7zwLLA=~m5}PU-Dd zzce9CMH%lAW|I5y<t;{lo%W#;vU_@HO0)We?WBAHinRJd;ONmT|1o>HQ>$?cit!8Zg$ri& zHdSw!tJUk92%Cva+xA)UTD9-8+}TFGyMA8tHtKVMgU8P4-A3iZ=#Z&GP3HmGweLjt zHtHont%j~Eg}QnIPqn%e<;%pl5dxo=eqSR!yW<#5OdLu$REEaWo36HmKH)ibtjRQT zi@??D`?4c0t?r(CUvI4n<}UAz{r^WpXz$kU55kDjX*6OnplKF*@*E?|CSUwu?-6BL zLmz|@UA9xv1c9d}txh&oNv;K$(RvNIHs!vZl-VZm-x42Z1qKj9c#uDV@MRz2Nuh*3 z=tU$)5S#QtFRG|Xsg~J1;G23{ouBz#FRiXvy&nB|Ag~#*aOE?A_g}sn@aSfGaa%LO z&#vF1-RjCg`(WaqPf+twX)AFBee-&#h^p`HU$>U2K78^JgvQPIrk<&~wI(}i5M`2! z32)xO_^@SKilYAgs^d9p31yN7Yy`9;JeJ#C!t-IznkalCJ(~6XE>F2?sqm1bPPT z>FJ@9$DsUE2g35bgf@5hJ?#BtFZDMc!&;$RB&Gb-kdyF+!802SDVvcuxzCWYr2^yk zvz#K3Wv$j6TJ9WDb_=+s%9J$RM&O?^3nC<3~B(mfUx($f!{N zdrV~bos9OO(^>iarHtN7^I87S_B=-;b?ClpV8pZxmRD_ToZd)Ho8!r8q<*<$Z(Jiq zMU50yH&Se-QKSL&e`?0<%IFaL{S8u38}%zvqp4Qs%tFtmPva!K1F1tR$MbVQ`CvZ{ zx@!Vqru6b$Q29Xo2k#7;0>{QCGp>R(;|EdFfknVI1RTFpaZhK7BF z6;sxPdgCD2#dOQaHiX&r37?)$_)pcZ^rvs?%h=DvsB0D5z{gwW^>M1dw}cxYZ0i#~ zJcMh+HKS+*8@7!w)y1;197Re-{GXA2*jBd^yJ$OJuTNoG{X~qLBE}6A<9-t3t{Fw{ zG8tFf)uybRe-v^VYd3;ExNs;<^<$S1d^!A9cH>y*R+lhwjK)+M{JmDB*+DtqSXiPlT z$E|co8lHa{9rApaH(}kT3>q=LF5x#)ep1S}Nx6@dk4bqk%57BpCGSGf4Q;aG-D*$9 zM<@sC5>`rizm!)>d9;*IN_h>+ZPbXCAy(5(xIvh)^7%{L>gn(&Fygo@pqJdjL3vK1 z;lBEInWL^db0CgSAspTPZp@U|m#`cg4Y5;tbU((#K^ep!WDqaCnesn&`GVo_&oFu8 zX7>Iwfqw`*lU?0_9SwGrND$SCp?_*SB|&G$mK}OKB*#1ei1;s-U5#y5*R^cs*ENJg z3ciMMYa}%pGg;ns@ehD4B_?L}&S}*~OVx4^_Rv1(m;hwq!SiJM@R$L3f);m6-7BzS}wKT6Ukn8ld|*) z!iNRs38l8cQpAT=WnqOKc!LzqpdC3(N1@g!Ocbv^MC1)*E9`@>VUw3$#j-u3++3T= zBMm1=lD2)8BKzQfI{cr5Vh@2mWU+BDHiSvV6dTtU=~fcajr}+mmP>h=ET;2ww&)Dy zcsxHVLtTGYeilrTP38uXIVA80@lErhtoRHyq4{h`rV0GG*+$fTc_d-c7HTf>6TUrg zE7r-w+e3`!dg2_W&)77HTaF7TZPaZTb*Jk4*lc*~E`cRum{#p=c>e{?2=akM`K%WZ34)9 zAgvlbFd5}^fine`3VZ@^NZH_#th-9|7(x#{C>N(FS_4I<+JhS?tk8XER(pXx5muNN zve_E(AiZ_;5{@))wVdiLiGa*UX;3>^-R;}fdvmB~U~AUhzIp~U+Y67o2LtdmiH5l$ z>9-*}^BBd@5t9nM5!56pq&BeHf>h;iSJ;^r(13A>F7 zPb&p?goImcNRHgdkUTPpp1$j`5D`0uue^@Ud6aXm7aKKpVuZ&a3#W4YH}wsq~^tPn1{S`bND zPq^YqR{nb`g&u;FO?9_G?@KH{*_`lGfrEuoEHG&cYyF(XRl^v@p6!@TgVqT=DR;yV z3w!~aPpy8Ly*Ey)!7u{vzdX2TRre(_mdj1`?^iB&Hd3uX$0l<#x0g4eA8phF%@_7< zuhyk6>YJg~>7{^E4GVCHvfygnjQy*I*q(H!&bPL4unuOk{Iv|$7XlZDAMT6$--nVO zh0}hjO`)m^ps)f?J%;D?W|Ldd%+;0;++fI;&+s5o~MBVcj(Hn-y6h#xo1$Pt|5>s4CTyhCf$}*Qq3R6l=N=wR2%1`~D z=b1x5pYQke`u_gBUT2v1JTuSi+d22lAv0rL2)O4u;0=ePRK~wq(Wl)7+sbc)lp-qL zumMn{x^PI*r?3~$v)wdWjfI`Po;DkL=4Kc%04rh~_&lzgMD`hAuNHG5)a%ohU~bke ztCOHiH9G&@1HRqO%x3AAVHW;+h{ z^)AODSWS-4fW4-bTmbuOhcn=((HyL-jCGg(7oX_CtO{@Vb!w1pUI14;olo zTD3j<@s6K7VMhlhS6fUxBnvY(9Q<##i~`f*jD1b9#e-erva1zmvy=vS|Ki&QI3D$J zMYEN1=p1XoRNH5KYk-%@4`GmE1>@{Vv&a z!7h7HZN^%`>)kRgs5k|RsHUJ!K$IUjoB@+LUjWm|hGvz^6)xBfm_+ zg)6ihs>`n-PggZqLC1C2dP-^Pn!NniS>RQu6$DAc5Te!n-kFN2m9r&%sEL8)z3i>&iA!>tv4ou z=2sp51Li4b92tcTqzVgjK_@w)X15wV_gj07SEfsD$Oh zaebVf@MQ33XTt&_LH1Ck0Yj4DVaupiQuZ>ChV4|z55D-IWj_;@usuzXtgX=}Bu0VM zXqi_H63vqY(GLyRvZeK8Yl!T|9XX0c%gR;S7n2HacKUcx^u`NtPKuVzQmK6L@NgYF zN0e?{wPiHWC#q~!ah-rJ?0G%<-k+3$nl<4r>?x7mm~X$NgSSNjq%6O$ zH+%%_1W}r?)j6cpKq<4#08-d$6~Bu@;YpRA<)?BNc0r}nM8B#O_W{aSCsb2x3V0n! zOH{(P!QRh>O;!mTn+qG&nIdEdPppT8E_w+`R$4=*yyz;0-|mMsFiXHsdO~r}-uZ*R zA-k*6?b$!*8?mtNDBHmP?7AzwFZ4dpBqMLQz)2HoTr|X~7CqGN)e(Z^?>Pip{?U^jsyj@>;kj3+N-mVeVV8 zfO|C~3k|4j|LAak(^6dQ(=$T5(4_<;8 zjA0l7j2Cs*ukd06LHM})@xgU9@;nIt}MpVKM%x%cL*m9My zd9`78Ra$dlxw#E%+aJR{;9gs+!@XH|m15Tp5BFiwM6&7mFg5@@DiHmEmy)zT%sLPQ z+F1{nKz!l#NThTYn$i%6MIx0jEH*#ZaQR#g%(pe(K&i-;lyr~MG8c}IEkt}>a_Dm8KuoFa~8Co~`21GSJJ&16)LM>kP zWU-P!O9RjnFG-;S_G42Cp+TMf3j*F$X>DGTwjG-kixJ8w+Oy<(v|SP?Z4%L*6%ds$ z4A-7bepMzEb#{O|3bk4~G7lm3#72(h35lN-~%!ucWVao@l z0qiJ|Oj;m2U5~zy1X_F}0@-(JIMBh{2#S8;>V^)+cN_wD{xC6sL>EHT~<3)Y9S{X|k}DASHZuP_E~_WwR!r41Er@ z_F;Ay%Fph zm^DQbMi>ouk&t8=4rO^nB@Dw2Wyk8shOu)>9pNzeO-F6OSUAlJNd}B%3y7rBS6Esd z*(=O2vo_qT%t|D~y~-NQs+A3AUPMwhoSmFS^Pf~Yf)&>hj$oh7t_>K+?h?s>aqMmQ zQBh3}Ut>For0g~J&AeLKNcNma%0{vm3s7cfznrs2jAHQ%Y5tSZk6}|6qELDr!wwQj z*;sa>j%+M*UW7iSES@zXlHuanD|KY!*w{L@bm( zC9sx@YXeST?TMsp0^3+eHj(YDBb&(l?X}@1vF`uSQ0pYN97%!bu_H`o%a@Q>cE8h# zh{^13s-)|k)Fh@$S!&anYX-`c8uTKpp)QiB%}!^FSE5%bdxK@vqwIRrBNKg=82`%L9q|Sm zsnYkadBe*(V~Okx`^X#Yo|Gw+`xMq=Rc#b0Y#>oFb3Mpe3VWiG_29b^DNM7v*5?e? zxE=-8qaH*X*u1mHBWAE;_Q@TLY`YIqZd$ zF>Nu@4_UR*&tbpTqtWX=N@Z=IN2Ic6Dw*f}r2xWV=-?!VGMTmlMQKO zc{P6IXXa_Fhf2wd$_#02Ig#wJX>5;5S)7Wd9QH#vPQU=Gc!JnP&Tdx_k zl-Y@7meLitnRF7gLK_3}5 zD4UH{)PT5a&t_h`P>r3vbtrDo1~!TaHs)vE^xeolA(Bcrv0L@1_ihY_GOPP0HbN3R z^X|AoIqWh~3EK}#kv%Lnug2%XL3`MvJUQmGZ()Qw!ba^up`G<{<3L_}B@NBpIOqr~ zP-#)#cY(**qJ1cn+l=?vY9g7m_t<`-4J`d^-k|qb@_zJL!deu)<#B@jLL_~jVlVd7 z{8z#n7Fpp%!xIOj*YG$UJI(G9Nv~(v<9ehmK%aJ_^XY;?XIQjKSL4bIXV_MvbYl?Q zUO2-J6O|bMK9kDNu$wBqIR;ra5rD0=`ZmDz;*2Et$ zuXm--?;FN9`+y~>gwxnXHj79m`y$J)M>mLYlsz)&BD;%JGyh#=v4^D60kO-PU1W!e zilJgSyb(F75M{-zWcR~npRfWVJA0+$i9uIc+EJ9**}V=)+G{NO7?Ohd{1`?JqjQ%=HI6+=P>E%IRv9KZ}nV51mKqX8}Ig22Y5q`ra zOENZ$xIX9`ct;w;$r!$2KdCe(sifIA?1dzSBK(HkJ&9h^SgQi~l`pfLqJVrkyU5 z*<>Oa#Y1*NC5+-B3;Pg#7IW4CexS*w5~Z;_ldSGPF!M!}$tZqg4eF6cJ@O$cVa=4K z2fcn|hc98k61HXiH-mm+WkgcV6Q;RbtMmzT{D*!T^n^7hlF6=OJydE{^xL2+cKG93 zoxiddL{jH(On0S5C(M7pG3S5q??JyY{BQ#%2G#t|_7mCJXD=Hgt6A75Qig5)PnJw1 zM}a@tn?y2-KUsP`dRvAw?doQW{F7}|>4R=I1#pLoUy*R1N@+xgR2nq2G5CC+DBXDU z^?tfP*+VHa=C4`P3KH|FOxpNWn6zS*utfi4%dbk={=Lm2|HGQ#*>#Y?&)=BaTKSu0 zs`z}GPbA~-s&sDcOOYCWStUC}sO6KdVL&@uPIQYXo$Vo7bY05IH}#Fwa*r>NO4y97 z5s^CHL#1X=*#^G+OO$1?)%lYm%?jUHCcS>QZ9yAHenO=!o5r_s;yz!YOctp#k0p}D z?aZ$e;jNYhZJhbnL~^TUpxba)*GjUXt!G3(FO5^f92e;#{-=WOTX1V(fZqM(2NAq76VDRA1 zy!@UFxTbl;;O@NmJ`vrF4dy>RK$2Av%;9xtBp6DE4-V#5q7tJB^Jc+3NtL~|t;`V2 zm#Nfdeku><8&tYLvi$Gm{AY4`4TS}&nqhF4FPJxZh*4y*?b}8}6mJsAC3#PNOeI`Q z_vFu2ngI_~d+|p5t-jKUID z0CQX~KAcGA7XsF!&+5_XpD-Mj#rVO!_-90Ns_MmiKOq^+u$+bPfkef|{ijlS2%n6E z^WVANDAZP=*JAeIeQ%%*L^ApizLRJJ8@(rSa0owNM;6Mj5y^%a%5T?`HTeZ~;)FY6 za47Gt(vV-* zpG=g-wnG8;i?pqS2lM3rAQkgpQ;!ZF#_ti?*^Let2gma4zfhLWM!tW2a2!wmTT-jUuLh6g z)8PSKO(Pu*%lEp}1nwWc^O$TeZ^Xok`}X$-EidX2vSKysJ;U>3oDrxP(dOO4J3=^izcm(#Zq;JzNz(_9_^9}~yi|GK_!)I45J zB%_$m?-R*Az^8zGb&;9OZhoT6#Y_OtP)0;&L6_o zPK|I-29JiP$(X?`h)>Dn3*j5uH4(1iX+$!LHGGvy7{waCMiND_hG(mUQDpIQxDQwp zMKv>q-Z!U5y$s2x0$NZzy9!3|Ao1McM3 zdh`+zhFc%ClZO$Nu#AqEI_%`z>-gNo_YuiV?BXYtdiY5_uir}orCXwQ@uw;^+?ord zg*#eU+#xNKw7d8~m7;-m^TjIR)1o|nQzd+SpT|RCo#6K6Pf%;Q^CHMnif&puWIuR^&m!8u7DVrhdWS!PXJj~(_K7|UuPk`A zko0NvnW%SpB9RPN$WtXj8J0#B@-;+q7A@qLfoT52iL;Ogx2!FTLLOF+=12lHS3yl` zJy|A^9R`}uL3Wr(4m5@QB51BD-y{4pNwhmU!lPS*4Cg=GavkA|5Y>InN$$}GNseqL!09jYw`?E^sfOS}hm&mqb#_1%8)ENjK`de;sv!|02B_ zSEsl0z5q`kWnxNp!!KC)F(Ns2T;M)_Qfc;u<#0=I1W_?7ORR{x$Sv)ptY6nM!zG?Z zl*N3z{up(MR};zTOSyn=Yr}-6(DJI3_aLk=T_0lRrMx%M1Jl}FKXohR15}#0vdmD* zqlijOJx5iyE#+g0(u~_$c(YRep6c@xw{M%4@()y+xfivRsPr1FwMzM?MCnH5?j96= zL0DoMz8lq)t3v$sLMcy#ogUPo@t3*3MwRk8L?xz9`!L*FM0VqlS?DuEl|7*7H>lxa zJEJUD^(iQ!SBQ#D&6K?;{9YBd?Sb^OO0UmH;vF%1yYWR+BsZ1D!wR{Sdl40z%HdZY zrQDk+-FR+JH6+wu^;r;)vSBKPon z&hW=PSEbC9<=T(=WtDJmc!i$>A2rSS3LoEDhP%Ew(D4eNMU>8-k9bq@y~3|_LE!`b zUh}`BKH=wILP}%f_P*)+DK95VXMJNDva39{8>!(dpzuHA^SUG1+1-WuA)oOAmGG>X_G=!(8KsiAq@0 zUGO_*?$c97cr+d3l%ue6 zxxr&q!H14WOH@j-dIPOc2_LNA;A>S{X9?5Z;G0!C<{SaEizwara2C=#Dn)yumLnbwmg^K-S!5LJ#P!f&) zH~2v!cw`B!;RY{O30uewem4Zem9WedWjUm@I8+wPtQ40aH+h#nQizrEId30EQNRzb zyxHe`mP#9a-G+S56Z%WpL>Q#L;7^F`?Aa`&iR`T1ag>FH%Ww;P zBbD$kxFrG+?omU)FZq=yDSSF3NcSaQGX$xGVe9>p@07%IItNF5$y-K~jF&)h-{R3K zHJuy=l&#V#n3iwxb3}Gl4EM{+__!Du!+4LUI;D)yQgQ4_uOVOY%%M^^^JM!W<-9!v zfC6TrFq417N2oLb8rnB}XDrI(c>fLG`U;Zltlw}=9FkmW+~qG3L9=6#;dgngO22b+ zK*h$lCyU0)7mntD@A%-?Fp!9TuzbG9*Q$h#@E+exB*%$+{4|lAu$|;1h|8jbB4^ zeZXfC+1Y;IB<%w}_H_)0iP<lzXp}vB`>F0neoiIN zc5C3RTHb!56q<WVjFeji=V&3VpZVc((M)@yAQgc!5gz!=`8ako3v0`Tov7QR($oPj%1vkE&1X z=GEMkjL{bxFTe;?%`Gb3CvsNFdk@S*)!aqJfpF`-nl~XTVUewybgSk)RXV?P+>k%{ zNFtf1|L_E&ES7k7<`DS)QXSdfJX4j8JG*em-~6Q+wPhhhuUb;z(65mMDYDM*2B-u%HqR~7gnF&P) zA7Dq6cSm$$pcEPl;ZBiGB&(D$b(~%&?y0nkXvBO{YV6VO*FHM2QxffEb>h}S(n&W} z^x~$1WM@^ARt(XLfF(%qtS&x#h*1%TRU93^YlwsRRHb1X-W}p79udLq%mkMpXMrCN zLN(*opB>Ur++B)P!luE9;x5wCCE-0CckyJo^!eqhw}!Zj_A4c|IS}I3LX1^uZ2V6{ zT8g$tm>W^)rjFG^T8o0!QVlktwj%p&B*!+B%p}j~}$@lzipc5)x16c>5 z$(BCvfUJYitK`4M9Nkg4s`OHC#R@o?FpYk1+fghhlH0nD;+9IdDUOu z`D~ylSSODk^Z_DMCH)A_0)=)X%Ipk(3mYgl5~Z`OVMy;t!g(FuSr=bQgbh)P=siwANY`1cB9i6QS!}3BhwD+fB#5C+bZ7C1NN&ZI&cbUO z<$_ijT?E`4P}>K*6etGNqi7<08rd$oi&$Pq)>T|4vK!4QmvmjlU6q!;5#-xdz?}jt z3!~q~>A_uvk4lw2%M4u=5v$^7h+?ryQ{G1^Rtaw_b`_Q#Qq7hvU81{+_C&IacNLM6 zsB?A|ZFZthc@wIu=s{#>U#@>Sx|@J4K4y@)O&bv1T_`UI;SSYUbHK~uCD^0Y3?soJ zydF&@dSI%Am3^>CBf`5BL!*O5o+`u5Qm{C!5^k1)#Z8rPvlJ{I5y>4;u&^k36rmBf zIl-bmk=z0Wi-9V&gSj$TX!l5;S6U&>BC;E8yQ|vUn3ZiTZ!QweAgHVX;?jFJlEf-~YN4tkOO(Yvz4}q<^W;xVD{7PhJ zd$s7(HD89q@ur8kN0iRG29AjCA-cSSvSQZy_1lKtV(~k4&jQv_z2L63=u&_}8AXVQ ztw(Ug49cLmCq##caw3_u5Rq_DMueB1qP!~ zu^-m1aL>ZdniI}?PYR7h4^>)10gH>IYR87cFO zpAp?hoL0$w2HepWcU8K2pv=%$Xg>g-3PjI#A$CWE2fTm6;0a#OBFVDoD+10TZD4tW z7ex0Jn^dyTToT<+j5;r6U$@MN9w543kYxBUBRX6hR_So^RWV51RLMDcO?0GqLZo1C z-VhxnrWVV9>1TIDM~je)HB=BiOw3bh-r4t~UlEH+P$rkcBg9rB{1H)c^awHQa!t5T zqhAx2Qc3g9mPL;e=ZIvucyWa&UH)b{UVKiN3O7i8jE)z#Raz|~!^epqRT>Ga?eU^o z2BhICL5Pnq3izduB{DogxDd%wn;_g(*(GCD^aRnaj%=dnqRN!-9IB!xiZB&(3{}yS zMC?Cab!@UoCW51$p^+wv!z#@=?G1GLV~pO;mcTYMQIru?nBF)Nq)QYPlK5ok9f{(h zD%*do8_*L~HcDCcdvv1ceFfE2@I4ukARIu1xzGWPQ)L)^l1NYqqfZhKB$=8WV=+nM zCsl?KCW+rv8Ag~S*e5cEMj3kW*;l1K8A>Dw2NBAeNfN_}WFaPru|%mX)og=+lU157 zn#4>I$tv~MG>Mri=Bd;}+azY1SWG0fOcxodEZ1m@nJ%{0$`tm7*rN)6HnfO&L!7J? zvJ~;5DvL2X_D&Hu>&Rw^+o~+w*|GNw@kbrmOriNywu|EsZl-8LBujLb=u9LlRGBTh ztB6H9Ti8CMf-;Rh<{dLzz}*k37%bA+qNOUsBAqRKRN07(4&ZZ&N?3)n#Y`euqO*lU zB+Fv9SWcA6)@eiBW-DTyip%to;d4ZB9j|l6XR2%t->4^b)`rV9t9@79qm z5-0wl0TGMDXG9M;PR(zLY9N^Zq?)&c_8W{MmDvrkF>i?kA}LeEG*vd!U=C13Hjzxs zVzIN1&&48N_4$ErWXxhwSjVSboT=l}E=rITh)`(8#n{ECb%aaAEuvJWF~Sc=#g#jl zG)#;R=pm787pcPMF3M!PNEHPYNV3VMic3TlrniqK#-xg?lBi-*#TP_Mg$ZjWRoqpD zY0KXLudTn8O0gxRigrY@EK)@mBANSC5mHYUPL#?ziv^%1rj9I4j8bJ2ozr8|#CAyv z8)n{VLJ$r`r6k63rx0`K}UPstn^(R*Cki5F=a# z-yE)uaFs|Ul5KsJc$-MJi&bJ1Q7ZdG6XLc?9IhiHDYTWS(ezZ$|6BcmiVcTY_0fRl}$IA1J(+U zCm5lOVV&?Hk}<3kN+4k>JJ0sStP?%zc+D1@>(Smi0kg#+HJqC$h{+c3t2EVgJZ8N( zTPNHG@o}AS8^lf3r;Fxv%mz`e{3HA@W}|poCt!|XRhVv>(i~wTN@Yu76`UiQsMMI3 z#%vaC|M96~TSXX=93QudG?lPjY!i2%qE6W?w~0TW%K490tlNa9HRYrOYDpw>ze9{w38UX3HvLf>{SI*) z2ETI=l)XGkcc-yw=6QS>{+6;+07y&b~+PgzbF{SMKZNH(t>!kZB@%6TkTyzzpfFui>AT$@}mR}xiBu6Rq8VgJn)%T-y2 z<=@5RiZ4~dq~(e`L^3hC;vrEg^MPKGE1nV2J3BhIOSt|=<_QzCTg0k_#kN~~_7}=z zquDJU6IGZx90}9z7QacNr0o_jR2e31x3K&zbv9Y{Q_OBLQYB2-A)XaK6Ujn6E1naj zvR3*s!&&jSO1I6fL(d8qD<&qDc{!CC&Ivan8Sb3$Qe|HoI6Eh1{Ud{;L&V!eGK1$u zwxS~D@Vv;eQT@_J>b%I6M0q+d_Ny|?(|K`NmElI}yl`-#aCHCVyl6lqOZ2?xsLF6) zyC4Eo!uT$TY8ORDh-29W!5c_5xM02@jFM;uxFDLSG91e;h?y#3Azly*iDd3Ch%};9 zR$zz>zaZMUqE0FMP;?|pWe>ssvY9ztW`G@WN*g6xnRPEb7rl1Y70uy z4`)4xqj@YJUC^#!b2p;PT}oEz0km7jpt)yvtywo4!`;!{*a0u z28Wo>$?0;cBucJ*1Cd!tNV-c zF}e-<*&T$cP4G@5oXZY&Jfj^=>BkS=euJOHY!cu{Mm%gf`j_?r(=mJH!=(9-PX)wv z1^=&hRCEj8OcJcqBCL*QbN=5nDCNUYh0I?$x7*)W>g&1Y; ziKuSdUd+HSFm!yS%3ep>K;X7 z^f*9qR#)}^U61nL>8h(p*8Srh7|qF3_<>OWr5KqJaxd6^YSnTKkS-lx{kOET8~VIC zxYoU{pJ#YxLw$8y_SFs`vT6bYP{sWDSjdq2FBQLr%p#zXsFRrf7P+kU9sEPp&xUWx)aSoX_zb=jx;m| zXkiS%u83m*oIJM(yHob$f7`Ly3MQvo-5Hd^C+mr|x7U3+KOGim5%%oPmMs+GXOuBkkk`)_qpsr0m| zI|h^MyKZ}GRM+Hb?nZQxeW%tGaJ(c|$3U9#Wb_Wy!oH^#BbU2sq7~|$vKIe7jp~}w zoF?r!XA4?d)hw!X9;mvIN=tUOLC{B_vymz59^C~SG!5Nff>n@!Be=1@OpdSXBJB!_ zF}<992jiMxk6?wWVOK}stRJ!&hZ>y4^=tu*;c$%VaP(sfp+qdfQ2~#f(6LVO=;yPR z=tnl*jVIC1y_2ZNBOl%6N^m74La>KpF_x$m)c#RW#|ga3H64!9a;&Z~<pu!6Qzx6AYKPfR!!lr{1~1f5JHVDv(+=ux z)?^0c`tG9yOtiFPW@_fuH~V2_jhcd$C8dkO1@3>=?F`Z`1$E7W-sn}DwVkb|yViA) zTamghb?s7vYzH!{uPUc%Ro9K?r@81ZH(ajk(Vq7TnzDjq`;bYLp_ELNO0)Csf7|P7 zu5X9-Uq2s>sL{y?WZLUC!@;xAzci&32OI$>Jfph|HGwAI->5^@j|~0Dd`oxGjN`uq z>=-pIwr=#&Ue}Zn*L9J-pznUvAO}||m71mh|E_3sA6h^6(vuAE-=7kr(ERls#0J{|4?*JHTgP*rfd1#Wj(Q@9?()d;Q%xbDN( zz+K>a43`sJ6>!~$pW3^?^%yQExGLbf&%S4^;Cc*KbGRztx)0|_RPrax55EQe7_PQ( zRls#0zWChP|3OKglt>AhLS97>3;JVLRg2I;I))Ex91h){Wy_B665>it$!u_7?7ER)=` z$vxD7p^6OnGtl#7Rv6JG$b@Bpu~>PI7R~}|%Cji<`LYc7{FhqseAaebJ6;4^)&MZ^ zH^oJ;i;U)W!_GOc@G^#nsa|7qc8uj)Ayf*_WBZS%f|)pe8MwT;aTVB??1G1Ukd$@2 zfRdF*?gb3XGKQ~>+{fdzB?^3WAjj1F;vrtj-Wz_7=bBdTxybWPn+Jac_A8OMK+zHR zN8s{sU^Te(8!SW-y~$c=$}DvfMW%%#-9#QGy@*UV-u&XrBA0jf3KMSpRG%m?i~Ed# zM<;$Ori(IDlZ08KnCy9M;aFv>s4zWyZ=a|%`OUZr=FxzwqLi6i!aH*8OL+Y*h97O= z4WFgIbKrAPW%|5VxyTT$r+z1@O@Y~u1-kztuBfUvp3-V=vh97mnT^Abq%}GGFE~&A zCYxT+iRJLBgZsEAcMA8>#PIt`Ng9*(&Vgh_Qx1V2@gQh!>oq~erAapq?e=4n0oI{|M&D11fp1yx55 z#}9Jm@Jjf2We&f(Bpb|D@cANe2YWokxJ|2gLTk*^dTQ<*I0R-=>k}Z@yYK@r`^<&T z#&8y>n)M}xf|Dm-&%kRW2)FT497JlSg1{Kj*cg=JfUf9Vo1?=vri_?yt)er1T zb`K(#VLB|cI56)V7_YN&d`TI7Ch2Snbu%rQIb`NDJOw+4--U0MCYsYrm%t$`*sO9m zo|SDUKl9C}wrti_aD0cjlH;dm=9~8)dS91e#MH>XKhBACnrIbzU4ey|65|@_ga?Q(T+|iY?1Uq_7UsmBwUo>=cGx$1eNQbY! zh}Y9S3|YE_QZJBV(Zz@{jr7Ra(&Eh*3g&6U9Zt?2 zYlt)dF(Cm=)7(TbH72y%KS(yj(fAnS@QHUC*l)I3ZE%C%T&F7B&avUdIh3DSZ-{r; zK7O+yki4ddZ20_O3MFnn$Mdl5m=r^z!_l*s4Ji&g+Fl2j2k(@DS@q6s!+eL#DHD(EXY2KBjxenXrgc|c5zAYYV^Z=JfJXbWhINs>WKc0tvuy=S-?`RKF z9BT5%9tJ56UtZK-x^NsD@*&16#x5L31y_aRz?m;L`ls?9d{@@j#xhgO9{0iQcj0ei z7%8eSefCa6Q;v9dOHWgwxY>-eNY%aHg^{LG5w?1osRI1Z0Y5K)xXcvGaRAN{G4Kss z9PbKD32K5a_PS=8s@hxb;pPelCH7=%_&4X2zd1|bk=$93I%pT;Q3 z76cn-E~3-0u_UI09Z$c;UcS~`=@2}0lex-a-r8;EGWPeW+fWfnP!VOq4~|{4J9H}w z(p5U#O5bEI6P?H0hIW%>zldR#-5;6l4)`*$C(l@L4I)dteA~b+(^~vtwpl*!B^=x= zcMez_JT1?THFWT`Tak}XLUnfzeB)qp z`0D-d9ZK2u%qoW%OPbF!hd7JFjz1mZEpVWwCB?FRkIs^4v43c`WLQRQJF4@f7Jy@1 zYfGHC{qkxsdjBDv{$+FDq_mU;YG`>w=OEyFg_p?Q}%?lJuj>U7c zV%bV5%7aGKhZRsGDrLW%#6fB1>p{9)%ju!H788`jUQ0Dp%|TFs%__%oqlIGOFoaJR zRWKD@x16`Q$9`=&#z*gYZpkudkFYvcSo~HraxAkParboewETKXmZA^XA3}*LMfB~0 zEX&<2e>2Wzk&ZzcJW4yq)DO3O#5u8Kv}pn@P8cpZVvQg&lQhGUiG^Z3<{ahfli zd$Tx=%jAtkXdp;us)kXAa(>6$64*9fOvOIEMZPSp-sy@ol( zYYuk|f_dT3;AE$2i%XE4TIM)aI$Y|w$((B$*l4j6Hqxa|S?0kDGo85Oi-BvM%Bc!& zas|8GJu3D`l#~p}-zOl(;WBBM{R^HV-!d=|bdK?4p%(1|5F z{O81F7#VXt^wy^^TRK}49rQ&wN``thvZgrfKi$@P&9u5#cWbU?b+6u5FN)sNaZ($& zuaM&4d8WU$3-$Q(kiVf|$K0RS;7Qh9;PsPK-bLUP+(qD;?z~36F@qJ9B6PEsSW`sT zi_5JQrfctZF^7@QFbb8W!DFi{9MYlUA}P7Cl-yW~KG3o2MK{G3<#BIyGh$z8~t3FatLmq6;m9q$|%W{YvmpZJXKs`xxS}MwZrOO{akR-Hs2-3@?fW8DKl+6)y16QxOv`6 zmn_Hh=)Eo(rs*e+xZt9Vvlq0K&2cks188RHF4R75b!?fr` zw+6Y6{aOi!46$TsXoGym#xn;s$TFvmh-*;f`0Uu228E8x(h?fvnBLsDxxsnIO^!Rj ze4}e#15d5(%qcLtpEwWxlNXjWD0S@GFqM01zi8b?lVx7I@JfSgjz`?DgY@GCWev(4 z72}>e4XQM$@D=MS&8R6x*D4Ku#kxv^U$L%mJXz4#^(HM)t2BmY?%=)wK0=k@*rA)7 zq0%uq-rF^XHZ4_-zPo#X9lv^ADdu$z1-sI10GOybMvIzbw5T~oy9V@ZrEG_5ZzwsV zT&o>#>M?wLA7Sh@ONCRHQ39u z%-_!_ad!PwmJykmNB9;mo;ZWS*e^C?IBF|wZ~ zGf%V#Ln)e1Ihx1FewxfY0qX{Z72rR1jLg$yzM!Ed4_a&k=PS@+y`68;0CJNCkQX$7 zT%k5xKz_=}&pq;UkNlLA^eGKNk4XBIq)$ouh@{6Ttnz}yS`Cg+S`Cg+FGzfv#1;)k z?@Cfvl3Fx4a(O!8@!DZjq+!CRXiB50WS=S`{8M0GhppX1Ljx3O=)}AzRD0-I(?x}2 zMxU{UE+p-tkhlkl6SX+7_&O~d`Ddd*2}eVm3IMgZe z^_LqbYFYOJo~T`U`sK!fPWTn@4DIMW{Xu$l`>TzykBn>_OPzT>X)EOG=S*wNIqne( zrHfXfeXjP@mRXI9wD@9PxRdtye6a67RM@zbxfH+Gc$5a`hy+S|nJN6jjmBlB9((=( z_sl3uld0sMW12CsO_La>{yqU<#`<&xa}Jp2DTzfCS&SSZq>xQ(ak5E@(-)EFn&7ValO~0HT8q0)<~zki|J)>or^7a_kRR;Q#x27s zw3(k!ETktH#dg3nKbxa_fl=cxiM}rd@`KzQOZi+ z8tInf^eZGNMTbY}ma>Kernu!gX=kLkEusoa(f!b|%#iOi*=;T8!LOdC$@(@8A92>r zrdv4o3%4StCrj_R1zEaws&cEw%)svowRjA3snepCSA|U%I%sIqObQlcv9zAhw2=P@ zAEV55di%o^w>YP^VQ)7z(cKU?GGWa#HcWfXDQ(ulrY47*jgK^~6u4HX6qcP=nr3To z8p|*{H~qG0g+6-A!=`0={8U+)(`!+Wn^y7HTYEF5%t>>AyN5%UyYJ*lO6_KB6I&q> z&=|qR>b_NjbD*ydKgG6{ly23~oemA%8qUj1Xj6MIW=AX0?hkos@$s;rzx-MJ;Fs$2a5-HKGVOU2X3!g zcwBSJ!8|!%-4)()l5 zd$>8L!Dp&toW|_f;Nj_f=D-#YUuVA+yTE?*zya`s*^ALBcnoul4x3mE1Y7BGUVriR z0*=#9u49InbE=>2yna_&0gu!49+L`Y_!u1vbe_=dkw*-VnNsBu4~qWq2zCD0N7F1$ zw|gdP%Y)kvF*-cbIY!stAMI;;V`La*3dG{sEQMlB(Ops|c!Luj#vEuleEB61aDUjX z>2Td%;js5$pJrK>hUo*qoYgO~S)6vj^a7ruTec&%*=eev(^U8=Iy{y+MTg@@kdP*x zjrD?I)dUIrNPUpNxAubs9z~p`8?XkeqgzwuO0yhY3Va1NM|YwZnnSvxxd=WMUnz># zl{brX*2YzUBHU8hb$A|dsAzuCvw5gk;FqEg6^o~|1N$$n#(}-vg>GPPJ+)o)O0l+e zX!AtpRkr@k`i7yvURhkEhVenDqD^!1R=A&nl4W;l= zY`h2X)#NfmkSK!>r^fKI4ojQcsQ`n-&dKW_8mGCNnx{Co?@(r_GXH6O(7cLIpZPPm z>t=0gKHoX<+;fT&zWV80lKH)Rg(c3!@eK4-=ShH+#9%N&OiHli&FgyIBdIAfA8SIrdiJR7L!}#LV{Mc z2p4;8nEU3Clv4c)D7jGKNXeSI`%(*x{!@s!>&06wVmRJ*2ohL|InL36-?j)+#AaAv zRhz@zR_iOAUhVsPiy+Z^;=1PdXwl)Txv*zXOSm}&z1&lS_rr3X$F@Dt@+Q@Nm2Oh% z<(B!*tFk_6Sq=r;hux!stK#wXEHjkF!mA}a7A9qwj|bhqH6yhXYm7u^g+y0x>><;8mi+@i%n#+6JD z8lJt#Y)|HS(r}&{W|8y4kxM*Fb?+U7a?;@kF11=(|9faLMP0NwQEIiA>MmNGWP5;n z9~P#%OA!Ley#GT7x-$j zaz=t3C+IvXgHaGx>BL4+;8N(9$*qbU8yp|g0B@)2ScT4MTN_P<4v$(+p!~&Y@u1}@ z9h#-iU%a)eRjKpz)LpGyDX$f#6MfFNx&~2JfcbtNv>WFSUWVZoTy!kgd0|_x)^=yN zPT#wm^d1RaTATC(gZnD*uX*O!)>E~3YhC#UH>B4y)OgZ6v!bCSPmww=8NHkyF*~}|}%4Qao%_3M6M0urAxz3`j z`f83GAMX_|V&^A$DdEsxXL#A2T|0m8o~FgR&!oKiYF5D4MesJvVPl2v!>Q?B8BQss zes0ye_j{i*ROs+rXHN}I(AkvxD(A!~Ya5&X=j|=qYy~~bxSJk7Pn_ZOOR=9@wia8M zoBpdlZiZ~oAL6`Ki*ri00x50aoChiOcFr<8D!tkiXmKf4?VQvv8tk|rE960Mzrwlo zXl@%#hB)ipPnSpesL6E}{+hON4zbEvxa$Xk4Q<`55o@=#^|anOunX+&6SskR1YF##UuA7; z>ubHaCckY8_&f^smsXd9iQ_?~INbWXw()w))Q4^D`l{WJ+h*yDGk$HGqrY?v&Xv`B z!ij-7dhAWU*4JMxZ(He9>D$OVL;vosR^GY#(4LAnt8~ih(8xQ6<0*(iP*6R+!(lBO z4JMn_%GK98?9~+SeEsZE3%q^BR`3(&Ftxe7RjGho0eil_bZ55rO{&qG)Ozyu<+<73 zDX?|f17UyK`mT2|LbAQ=-GIr~3Q`c072xNQ=iaB@V29#2lG&<{$R+PqBvW6%E9*J}K5a?;h|e(_6dk$p}&qo)pQx=jD^ zzQ9kAW)Hk9_}JJA9z@Q9HP+pLng^J+gBHc2Q1G{L1tmuzagFJ}GXMj<3ucs&p`E+#9Ae_k}3) zIs}1fWtG;)=MR8=>Da;!Rn~9PPjm>U1jUfa`N!}*`ywqKv>Q(@DfCb>(GUXX$0Zt~ z!Q}ix&mi4=Ltl6}!HxI`E75>A@)M;V?z1x$)>JIYv7-{hyYAG%yX1~r8g%s1;ka!# zWCgbd`;75Z8hPn(lrH4HTl_kV0S}*fEK5*5gapc8pW3zrDM*V-BUONQ(#N<{D(5 zu7ZO|bIHAmXT$!@W*A-IX0RFZVZCHC9B6^&hdV#*7zq)>69FC0>(w+=S6hExe9_Ep zLtt#Ew&HQF)mChhF?{oEe4zP3qS3$FIvN(b)mCMlCoI3L_|UN0nhXohN^SH(%<%)I zk-y2dCCnYnd@w7uzxOtR*$hs3&8K9+VY*SB{cSew?gid%wn<7a|7(Ur0nq&nec)+Y zmEj%KY#0OghPm-?I5x;;!^2HIZD#jqf0J>92ebymP6cvY#gkf(_Aiu5sq@$kczC4E z)&Q0d)u#2?r`)Tw_>7>C+PSZ7;mBqFb_1^GO~#~k`#{~Ac*l-`wv{Ie{3{Hv!G@I^ z*S&evKgiY({8Z=*d!O(RxAmO&Has2sIpvIhJRkDfhhTm%LHWc#mg*_aW()bo-)6kI z4GP)l)fg5O;tt$MD%0otKk={7kAdA?rBGVy0^)7!o52B!`u1?ftIgJ=Z8mH`OZFaw z{KdU&3#f!c!U6&kZS7CJ6fla~M1|?occTJ4ZReUr`={7^ri}&-D|amq@H94xg86^G zttcQXpp?C~WpjYtmN5#4*ck~s18lZXTs-MJfN3}2nV9$p%?hL2=l*U6?0BaG(7YH> z;c#?~zu9iUA*D)-$Cly__uBwW`VRqx{LOwp2Lu^$peu7)8t^or%;}F;VMFJz`_OuW zf{)x-V3||w1jj&=ac4ZV8{4^veViL7W(Ec(P}x-IeMa;JJNAWZPBCW=HZ3&ZxtKYY zvn`?mgWzWcSBx>RR8$nyT=kL&q9|U)i;*bm_tY8m^}X*uU!Z?|`qb&_T25D0_jFgwR=Uz=ENw}= zYF+cf9sMiA=Pn)GKTDCjh=SLV)`h!ruWc#=WD^4RhW%wc19nvm`ADeQ3%1_!Z!{hm8>)WyLF> znF`F`w2g&6cgfum=d8Ag2RojyeY#;u(p-bQ;#h}16XXBmw#uww7ZcJ*lJk@VY z(mLu!HX6c4i=0lGq4myIvXR?=MmyPFN4BaCZ4mxEh3ST^Ew^=?GvfCUo zWly}KCYx(ybAv+b5XuL8s4V3Vm&U;- z%yLS}-Jx3+$3d1Y<{9<{#>!~_uc6p+f!%Gm*lrc~We(1bP!8n|j^ptd0be!$`=Q*y z+pY3$Rvh2!o`KMp-188+*1cq~$Mz4jcexR-;dTk(-T~sMhmzb&#Q0mfRTJ>@rp@OdHZ@oc;J_vDDV&Bc8q|KCtze8S+#!9v>T5@B^TT@?;MVxbMap&K>XXky%Hj8|epwXB#DnGf= zcq|t~vG6Iq+}7*Xw2sBl{A*OO`FuFJfFG>g)TMwAL2eq2BguXo`iKnWm6?MvPL$vJ zxQ=@UgS(s;JMbe*vr#=JW1doYu;Y13ZllqMMy%1;*)>V7G9Qo}kScE-BtCEjyU{f| z)#xp9#zd{g-kcm~>+|$C$<3D3`^C^kt0gaRlrejSKtQ`Xy`gQ(R-Pn;blyr}2-cjeh*gPMps< zh@@!VUZq33)5*5LB36)_fLYxy*hK5QLTLA+K}{NXUyIx1>` z%ccHoL7S_mzZ+K9Mn12xjt(Q}(&-G#T0b~tfi~5Xl5&Q%$N7T#TQV}G(YSZOX5rBe zH)N+IhIcs~ZL8yJI^?BPYQ{;=aM`oWNNF~9#_%f<51rx8AWi5aN16+`%_8U4v$+s} z2k-FvcCw*0RI;v(vFG)aFryrNHrh^i+s~Urzf5kpGAwTveUiG&(p_&#&EZ?KzlE&dcOw<=&|`YXR(3LgrZhsE-ajn{ z7ngX-gG#GAl})3z?~bu)xrTSAm!~bToa(SP?W$&;R+Sd7c3-eH?Yh?P=&rQg);iq2 zzACOv`Y^3kyIk{0+8K7w$dv{jx!={XeUv3qmO*Vuulqvq)W)<^s4eC9oh@m$$fGa( zp0-_4c1YPz@)wVXr$Z#1!aKSQd9=b2Km{hX2X)1@1<9T+**Diy&!UQ;wR~e zeB*-{fb+KpV8EiDsE&4&M3xlBI+jINX5vW@rQvi>hbMB*YayOl%fvpUcp%8?+SqGqZn$+-}BFaQI-!!Q+-XPDFOeF=w2Kyg0pG zM$w-K8<25AODN9CIL9_VA)l3e8yPzn*`+KeV>hq4qa-5{mJux8r9Qc7rnf zT5|TjmeFXq_}Cq61w~g9@<{%-8J@^a8iwBLWjv%=6_$gG+PKI?TVm34L;B$&^}5z;&B)9~RA^3Sv&D5I zel}M3F0agNj@(*!B(phug>$K}*@oBtJJV+CK0;oQ%UOmm({qjTaZUdwM&C3{hko~N+}|<>a1)J3ZHb)jOe9Ml z6&fYwXHiXw=69V%&N@B_LvkK9Eqpp+=nyg8x!d|t>4NBt$fu&$JI|O`;#vd4oCooc zpZ5ILm!0waop{%NTxcWNw^m_-~-%pp!7 z=7MH?#9dnEk(|$4AQzCPm{>xbM_ftt5X<>>7fdT@12+^PR}r@mw-XP73TEFm49EM& z%BbOHmaRz5Xp-+!T5$OB$}iyk3Pb35gqqpMr2kdP9v;THnuC1}s*J$`YAjrpG1wsE zy|Q>!<~0E-jU`e*GBkJtjPwPhFD88{>DQCKiu7AZzXKWr+d~J~OY#BL1kE$h7}#Or z5z@Q_+04wsg7|+GIEss98Ac(E1%@0XqQoE*u>e%q4(Jv3GH7P+8LW_hBn>x8eH<}? zIGUJC{0!7E;E?fr0pc*E;U=jufCgMi%j7123Ug)A#%NGu6A-Mh5oQ^XWtPP?n&cc} z32_BKt}EzUxc3vbJ7*`d6X{1fOe5epS5H>jIf%mgOnUQATu zy-FuDZ(>CgE?Ii>5A)QJ-h9F|f5;|wXhKcMF#guGlVE7UCGeiY!Y~;{4Zb(Cvd9s> ziTyOeA1)(mAT|-1m7=yHYG=N66B|0wPZ~dI>=825Zrj9GOw6}Q*;S~?NWH`wts3X9 zH&U{O=!}v@=Z=cxuT1oV|DIIXmh6dz?RxW;A}?54T-c#EzgB#ygA6Tbt%n2AneA<-M_bs?e}+GvO!fMP#M@+G2br^65ni6@Ddh-w@~ zN^}zQ<75nlB)duW6KhCwl6Z-zc9r|uyKZ8xX}R5K!%561782b=FR_MrlGudZcIT?y z=!KWH-2I zazhUpQ4^8%lyX7BIOP6Bzeo6}yypI1J}b{Nz{{8A6(o82+B|>KCU#;nAL!*f^7ue$ z8Ao(E25w^JDH*ikhdgGAeUOaKK1iNI_Q9Lj_9=G9Ce}KIWk@~Ckb3_p>EV3ri+tty zrm>q?%2dY$8JbUY6aB=7+mw4Xk=!&v%4{OV=9)-{$=$@3O>LS?swt9oqJx-EbQArz zNqgl<%cg0x*K|pL!6w!)wW;8F7kR>sn z=qCD!4a6oQt0YUJo9HJt5Sxf>jkIyuY2_fgiGE@Ov5CmmO4FuCCD{hae4?A^CpHk9 zh-{;@u@l`yKe2(>L}XQDL&V$4a6oQdt8P#RZFrbC{m)E=qEN1n}XaymOCXK#C)Qg=qEN1 zn|4;;AtT*Iro?=ro9HJt5Cao0DAN?zx|DZP&Zm5y(vtFPiaE7?>dMsBsasNyr2du~ zl~$B?FzxlUuhYIyi%K7yo|`@|eR;Y&{ps{C)4xssPkL*5Z^uMOq2sFKmZNjVh>UwP zCTBdHaaZQB%#2KL=98HRG8;1gk@-Ppth29ku5+Ptsq?V&sPm-rjI$X-M$Sxld)6Gt z`dA6&cxUu9-U)pj?|`0Rm)To*$MY=S>3kQjZ=S>Jnjhfx%nNuO^CP@|*@)LIKf&9T zpW$uFi}VI%D8EE+N4Do*;>Pb+cnk7tyzqDpFF4AN=+;+v8Y^iBYqs|Q|B-VS*yQdH zR#guHvt6g8s=hiEeEwl4$s_+FkA{5EGZsAOl%YKvBqJ6|X8%pn_LPjFp;j{Q70IM& z!8j*Dern8Au)caGxG#MUxbC2gZFZ5|x4zo-5Uomy%Y!PS54=3Q63ia6;ZIpvzXkF) zlY=|^A=g*$1AE;044C|^jQX)Vq`WX8C_e|;y7(CQPA{onwBlv(^4%xE4llg!!m7Ud zEExIH2jB;}GB}m;r&4Y_)1{`qx{-Jh6!X3Sqep%7r(8JuI^<98`3c-N_*d{X;=hO$ z#J`PIG1)+1ngu+#u?_gvk?3)F7klfnSZpjw3g)Q?WaDrtzqLaiIDVNd%zu#FZnBgo zb?6P7`s%*mGcN{Z@0PFD@NQSGvwK8WkOvUQy<61?pT@QbJ2dtOZLg&X_VJwlBd*AC^=xul6?rx+AnR!Et2}L zX|MYSNcnDxCvKmVd!Kk zNqy1|$=_Z%2F*TkaEz8c2&0^G?<_}b7alc zSKor>|5j75Qi2r`tdzdTWX9g>D%rM1R`KWeOS!&U&i(Lvdztia5A~M*Z+y-SmA5Vo z49c(8X@AOp)&Esat?Tfo&98^M{3*{rEGGmE#`FInyVzfiWQzXSx%XjtrvBdqJ#)C% zp9eT}sNbLR$l0>w{+h(U%70Dn|Lmo(z}Sn*9^tA~S967JS1ZBe>RRwcbv<}O-2k3c ztH4He6Zna`1^iak!SC=wu7bBrtHEE?9UvFGKvnDpyWms43bW%II+zSg><1G?EjUa( z4W^2Npi>+IN4P{CR@vftaEz!2$BO_sQ5**!5if!(#mk^iyb7)oC&2Xrm!oWhI1O$S zuY-?^Ghhuq=84;0;w<>Gc$ahb3aH?5t#jZz_*SFBE{O}^7vdxE2Z0Y5D(r^%1pHZi z2Hp}E`P1xcQNo^PcEcR>e{)Uo;CxeWaG@yyTx9ACE;c2COHBj7<)(q?OaBhbkC_{m zAG0!3GU$Wl$7~fWKV}uCVc;5AUS!Y0@*+EI>g~enIa4Zl1g00+QJ7w2$4u$q3oyOR z&cpOF`w)>{X8%N_m)WPVyv+Uu%gd|@kzQt>!}1FI8kSesHCSF@Kfv+|y8+89tOb@= z*iBeoVL!w2OZFQqzr>7rxO4I)Q_LCI5azz1(VPgH%}y}HJP>1nLFRaH2u#1nbipIR zG+2Jm9I*VJWty|V;jp~HCd2Xun+nStY??U-%!lO-HUpM7Sdn=gI1`pFY#}UL*dkcA zxY%Ntwy>ozZDGq{+QL@Aw1xd0ra!SVnEu3kF#QSNBgz3QVEGd!$V~*-!SW~eC@gQX z$6$GrZHDDdwhfjy+2gRh$)14aO|}!3H<=%nt!xi0TiHHXwldcNn6|Q~VA{%_fhm5- zf@v!|3{w;T9;PP#158c41rsls_)S=v_|LF3@muBr;BT-rbHx%53QKR$Y?%axSo(rt zmPF8M$ps@U12KAvf+c36fF@wCM+>|g{2U@2bP%70+v>uZ7BxFz%rU|gk>~;43^P+ zo5huk)#EUY=1;&hn(wp>1N|`V#2aARiN6NZPW&I1Wbh4GcH(csvJ-zBmYw)Ju#DwR zu#DxO!!nj%wq$@;U>VE5f@LiK+TsMS!P3sZhoznW082Z+VJU2nRSQh*{3cB8{AZ-p z&Tm-)Yray-xXYUQerihE@U+bI`t(=QUr!(HSm3C1#AiI7@odKD8LOSbE$2e{>)%%? za_XJ``TNS594)svW=5&*-V-xJ$-maclK<^w7qEPYDHhjfz`w9u#L|RY zpUqf4$8rhFWh`G{9+xXvzGSiND;CeL;%4aAtPlH!C9rF32qsKPWB&x z1{TRT;$`!VtSx_%wZqaLjcx}l(O5e2XW&@Ruo&L+5bMkju`c{M_|J22jN^D*=1ta> zzsfAc5hSYXdhr4tWaXjLvy_{LD@0|oPE6_0d?S&liFPg_$=xkLm;P(TEYWoBh*15f$&b~wF6JbsKZtL_gM8(;77Z9nCnNosxg62 zyQ;77z>)6iywE_Oeri@oVC7JC4A;*OQy&RTPf_QG=}q^jFX>NZss9XAjlz3Ff%~%6 zH+UdnjM_&H6z8Zzl|aKdb&e89ny4-^1p;~MQ66|?x|*Zv*Jr5v15XyJX*}>vk-Do* z;MGOyYdo-hv1(ESwae57Q(&=2-Dn9!u2q-wz^-)|IhbY@FPfe)cWxm2QME$VKdVw7 z3_S3dI#SV3+*H~I-rKB>=Yhdn)vZe4(`~A*2LAqpnyLgo+NpNb0|(2s!rni#{u=zK*KThXRg2Xf;ujc@S>W7Z$G}QRe}Xg z4S{P@MKss;n(Ul+*4*dJjDt4c8NK~9vE6u17&YGo{pd82r}&!nw$nv7#rK6ibh;SM z@6%n=MQ=V{e|owo<@f7x`C=aD`i6WluCGBWwoPHg`SO zJfk)5Ly%$WnSi_^z0jF8?;?G5u^6h9H|r;hMTxci3quG(axEr<=3S}}ohf?S%ddt+ zaLnO>0_wtKaQRi4&#R_j@m$s2Ge!I42O=Z55=Jq1VN_aOSeU_t^v(@wtCfGNhT(u= zm?T~85-hJSXhCFv{@zTnT2@)^ERn{O^=-4nxNe3RD~inK8DX`pGRT@<6|T8!aahmw zP&9E?Z0ptsM6DsNt+uL%{?Y@YM_fFDS0zX!N(_`p4YjM-IaMpxR%Pf)iMZSBQ*k7eJr5Y+)|%&wP?G_*asZWGr^vGQ9x$4u>)eT>BD%tP;(%?t zwrYDA8he?<^0T&8yY-m);?A(WvdE;;wra0_-+VDK^cky}sa7jW>!4mYU-UE8OV?R- zT>omm=oR}ixkDMZnnE;BSd4Ol-UA3+ddeu2NRYY_##M{?Edy>BtYo1n_iq!^v zfyx2%rSqZWw-N4WHXaEo0?mDQ{SUDkUFDOAvS$h_pXMK_6hx5B|u z?Xuia+@3g7nC5+3_bd`UjPb#;e`b+*gD2{xrKr4t`s4Wc?``kyxI^(?(>E>_Lr3P?n8~&}Pb;>0t8A-^WrLHz&|=iuJUx(WTUn*eyB-G8 z-_D?2s}1JQU5iuLwz@#UbMva^{a&{%5giooO}+OLF_h=&Gna_2JTXwYL_~4LdrRN7 zR21+koi7umcdke7yajYR`(=4nQKrl4&GL-EN>((AWsAOZnHbY^2U-dyw6cS;m0G~c}W>-7GQ;OgvjAYz3$!1;y1@s*-f>4)hunayix zXEKt1`63jXFCyqHpalY`A<8`ZTwQ4l{%VPxsF99P+xwL1p!idVi1b-5o`4 zgOWh0XkLqg(<5Bbd{MH^wt3E>9viU*@xpBpM+t4KdCuP6lqImbRlnsC39(VqCs+R( z`WI`1U9not(x`&#_mrXKHUx^xgpJ2ack zKFtPVxXE9!0Oj{#5@O$)0YeWxpz$@2? zSaWGGMWy0hK0$%N~)~& zdare2-hl0tZ0dO{b_k=bVz;a?cb!Fchn_0@H&elC6}7>WzoJ%ubDikjr%vvOTEjl> zz0syn&6lrvo8kR7AKa^KnSvsKi^&7l>v8MFY<@ytw_e1B7~o&G%OkK}e9sN~fk%bi zbWXZf#RdJ{N6{EG>Mf6o&y5HQ#1tr!fqbid{M~!zG zyy8dw(T(CB@sQ2;kp9n&Vjo5-o+{A?2YR+jtdLDhpT|TZ)`97diI2G@E&_YYZZP23 zEL^G)S<))w_0zg=VMsM%o9LD>nu=^Rb;l9mCRNs!YL;9H~++c!F$g-$RMKZ%M(1H}~nA%G12z|_U(Ou7eLX76!^~awOsni&| zxAZo((|kVt5;U&S(lSS4f<&H0Hbj+Z6X9Nvq&K0)Wn)u{zQ|-mKMmE)`i|=fJ4Hvl zR}R0cEY-*C6w^#osigDu=XZ);UAMHgTaeK$=!nf$I(clBXl}`5h0NY={dd?!turC_ zGH=k8pQYf9dg?AQL{|BdUBVt)7mE6FZ`aDMqm0O4n*nFd?YN%MkM0sZ#?{L_RUS9X zm`~VD#y>`YcFkkAqVQ1aw#w7N#tOaS?L2u;QG5--X2@zbp^(rMS#f$)p3(2}i^ZKP zKO>X(q%V1ja1^XOr21HY)sOMbr+SlL++k`W-DTanTiE3gyx(qdpidtBOx7%wXt7q- z8ex`Zz8HBLYMy%9uoJuM;z^M)q)!J7D5s=0bhjp*XEXl3v& zZB2Nv-zt&)%Q7y#iL6!_O~Q=&F&I1Jkfd^lm~iqmQW_9>#R+|74enGP(DU{PKR>1a zwnrS{Q}yTfigf;v{-3=fDFkL^7i4O(_0juq2~ngk-X{{cTi>$}BMqMnsnFluhn{7# zY?)-jJu6kCCLP7QN4M-3ozstmAP@3#q^yTLJ-o;M*mfVI?Nf56K0sNr1)Z=P8P-7$Js?K%JN0n~ME3#xpenml>XRsn8g}uXp#(dNMuWl*Pl8ddKw>) z@*@4i10t@|QpjbO0k4b+XE08(2!nK);(()8oKV~M!`OnO5tV(gub*s9Jw0SM+u@*y z=luei2gOsEWiIgTvv@x%G7QcyJrFi#GxhA<^%oC|E>T8#eO9a(&<AD@g1+~XZn9doUzLQ diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Spawner.xml b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Spawner.xml new file mode 100644 index 00000000..023f2222 --- /dev/null +++ b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Spawner.xml @@ -0,0 +1,103 @@ + + + + + WULA_ComponentAssembler + + 一台复杂的机器,可以缓慢地用原材料组装零部件。需要钢铁和木材才能运作。 + Building + + Things/Building/Production/FabricationBench + Graphic_Multi + (3.5, 1.5) + + Damage/Corner + Damage/Corner + Damage/Corner + Damage/Corner + + + Building + PassThroughOnly + 0.5 + 70 + true + + 350 + 4000 + 1.0 + -15 + + Normal + (3,1) + + 200 + 8 + + + +
  • + CompPowerTrader + 350 +
  • +
  • + + +
  • + 120000~120000 + +
  • + ComponentIndustrial + 5 +
  • +
  • + ComponentSpacer + 1 +
  • + + true + + + +
  • + steel + 钢材储量 + + +
  • Steel
  • + + + 200 + 1 + true + true + true + + + +
  • + wood + 木材储量 + + +
  • WoodLog
  • + + + 300 + 2 + true + true + true + + +
  • + + Heavy + Production + 6 + +
  • Fabrication
  • + +
    + +
    \ No newline at end of file diff --git a/MCP/vector_cache/knowledge_cache.json b/MCP/vector_cache/knowledge_cache.json index 2d96bca7..b842bca5 100644 --- a/MCP/vector_cache/knowledge_cache.json +++ b/MCP/vector_cache/knowledge_cache.json @@ -42425,5 +42425,3111 @@ ], "result": "--- 结果 1 (相似度: 1.000) ---\n文件路径: C:\\Steam\\steamapps\\common\\RimWorld\\Data\\dll1.6\\RimWorld\\Building_Turret.txt\n\npublic abstract class Building_Turret : Building, IAttackTarget, ILoadReferenceable, IAttackTargetSearcher\n{\n\tprotected LocalTargetInfo forcedTarget = LocalTargetInfo.Invalid;\n\n\tprivate LocalTargetInfo lastAttackedTarget;\n\n\tprivate int lastAttackTargetTick;\n\n\tprivate StunHandler stunner;\n\n\tprivate bool triedGettingStunner;\n\n\tprivate const float SightRadiusTurret = 13.4f;\n\n\tpublic abstract LocalTargetInfo CurrentTarget { get; }\n\n\tpublic abstract Verb AttackVerb { get; }\n\n\tpublic virtual Material TurretTopMaterial => def.building.turretTopMat;\n\n\tprotected bool IsStunned\n\t{\n\t\tget\n\t\t{\n\t\t\tif (!triedGettingStunner)\n\t\t\t{\n\t\t\t\tstunner = GetComp()?.StunHandler;\n\t\t\t\ttriedGettingStunner = true;\n\t\t\t}\n\t\t\tif (stunner != null)\n\t\t\t{\n\t\t\t\treturn stunner.Stunned;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tThing IAttackTarget.Thing => this;\n\n\tpublic LocalTargetInfo TargetCurrentlyAimingAt => CurrentTarget;\n\n\tThing IAttackTargetSearcher.Thing => this;\n\n\tpublic Verb CurrentEffectiveVerb => AttackVerb;\n\n\tpublic LocalTargetInfo LastAttackedTarget => lastAttackedTarget;\n\n\tpublic int LastAttackTargetTick => lastAttackTargetTick;\n\n\tpublic float TargetPriorityFactor => 1f;\n\n\tpublic LocalTargetInfo ForcedTarget => forcedTarget;\n\n\tpublic virtual bool IsEverThreat => true;\n\n\tprotected override void Tick()\n\t{\n\t\tbase.Tick();\n\t\tif (forcedTarget.HasThing && (!forcedTarget.Thing.Spawned || !base.Spawned || forcedTarget.Thing.Map != base.Map))\n\t\t{\n\t\t\tforcedTarget = LocalTargetInfo.Invalid;\n\t\t}\n\t}\n\n\tpublic override void ExposeData()\n\t{\n\t\tbase.ExposeData();\n\t\tScribe_TargetInfo.Look(ref forcedTarget, \"forcedTarget\");\n\t\tScribe_TargetInfo.Look(ref lastAttackedTarget, \"lastAttackedTarget\");\n\t\tScribe_Values.Look(ref lastAttackTargetTick, \"lastAttackTargetTick\", 0);\n\t}\n\n\tpublic override void PreApplyDamage(ref DamageInfo dinfo, out bool absorbed)\n\t{\n\t\tbase.PreApplyDamage(ref dinfo, out absorbed);\n\t\tif (!absorbed)\n\t\t{\n\t\t\tabsorbed = false;\n\t\t}\n\t}\n\n\tpublic abstract void OrderAttack(LocalTargetInfo targ);\n\n\tpublic bool ThreatDisabled(IAttackTargetSearcher disabledFor)\n\t{\n\t\tif (!IsEverThreat)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompPowerTrader comp = GetComp();\n\t\tif (comp != null && !comp.PowerOn)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompMannable comp2 = GetComp();\n\t\tif (comp2 != null && !comp2.MannedNow)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompCanBeDormant comp3 = GetComp();\n\t\tif (comp3 != null && !comp3.Awake)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompInitiatable comp4 = GetComp();\n\t\tif (comp4 != null && !comp4.Initiated)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompMechPowerCell comp5 = GetComp();\n\t\tif (comp5 != null && comp5.depleted)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tCompHackable comp6 = GetComp();\n\t\tif (comp6 != null && comp6.IsHacked)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected void OnAttackedTarget(LocalTargetInfo target)\n\t{\n\t\tlastAttackTargetTick = Find.TickManager.TicksGame;\n\t\tlastAttackedTarget = target;\n\t}\n}\n\n", "timestamp": "2025-08-28 12:23:26,593" + }, + "CompProperties_Refuelable": { + "keywords": [ + "CompProperties_Refuelable" + ], + "question": "class CompProperties_Refuelable", + "embedding": [ + 0.043891970068216324, + 0.021217426285147667, + 0.039580088108778, + 0.02193111553788185, + -0.06904955953359604, + -0.008475075475871563, + 0.006315418053418398, + -0.00701052276417613, + -0.003748734015971422, + 0.09444504976272583, + 0.04995834082365036, + -0.04062088578939438, + -0.027179716154932976, + -0.007954675704240799, + 0.006761474534869194, + 0.012281425297260284, + -0.042702484875917435, + -0.12019738554954529, + -0.016950150951743126, + 0.04148326441645622, + 0.02590101957321167, + 0.04525987431406975, + 0.019225038588047028, + 0.021886510774493217, + 0.0072447024285793304, + 0.0024421599227935076, + -0.01500236988067627, + 0.07351012527942657, + 0.058373939245939255, + -0.0277447197586298, + 0.0578981451690197, + -0.0023250700905919075, + -0.006211338099092245, + -0.026005100458860397, + -0.03080764226615429, + 0.0414535254240036, + 0.01727725937962532, + -0.00961995404213667, + -0.029945265501737595, + 0.009151594713330269, + 0.009337451308965683, + -0.013790583238005638, + -0.007188945543020964, + 0.020399654284119606, + -0.01016265619546175, + -0.002345514250919223, + 0.021559402346611023, + -0.02961815893650055, + -0.01858569122850895, + 0.030316980555653572, + -0.009590216912329197, + -0.022927308455109596, + -0.055994972586631775, + 0.012162476778030396, + 0.006259660702198744, + 0.014942895621061325, + 0.019329119473695755, + 0.029826316982507706, + -0.018169371411204338, + 0.03202686458826065, + 0.014370456337928772, + 0.052932050079107285, + -0.020027941092848778, + -0.04567619413137436, + -0.013195840641856194, + -0.01766384206712246, + -0.0007308823405764997, + 0.004743068479001522, + 0.004735634196549654, + -0.01726238988339901, + 0.04966096952557564, + -0.009523308835923672, + -0.03470320254564285, + -0.015195661224424839, + -0.04823358729481697, + 0.040204569697380066, + 0.01043772418051958, + 0.00044698588317260146, + -0.036725327372550964, + -0.006322852335870266, + -0.020399654284119606, + -0.0061704497784376144, + -0.05367547646164894, + 0.015998562797904015, + 0.024756141006946564, + 0.0651242658495903, + 0.012043528258800507, + -0.0629831925034523, + 0.027135109528899193, + 0.053853899240493774, + 0.0374390184879303, + -0.004817411303520203, + 0.009649691171944141, + -0.04294038191437721, + 0.01035594753921032, + -0.016935281455516815, + -0.007069997023791075, + 0.017901737242937088, + -0.02230283059179783, + -0.010311341844499111, + -0.03282976523041725, + -0.0640537291765213, + -0.08213388919830322, + 0.0694064050912857, + -0.005568273365497589, + 0.04463539645075798, + -0.04424881562590599, + 0.014266377314925194, + -0.019343987107276917, + 0.03723085671663284, + -0.006649960298091173, + -0.0699416771531105, + -0.026064574718475342, + 0.03372187912464142, + 0.013441172428429127, + -0.00022535151219926775, + 0.026272732764482498, + 0.013247881084680557, + 0.008876526728272438, + 0.008430469781160355, + 0.018139634281396866, + -0.004572079982608557, + -0.033959776163101196, + -0.03758770227432251, + 0.02961815893650055, + 0.022823229432106018, + -0.027135109528899193, + 0.024250609800219536, + -0.01953727938234806, + 0.0554894395172596, + 0.016637912020087242, + -0.01767870970070362, + -0.011984053999185562, + -0.03164028003811836, + 0.0039847721345722675, + 0.01806529238820076, + -0.029023416340351105, + -0.020265838131308556, + -0.10586410015821457, + 0.014035914093255997, + -0.06910903751850128, + -0.00040563271613791585, + -0.05224809795618057, + 0.06488636881113052, + 0.12299267202615738, + -0.03836086764931679, + -0.05724392831325531, + -0.03265134245157242, + 0.005025571212172508, + 0.007382236886769533, + -0.00875757820904255, + -0.011158849112689495, + -0.024771010503172874, + 0.03494109958410263, + -0.004687311593443155, + -0.0433269627392292, + 0.028666570782661438, + -0.019299382343888283, + 0.026540366932749748, + -0.01941833086311817, + 0.0011708985548466444, + 0.020949792116880417, + -0.015463295392692089, + -0.0013595432974398136, + 0.03330555930733681, + -0.006151863839477301, + -0.0021187688689678907, + -0.0075978306122124195, + -0.034613993018865585, + -0.01102503202855587, + 0.0006114692660048604, + 0.008400732651352882, + -0.010883781127631664, + 0.007843161933124065, + 0.01008831337094307, + -0.00630798377096653, + 0.02658497355878353, + 0.04966096952557564, + 0.027016161009669304, + -0.0003143305075354874, + 0.06268581748008728, + 0.0016457629390060902, + 0.003139123320579529, + -0.0033379902597516775, + -0.009434097446501255, + -0.049333859235048294, + -0.0312239620834589, + -0.011582602746784687, + 0.013679069466888905, + 0.009909890592098236, + -0.001910609076730907, + 0.03517899662256241, + -0.03758770227432251, + 0.028621964156627655, + -0.0028807821217924356, + -0.0040182266384363174, + -0.004679877310991287, + 0.004642705898731947, + -0.027967749163508415, + 0.007768819108605385, + 0.015641717240214348, + -0.050553079694509506, + -0.005921401549130678, + 0.014838816598057747, + 0.028517885133624077, + -0.0153443468734622, + 0.040650624781847, + -0.00611097551882267, + 0.016504094004631042, + -0.002821308095008135, + 0.049095962196588516, + 0.010593844577670097, + -0.004215234890580177, + -0.05899842083454132, + 0.019790044054389, + 0.007326479535549879, + -0.04862016811966896, + -0.011262929067015648, + 0.02057807706296444, + -0.01307689305394888, + -0.05233730748295784, + -0.008854223415255547, + -3.107295196969062e-05, + 0.03547636792063713, + 0.06027711555361748, + 0.0038695409893989563, + 0.046568308025598526, + -0.031432121992111206, + 0.006378609221428633, + -0.025722596794366837, + -0.015641717240214348, + -0.043773021548986435, + -0.08653497695922852, + -0.012095567770302296, + 0.03889613598585129, + 0.016801465302705765, + -0.04383249580860138, + -0.00790263619273901, + -0.0038992781192064285, + -4.4489497668109834e-05, + 0.011359574273228645, + 0.03178896754980087, + 0.03080764226615429, + 0.02976684458553791, + -0.0094935717061162, + -0.023551788181066513, + -0.017886869609355927, + -0.03574400022625923, + -0.008207441307604313, + 0.014355587773025036, + -0.03425714746117592, + 0.046806205064058304, + 0.009872719645500183, + 0.014846250414848328, + -0.018704639747738838, + -0.008623761124908924, + -0.0050924792885780334, + 0.018838457763195038, + 0.01672712154686451, + 0.01055667269974947, + -0.04793621599674225, + 0.06339950859546661, + 0.004891754128038883, + -0.026376813650131226, + -0.003585179802030325, + 0.01686093956232071, + 0.0173813384026289, + 0.06601637601852417, + -0.01858569122850895, + 0.013515515252947807, + -0.030242636799812317, + 0.0366361141204834, + 0.04847148433327675, + -0.029573552310466766, + -0.0005203993641771376, + -0.004679877310991287, + 0.044159602373838425, + -0.02163374423980713, + -0.01515105552971363, + -0.004430829081684351, + 0.011656945571303368, + -0.003824935294687748, + -0.018422137945890427, + 0.003590755630284548, + -0.029543815180659294, + 0.008519681170582771, + 0.04050193727016449, + 0.0022191316820681095, + -0.009776073507964611, + -0.002945832209661603, + 0.005538536235690117, + -0.01778279058635235, + 0.0077242134138941765, + -0.01967109553515911, + 0.015188227407634258, + -0.008162835612893105, + -0.010393118485808372, + 0.00837099552154541, + -0.03161054477095604, + -0.0015333195915445685, + -0.025677992030978203, + -0.010995294898748398, + 0.019834650680422783, + 0.023061126470565796, + 0.02297191508114338, + 0.025544174015522003, + 0.00451632309705019, + -0.14702025055885315, + -0.00896573718637228, + -0.10134405642747879, + -0.001797236385755241, + 0.022927308455109596, + -0.012772087007761002, + -0.0029625592287629843, + -0.03428688272833824, + 0.0573628768324852, + -0.0076721734367311, + 0.023581525310873985, + 0.007850595749914646, + 0.05391337350010872, + -0.06304266303777695, + 0.02123229391872883, + -0.07547277957201004, + 0.030480533838272095, + 0.03880692273378372, + -0.03532768413424492, + 0.024904826655983925, + 0.03318661078810692, + 0.02658497355878353, + -0.02111334539949894, + -0.024280346930027008, + -0.015864746645092964, + 0.004720765631645918, + 0.053318630903959274, + -0.03285950422286987, + 0.032591868191957474, + 0.03559531643986702, + 0.03586294874548912, + 0.0020016790367662907, + 0.007333913818001747, + -0.0034253429621458054, + -0.05218862369656563, + 0.0062633780762553215, + -0.010311341844499111, + 0.037795864045619965, + 0.013039721176028252, + 0.013396566733717918, + 0.07029852271080017, + -0.02655523642897606, + -0.016370277851819992, + 0.0188533253967762, + 0.015329478308558464, + -0.01715831086039543, + 0.0358332134783268, + 0.011872540228068829, + -0.01382032036781311, + -0.0189871434122324, + -0.010177524760365486, + 0.0005106418975628912, + 0.018005818128585815, + 0.007222399581223726, + 0.03431662172079086, + -0.04647909849882126, + 0.01711370423436165, + 0.022763755172491074, + 0.03547636792063713, + 0.015039541758596897, + 0.016920413821935654, + -0.01990899257361889, + 0.035000573843717575, + -0.021024134010076523, + -0.06399425119161606, + -0.03443557024002075, + 0.020013073459267616, + 0.03277029097080231, + 0.07767332345247269, + -0.02707563526928425, + 0.05435943230986595, + -0.0301534254103899, + 0.020414523780345917, + -0.01993872970342636, + 0.01460835337638855, + -0.020786236971616745, + -0.02789340540766716, + -0.012630836106836796, + 0.015329478308558464, + 0.012801824137568474, + -0.01819910854101181, + 0.005311790853738785, + -0.01779765821993351, + 0.04169142246246338, + 0.026926949620246887, + -0.023700473830103874, + -0.020905185490846634, + 0.02535088360309601, + 0.0019626489374786615, + 0.042196955531835556, + 0.023938370868563652, + 0.07565119862556458, + -0.008608892560005188, + -0.020533472299575806, + -0.013686503283679485, + -0.05421074479818344, + 0.024087056517601013, + -0.012065830640494823, + -0.03271081671118736, + 0.00684696901589632, + 0.018808720633387566, + 0.01274234987795353, + -0.009248239919543266, + -0.03277029097080231, + -0.044575922191143036, + 0.09825140237808228, + -0.011359574273228645, + -0.002174525987356901, + 0.0050924792885780334, + 1.206617980642477e-05, + -0.027328401803970337, + 0.0017219643341377378, + -0.014429930597543716, + -0.02549956925213337, + 0.0192547757178545, + -0.04347565025091171, + -0.005230013746768236, + -0.006122126709669828, + -0.029439736157655716, + -0.024622324854135513, + 0.014727301895618439, + -0.021574269980192184, + 0.005125933792442083, + -0.006623940542340279, + -0.01506927888840437, + -0.10705358535051346, + 0.0560247078537941, + 0.0027952881064265966, + -0.014296113513410091, + -0.0028882164042443037, + 0.006553314626216888, + -0.037409279495477676, + 0.006151863839477301, + -0.03922324255108833, + 0.009255674667656422, + 0.04606277868151665, + -0.012110436335206032, + -0.0366361141204834, + -0.01727725937962532, + 0.00518169067800045, + -0.04261327534914017, + 0.060515012592077255, + -0.01327761821448803, + -0.020503735169768333, + -0.023997845128178596, + 0.007337631192058325, + -0.0041966489516198635, + -0.0355655811727047, + 0.022481253370642662, + -0.04341617599129677, + -0.05007728561758995, + -0.026629578322172165, + -0.0022823228500783443, + 0.04460566118359566, + -0.040977731347084045, + -0.03809323534369469, + 0.03125369921326637, + 0.018942536786198616, + 0.008988040499389172, + 0.009389491751790047, + -0.010407987050712109, + -0.04142379015684128, + -0.04876885563135147, + 0.04410012811422348, + -0.0032153245992958546, + 0.020369917154312134, + 0.020280705764889717, + 0.004274709150195122, + -0.014400193467736244, + -0.03577373921871185, + 0.05715471878647804, + 0.005151953548192978, + 0.02377481758594513, + 0.011575168929994106, + 0.010422855615615845, + -0.005293204914778471, + 0.010028839111328125, + -0.16617095470428467, + -0.0288152564316988, + -0.0001222009159391746, + 0.010913518257439137, + 0.04326748847961426, + -0.018764114007353783, + -0.01121832337230444, + -0.027967749163508415, + -0.01121832337230444, + 0.009456399828195572, + -0.02499403804540634, + 0.019552147015929222, + 0.0012954226695001125, + -0.01402104552835226, + -0.009025211445987225, + -0.06161528453230858, + -0.0019310533534735441, + 0.02670392207801342, + 0.0018409127369523048, + -0.022094670683145523, + -0.0013883512001484632, + -0.014325850643217564, + -0.03229449689388275, + 0.05926605314016342, + -0.00226002000272274, + -0.01871950924396515, + 0.009634822607040405, + 0.008378429338335991, + 0.0476091094315052, + 0.007493750657886267, + -0.05325915664434433, + -0.0003480170853435993, + 0.025737466290593147, + 0.09349346160888672, + 0.01923990808427334, + -0.015255135484039783, + 0.017292127013206482, + -0.0014292396372184157, + 0.04047220200300217, + -0.01659330539405346, + -0.02618352323770523, + 0.0035368571989238262, + -0.03987745940685272, + -0.005163105204701424, + 0.005207710899412632, + -0.038450077176094055, + -0.02096465975046158, + 0.03169975429773331, + 0.03523847088217735, + 0.010281604714691639, + 0.04713331535458565, + -0.020414523780345917, + 0.01515105552971363, + 0.0032952430192381144, + -0.008594023995101452, + 0.09325556457042694, + 0.04713331535458565, + -0.004059114959090948, + -0.002029557479545474, + 0.020399654284119606, + 0.02616865374147892, + -0.012653138488531113, + 0.041512999683618546, + -0.051088348031044006, + 0.020161759108304977, + 0.006854402832686901, + -0.015009804628789425, + 0.009813245385885239, + 0.02163374423980713, + -0.007999281398952007, + 0.03847981616854668, + -0.008869091980159283, + 0.019061485305428505, + 0.04041272774338722, + -0.016831202432513237, + -0.014816513285040855, + -0.02829485759139061, + -0.03158080577850342, + -0.0063971951603889465, + -0.06423214823007584, + 0.012630836106836796, + -0.00541587034240365, + -0.021068740636110306, + 0.024875089526176453, + -0.005334093701094389, + 0.03384082764387131, + -0.04276195913553238, + 0.005631464533507824, + -0.026629578322172165, + 0.02337336540222168, + 0.06429162621498108, + -0.006386043503880501, + 0.030718430876731873, + 0.031164487823843956, + 0.049363598227500916, + 0.008928566239774227, + 0.0008633053512312472, + -0.015552506782114506, + -0.026748526841402054, + -0.014474536292254925, + 0.008185138925909996, + 0.01308432687073946, + 0.02203519642353058, + 0.02817590907216072, + 0.04924464970827103, + -0.024875089526176453, + 0.04778752848505974, + 0.03955035284161568, + -0.05831446498632431, + -0.019611621275544167, + -0.021172819659113884, + 0.023566657677292824, + -0.0009195270831696689, + -0.01062358170747757, + 0.009322582744061947, + 0.011329837143421173, + -0.0004200366383884102, + -0.030896853655576706, + -0.029291050508618355, + 0.00284175225533545, + -0.019700832664966583, + -0.0050553083419799805, + 0.03981798514723778, + -0.005984592717140913, + 0.029662763699889183, + 0.013783148489892483, + 0.028666570782661438, + 0.008891395293176174, + 0.023968107998371124, + -0.0014478253433480859, + 0.02747708559036255, + -0.0017070957692340016, + -0.014548879116773605, + 0.0411858931183815, + -0.00857172068208456, + 0.04594383016228676, + -0.015388952568173409, + 0.013998743146657944, + 0.00930028036236763, + -0.01553763821721077, + 0.012340899556875229, + -0.03586294874548912, + 0.009679428301751614, + -0.03883666172623634, + 0.06069343537092209, + -0.05632207915186882, + -0.09057922661304474, + 0.005780150182545185, + -0.01580527238547802, + 0.03452477976679802, + 8.700427133589983e-05, + 0.007549508009105921, + 0.008608892560005188, + 0.039907198399305344, + 0.0084230350330472, + -0.004568363074213266, + 0.012972813099622726, + 0.014623221941292286, + -0.003824935294687748, + -0.010430290363729, + -0.037260595709085464, + -0.017069099470973015, + -0.020890317857265472, + -0.032621607184410095, + 0.010980426333844662, + -0.045349087566137314, + 0.03812297061085701, + 0.0034290601033717394, + 0.0010816872818395495, + 0.005962289869785309, + -0.04326748847961426, + -0.021053871139883995, + 0.0015184510266408324, + -0.038569025695323944, + 0.00844533834606409, + -0.025544174015522003, + -0.06096106767654419, + 0.004940076731145382, + -0.028205646201968193, + -0.008579155430197716, + 0.0282799880951643, + 0.01766384206712246, + -0.02149992808699608, + -0.0061704497784376144, + 0.008058755658566952, + -0.018288319930434227, + -0.025841545313596725, + 0.006233640946447849, + 0.031967390328645706, + 0.02271914854645729, + 0.016147248446941376, + 0.009010342881083488, + -0.02576720342040062, + 0.036041371524333954, + 0.04969070479273796, + 0.014363022521138191, + -0.029320787638425827, + -0.007798556238412857, + -0.003167001763358712, + -0.026094311848282814, + 0.005482778884470463, + 0.02536575123667717, + -0.032591868191957474, + 0.027164846658706665, + -0.026644447818398476, + 0.0350303128361702, + 0.003362151561304927, + -0.07172589749097824, + 0.09135238826274872, + 0.029662763699889183, + -0.05403232201933861, + -0.04133457690477371, + -0.04267274960875511, + -0.02938026189804077, + 0.02829485759139061, + 0.020132021978497505, + 0.022615069523453712, + 0.00147012819070369, + -0.022912440821528435, + -0.0021039003040641546, + 0.008475075475871563, + -0.010712793096899986, + 0.004862016998231411, + -0.03624953329563141, + 0.018630297854542732, + -0.012697744183242321, + -0.026674184948205948, + 0.013024852611124516, + 0.014333285391330719, + 0.026540366932749748, + -0.015879614278674126, + 0.025038642808794975, + -0.01593908853828907, + -0.05251573026180267, + -0.03241344541311264, + 0.0188533253967762, + -0.04621146246790886, + 0.018689772114157677, + 0.019968466833233833, + 0.0013233012286946177, + -0.07303433120250702, + 0.0043713548220694065, + 0.03443557024002075, + -0.024875089526176453, + 0.00988758821040392, + 2.1751067833974957e-05, + -0.044308289885520935, + -0.03809323534369469, + -0.006070086732506752, + 0.006055218167603016, + 0.026629578322172165, + -0.02670392207801342, + 0.0035164128057658672, + -0.02749195508658886, + -0.018764114007353783, + -0.0217972993850708, + 0.014838816598057747, + -0.014489404857158661, + 0.02059294655919075, + -0.04677646979689598, + 0.0937313586473465, + -0.046300675719976425, + 0.018169371411204338, + -0.009337451308965683, + 0.04499224200844765, + 0.022005459293723106, + 0.005244882311671972, + 0.03758770227432251, + -0.0027376723010092974, + -0.010341078974306583, + -0.0050924792885780334, + 0.020132021978497505, + 0.08005229383707047, + 0.0033324144314974546, + 0.02535088360309601, + 0.011969185434281826, + 0.007445428054779768, + -0.006036632694303989, + 0.016236459836363792, + 0.020771369338035583, + 0.03464372828602791, + 0.04609251394867897, + -0.009991668164730072, + 0.03987745940685272, + -0.026763396337628365, + -0.03384082764387131, + -0.05064229294657707, + 0.00797697901725769, + 0.025588780641555786, + 0.020518602803349495, + 0.013299920596182346, + 0.00452004000544548, + -0.007467730902135372, + -0.03164028003811836, + -0.027804194018244743, + -0.014348153956234455, + 0.011322403326630592, + 0.009567913599312305, + 0.00564633309841156, + -0.02323954924941063, + 0.021440453827381134, + 0.019299382343888283, + -0.0039029952604323626, + -0.015775535255670547, + 0.01672712154686451, + 0.017232652753591537, + 0.01354525238275528, + -0.035000573843717575, + 0.03211607411503792, + 0.014273811131715775, + -0.008772446773946285, + 0.004218951798975468, + 0.015299741178750992, + 0.07761384546756744, + 0.021172819659113884, + 0.01635540835559368, + -0.005899098701775074, + -0.020117152482271194, + -0.05424048379063606, + -0.05581654980778694, + -0.002942115068435669, + -0.021172819659113884, + -0.029960134997963905, + -0.007229833863675594, + -0.016756858676671982, + -0.014459667727351189, + -0.017723316326737404, + -0.053080733865499496, + 0.026941819116473198, + 0.014006176963448524, + 0.016117511317133904, + 0.0037951981648802757, + -0.012950509786605835, + -0.006657394580543041, + 0.014890856109559536, + 0.006029198411852121, + 0.021217426285147667, + 0.02854762226343155, + 0.008660932071506977, + -0.020087415352463722, + 0.044724609702825546, + -0.0027655509766191244, + -0.007783687673509121, + 0.05224809795618057, + 0.018362663686275482, + -0.008400732651352882, + -0.054656803607940674, + -0.04157247394323349, + -0.023611262440681458, + -0.010073444806039333, + -0.032056599855422974, + 0.04692515358328819, + 0.005326659418642521, + 0.02497917041182518, + 0.032621607184410095, + 0.010393118485808372, + -0.04133457690477371, + -0.01781252771615982, + 0.024116793647408485, + -0.06631375104188919, + 0.015522769652307034, + 0.0041185892187058926, + 0.0189871434122324, + -0.02682287059724331, + 0.04175089672207832, + 0.02761090360581875, + 0.0007889625849202275, + -0.01913582719862461, + -0.02456285059452057, + 0.03232423588633537, + 0.03589268773794174, + 0.04421907663345337, + 0.02353692054748535, + 0.022020326927304268, + -0.047222524881362915, + -0.006226206663995981, + 0.001288917730562389, + 0.014333285391330719, + 0.0562923438847065, + -0.031134750694036484, + -0.003276657313108444, + 0.03348398208618164, + 0.06684901565313339, + -0.008779880590736866, + 0.039669301360845566, + 0.01500236988067627, + 0.013017418794333935, + 0.07142852991819382, + 0.009396925568580627, + 0.019567016512155533, + 0.03345424309372902, + -0.0898655354976654, + -0.0443974994122982, + 0.03178896754980087, + -0.013961571268737316, + -0.014816513285040855, + 0.0010231423657387495, + -0.00922593753784895, + -0.0036595226265490055, + 0.04686567932367325, + 0.025573911145329475, + -0.005081328097730875, + 0.01714344136416912, + 0.011523128487169743, + -0.05242651700973511, + 0.04633041098713875, + 0.03737954422831535, + -0.020890317857265472, + 0.005690938793122768, + 0.040829047560691833, + 0.021975722163915634, + 0.027596034109592438, + 0.04201853275299072, + 0.03571426495909691, + 0.007356216665357351, + -0.024622324854135513, + 0.04912570118904114, + -0.00996936485171318, + 0.04847148433327675, + 0.03732006996870041, + -0.0023287872318178415, + -0.017634104937314987, + -0.05043413117527962, + -0.010683055967092514, + -0.017024492844939232, + 0.00517797376960516, + -0.02005767822265625, + -0.025692859664559364, + 0.025127854198217392, + 0.0044568488374352455, + 0.02230283059179783, + -0.0018232563743367791, + -0.016965018585324287, + 0.055727336555719376, + 0.05123703554272652, + 0.022629937157034874, + 0.0002557855914346874, + -0.014444799162447453, + 0.018258582800626755, + 0.02723919041454792, + 0.04558698460459709, + 0.011976619251072407, + 0.01222938485443592, + 0.006594203412532806, + -0.06506478786468506, + 0.001252675661817193, + 0.03517899662256241, + 0.007218682672828436, + 0.04704410210251808, + 0.02271914854645729, + -0.004783956799656153, + 0.009471268393099308, + 0.008081058971583843, + -0.02392350137233734, + -0.02616865374147892, + -0.03000473976135254, + 0.014303548261523247, + -0.0020667288918048143, + 0.007047694176435471, + 0.019284512847661972, + 0.0020518603269010782, + 0.019834650680422783, + 0.014184599742293358, + 0.00448286859318614, + 0.019700832664966583, + 0.027700114995241165, + -0.04864990711212158, + -0.010281604714691639, + -0.02960328944027424, + -0.055757075548172, + 0.008147967047989368, + 0.01632567122578621, + 0.03928271681070328, + -0.0035424327943474054, + 0.016667649149894714, + -0.022540727630257607, + 0.05004755035042763, + 0.042791698127985, + 0.027685245499014854, + 0.004419677425175905, + 0.045111190527677536, + -0.004408526234328747, + -0.032591868191957474, + -0.014236640185117722, + 0.018793851137161255, + 0.014496839605271816, + 0.0004119053774047643, + 0.037111908197402954, + -0.020920054987072945, + -0.04445697367191315, + -0.00412230659276247, + -0.008527114987373352, + -0.04478408396244049, + -0.07279643416404724, + -0.04531934857368469, + 0.01327761821448803, + -0.0006909230723977089, + 0.0034736657980829477, + 0.00305734621360898, + 0.030926590785384178, + -0.0199238620698452, + -0.02801235392689705, + 0.01926964521408081, + 0.015024673193693161, + 0.006616506259888411, + -0.006029198411852121, + 0.002629875438287854, + -0.025960493832826614, + 0.04698462784290314, + 0.027819063514471054, + 0.007188945543020964, + -0.030896853655576706, + -0.04508145526051521, + -0.018927669152617455, + 0.048412010073661804, + 0.029856054112315178, + 0.0035164128057658672, + -0.02322467975318432, + 0.0430593304336071, + -0.005285770632326603, + 0.03413819894194603, + 0.033930037170648575, + -0.01953727938234806, + -0.03172949329018593, + -0.016176985576748848, + -0.04582488164305687, + -0.00863862968981266, + -0.025038642808794975, + 0.04951228201389313, + -0.045230139046907425, + 0.001802812097594142, + 0.02961815893650055, + -0.02682287059724331, + 0.020087415352463722, + 0.005947421304881573, + -0.06809797137975693, + -0.015745798125863075, + 0.030748168006539345, + -0.04719278961420059, + -0.03497083857655525 + ], + "result": "--- 结果 1 (相似度: 1.000) ---\n文件路径: C:\\Steam\\steamapps\\common\\RimWorld\\Data\\dll1.6\\RimWorld\\CompProperties_Refuelable.txt\n\npublic class CompProperties_Refuelable : CompProperties\n{\n\tpublic float fuelConsumptionRate = 1f;\n\n\tpublic float fuelCapacity = 2f;\n\n\tpublic float initialFuelPercent;\n\n\tpublic float autoRefuelPercent = 0.3f;\n\n\tpublic float fuelConsumptionPerTickInRain;\n\n\tpublic ThingFilter fuelFilter;\n\n\tpublic bool destroyOnNoFuel;\n\n\tpublic bool consumeFuelOnlyWhenUsed;\n\n\tpublic bool consumeFuelOnlyWhenPowered;\n\n\tpublic bool showFuelGizmo;\n\n\tpublic bool initialAllowAutoRefuel = true;\n\n\tpublic bool showAllowAutoRefuelToggle;\n\n\tpublic bool allowRefuelIfNotEmpty = true;\n\n\tpublic bool fuelIsMortarBarrel;\n\n\tpublic bool targetFuelLevelConfigurable;\n\n\tpublic float initialConfigurableTargetFuelLevel;\n\n\tpublic bool drawOutOfFuelOverlay = true;\n\n\tpublic float minimumFueledThreshold;\n\n\tpublic bool drawFuelGaugeInMap;\n\n\tpublic bool atomicFueling;\n\n\tprivate float fuelMultiplier = 1f;\n\n\tpublic bool factorByDifficulty;\n\n\t[MustTranslate]\n\tpublic string fuelLabel;\n\n\t[MustTranslate]\n\tpublic string fuelGizmoLabel;\n\n\t[MustTranslate]\n\tpublic string outOfFuelMessage;\n\n\t[NoTranslate]\n\tpublic string fuelIconPath;\n\n\tpublic bool externalTicking;\n\n\tpublic bool hideGizmosIfNotPlayerFaction;\n\n\tpublic bool functionsInVacuum = true;\n\n\tprivate Texture2D fuelIcon;\n\n\tpublic string FuelLabel\n\t{\n\t\tget\n\t\t{\n\t\t\tif (fuelLabel.NullOrEmpty())\n\t\t\t{\n\t\t\t\treturn \"Fuel\".TranslateSimple();\n\t\t\t}\n\t\t\treturn fuelLabel;\n\t\t}\n\t}\n\n\tpublic string FuelGizmoLabel\n\t{\n\t\tget\n\t\t{\n\t\t\tif (fuelGizmoLabel.NullOrEmpty())\n\t\t\t{\n\t\t\t\treturn \"Fuel\".TranslateSimple();\n\t\t\t}\n\t\t\treturn fuelGizmoLabel;\n\t\t}\n\t}\n\n\tpublic Texture2D FuelIcon\n\t{\n\t\tget\n\t\t{\n\t\t\tif (fuelIcon == null)\n\t\t\t{\n\t\t\t\tif (!fuelIconPath.NullOrEmpty())\n\t\t\t\t{\n\t\t\t\t\tfuelIcon = ContentFinder.Get(fuelIconPath);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tThingDef thingDef = ((fuelFilter.AnyAllowedDef == null) ? ThingDefOf.Chemfuel : fuelFilter.AnyAllowedDef);\n\t\t\t\t\tfuelIcon = thingDef.uiIcon;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn fuelIcon;\n\t\t}\n\t}\n\n\tpublic float FuelMultiplierCurrentDifficulty\n\t{\n\t\tget\n\t\t{\n\t\t\tif (factorByDifficulty && Find.Storyteller?.difficulty != null)\n\t\t\t{\n\t\t\t\treturn fuelMultiplier / Find.Storyteller.difficulty.maintenanceCostFactor;\n\t\t\t}\n\t\t\treturn fuelMultiplier;\n\t\t}\n\t}\n\n\tpublic CompProperties_Refuelable()\n\t{\n\t\tcompClass = typeof(CompRefuelable);\n\t}\n\n\tpublic override void ResolveReferences(ThingDef parentDef)\n\t{\n\t\tbase.ResolveReferences(parentDef);\n\t\tfuelFilter.ResolveReferences();\n\t}\n\n\tpublic override IEnumerable ConfigErrors(ThingDef parentDef)\n\t{\n\t\tforeach (string item in base.ConfigErrors(parentDef))\n\t\t{\n\t\t\tyield return item;\n\t\t}\n\t\tif (destroyOnNoFuel && initialFuelPercent <= 0f)\n\t\t{\n\t\t\tyield return \"Refuelable component has destroyOnNoFuel, but initialFuelPercent <= 0\";\n\t\t}\n\t\tif ((!consumeFuelOnlyWhenUsed || fuelConsumptionPerTickInRain > 0f) && parentDef.tickerType != TickerType.Normal)\n\t\t{\n\t\t\tyield return $\"Refuelable component set to consume fuel per tick, but parent tickertype is {parentDef.tickerType} instead of {TickerType.Normal}\";\n\t\t}\n\t}\n\n\tpublic override IEnumerable SpecialDisplayStats(StatRequest req)\n\t{\n\t\tforeach (StatDrawEntry item in base.SpecialDisplayStats(req))\n\t\t{\n\t\t\tyield return item;\n\t\t}\n\t\tif (((ThingDef)req.Def).building.IsTurret)\n\t\t{\n\t\t\tyield return new StatDrawEntry(StatCategoryDefOf.Building, \"ShotsBeforeRearm\".Translate(), ((int)fuelCapacity).ToString(), \"ShotsBeforeRearmExplanation\".Translate(), 3171);\n\t\t}\n\t}\n}\n\n", + "timestamp": "2025-08-29 15:07:25,074" + }, + "CompRefuelable-saveKeysPrefix": { + "keywords": [ + "saveKeysPrefix", + "CompRefuelable" + ], + "question": "saveKeysPrefix in CompRefuelable", + "embedding": [ + -0.0019349564099684358, + 0.008805017918348312, + 0.042642056941986084, + 0.008092026226222515, + -0.06253710389137268, + -0.02432762086391449, + 0.033931534737348557, + -6.056805432308465e-05, + 0.003691664896905422, + 0.06195296719670296, + 0.045184776186943054, + -0.016063788905739784, + -0.03580420836806297, + 0.0005707155214622617, + -0.02333115041255951, + 0.042332809418439865, + -0.014878332614898682, + -0.12974731624126434, + -0.005583669990301132, + 0.0037646822165697813, + 0.04796801880002022, + 0.03022054024040699, + 0.030151817947626114, + 0.049067575484514236, + 0.053878121078014374, + 0.008302487432956696, + -0.025049202144145966, + 0.06305252015590668, + 0.05109487473964691, + 0.01917346380650997, + 0.039377760142087936, + -0.029550500214099884, + -0.022712651640176773, + -0.00339744845405221, + -0.004325196612626314, + 0.031148288398981094, + -0.01803954876959324, + -0.0006201094947755337, + -0.016974356025457382, + -0.006640272215008736, + -0.019310908392071724, + 0.009122857823967934, + 0.012653455138206482, + 0.034532852470874786, + -0.03480774164199829, + 0.015299255959689617, + 0.033897172659635544, + -0.0455627478659153, + -0.019396809861063957, + -0.030632872134447098, + -0.006189283449202776, + -0.00901977438479662, + -0.031010843813419342, + -0.010170869529247284, + -0.0061763981357216835, + 0.040442951023578644, + -0.019001659005880356, + 0.018245715647935867, + -0.004926514811813831, + 0.036938123404979706, + 0.036800678819417953, + 0.029550500214099884, + -0.005545014049857855, + 0.0028433764819055796, + 0.016742419451475143, + -0.029361514374613762, + -0.039687007665634155, + -0.012644864618778229, + -0.021613098680973053, + -0.02401837147772312, + 0.024757133796811104, + -0.020908696576952934, + 0.015041547827422619, + 0.0009787529706954956, + -0.05298473313450813, + 0.02307344228029251, + 0.0010528439888730645, + -0.027385754510760307, + -0.004823431838303804, + 0.011665575206279755, + 0.001944620511494577, + 0.005953051149845123, + -0.06188424304127693, + 0.047727491706609726, + -0.005429045297205448, + 0.10122764110565186, + -0.02532409131526947, + -0.009054135531187057, + 0.03817512094974518, + 0.04271078109741211, + 0.019190644845366478, + 0.009277482517063618, + -0.0029894111212342978, + -0.011047076433897018, + 0.025959771126508713, + -0.016647927463054657, + -0.051369763910770416, + -0.01508449949324131, + -0.03262581303715706, + 0.019740421324968338, + -0.006150627508759499, + -0.02236904203891754, + -0.02867429330945015, + 0.003530597547069192, + 0.005059664137661457, + 0.07050886750221252, + -0.027746545150876045, + 0.01500718668103218, + -0.030839039012789726, + 0.02477431483566761, + -0.008019009605050087, + -0.07875552028417587, + -0.01998094841837883, + 0.031010843813419342, + -0.005910099949687719, + -0.03576985001564026, + -0.021561557427048683, + -0.0012939081061631441, + -0.022764192894101143, + 0.027196768671274185, + 0.038793619722127914, + 0.001128545613028109, + 0.0011242504697293043, + -0.0061935787089169025, + 0.08095462620258331, + 0.012352796271443367, + -0.03621654212474823, + 0.015471060760319233, + -0.010720646008849144, + 0.029155347496271133, + 0.022850096225738525, + 0.00434022955596447, + -0.01828007586300373, + -0.018606506288051605, + -0.02456814795732498, + -0.000812316604424268, + -0.027488837018609047, + -0.012954114004969597, + -0.08885766565799713, + 0.026801615953445435, + -0.05700497701764107, + -0.022059790790081024, + 0.011485179886221886, + 0.049582988023757935, + 0.10308314114809036, + -0.013220412656664848, + -0.06714148074388504, + -0.024791494011878967, + -0.009535190649330616, + -0.007159982807934284, + -0.023709122091531754, + 0.014277014881372452, + -0.03188705071806908, + 0.04226408526301384, + -0.007031129207462072, + -0.019018840044736862, + 0.006464171689003706, + -0.060922134667634964, + 0.008083435706794262, + -0.045631468296051025, + -0.012120858766138554, + -0.008250946179032326, + -0.002499766182154417, + 0.033931534737348557, + 0.02951613813638687, + -0.03137163445353508, + -0.008160748519003391, + -0.010978354141116142, + -0.0025276844389736652, + -0.04752132669091225, + 0.027609100565314293, + -0.010548841208219528, + -0.04092400521039963, + -0.003393153427168727, + 0.018469061702489853, + 0.01136491633951664, + 0.006378269288688898, + 0.0468684658408165, + -0.0032578567042946815, + -0.010437168180942535, + 0.06899698078632355, + 0.010196640156209469, + -0.06250274181365967, + -0.012988475151360035, + 0.03497954457998276, + -0.059066638350486755, + -0.02357167750597, + 0.004724643658846617, + -0.007546545006334782, + -0.04027114808559418, + 0.043535444885492325, + 0.06198732927441597, + -0.03217912092804909, + 0.04439447075128555, + -0.023502955213189125, + -0.02822759933769703, + 0.0064341058023273945, + -0.017068849876523018, + -0.03710993006825447, + -0.010548841208219528, + 0.0505451001226902, + -0.09483648836612701, + -0.028141696006059647, + 0.03190423175692558, + -0.009767127223312855, + 0.0010447906097397208, + 0.05051073804497719, + -0.009346204809844494, + 0.016647927463054657, + -0.01757567562162876, + 0.03346765786409378, + 0.010308314114809036, + -0.006820667535066605, + -0.08019868284463882, + 0.015428110025823116, + -0.013606973923742771, + -0.04185175523161888, + -0.052125707268714905, + 0.01535938773304224, + 0.022094152867794037, + -0.04064911603927612, + -0.02322806790471077, + 0.015118860639631748, + 0.03207603842020035, + 0.06174679845571518, + 0.012198171578347683, + 0.055115118622779846, + -0.02498047985136509, + -0.014972825534641743, + -0.01663074642419815, + -0.05810452997684479, + -0.023915288969874382, + -0.017584266141057014, + 0.00845711212605238, + 0.0437416136264801, + 0.0003787768364418298, + -0.05325962230563164, + -0.006365383975207806, + -0.016089560464024544, + 0.015720179304480553, + 0.009200169704854488, + 0.04119889438152313, + 0.027248309925198555, + 0.045184776186943054, + -0.03975573182106018, + -0.025014841929078102, + -0.047830577939748764, + -0.03341611847281456, + 0.008959642611443996, + 0.03386281058192253, + -0.026251839473843575, + 0.0252725500613451, + -0.0004912556032650173, + 0.01953425444662571, + 0.01602942869067192, + -0.013203231617808342, + -0.03238528594374657, + 0.008371209725737572, + 0.014560493640601635, + 0.018709588795900345, + -0.03645706921815872, + 0.0024804379791021347, + 0.003302955534309149, + -0.006696108728647232, + -0.02178490348160267, + -0.0010651923948898911, + 0.00227856682613492, + 0.07703746855258942, + -0.04659358039498329, + 0.013555432669818401, + -0.030443886294960976, + 0.026784434914588928, + 0.03492800518870354, + -0.06604193150997162, + 0.008315373212099075, + -0.02772936411201954, + 0.05518383905291557, + 0.011175930500030518, + -0.01803954876959324, + 0.0003846826439257711, + -0.012679225765168667, + 0.0026608335319906473, + 0.028038613498210907, + -0.011536721140146255, + -0.036938123404979706, + 0.0021926641929894686, + 0.0282791405916214, + 0.04051167517900467, + -0.00919158011674881, + -0.01802236959338188, + 0.009406336583197117, + -0.010909631848335266, + 0.0029142461717128754, + -0.02927561104297638, + -0.005630916450172663, + -0.04236717149615288, + -0.0030044440645724535, + 0.009140037931501865, + -0.03250554949045181, + 0.002443929435685277, + -0.04655921831727028, + -0.006717584561556578, + -0.01228407397866249, + 0.02498047985136509, + 0.020565086975693703, + 0.005136976484209299, + 0.008908101357519627, + -0.21400059759616852, + 0.03042670711874962, + -0.048723962157964706, + 0.0024288964923471212, + 0.019499894231557846, + 0.023502955213189125, + 0.00790733564645052, + 0.015204763039946556, + 0.0017567084869369864, + -0.009165809489786625, + 0.012421518564224243, + 0.01762721687555313, + 0.039480842649936676, + -0.04195483773946762, + 0.03410333767533302, + -0.03910287097096443, + 0.0119146928191185, + 0.04106144979596138, + -0.0033459069672971964, + 0.062262214720249176, + 0.010351264849305153, + 0.026045672595500946, + -0.01751554384827614, + 0.026011312380433083, + 0.0015075908740982413, + 0.0010050606215372682, + 0.03834692761301994, + 0.0223862212151289, + -0.021046141162514687, + 0.030461067333817482, + 0.021956708282232285, + 0.0020820647478103638, + -0.008994003757834435, + 0.010351264849305153, + -0.08157312124967575, + -0.0007758080027997494, + 0.0005615883274003863, + 0.0011929725296795368, + 0.013950584456324577, + 0.007520773913711309, + 0.062159132212400436, + -0.02532409131526947, + -0.007997533306479454, + -0.012550371699035168, + 0.01196623407304287, + 0.03607909753918648, + 0.028880460187792778, + 0.014921284280717373, + -0.021664639934897423, + -0.014921284280717373, + -0.018967296928167343, + 0.014500361867249012, + 0.009423516690731049, + 0.02327960915863514, + 0.013770189136266708, + -0.03266017511487007, + -0.022953178733587265, + 0.01615828275680542, + 0.042126644402742386, + 0.024894578382372856, + 0.018915755674242973, + 0.01091822236776352, + -0.00029716937569901347, + -0.03741917759180069, + -0.056970614939928055, + -0.0011736444430425763, + 0.028347862884402275, + 0.030839039012789726, + 0.08988849818706512, + 0.027110865339636803, + 0.014775250107049942, + 0.024963300675153732, + 0.021303849294781685, + -0.034498490393161774, + 0.007426280993968248, + -0.008899510838091373, + -0.04841471463441849, + -0.0013690729392692447, + 0.016192642971873283, + -0.012842440977692604, + 0.002039113314822316, + 0.04171431064605713, + -0.0028326387982815504, + 0.05216006934642792, + 0.01119311060756445, + 0.0011049223830923438, + -0.020015308633446693, + 0.020943056792020798, + 0.012052137404680252, + 0.04436011239886284, + 0.02037610113620758, + 0.09621092677116394, + -0.019998129457235336, + -0.013761598616838455, + -0.0060819052159786224, + 0.00896823313087225, + 0.0007666808669455349, + 0.011992004700005054, + -0.03427514433860779, + 0.017223473638296127, + 0.045287858694791794, + 0.016458941623568535, + -0.042985670268535614, + -0.020960237830877304, + -0.02791834995150566, + 0.0887889415025711, + -0.013667105697095394, + 0.006227939855307341, + 0.006923750974237919, + 0.003474760800600052, + -0.019757602363824844, + 0.025255369022488594, + 0.0164933018386364, + 0.006773421075195074, + 0.01486115250736475, + -0.04209228232502937, + 0.01888139545917511, + -0.045734550803899765, + 0.012034956365823746, + -0.012619093991816044, + -0.031938593834638596, + -0.012507420964539051, + 0.034842099994421005, + 0.01992940716445446, + -0.004973761271685362, + -0.09236249327659607, + 0.00946646835654974, + -0.003779715159907937, + -0.012369976378977299, + 0.0032771846745163202, + 0.026509547606110573, + -0.019843503832817078, + -0.018864214420318604, + 0.00015556426660623401, + 0.003981586080044508, + 0.016373038291931152, + 0.006124856416136026, + 0.0006652083829976618, + -0.012790899723768234, + 0.0011521688429638743, + -0.02687033824622631, + 0.04545966535806656, + -0.014517541974782944, + -0.04003061726689339, + -0.02218005619943142, + -0.008805017918348312, + 0.012095088139176369, + -0.0447724424302578, + 0.009956113062798977, + -0.027557559311389923, + -0.020101211965084076, + -0.0259254090487957, + -0.01568581722676754, + 0.0652172639966011, + -0.04336364194750786, + -0.05051073804497719, + 0.014646396040916443, + 0.0058241975493729115, + 0.02183644473552704, + 0.01036844588816166, + 0.0007693652878515422, + -0.050029683858156204, + -0.011227471753954887, + 0.02362321875989437, + -0.013795959763228893, + 0.05226315185427666, + 0.04271078109741211, + -0.012833850458264351, + -0.05195390060544014, + -0.03893106430768967, + 0.0408552847802639, + -0.007529364433139563, + 0.0371786504983902, + -0.0140107162296772, + -0.015264894813299179, + 0.03906850889325142, + 0.009775717742741108, + -0.09284354746341705, + -0.0016761748120188713, + -0.02532409131526947, + 0.02233467996120453, + 0.008959642611443996, + -0.0327288955450058, + -0.019809143617749214, + -0.025942590087652206, + 0.01828007586300373, + 0.05930716544389725, + -0.032247841358184814, + 0.0061592175625264645, + -0.026234658434987068, + -0.04367288947105408, + -0.007082670461386442, + -0.04439447075128555, + 0.004174867179244757, + 0.017094621434807777, + 0.003000148804858327, + 0.004685987718403339, + -0.004174867179244757, + -0.0037646822165697813, + -0.030048735439777374, + 0.036285266280174255, + -0.021561557427048683, + 0.01213803980499506, + 0.0061205611564219, + -0.015247714705765247, + 0.06085341423749924, + 0.0311654694378376, + -0.007129916921257973, + -0.005635211709886789, + 0.04446319490671158, + 0.09696687012910843, + -0.008865149691700935, + 0.007464937400072813, + -0.003021624404937029, + -0.01631290651857853, + 0.02932715229690075, + -0.04899885132908821, + -0.014646396040916443, + -0.00561803113669157, + -0.029756665229797363, + 0.003695960156619549, + -0.007026833947747946, + -0.03652579337358475, + -0.03006591461598873, + 0.030100276693701744, + 0.009578141383826733, + -0.032041676342487335, + 0.060819052159786224, + 0.060063108801841736, + -0.018365979194641113, + -0.014895513653755188, + 0.04302002862095833, + 0.0817105695605278, + 0.024447884410619736, + -0.021269487217068672, + 0.0010931107681244612, + -0.0007001063204370439, + 0.025358451530337334, + -0.026509547606110573, + 0.02197388932108879, + 0.0046430365182459354, + 0.019912226125597954, + 0.023348331451416016, + -0.014826791360974312, + 0.02168182097375393, + 0.022609569132328033, + -0.025186646729707718, + 0.044978611171245575, + 0.008732001297175884, + 0.039480842649936676, + 0.04930810257792473, + -0.004527067765593529, + -0.022867275401949883, + -0.02896636165678501, + -0.0029421646613627672, + 0.0006319211097434163, + -0.029344333335757256, + 0.03357074037194252, + -0.0009009036584757268, + -0.047624409198760986, + 0.03415488079190254, + -0.044531915336847305, + -0.0006550074322149158, + -0.057760920375585556, + 0.02128666825592518, + -0.03735045716166496, + 0.02401837147772312, + 0.04381033405661583, + -0.0009970072424039245, + 0.03566676750779152, + 0.04734952002763748, + 0.07380753010511398, + 0.03707556799054146, + -0.008976823650300503, + -0.01652766391634941, + -0.029258430004119873, + -0.04054603353142738, + 0.02498047985136509, + 0.010076376609504223, + 0.03241964802145958, + 0.016957176849246025, + 0.027196768671274185, + 0.012997065670788288, + 0.010377036407589912, + -0.02123512700200081, + -0.07676257938146591, + -0.01908756047487259, + -0.03690376505255699, + 0.020857155323028564, + 0.024843037128448486, + -0.003440399654209614, + -0.010136508382856846, + 0.013177460990846157, + 0.012593323364853859, + -0.007250180933624506, + -0.003794748103246093, + -0.003421071683987975, + -0.012103678658604622, + 0.01872676983475685, + 0.0155827347189188, + -0.006425515748560429, + 0.021716181188821793, + -0.003612204920500517, + 0.0654577910900116, + -0.00034226823481731117, + 0.023485776036977768, + -0.0004582367546390742, + 0.009715585969388485, + -0.01563427597284317, + 0.010059196501970291, + 0.004329491872340441, + -0.018898574635386467, + 0.019998129457235336, + -0.019809143617749214, + 0.013177460990846157, + 0.012851031497120857, + 0.0014281310141086578, + 0.0015290665905922651, + -0.017799021676182747, + -0.005953051149845123, + -0.016020838171243668, + 0.026492366567254066, + -0.04030550643801689, + -0.02078843303024769, + -0.03437822684645653, + -0.020101211965084076, + 0.009492238983511925, + 0.03497954457998276, + 0.013753009028732777, + 0.008487178012728691, + -0.004423984792083502, + 0.00652000866830349, + 0.00911426730453968, + 0.017086030915379524, + 0.024516606703400612, + -0.024654051288962364, + 0.015677226707339287, + -0.002046629786491394, + 0.019139103591442108, + -0.03260863199830055, + -0.008061960339546204, + 0.069649837911129, + -0.02877737581729889, + 0.03192141279578209, + 0.018709588795900345, + 0.025856686756014824, + 0.032247841358184814, + -0.03087339922785759, + -0.019207824021577835, + -0.0045829047448933125, + -0.0229188185185194, + 0.019998129457235336, + -0.03590729460120201, + -0.048827048391103745, + 0.030048735439777374, + -0.026887519285082817, + 0.011545311659574509, + 0.020650988444685936, + 0.012601913884282112, + -0.032454006373882294, + -0.009681224822998047, + 0.030392345041036606, + -0.023537317290902138, + -0.00462156068533659, + -0.009930342435836792, + -0.0164933018386364, + 0.011682755313813686, + 0.017240654677152634, + 0.03899978846311569, + -0.026234658434987068, + 0.04071784019470215, + 0.10170869529247284, + 0.03882798179984093, + -0.020101211965084076, + -0.015617095865309238, + -0.016965767368674278, + -0.0024804379791021347, + 0.025684881955385208, + -0.007464937400072813, + -0.011476589366793633, + 0.02851966768503189, + 0.008676163852214813, + 0.015909165143966675, + -0.003844141960144043, + -0.0775185227394104, + 0.14788994193077087, + 0.01759285479784012, + -0.01958579570055008, + -0.02467123046517372, + -0.008753476664423943, + -0.008100616745650768, + 0.013529662042856216, + 0.030031554400920868, + -0.0665229856967926, + 0.015367978252470493, + 0.010823729448020458, + 0.02073689177632332, + 0.01086668111383915, + 0.019448352977633476, + -0.013220412656664848, + -0.024396343156695366, + 0.009140037931501865, + -0.011992004700005054, + -0.018709588795900345, + 0.04559710994362831, + -0.0010072081349790096, + 0.002516946755349636, + -0.005716818850487471, + -0.0012563257478177547, + 0.001959653338417411, + -0.04954862967133522, + -9.751289326231927e-05, + 0.02427607960999012, + -0.04209228232502937, + 0.027007782831788063, + -0.027540378272533417, + -0.010720646008849144, + -0.0332614928483963, + 0.05150720849633217, + 0.04965171217918396, + -0.018365979194641113, + 0.014070848003029823, + 0.014294194988906384, + -0.032797619700431824, + -0.011339145712554455, + 0.012275483459234238, + -0.01618405245244503, + 0.0005857484648004174, + -2.842168578354176e-05, + 0.0070053581148386, + -0.030289262533187866, + -0.02207697182893753, + -0.03566676750779152, + 0.001230555004440248, + -0.013426578603684902, + 0.03851873427629471, + -0.051026154309511185, + 0.06848156452178955, + 0.011845970526337624, + -0.023399872705340385, + 0.009234530851244926, + 0.03676632046699524, + -0.02437916211783886, + -0.006928045768290758, + 0.033141229301691055, + -0.02242058329284191, + -0.05724550411105156, + 0.00034656337811611593, + 0.028605571016669273, + 0.07848063111305237, + 0.020238656550645828, + 0.01233561523258686, + 0.007937401533126831, + 0.005819902289658785, + -0.054118648171424866, + 0.0371786504983902, + 0.02647518552839756, + 0.010102147236466408, + 0.07937401533126831, + -0.009457877837121487, + 0.017695939168334007, + -0.03226502239704132, + -0.04016806185245514, + -0.018761131912469864, + 0.022197235375642776, + 0.059272803366184235, + 0.00839268509298563, + -0.006889389827847481, + 0.016330087557435036, + -0.0008305709343403578, + -0.02092587761580944, + -0.01628713682293892, + -0.007108441554009914, + 0.0426764190196991, + -0.014852561987936497, + -0.04590635746717453, + -0.029808208346366882, + 0.019018840044736862, + 0.01508449949324131, + 0.04140505939722061, + -0.04693718999624252, + -0.006945226341485977, + -0.042126644402742386, + -0.01581467129290104, + -0.018469061702489853, + 0.01943117193877697, + -0.013108738698065281, + 0.008697640150785446, + -0.011253242380917072, + -0.01206072699278593, + -0.017610035836696625, + 0.04501296952366829, + 0.028536848723888397, + -0.002985115861520171, + -0.025839507579803467, + -0.07057759165763855, + -0.013675696216523647, + -0.007074080407619476, + -0.041679948568344116, + -0.027299851179122925, + 0.014165340922772884, + -0.0051928129978477955, + 0.01535938773304224, + -0.033948712050914764, + -0.011081437580287457, + 0.05882611125707626, + 0.022214416414499283, + -0.006786306854337454, + 0.014886923134326935, + -0.02602849341928959, + 0.021991070359945297, + 0.026200298219919205, + 0.02157873660326004, + -2.0234092517057434e-05, + 0.0024589623790234327, + 0.04240152984857559, + 0.004454050678759813, + 0.022351861000061035, + -0.01657920517027378, + -0.009509420022368431, + 0.03401743620634079, + -0.00028079416370019317, + 0.019843503832817078, + -0.0421610027551651, + -0.012722177430987358, + -0.026612630113959312, + 0.023365510627627373, + -0.015333617106080055, + 0.037384819239377975, + -0.008087730966508389, + 0.038690537214279175, + -0.016536254435777664, + 0.02632056176662445, + -0.03442976996302605, + -0.011373505927622318, + 0.005905804689973593, + -0.06239965930581093, + -0.0034468425437808037, + 0.009054135531187057, + 0.015118860639631748, + -0.016244184225797653, + 0.023554496467113495, + 0.07696874439716339, + 0.03436104580760002, + -0.02092587761580944, + -0.013203231617808342, + 0.014689347706735134, + 0.020410461351275444, + 0.041886113584041595, + 0.01568581722676754, + 0.03522007167339325, + -0.04621560871601105, + -0.020066851750016212, + -0.000650712288916111, + 0.00946646835654974, + 0.04027114808559418, + -0.02786680869758129, + 0.025616159662604332, + 0.010815138928592205, + 0.037041209638118744, + -0.006833552848547697, + 0.021217945963144302, + 0.0005519242840819061, + 0.0077097597531974316, + 0.06068160757422447, + 0.002109983004629612, + 0.01633867807686329, + 0.03546059876680374, + -0.055974144488573074, + -0.04511605203151703, + 0.015050138346850872, + -0.02781526744365692, + -0.00255989795550704, + -0.0492393784224987, + -0.02733421139419079, + 0.006386859342455864, + 0.029842568561434746, + 0.042882584035396576, + -0.011493770405650139, + 0.0329866036772728, + 0.009681224822998047, + -0.039480842649936676, + 0.02846812643110752, + 0.022145694121718407, + -0.004423984792083502, + 0.0036873698700219393, + 0.012704997323453426, + 0.02338269166648388, + 0.019946588203310966, + -0.00035783808561973274, + 0.030151817947626114, + -0.01812545210123062, + -0.029894109815359116, + 0.01741245947778225, + -0.02272983267903328, + 0.0025964064989238977, + 0.025753604248166084, + -0.030856220051646233, + -0.021613098680973053, + -0.03197295218706131, + -0.0096898153424263, + 0.006361088715493679, + -0.012249712832272053, + -0.008474293164908886, + 0.01688845455646515, + 0.025736423209309578, + -0.007052604574710131, + 0.005605145823210478, + 0.0009153997525572777, + -0.03255709260702133, + 0.06408335268497467, + -0.00045904211583547294, + 0.004969466477632523, + -0.0060990857891738415, + -0.040133703500032425, + 0.03810640051960945, + 0.033639464527368546, + 0.0607503280043602, + 0.015694407746195793, + -0.025014841929078102, + -0.01681114174425602, + -0.028450945392251015, + 0.016793960705399513, + 0.046971552073955536, + 0.04082092270255089, + 0.024946119636297226, + 0.02482585608959198, + 0.0051928129978477955, + -0.016458941623568535, + -0.03834692761301994, + -0.017713120207190514, + -0.07215819507837296, + -0.050029683858156204, + 0.02133820950984955, + -0.016982946544885635, + 0.04456627741456032, + 0.036835040897130966, + -0.005102615337818861, + 0.02427607960999012, + 0.012610504403710365, + -0.010205230675637722, + 0.010840910486876965, + 0.002963640261441469, + -0.033433299511671066, + -0.01987786591053009, + -0.03518570959568024, + -0.029155347496271133, + 0.008362619206309319, + 0.025787964463233948, + 0.05810452997684479, + -0.002295747399330139, + 0.008727706037461758, + -0.01712898164987564, + 0.04669666290283203, + 0.03992753475904465, + 0.03882798179984093, + 0.005579374730587006, + 0.03006591461598873, + -0.028811737895011902, + -0.01613251119852066, + -0.00439821369946003, + 0.04594071954488754, + 0.004707463551312685, + 0.03972136974334717, + 0.02726549096405506, + -0.009973294101655483, + -0.04494424909353256, + -0.006309546995908022, + 0.03147471696138382, + -0.04978915676474571, + -0.04291694611310959, + -0.01807391084730625, + 0.0280214324593544, + -0.0343095064163208, + 0.015522602945566177, + 0.04645613580942154, + 0.0048749735578894615, + -0.011519541032612324, + -0.0179364662617445, + 0.03145753964781761, + -0.006361088715493679, + 0.03350201994180679, + -0.013452349230647087, + 0.003000148804858327, + -0.03097648359835148, + 0.06903134286403656, + 0.015677226707339287, + 0.052125707268714905, + -0.025306910276412964, + -0.033845629543066025, + -0.05253804102540016, + 0.03975573182106018, + -0.00784290861338377, + 0.02078843303024769, + -0.011992004700005054, + 0.029138166457414627, + -0.005111205857247114, + 0.009449287317693233, + 0.00869334489107132, + -0.02912098728120327, + -0.006803486961871386, + 0.0019950882997363806, + 0.01123606227338314, + 0.004260769579559565, + 0.007804252672940493, + 0.03140599653124809, + -0.04384469613432884, + 0.009810078889131546, + -0.00015449048078153282, + -0.030581330880522728, + 0.0013873272109776735, + -0.033192772418260574, + -0.07518196851015091, + -0.011347735300660133, + -0.014397278428077698, + -0.0185893252491951, + -0.035941652953624725 + ], + "result": "--- 结果 1 (相似度: 1.000) ---\n文件路径: C:\\Steam\\steamapps\\common\\RimWorld\\Data\\dll1.6\\RimWorld\\CompRefuelable.txt\n\npublic class CompRefuelable : ThingComp_VacuumAware, IThingGlower\n{\n\tprivate float fuel;\n\n\tprivate float configuredTargetFuelLevel = -1f;\n\n\tpublic bool allowAutoRefuel = true;\n\n\tprivate CompFlickable flickComp;\n\n\tprivate CompExplosive explosiveComp;\n\n\tpublic const string RefueledSignal = \"Refueled\";\n\n\tpublic const string RanOutOfFuelSignal = \"RanOutOfFuel\";\n\n\tprivate static readonly Texture2D SetTargetFuelLevelCommand = ContentFinder.Get(\"UI/Commands/SetTargetFuelLevel\");\n\n\tprivate static readonly Vector2 FuelBarSize = new Vector2(1f, 0.2f);\n\n\tprivate static readonly Material FuelBarFilledMat = SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.6f, 0.56f, 0.13f));\n\n\tprivate static readonly Material FuelBarUnfilledMat = SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.3f, 0.3f, 0.3f));\n\n\tprotected override bool FunctionsInVacuum => Props.functionsInVacuum;\n\n\tpublic float TargetFuelLevel\n\t{\n\t\tget\n\t\t{\n\t\t\tif (configuredTargetFuelLevel >= 0f)\n\t\t\t{\n\t\t\t\treturn configuredTargetFuelLevel;\n\t\t\t}\n\t\t\tif (Props.targetFuelLevelConfigurable)\n\t\t\t{\n\t\t\t\treturn Props.initialConfigurableTargetFuelLevel;\n\t\t\t}\n\t\t\treturn Props.fuelCapacity;\n\t\t}\n\t\tset\n\t\t{\n\t\t\tconfiguredTargetFuelLevel = Mathf.Clamp(value, 0f, Props.fuelCapacity);\n\t\t}\n\t}\n\n\tpublic CompProperties_Refuelable Props => (CompProperties_Refuelable)props;\n\n\tpublic float Fuel => fuel;\n\n\tpublic float FuelPercentOfTarget => fuel / TargetFuelLevel;\n\n\tpublic float FuelPercentOfMax => fuel / Props.fuelCapacity;\n\n\tpublic bool IsFull => TargetFuelLevel - fuel < 1f;\n\n\tpublic bool HasFuel\n\t{\n\t\tget\n\t\t{\n\t\t\tif (fuel > 0f && fuel >= Props.minimumFueledThreshold)\n\t\t\t{\n\t\t\t\tif (!FunctionsInVacuum)\n\t\t\t\t{\n\t\t\t\t\treturn !base.InVacuum;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tprivate float ConsumptionRatePerTick => Props.fuelConsumptionRate / 60000f;\n\n\tpublic bool ShouldAutoRefuelNow\n\t{\n\t\tget\n\t\t{\n\t\t\tif (FuelPercentOfTarget <= Props.autoRefuelPercent && !IsFull && TargetFuelLevel > 0f)\n\t\t\t{\n\t\t\t\treturn ShouldAutoRefuelNowIgnoringFuelPct;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tpublic bool ShouldAutoRefuelNowIgnoringFuelPct\n\t{\n\t\tget\n\t\t{\n\t\t\tif (!parent.IsBurning() && (flickComp == null || flickComp.SwitchIsOn) && parent.Map.designationManager.DesignationOn(parent, DesignationDefOf.Flick) == null)\n\t\t\t{\n\t\t\t\treturn parent.Map.designationManager.DesignationOn(parent, DesignationDefOf.Deconstruct) == null;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tpublic bool ShouldBeLitNow()\n\t{\n\t\treturn HasFuel;\n\t}\n\n\tpublic override void Initialize(CompProperties props)\n\t{\n\t\tbase.Initialize(props);\n\t\tallowAutoRefuel = Props.initialAllowAutoRefuel;\n\t\tfuel = Props.fuelCapacity * Props.initialFuelPercent;\n\t}\n\n\tpublic override void PostSpawnSetup(bool respawningAfterLoad)\n\t{\n\t\tflickComp = parent.GetComp();\n\t\texplosiveComp = parent.GetComp();\n\t}\n\n\tpublic override void PostExposeData()\n\t{\n\t\tbase.PostExposeData();\n\t\tScribe_Values.Look(ref fuel, \"fuel\", 0f);\n\t\tScribe_Values.Look(ref configuredTargetFuelLevel, \"configuredTargetFuelLevel\", -1f);\n\t\tScribe_Values.Look(ref allowAutoRefuel, \"allowAutoRefuel\", defaultValue: false);\n\t\tif (Scribe.mode == LoadSaveMode.PostLoadInit && !Props.showAllowAutoRefuelToggle)\n\t\t{\n\t\t\tallowAutoRefuel = Props.initialAllowAutoRefuel;\n\t\t}\n\t}\n\n\tpublic override void PostDraw()\n\t{\n\t\tbase.PostDraw();\n\t\tif (!allowAutoRefuel)\n\t\t{\n\t\t\tparent.Map.overlayDrawer.DrawOverlay(parent, OverlayTypes.ForbiddenRefuel);\n\t\t}\n\t\telse if (!HasFuel && Props.drawOutOfFuelOverlay)\n\t\t{\n\t\t\tparent.Map.overlayDrawer.DrawOverlay(parent, OverlayTypes.OutOfFuel);\n\t\t}\n\t\tif (Props.drawFuelGaugeInMap)\n\t\t{\n\t\t\tGenDraw.FillableBarRequest r = default(GenDraw.FillableBarRequest);\n\t\t\tr.center = parent.DrawPos + Vector3.up * 0.1f;\n\t\t\tr.size = FuelBarSize;\n\t\t\tr.fillPercent = FuelPercentOfMax;\n\t\t\tr.filledMat = FuelBarFilledMat;\n\t\t\tr.unfilledMat = FuelBarUnfilledMat;\n\t\t\tr.margin = 0.15f;\n\t\t\tRot4 rotation = parent.Rotation;\n\t\t\trotation.Rotate(RotationDirection.Clockwise);\n\t\t\tr.rotation = rotation;\n\t\t\tGenDraw.DrawFillableBar(r);\n\t\t}\n\t}\n\n\tpublic override void PostDestroy(DestroyMode mode, Map previousMap)\n\t{\n\t\tbase.PostDestroy(mode, previousMap);\n\t\tif ((!Props.fuelIsMortarBarrel || !Find.Storyteller.difficulty.classicMortars) && mode != 0 && previousMap != null && Props.fuelFilter.AllowedDefCount == 1 && Props.initialFuelPercent == 0f)\n\t\t{\n\t\t\tThingDef thingDef = Props.fuelFilter.AllowedThingDefs.First();\n\t\t\tint num = Mathf.FloorToInt(1f * fuel);\n\t\t\twhile (num > 0)\n\t\t\t{\n\t\t\t\tThing thing = ThingMaker.MakeThing(thingDef);\n\t\t\t\tthing.stackCount = Mathf.Min(num, thingDef.stackLimit);\n\t\t\t\tnum -= thing.stackCount;\n\t\t\t\tGenPlace.TryPlaceThing(thing, parent.Position, previousMap, ThingPlaceMode.Near);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic override string CompInspectStringExtra()\n\t{\n\t\tif (Props.fuelIsMortarBarrel && Find.Storyteller.difficulty.classicMortars)\n\t\t{\n\t\t\treturn string.Empty;\n\t\t}\n\t\tstring text = base.CompInspectStringExtra();\n\t\ttext = ((text != null) ? (text + \"\\n\") : string.Empty);\n\t\ttext = text + Props.FuelLabel + \": \" + fuel.ToStringDecimalIfSmall() + \" / \" + Props.fuelCapacity.ToStringDecimalIfSmall();\n\t\tif (!Props.consumeFuelOnlyWhenUsed && HasFuel)\n\t\t{\n\t\t\tint numTicks = (int)(fuel / Props.fuelConsumptionRate * 60000f);\n\t\t\ttext = text + \" (\" + numTicks.ToStringTicksToPeriod() + \")\";\n\t\t}\n\t\tif (!HasFuel && !Props.outOfFuelMessage.NullOrEmpty())\n\t\t{\n\t\t\tstring arg = ((parent.def.building != null && parent.def.building.IsTurret) ? (\"CannotShoot\".Translate() + \": \" + Props.outOfFuelMessage).Resolve() : Props.outOfFuelMessage);\n\t\t\ttext += $\"\\n{arg} ({GetFuelCountToFullyRefuel()}x {Props.fuelFilter.AnyAllowedDef.label})\";\n\t\t}\n\t\tif (Props.targetFuelLevelConfigurable)\n\t\t{\n\t\t\ttext += \"\\n\" + \"ConfiguredTargetFuelLevel\".Translate(TargetFuelLevel.ToStringDecimalIfSmall());\n\t\t}\n\t\treturn text;\n\t}\n\n\tpublic override IEnumerable SpecialDisplayStats()\n\t{\n\t\tif (parent.def.building != null && parent.def.building.IsTurret)\n\t\t{\n\t\t\tTaggedString taggedString = \"RearmCostExplanation\".Translate();\n\t\t\tif (Props.factorByDifficulty)\n\t\t\t{\n\t\t\t\ttaggedString += \" (\" + \"RearmCostExplanationDifficulty\".Translate() + \")\";\n\t\t\t}\n\t\t\ttaggedString += \".\";\n\t\t\tyield return new StatDrawEntry(StatCategoryDefOf.Building, \"RearmCost\".Translate(), GenLabel.ThingLabel(Props.fuelFilter.AnyAllowedDef, null, GetFuelCountToFullyRefuel()).CapitalizeFirst(), taggedString, 3171);\n\t\t}\n\t}\n\n\tpublic override void CompTick()\n\t{\n\t\tbase.CompTick();\n\t\tCompPowerTrader comp = parent.GetComp();\n\t\tif (!Props.consumeFuelOnlyWhenUsed && (flickComp == null || flickComp.SwitchIsOn) && (!Props.consumeFuelOnlyWhenPowered || (comp != null && comp.PowerOn)) && !Props.externalTicking)\n\t\t{\n\t\t\tConsumeFuel(ConsumptionRatePerTick);\n\t\t}\n\t\tif (Props.fuelConsumptionPerTickInRain > 0f && parent.Spawned && parent.Map.weatherManager.RainRate > 0.4f && !parent.Map.roofGrid.Roofed(parent.Position) && !Props.externalTicking)\n\t\t{\n\t\t\tConsumeFuel(Props.fuelConsumptionPerTickInRain);\n\t\t}\n\t}\n\n\tpublic void ConsumeFuel(float amount)\n\t{\n\t\tif ((!Props.fuelIsMortarBarrel || !Find.Storyteller.difficulty.classicMortars) && !(fuel <= 0f))\n\t\t{\n\t\t\tfuel -= amount;\n\t\t\tif (fuel <= 0f)\n\t\t\t{\n\t\t\t\tfuel = 0f;\n\t\t\t\tNotify_RanOutOfFuel();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate void Notify_RanOutOfFuel()\n\t{\n\t\tif (Props.destroyOnNoFuel)\n\t\t{\n\t\t\tparent.Destroy();\n\t\t}\n\t\tparent.BroadcastCompSignal(\"RanOutOfFuel\");\n\t}\n\n\tpublic void Refuel(List fuelThings)\n\t{\n\t\tif (Props.atomicFueling && fuelThings.Sum((Thing t) => t.stackCount) < GetFuelCountToFullyRefuel())\n\t\t{\n\t\t\tLog.ErrorOnce(\"Error refueling; not enough fuel available for proper atomic refuel\", 19586442);\n\t\t\treturn;\n\t\t}\n\t\tint num = GetFuelCountToFullyRefuel();\n\t\twhile (num > 0 && fuelThings.Count > 0)\n\t\t{\n\t\t\tThing thing = fuelThings.Pop();\n\t\t\tint num2 = Mathf.Min(num, thing.stackCount);\n\t\t\tRefuel(num2);\n\t\t\tthing.SplitOff(num2).Destroy();\n\t\t\tnum -= num2;\n\t\t}\n\t}\n\n\tpublic void Refuel(float amount)\n\t{\n\t\tfuel += amount * Props.FuelMultiplierCurrentDifficulty;\n\t\tif (fuel > Props.fuelCapacity)\n\t\t{\n\t\t\tfuel = Props.fuelCapacity;\n\t\t}\n\t\tparent.BroadcastCompSignal(\"Refueled\");\n\t}\n\n\tpublic AcceptanceReport CanEjectFuel()\n\t{\n\t\tCompExplosive compExplosive = explosiveComp;\n\t\tif (compExplosive != null && compExplosive.wickStarted)\n\t\t{\n\t\t\treturn \"AboutToExplode\".Translate();\n\t\t}\n\t\tif (Fuel == 0f)\n\t\t{\n\t\t\treturn \"RefuelableNoFuelToEject\".Translate();\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic void EjectFuel()\n\t{\n\t\tThingDef thingDef = Props.fuelFilter.AllowedThingDefs.First();\n\t\tint num = Mathf.FloorToInt(fuel);\n\t\twhile (num > 0)\n\t\t{\n\t\t\tThing thing = ThingMaker.MakeThing(thingDef);\n\t\t\tthing.stackCount = Mathf.Min(num, thingDef.stackLimit);\n\t\t\tnum -= thing.stackCount;\n\t\t\tGenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near);\n\t\t\tthing.SetForbidden(value: true);\n\t\t}\n\t\tfuel = 0f;\n\t\tNotify_RanOutOfFuel();\n\t}\n\n\tpublic void Notify_UsedThisTick()\n\t{\n\t\tConsumeFuel(ConsumptionRatePerTick);\n\t}\n\n\tpublic int GetFuelCountToFullyRefuel()\n\t{\n\t\tif (Props.atomicFueling)\n\t\t{\n\t\t\treturn Mathf.CeilToInt(Props.fuelCapacity / Props.FuelMultiplierCurrentDifficulty);\n\t\t}\n\t\treturn Mathf.Max(Mathf.CeilToInt((TargetFuelLevel - fuel) / Props.FuelMultiplierCurrentDifficulty), 1);\n\t}\n\n\tpublic override IEnumerable CompGetGizmosExtra()\n\t{\n\t\tif (Props.fuelIsMortarBarrel && Find.Storyteller.difficulty.classicMortars)\n\t\t{\n\t\t\tyield break;\n\t\t}\n\t\tif (!Props.hideGizmosIfNotPlayerFaction || parent.Faction == Faction.OfPlayer)\n\t\t{\n\t\t\tif (Find.Selector.SelectedObjects.Count == 1)\n\t\t\t{\n\t\t\t\tyield return new Gizmo_SetFuelLevel(this);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (Props.targetFuelLevelConfigurable)\n\t\t\t\t{\n\t\t\t\t\tCommand_SetTargetFuelLevel command_SetTargetFuelLevel = new Command_SetTargetFuelLevel();\n\t\t\t\t\tcommand_SetTargetFuelLevel.refuelable = this;\n\t\t\t\t\tcommand_SetTargetFuelLevel.defaultLabel = \"CommandSetTargetFuelLevel\".Translate();\n\t\t\t\t\tcommand_SetTargetFuelLevel.defaultDesc = \"CommandSetTargetFuelLevelDesc\".Translate();\n\t\t\t\t\tcommand_SetTargetFuelLevel.icon = SetTargetFuelLevelCommand;\n\t\t\t\t\tyield return command_SetTargetFuelLevel;\n\t\t\t\t}\n\t\t\t\tif (Props.showAllowAutoRefuelToggle)\n\t\t\t\t{\n\t\t\t\t\tstring str = (allowAutoRefuel ? \"On\".Translate() : \"Off\".Translate());\n\t\t\t\t\tCommand_Toggle command_Toggle = new Command_Toggle();\n\t\t\t\t\tcommand_Toggle.isActive = () => allowAutoRefuel;\n\t\t\t\t\tcommand_Toggle.toggleAction = delegate\n\t\t\t\t\t{\n\t\t\t\t\t\tallowAutoRefuel = !allowAutoRefuel;\n\t\t\t\t\t};\n\t\t\t\t\tcommand_Toggle.defaultLabel = \"CommandToggleAllowAutoRefuel\".Translate();\n\t\t\t\t\tcommand_Toggle.defaultDesc = \"CommandToggleAllowAutoRefuelDescMult\".Translate(str.UncapitalizeFirst().Named(\"ONOFF\"));\n\t\t\t\t\tcommand_Toggle.icon = (allowAutoRefuel ? TexCommand.ForbidOn : TexCommand.ForbidOff);\n\t\t\t\t\tcommand_Toggle.Order = 20f;\n\t\t\t\t\tcommand_Toggle.hotKey = KeyBindingDefOf.Command_ItemForbid;\n\t\t\t\t\tyield return command_Toggle;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (DebugSettings.ShowDevGizmos)\n\t\t{\n\t\t\tCommand_Action command_Action = new Command_Action();\n\t\t\tcommand_Action.defaultLabel = \"DEV: Set fuel to 0\";\n\t\t\tcommand_Action.action = delegate\n\t\t\t{\n\t\t\t\tfuel = 0f;\n\t\t\t\tparent.BroadcastCompSignal(\"Refueled\");\n\t\t\t};\n\t\t\tyield return command_Action;\n\t\t\tCommand_Action command_Action2 = new Command_Action();\n\t\t\tcommand_Action2.defaultLabel = \"DEV: Set fuel to 0.1\";\n\t\t\tcommand_Action2.action = delegate\n\t\t\t{\n\t\t\t\tfuel = 0.1f;\n\t\t\t\tparent.BroadcastCompSignal(\"Refueled\");\n\t\t\t};\n\t\t\tyield return command_Action2;\n\t\t\tCommand_Action command_Action3 = new Command_Action();\n\t\t\tcommand_Action3.defaultLabel = \"DEV: Fuel -20%\";\n\t\t\tcommand_Action3.action = delegate\n\t\t\t{\n\t\t\t\tConsumeFuel(Props.fuelCapacity * 0.2f);\n\t\t\t};\n\t\t\tyield return command_Action3;\n\t\t\tCommand_Action command_Action4 = new Command_Action();\n\t\t\tcommand_Action4.defaultLabel = \"DEV: Set fuel to max\";\n\t\t\tcommand_Action4.action = delegate\n\t\t\t{\n\t\t\t\tfuel = Props.fuelCapacity;\n\t\t\t\tparent.BroadcastCompSignal(\"Refueled\");\n\t\t\t};\n\t\t\tyield return command_Action4;\n\t\t}\n\t}\n}\n\n", + "timestamp": "2025-08-29 15:27:45,799" + }, + "GenPlace-finding-location-spawn": { + "keywords": [ + "GenPlace", + "finding", + "spawn", + "location" + ], + "question": "GenPlace methods for finding spawn location", + "embedding": [ + 0.021659109741449356, + -0.0009752711630426347, + 0.0031586200930178165, + -0.027598824352025986, + 0.007866887375712395, + 0.004095240030437708, + 0.027742644771933556, + -0.033481013029813766, + 0.018308131024241447, + 0.12080778181552887, + 0.013619638979434967, + -0.05485248565673828, + -0.05237880349159241, + -0.042225196957588196, + -0.018063640221953392, + 0.03310708329081535, + -0.006802628748118877, + -0.06500609219074249, + -0.0014849290018901229, + -0.06287757307291031, + -0.0218316912651062, + 0.03365359455347061, + 0.0063927448354661465, + -0.00944170355796814, + -0.01336076483130455, + -0.023068534210324287, + 0.02440604753792286, + 0.07582126557826996, + -0.04156363010406494, + -0.0300005991011858, + -0.015863211825489998, + 0.026707148179411888, + 0.012634480372071266, + -0.029065776616334915, + -0.013533348217606544, + 0.0331646129488945, + -0.05289654806256294, + 0.01832251250743866, + -0.012792681343853474, + 0.01944429986178875, + -0.040182970464229584, + -0.019631264731287956, + 0.02315482497215271, + 0.028720611706376076, + -0.022608313709497452, + 0.021529672667384148, + -0.03687513619661331, + -0.04636717587709427, + -0.044583823531866074, + -0.0598861426115036, + -0.008384635671973228, + -0.026045581325888634, + -0.026966022327542305, + 0.010649780742824078, + 0.005439945496618748, + 0.0468849241733551, + 0.003203563392162323, + 0.02295347861945629, + 0.0022867186926305294, + 0.009729340672492981, + 0.0048682657070457935, + 0.010088887996971607, + -0.01248347107321024, + -0.02887881174683571, + 0.001300661126151681, + -0.020896868780255318, + 0.05436350032687187, + 0.06115174666047096, + -0.002951880684122443, + -0.02125641703605652, + -0.019185425713658333, + -0.01721510849893093, + -0.04881209507584572, + -0.0036925473250448704, + 0.01154145784676075, + 0.005673651117831469, + -0.00503725279122591, + -0.0714491754770279, + -0.010894273407757282, + -0.0028062639757990837, + -0.006079939194023609, + 0.02545592561364174, + -0.03420010581612587, + -0.02559974417090416, + 0.002795477630570531, + 0.004573437385261059, + 0.04412360489368439, + 0.03819826990365982, + -0.03825579583644867, + 0.04044184461236, + 0.01364121213555336, + -0.01528793666511774, + 0.02377324551343918, + -0.008514071814715862, + -0.01049877144396305, + -0.03575335070490837, + -0.02959790639579296, + -0.007888460531830788, + 0.0018255996983498335, + 0.01679803431034088, + -0.011598984710872173, + -0.02882128395140171, + -0.03776681423187256, + 0.08053851872682571, + -0.0039945668540894985, + -0.011627748608589172, + -0.04274294152855873, + -0.00783093273639679, + -0.0027001977432519197, + 0.052206218242645264, + -0.019185425713658333, + -0.040470607578754425, + 0.03621356934309006, + 0.02013462968170643, + 0.01479895319789648, + 0.028648702427744865, + 0.018063640221953392, + 0.006317240186035633, + 0.012425943277776241, + 0.006755887530744076, + -0.013346383348107338, + 0.017402073368430138, + -0.03609851375222206, + -0.02587299980223179, + 0.012368415482342243, + -0.012411560863256454, + -0.027181750163435936, + 0.057268641889095306, + 0.017114436253905296, + -0.04078700765967369, + -0.022780895233154297, + 0.010096078738570213, + -0.013252900913357735, + -0.005479495972394943, + 0.001948744524270296, + -0.04093082621693611, + -0.00022606515267398208, + -0.008578790351748466, + -0.02027844823896885, + -0.019775083288550377, + -0.03670255467295647, + 0.00965743139386177, + 0.0291664507240057, + -0.01028304360806942, + 0.0953230932354927, + 0.009175638668239117, + 0.013612448237836361, + -0.02909454144537449, + -0.01938677206635475, + 0.015345464460551739, + -0.03811197727918625, + -0.019947664812207222, + -0.032215408980846405, + 0.014389069750905037, + -0.010419671423733234, + -0.016265904530882835, + 0.007794978097081184, + -0.027052313089370728, + 0.00282424152828753, + -0.0032089566811919212, + -0.05442102998495102, + 0.010966182686388493, + 0.04596448317170143, + 0.025729181244969368, + 0.005465114023536444, + 0.017387691885232925, + 0.002399975899606943, + 0.033883705735206604, + -0.05539899691939354, + 0.001415716134943068, + -0.027656352147459984, + 0.003958612214773893, + -0.014353115111589432, + 0.022349439561367035, + -0.0038040068466216326, + 0.028346681967377663, + -0.007766214665025473, + 0.07070131599903107, + 0.006043984554708004, + -0.013051554560661316, + 0.03405628725886345, + 0.02826039120554924, + 0.022622695192694664, + -0.00673431484028697, + -0.003915466368198395, + -0.048236820846796036, + -0.014209296554327011, + 0.005957693327218294, + 0.0300005991011858, + -0.010793600231409073, + -0.0036008628085255623, + 0.06701955199241638, + -0.029353413730859756, + 0.020393503829836845, + -0.06759482622146606, + -0.006482631899416447, + 0.016913089901208878, + 0.0008341489592567086, + -0.0558304525911808, + -0.015417373739182949, + 0.0060331979766488075, + -0.06535125523805618, + -0.013317619450390339, + -0.006115893833339214, + -0.008931146934628487, + -0.010203942656517029, + -0.013137846253812313, + -0.028361065313220024, + 0.03782434016466141, + -0.006230948958545923, + 0.04259912297129631, + -0.015029063448309898, + 0.006694764364510775, + -0.04967501014471054, + -0.01262728963047266, + 0.007507340516895056, + -0.02329864352941513, + -0.057469986379146576, + 0.018207458779215813, + 0.03756546601653099, + 0.004368495661765337, + -0.0010597646469250321, + 0.049761299043893814, + -0.0014777380274608731, + 0.0436633825302124, + -0.010124842636287212, + -0.008715418167412281, + 0.0021411022171378136, + -0.0033761460799723864, + 0.003187383757904172, + 0.02539839781820774, + 0.03497672826051712, + -0.04728761687874794, + 0.036472443491220474, + 0.025297723710536957, + -0.00033325509866699576, + -0.05197611078619957, + -0.0006067355279810727, + -0.011836285702884197, + 0.02545592561364174, + 0.037191540002822876, + 0.02636198326945305, + 0.0218316912651062, + 0.022852804511785507, + 0.015359845943748951, + 0.017718475311994553, + -0.01651039719581604, + -0.013734694570302963, + 0.05013522878289223, + 0.0051055666990578175, + 0.0008997662807814777, + 0.05764256790280342, + -0.010045742616057396, + -0.02496694214642048, + 0.046424705535173416, + 0.016481632366776466, + 0.0038902980741113424, + 0.005152307916432619, + -0.014547270722687244, + -0.011095619760453701, + -0.024650540202856064, + 0.03926252946257591, + -0.021558435633778572, + -0.0181930772960186, + 0.023658189922571182, + -0.01797734759747982, + -0.027181750163435936, + 0.05013522878289223, + -0.05867806449532509, + -0.07702933996915817, + -0.008312725462019444, + 0.04513033479452133, + 0.012677625752985477, + -0.05335677042603493, + 0.013252900913357735, + 0.013518965803086758, + -0.020062720403075218, + -0.03391246870160103, + 0.037105247378349304, + -0.042138904333114624, + 0.012339651584625244, + 0.007759023457765579, + -0.003618840128183365, + 0.010225515812635422, + -0.0026264905463904142, + 0.05232127383351326, + -0.002399975899606943, + 0.042369015514850616, + 0.021112598478794098, + -0.015431756153702736, + -0.00010151584137929603, + 0.07720192521810532, + -0.008902383036911488, + -0.008140143007040024, + -0.020753050222992897, + 0.023686954751610756, + 0.04495775327086449, + 0.01546051912009716, + -0.018725205212831497, + -0.029684197157621384, + -0.005655673798173666, + 0.013245710171759129, + -0.017603419721126556, + -0.0247512124478817, + 0.03184147924184799, + 0.03736412152647972, + -0.013382337987422943, + -0.10567804425954819, + 0.032848209142684937, + -0.10625331848859787, + 0.009643049910664558, + 0.017934203147888184, + -0.0059073567390441895, + -0.014288396574556828, + -0.029051395133137703, + 0.0011307751992717385, + -0.01462637074291706, + 0.0066839782521128654, + 0.002455705776810646, + 0.02826039120554924, + -0.06793999671936035, + -0.006626450456678867, + -0.059771087020635605, + 0.014187723398208618, + -0.0006961728213354945, + -0.0004071869479957968, + 0.03414257988333702, + 0.013109082356095314, + 0.00470646983012557, + 0.009916305541992188, + 0.01311627309769392, + 0.025283342227339745, + 0.015978267416357994, + 0.037594228982925415, + -0.04895591363310814, + -0.01371312141418457, + 0.031438786536455154, + 0.01629466935992241, + 0.0026031199377030134, + -0.00673431484028697, + -0.03707648441195488, + 0.059771087020635605, + -0.04981882870197296, + -0.028778139501810074, + 0.01987575553357601, + -0.030604638159275055, + 0.0031963724177330732, + 0.04064318910241127, + 0.04141981154680252, + 0.005332081578671932, + -0.026045581325888634, + 0.010592253878712654, + -0.031611368060112, + 0.021457763388752937, + -0.014885243959724903, + 0.0177760012447834, + -0.028490502387285233, + 0.01139763928949833, + 0.019343627616763115, + -0.0007730259676463902, + -0.01873958855867386, + 0.0230253878980875, + 0.01978946477174759, + 0.04444000497460365, + 0.01692747138440609, + -0.00815452542155981, + -0.0010939216008409858, + 0.04674110561609268, + -0.02140023559331894, + 0.03276192024350166, + -0.014281205832958221, + -0.06443081796169281, + 0.019703174009919167, + 0.023902682587504387, + -0.03768052160739899, + 0.04469887912273407, + -0.004659728612750769, + -0.00023640213476028293, + -0.0038471524603664875, + 0.04006791487336159, + -0.010692927055060863, + 0.028159718960523605, + -0.0015065018087625504, + -0.0696658194065094, + -0.017085671424865723, + -0.02735433354973793, + 0.001955935498699546, + 0.03405628725886345, + 0.022047419100999832, + -0.016611069440841675, + 0.06264746189117432, + 0.03385494276881218, + -0.0028817688580602407, + -0.007780596148222685, + -0.01339672040194273, + 0.014115814119577408, + 0.027440624311566353, + 0.02742624282836914, + 0.01587759330868721, + -0.00010202145494986326, + 0.015273555181920528, + -0.00739947659894824, + 0.0014876255299896002, + 0.01672612503170967, + -0.02371571771800518, + 0.0024215488228946924, + 0.02085372433066368, + -0.03379741311073303, + -0.012418752536177635, + 0.01007450558245182, + -0.015402992255985737, + -0.016984999179840088, + 0.03583964332938194, + 0.03756546601653099, + -0.04668357968330383, + 0.01531670056283474, + 0.02161596342921257, + 0.0007972954190336168, + 0.025067614391446114, + 0.051659706979990005, + 0.01427401416003704, + 0.020666759461164474, + -0.04961748048663139, + 0.020479794591665268, + -0.02715298719704151, + 0.059483449906110764, + 0.02449234016239643, + 0.07564868032932281, + -0.05085432156920433, + -0.0009145975927822292, + 0.029324650764465332, + -0.015848830342292786, + -0.09549567103385925, + 0.03747917711734772, + 0.012677625752985477, + -0.003933443687856197, + -0.0026948044542223215, + 0.016323432326316833, + -0.004850288387387991, + -0.015848830342292786, + -0.0712190642952919, + 0.014446597546339035, + -0.02693725936114788, + -0.045015279203653336, + 0.03181271627545357, + -0.02029283158481121, + 0.05470866709947586, + 0.0009860575664788485, + -0.04058566316962242, + 0.038716018199920654, + -0.03322213888168335, + -0.038716018199920654, + -0.051515888422727585, + -0.025513453409075737, + -0.013820985332131386, + 0.05436350032687187, + 0.01826498657464981, + -0.0003838163975160569, + 0.051228251308202744, + -0.05715358629822731, + -0.0039909714832901955, + 0.036760080605745316, + -0.03448774665594101, + 0.03463156521320343, + 0.013483011163771152, + 0.0002844915434252471, + -0.028202863410115242, + -0.016956234350800514, + -0.018998460844159126, + -0.07593631744384766, + -0.012533807195723057, + 0.02741186134517193, + 0.021946746855974197, + -0.052004873752593994, + 0.03279068320989609, + -0.06592652946710587, + -0.03189900517463684, + 0.055370233952999115, + 0.012807062827050686, + -0.1424381285905838, + -0.03765175864100456, + 0.006788246799260378, + -0.00521343108266592, + -0.009542376734316349, + -0.04685616120696068, + -0.09469028562307358, + -0.060116253793239594, + 0.000938417564611882, + -0.014439405873417854, + -0.021026305854320526, + -0.025024468079209328, + 0.016208376735448837, + -0.046194594353437424, + 0.02623254619538784, + -0.0372203029692173, + -0.026966022327542305, + 0.01720072701573372, + 0.060749053955078125, + -0.030949803069233894, + -0.0017384096281602979, + -0.02232067659497261, + 0.004753211047500372, + 0.021385854110121727, + -0.017387691885232925, + -0.007780596148222685, + 0.007881269790232182, + -0.0331646129488945, + 0.035005491226911545, + 0.0056412918493151665, + 0.007888460531830788, + -0.008514071814715862, + -0.015417373739182949, + 0.031007330864667892, + 0.01326009165495634, + 0.016956234350800514, + 0.0052565764635801315, + 0.027023550122976303, + 0.027339952066540718, + 0.008341489359736443, + 0.015920739620923996, + 0.004080858081579208, + -0.016567924991250038, + -0.00898867379873991, + 0.01269919890910387, + -0.06086410954594612, + 0.034804146736860275, + 0.001047180499881506, + 0.001333020394667983, + 0.01770409196615219, + -0.04777660220861435, + 0.000796845939476043, + -0.021428998559713364, + -0.01663983426988125, + 0.024089647457003593, + -0.02062361314892769, + -0.05324171483516693, + -0.004835906904190779, + 0.005148712545633316, + 0.08065357804298401, + 0.02715298719704151, + 0.027383096516132355, + -0.006579709704965353, + -0.001306953257881105, + -0.0017339152982458472, + 0.044382479041814804, + 0.03169766068458557, + 0.033481013029813766, + 0.013763457536697388, + 0.0021303158719092607, + -0.05002017319202423, + 0.0017833529273048043, + -0.004368495661765337, + 0.05140083283185959, + 0.003962207585573196, + 0.003627828788012266, + -0.015935121104121208, + 0.04484269767999649, + 0.05050915852189064, + 0.01423086877912283, + 0.013403911143541336, + 0.00370692927390337, + -0.0043577090837061405, + 0.03247428312897682, + -0.07800731062889099, + 0.0267790574580431, + -0.006198589690029621, + -0.023902682587504387, + 0.029914308339357376, + 0.0016925673699006438, + -0.059080757200717926, + 0.016841180622577667, + 0.07087390124797821, + -0.05025028437376022, + -0.0035936718340963125, + -0.016740506514906883, + 0.04777660220861435, + 0.023183587938547134, + 0.013849749229848385, + 0.0454467348754406, + -0.007061502430588007, + -0.004843097645789385, + -0.01405828632414341, + -0.0032826638780534267, + 0.006935661192983389, + 0.017445219680666924, + 0.004753211047500372, + -0.02286718785762787, + 0.01804925687611103, + 0.03825579583644867, + -0.006202185060828924, + 0.0678824707865715, + 0.03394123539328575, + 0.00022336855181492865, + 0.025916146114468575, + -0.029065776616334915, + 0.012850208207964897, + -0.04475640505552292, + 0.07363522052764893, + -0.016826797276735306, + 0.024794358760118484, + -0.024118410423398018, + -0.10648342967033386, + -0.011426402255892754, + 0.006878133397549391, + 0.004947366192936897, + -0.008413398638367653, + -0.020666759461164474, + 0.053903281688690186, + 0.036127280443906784, + 0.03097856603562832, + 0.08117132633924484, + 0.006018816027790308, + 0.0030273855663836002, + -0.0018660487839952111, + -0.0016314443200826645, + -0.044670116156339645, + -0.005026466678828001, + 0.03141002357006073, + -0.024866268038749695, + 0.0006238140049390495, + -0.000134942471049726, + -0.01714319922029972, + 0.02239258587360382, + -0.04567684605717659, + -0.01538860984146595, + 0.013648402877151966, + 0.02147214487195015, + -0.0008085312438197434, + -0.044037312269210815, + -0.013173800893127918, + -0.07167928665876389, + 0.010491580702364445, + -0.03727782890200615, + 0.012986836023628712, + 0.08174660056829453, + 0.01686994358897209, + 0.014446597546339035, + 0.026879731565713882, + 0.013130655512213707, + -0.0009190919226966798, + 0.0247512124478817, + 0.021083833649754524, + -0.02601681835949421, + 0.0012494256952777505, + 0.041391048580408096, + 0.008938337676227093, + -0.03146754950284958, + -0.02853364683687687, + -0.06080658361315727, + -0.031381260603666306, + 0.04093082621693611, + 0.05378822609782219, + 0.0397227481007576, + 0.01573377475142479, + -0.003644008422270417, + 0.007888460531830788, + -0.03782434016466141, + -0.00715138902887702, + 0.00428579980507493, + -0.011138765141367912, + -0.023169206455349922, + -0.0331646129488945, + -0.006123085040599108, + -0.00944170355796814, + -0.004638155922293663, + 0.004519505426287651, + 0.004303777124732733, + 0.010203942656517029, + -0.001356390886940062, + 0.01817869395017624, + -0.012440324760973454, + 0.014446597546339035, + 0.024233466014266014, + 0.0542772114276886, + -0.018020493909716606, + 0.04334698244929314, + 0.027800170704722404, + -0.0412759929895401, + 0.021630344912409782, + 0.02699478715658188, + -0.041793737560510635, + -0.0014399855863302946, + -0.04792042076587677, + 0.02036474086344242, + -0.0035990651231259108, + -0.0007065098034217954, + 0.006705550942569971, + 0.01826498657464981, + -0.08318478614091873, + -0.0010885284282267094, + 0.015719393268227577, + -0.0502215214073658, + 0.0436633825302124, + -0.00042224297067150474, + -0.009010246954858303, + -0.03604098781943321, + -0.001972115132957697, + 0.0017330163391306996, + 0.04104588180780411, + 0.06822763383388519, + -0.0032808659598231316, + -0.03181271627545357, + 0.03946387395262718, + -0.017517128959298134, + 0.01881149783730507, + 0.000330783223034814, + -0.06960829347372055, + -0.0031100811902433634, + 0.0021644728258252144, + -0.012354033999145031, + 0.042973052710294724, + 0.015978267416357994, + -0.008780136704444885, + 0.0031550247222185135, + -0.011663703247904778, + 0.03281944617629051, + -0.006561731919646263, + 0.011404830031096935, + -0.0477190725505352, + 0.018984079360961914, + -0.0037608612328767776, + -0.03391246870160103, + -0.03868725523352623, + 0.011217865161597729, + -0.02692287601530552, + 0.05617561936378479, + -0.0037896251305937767, + -0.012325270101428032, + -0.02013462968170643, + 0.027037931606173515, + -0.03437269106507301, + 0.01875397004187107, + -0.0099306870251894, + 0.05798773467540741, + 0.004479955416172743, + -0.05534146726131439, + -0.0033887301106005907, + 0.01799173094332218, + -0.01861015148460865, + -0.04147733747959137, + -0.005033657420426607, + 0.00898867379873991, + 0.05378822609782219, + -0.023169206455349922, + 0.09745161235332489, + 0.062014661729335785, + -0.019832611083984375, + -0.044583823531866074, + 0.09572578221559525, + 0.03178395330905914, + 0.04786289110779762, + -0.023471225053071976, + 0.03552323952317238, + -0.005752751603722572, + -0.032215408980846405, + -0.0073455446399748325, + 0.06425823271274567, + 0.045216627418994904, + 0.0016278488328680396, + -0.025067614391446114, + 0.00328625924885273, + 0.019703174009919167, + 0.035580769181251526, + 0.03394123539328575, + -0.031438786536455154, + 0.051314543932676315, + 0.016496015712618828, + -0.005432754755020142, + -0.01118910126388073, + -0.04766154661774635, + -0.022421348839998245, + -0.017186345532536507, + 0.01326009165495634, + 0.01832251250743866, + 0.007212512195110321, + -0.0022040228359401226, + 0.028418593108654022, + -0.02427661046385765, + -0.014079859480261803, + -0.036472443491220474, + 0.057124823331832886, + -0.055427759885787964, + 0.0681125745177269, + -0.011649321764707565, + 0.011491120792925358, + 0.033049557358026505, + 0.01971755549311638, + 0.030173180624842644, + -0.02804466336965561, + -0.018624532967805862, + -0.029684197157621384, + -0.037450410425662994, + 0.037881869822740555, + 0.04392225667834282, + -0.0181930772960186, + -0.009456085041165352, + 0.019055988639593124, + 0.049214787781238556, + 0.038514669984579086, + 0.0332796685397625, + 0.047115035355091095, + -0.088995061814785, + -0.0074354312382638454, + -0.040671952068805695, + 0.037249065935611725, + 0.010225515812635422, + 0.0025761539582163095, + -0.03028823621571064, + -0.0030291832517832518, + 0.01567624695599079, + 0.011476739309728146, + -0.004897029604762793, + 0.023672571405768394, + -0.022996623069047928, + 0.028504883870482445, + -0.022220002487301826, + -0.017315782606601715, + -0.007262848783284426, + -0.04426742345094681, + 0.03828456252813339, + 0.022148093208670616, + 0.006723528262227774, + 0.004350518342107534, + 0.007967560552060604, + 0.0300005991011858, + -0.023586280643939972, + -0.0034516509622335434, + 0.02295347861945629, + -0.00944170355796814, + -0.011447975412011147, + -0.02295347861945629, + 0.0023514372296631336, + 0.038370851427316666, + 0.0059145474806427956, + 0.031582605093717575, + 0.012893354520201683, + -0.013094700872898102, + -0.015402992255985737, + 0.0015514451079070568, + -0.005260172300040722, + -0.023830773308873177, + -0.011606176383793354, + -0.005839042831212282, + -0.04323192685842514, + 0.026620857417583466, + 0.005767133552581072, + 0.02616063691675663, + -0.011131574399769306, + 0.006011625286191702, + -0.0041419812478125095, + -0.025412779301404953, + 0.009326647967100143, + -0.01643848791718483, + -0.003904680022969842, + 0.018710823729634285, + 0.012224596925079823, + 0.02280966006219387, + 0.03581087663769722, + 0.011987295933067799, + -0.018480714410543442, + -0.005321295000612736, + -0.007492958568036556, + 0.015172882005572319, + 0.0028206459246575832, + 0.04530291631817818, + -0.011692467145621777, + 0.011555839329957962, + 0.02715298719704151, + 0.02351437136530876, + -0.0024323351681232452, + 0.019214190542697906, + 0.0022867186926305294, + -0.008751372806727886, + 0.011167529039084911, + 0.035638295114040375, + -0.007309590000659227, + -0.03552323952317238, + 0.01686994358897209, + 0.007359926588833332, + 0.029828015714883804, + -0.0047675929963588715, + -0.001669196761213243, + 0.013634021393954754, + -0.0069931885227561, + 0.06863032281398773, + -0.017387691885232925, + -0.0209975428879261, + 0.016467250883579254, + -0.019674409180879593, + 0.023974591866135597, + 0.04630964994430542, + 0.024521103128790855, + 0.007514531724154949, + -0.009132493287324905, + -0.01126820221543312, + -0.011145955882966518, + -0.06126680225133896, + 0.00328625924885273, + -0.06063400208950043, + -0.013518965803086758, + 0.0088880006223917, + -0.09273435175418854, + 0.05936839431524277, + 0.03995285928249359, + -0.05027904734015465, + -0.03609851375222206, + -0.03575335070490837, + -0.030201945453882217, + -0.027541298419237137, + 0.024808740243315697, + 0.014065477065742016, + -0.004019734915345907, + 0.0356670580804348, + 0.03652997314929962, + -0.022507639601826668, + -0.05528394132852554, + -0.04420989379286766, + 0.07495835423469543, + -0.003667379030957818, + -0.030317001044750214, + 0.01727263629436493, + 0.00032763718627393246, + 0.0009114515851251781, + 0.061094220727682114, + 0.02777140773832798, + 0.01427401416003704, + -0.049761299043893814, + -0.020235303789377213, + 0.0029842397198081017, + 0.04593572020530701, + -0.06120927631855011, + -0.00035729981027543545, + 0.007924415171146393, + -0.003814793424680829, + 0.02918083220720291, + 0.026103109121322632, + -0.03716277331113815, + -0.029540378600358963, + -0.018696442246437073, + -0.05160218104720116, + -0.012598525732755661, + -0.046137068420648575, + 0.024736830964684486, + 0.05568663403391838, + 0.014957154169678688, + 0.05652078241109848, + 0.01973193697631359, + -0.0218892190605402, + 0.014698280021548271, + 0.024161556735634804, + -0.056003034114837646, + -0.008025088347494602, + 0.03575335070490837, + -0.015647483989596367, + 0.0014849290018901229, + 0.019271716475486755, + 0.004857479594647884, + -0.03322213888168335, + -0.010045742616057396, + -0.03940634801983833, + 0.003868725383654237, + 0.060461416840553284, + 0.035638295114040375, + -0.062992624938488, + 0.02140023559331894, + 0.005486686713993549, + -0.010189561173319817, + -0.003947825636714697, + 0.022076183930039406, + -0.04351956397294998, + -0.04231148585677147, + 0.04444000497460365, + 0.010736072435975075, + -0.02923836000263691, + 0.01973193697631359, + 0.005267363041639328, + -0.02013462968170643, + -0.02406088262796402, + -0.01804925687611103, + 0.011102810502052307, + 0.046971216797828674, + 0.012303696945309639, + -0.006856560707092285, + 0.013698738999664783, + 0.019041607156395912, + -0.011203483678400517, + 0.02335617132484913, + 0.012461897917091846, + -0.01825060322880745, + 0.006673191674053669, + -0.001959530869498849, + -0.0065437545999884605, + 0.019127897918224335, + 0.018293749541044235, + -0.0009590915287844837, + -0.012965263798832893, + -0.01175718568265438, + -0.014676706865429878, + 0.03621356934309006, + -0.021731019020080566, + 0.007694304920732975, + -0.00027595230494625866, + 0.0008732497226446867, + 0.007108243647962809, + 0.03489043936133385, + 0.0007074086461216211, + 0.008111379109323025, + 0.004447596147656441, + -0.01405828632414341, + -0.02567165344953537, + -0.0009258334175683558, + -0.000717745628207922, + -0.063222736120224, + -0.0077086868695914745, + 0.016467250883579254, + 0.006482631899416447, + -0.07409543544054031, + 0.0008849349687807262, + 0.00941293966025114, + -0.0009878552518785, + 0.008470926433801651, + 0.014547270722687244, + 0.03359606862068176, + -0.018480714410543442 + ], + "result": "--- 结果 1 (相似度: 1.000) ---\n文件路径: C:\\Steam\\steamapps\\common\\RimWorld\\Data\\dll1.6\\Verse\\GenPlace.txt\n\npublic static class GenPlace\n{\n\tprivate enum PlaceSpotQuality : byte\n\t{\n\t\tUnusable,\n\t\tAwful,\n\t\tBad,\n\t\tOkay,\n\t\tPerfect\n\t}\n\n\tprivate static readonly int PlaceNearMaxRadialCells = GenRadial.NumCellsInRadius(12.9f);\n\n\tprivate static readonly int PlaceNearMiddleRadialCells = GenRadial.NumCellsInRadius(3f);\n\n\tprivate static List thingList = new List();\n\n\tprivate static List cellThings = new List(8);\n\n\tpublic static bool TryPlaceThing(Thing thing, IntVec3 center, Map map, ThingPlaceMode mode, Action placedAction = null, Predicate extraValidator = null, Rot4? rot = null, int squareRadius = 1)\n\t{\n\t\tThing lastResultingThing;\n\t\treturn TryPlaceThing(thing, center, map, mode, out lastResultingThing, placedAction, extraValidator, rot);\n\t}\n\n\tpublic static bool TryPlaceThing(Thing thing, IntVec3 center, Map map, ThingPlaceMode mode, out Thing lastResultingThing, Action placedAction = null, Predicate extraValidator = null, Rot4? rot = null, int squareRadius = 1)\n\t{\n\t\tRot4 valueOrDefault = rot.GetValueOrDefault();\n\t\tif (!rot.HasValue)\n\t\t{\n\t\t\tvalueOrDefault = thing.def.defaultPlacingRot;\n\t\t\trot = valueOrDefault;\n\t\t}\n\t\tlastResultingThing = null;\n\t\tif (map == null)\n\t\t{\n\t\t\tLog.Error(\"Tried to place thing \" + thing?.ToString() + \" in a null map.\");\n\t\t\tlastResultingThing = null;\n\t\t\treturn false;\n\t\t}\n\t\tif (thing.def.category == ThingCategory.Filth)\n\t\t{\n\t\t\tmode = ThingPlaceMode.Direct;\n\t\t}\n\t\tif (mode == ThingPlaceMode.Direct)\n\t\t{\n\t\t\treturn TryPlaceDirect(thing, center, rot.Value, map, out lastResultingThing, placedAction);\n\t\t}\n\t\tif (mode == ThingPlaceMode.Near)\n\t\t{\n\t\t\tint stackCount;\n\t\t\tdo\n\t\t\t{\n\t\t\t\tstackCount = thing.stackCount;\n\t\t\t\tif (!TryFindPlaceSpotNear(center, rot.Value, map, thing, allowStacking: true, out var bestSpot, extraValidator))\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (TryPlaceDirect(thing, bestSpot, rot.Value, map, out lastResultingThing, placedAction))\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (thing.stackCount != stackCount);\n\t\t\tstring[] obj = new string[7]\n\t\t\t{\n\t\t\t\t\"Failed to place \",\n\t\t\t\tthing?.ToString(),\n\t\t\t\t\" at \",\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t};\n\t\t\tIntVec3 intVec = center;\n\t\t\tobj[3] = intVec.ToString();\n\t\t\tobj[4] = \" in mode \";\n\t\t\tobj[5] = mode.ToString();\n\t\t\tobj[6] = \".\";\n\t\t\tLog.Error(string.Concat(obj));\n\t\t\tlastResultingThing = null;\n\t\t\treturn false;\n\t\t}\n\t\tif (mode == ThingPlaceMode.Radius)\n\t\t{\n\t\t\tint stackCount2;\n\t\t\tdo\n\t\t\t{\n\t\t\t\tstackCount2 = thing.stackCount;\n\t\t\t\tif (!TryFindPlaceSpotInRadius(center, rot.Value, map, thing, squareRadius, allowStacking: true, out var bestSpot2, 100, extraValidator))\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (TryPlaceDirect(thing, bestSpot2, rot.Value, map, out lastResultingThing, placedAction))\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (thing.stackCount != stackCount2);\n\t\t\tstring[] obj2 = new string[7]\n\t\t\t{\n\t\t\t\t\"Failed to place \",\n\t\t\t\tthing?.ToString(),\n\t\t\t\t\" at \",\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t};\n\t\t\tIntVec3 intVec = center;\n\t\t\tobj2[3] = intVec.ToString();\n\t\t\tobj2[4] = \" in mode \";\n\t\t\tobj2[5] = mode.ToString();\n\t\t\tobj2[6] = \".\";\n\t\t\tLog.Error(string.Concat(obj2));\n\t\t\tlastResultingThing = null;\n\t\t\treturn false;\n\t\t}\n\t\tthrow new InvalidOperationException();\n\t}\n\n\tprivate static bool TryFindPlaceSpotNear(IntVec3 center, Rot4 rot, Map map, Thing thing, bool allowStacking, out IntVec3 bestSpot, Predicate extraValidator = null)\n\t{\n\t\tPlaceSpotQuality placeSpotQuality = PlaceSpotQuality.Unusable;\n\t\tbestSpot = center;\n\t\tfor (int i = 0; i < 9; i++)\n\t\t{\n\t\t\tIntVec3 intVec = center + GenRadial.RadialPattern[i];\n\t\t\tPlaceSpotQuality placeSpotQuality2 = PlaceSpotQualityAt(intVec, rot, map, thing, center, allowStacking, extraValidator);\n\t\t\tif ((int)placeSpotQuality2 > (int)placeSpotQuality)\n\t\t\t{\n\t\t\t\tbestSpot = intVec;\n\t\t\t\tplaceSpotQuality = placeSpotQuality2;\n\t\t\t}\n\t\t\tif (placeSpotQuality == PlaceSpotQuality.Perfect)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ((int)placeSpotQuality >= 3)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tfor (int j = 0; j < PlaceNearMiddleRadialCells; j++)\n\t\t{\n\t\t\tIntVec3 intVec = center + GenRadial.RadialPattern[j];\n\t\t\tPlaceSpotQuality placeSpotQuality2 = PlaceSpotQualityAt(intVec, rot, map, thing, center, allowStacking, extraValidator);\n\t\t\tif ((int)placeSpotQuality2 > (int)placeSpotQuality)\n\t\t\t{\n\t\t\t\tbestSpot = intVec;\n\t\t\t\tplaceSpotQuality = placeSpotQuality2;\n\t\t\t}\n\t\t\tif (placeSpotQuality == PlaceSpotQuality.Perfect)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ((int)placeSpotQuality >= 3)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tfor (int k = 0; k < PlaceNearMaxRadialCells; k++)\n\t\t{\n\t\t\tIntVec3 intVec = center + GenRadial.RadialPattern[k];\n\t\t\tPlaceSpotQuality placeSpotQuality2 = PlaceSpotQualityAt(intVec, rot, map, thing, center, allowStacking, extraValidator);\n\t\t\tif ((int)placeSpotQuality2 > (int)placeSpotQuality)\n\t\t\t{\n\t\t\t\tbestSpot = intVec;\n\t\t\t\tplaceSpotQuality = placeSpotQuality2;\n\t\t\t}\n\t\t\tif (placeSpotQuality == PlaceSpotQuality.Perfect)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif ((int)placeSpotQuality > 0)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\tbestSpot = center;\n\t\treturn false;\n\t}\n\n\tprivate static bool TryFindPlaceSpotInRadius(IntVec3 center, Rot4 rot, Map map, Thing thing, int radius, bool allowStacking, out IntVec3 bestSpot, int attempts = 100, Predicate extraValidator = null)\n\t{\n\t\tPlaceSpotQuality placeSpotQuality = PlaceSpotQuality.Unusable;\n\t\tbestSpot = center;\n\t\twhile (attempts-- > 0)\n\t\t{\n\t\t\tif (CellFinder.TryRandomClosewalkCellNear(center, map, radius, out var result))\n\t\t\t{\n\t\t\t\tPlaceSpotQuality placeSpotQuality2 = PlaceSpotQualityAt(result, rot, map, thing, center, allowStacking, extraValidator);\n\t\t\t\tif ((int)placeSpotQuality2 > (int)placeSpotQuality)\n\t\t\t\t{\n\t\t\t\t\tbestSpot = result;\n\t\t\t\t\tplaceSpotQuality = placeSpotQuality2;\n\t\t\t\t}\n\t\t\t\tif (placeSpotQuality == PlaceSpotQuality.Perfect)\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn (int)placeSpotQuality > 0;\n\t}\n\n\tprivate static PlaceSpotQuality PlaceSpotQualityAt(IntVec3 c, Rot4 rot, Map map, Thing thing, IntVec3 center, bool allowStacking, Predicate extraValidator = null)\n\t{\n\t\tif (!GenSpawn.CanSpawnAt(thing.def, c, map, rot))\n\t\t{\n\t\t\treturn PlaceSpotQuality.Unusable;\n\t\t}\n\t\tif (extraValidator != null && !extraValidator(c))\n\t\t{\n\t\t\treturn PlaceSpotQuality.Unusable;\n\t\t}\n\t\tthingList.Clear();\n\t\tforeach (IntVec3 item in GenAdj.OccupiedRect(c, rot, thing.def.Size))\n\t\t{\n\t\t\tthingList.AddRange(item.GetThingList(map));\n\t\t}\n\t\tbool flag = false;\n\t\tfor (int i = 0; i < thingList.Count; i++)\n\t\t{\n\t\t\tThing thing2 = thingList[i];\n\t\t\tif (thing.def.saveCompressible && thing2.def.saveCompressible)\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Unusable;\n\t\t\t}\n\t\t\tif (thing.def.category == ThingCategory.Item && thing2.def.category == ThingCategory.Item && allowStacking && thing2.stackCount < thing2.def.stackLimit && thing2.CanStackWith(thing))\n\t\t\t{\n\t\t\t\tflag = true;\n\t\t\t}\n\t\t}\n\t\tif (thing.def.category == ThingCategory.Item && !flag && c.GetItemCount(map) >= c.GetMaxItemsAllowedInCell(map))\n\t\t{\n\t\t\treturn PlaceSpotQuality.Unusable;\n\t\t}\n\t\tif (c.GetEdifice(map) is IHaulDestination haulDestination && !haulDestination.Accepts(thing))\n\t\t{\n\t\t\treturn PlaceSpotQuality.Unusable;\n\t\t}\n\t\tif (thing is Building)\n\t\t{\n\t\t\tforeach (IntVec3 item2 in GenAdj.OccupiedRect(c, rot, thing.def.size))\n\t\t\t{\n\t\t\t\tBuilding edifice = item2.GetEdifice(map);\n\t\t\t\tif (edifice != null && GenSpawn.SpawningWipes(thing.def, edifice.def))\n\t\t\t\t{\n\t\t\t\t\treturn PlaceSpotQuality.Awful;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (c.GetRoom(map) != center.GetRoom(map))\n\t\t{\n\t\t\tif (!map.reachability.CanReach(center, c, PathEndMode.OnCell, TraverseMode.PassDoors, Danger.Deadly))\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Awful;\n\t\t\t}\n\t\t\treturn PlaceSpotQuality.Bad;\n\t\t}\n\t\tif (allowStacking)\n\t\t{\n\t\t\tfor (int j = 0; j < thingList.Count; j++)\n\t\t\t{\n\t\t\t\tThing thing3 = thingList[j];\n\t\t\t\tif (thing3.def.category == ThingCategory.Item && thing3.CanStackWith(thing) && thing3.stackCount < thing3.def.stackLimit)\n\t\t\t\t{\n\t\t\t\t\treturn PlaceSpotQuality.Perfect;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbool flag2 = thing is Pawn pawn && pawn.Downed;\n\t\tPlaceSpotQuality placeSpotQuality = PlaceSpotQuality.Perfect;\n\t\tfor (int k = 0; k < thingList.Count; k++)\n\t\t{\n\t\t\tThing thing4 = thingList[k];\n\t\t\tif (thing4.def.Fillage == FillCategory.Full)\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Bad;\n\t\t\t}\n\t\t\tif (thing4.def.preventDroppingThingsOn)\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Bad;\n\t\t\t}\n\t\t\tif (thing4.def.IsDoor)\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Bad;\n\t\t\t}\n\t\t\tif (thing4 is Building_WorkTable)\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Bad;\n\t\t\t}\n\t\t\tif (thing4 is Pawn pawn2 && (pawn2.Downed || flag2))\n\t\t\t{\n\t\t\t\treturn PlaceSpotQuality.Bad;\n\t\t\t}\n\t\t\tif (thing4.def.category == ThingCategory.Plant && thing4.def.selectable && (int)placeSpotQuality > 3)\n\t\t\t{\n\t\t\t\tplaceSpotQuality = PlaceSpotQuality.Okay;\n\t\t\t}\n\t\t}\n\t\treturn placeSpotQuality;\n\t}\n\n\tprivate static bool SplitAndSpawnOneStackOnCell(Thing thing, IntVec3 loc, Rot4 rot, Map map, out Thing resultingThing, Action placedAction)\n\t{\n\t\tThing thing2 = ((thing.stackCount <= thing.def.stackLimit) ? thing : thing.SplitOff(thing.def.stackLimit));\n\t\tresultingThing = GenSpawn.Spawn(thing2, loc, map, rot);\n\t\tplacedAction?.Invoke(thing2, thing2.stackCount);\n\t\treturn thing2 == thing;\n\t}\n\n\tprivate static bool TryPlaceDirect(Thing thing, IntVec3 loc, Rot4 rot, Map map, out Thing resultingThing, Action placedAction = null)\n\t{\n\t\tresultingThing = null;\n\t\tcellThings.Clear();\n\t\tcellThings.AddRange(loc.GetThingList(map));\n\t\tcellThings.Sort((Thing lhs, Thing rhs) => rhs.stackCount.CompareTo(lhs.stackCount));\n\t\tif (thing.def.stackLimit > 1)\n\t\t{\n\t\t\tfor (int i = 0; i < cellThings.Count; i++)\n\t\t\t{\n\t\t\t\tThing thing2 = cellThings[i];\n\t\t\t\tif (thing2.CanStackWith(thing))\n\t\t\t\t{\n\t\t\t\t\tint stackCount = thing.stackCount;\n\t\t\t\t\tif (thing2.TryAbsorbStack(thing, respectStackLimit: true))\n\t\t\t\t\t{\n\t\t\t\t\t\tresultingThing = thing2;\n\t\t\t\t\t\tplacedAction?.Invoke(thing2, stackCount);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (placedAction != null && stackCount != thing.stackCount)\n\t\t\t\t\t{\n\t\t\t\t\t\tplacedAction(thing2, stackCount - thing.stackCount);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tint num2;\n\t\tif (thing.def.category == ThingCategory.Item)\n\t\t{\n\t\t\tint num = cellThings.Count((Thing cellThing) => cellThing.def.category == ThingCategory.Item);\n\t\t\tnum2 = loc.GetMaxItemsAllowedInCell(map) - num;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tnum2 = thing.stackCount + 1;\n\t\t}\n\t\tif (num2 <= 0 && thing.def.stackLimit <= 1)\n\t\t{\n\t\t\tnum2 = 1;\n\t\t}\n\t\tfor (int j = 0; j < num2; j++)\n\t\t{\n\t\t\tif (SplitAndSpawnOneStackOnCell(thing, loc, rot, map, out resultingThing, placedAction))\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static Thing HaulPlaceBlockerIn(Thing haulThing, IntVec3 c, Map map, bool checkBlueprintsAndFrames)\n\t{\n\t\tList list = map.thingGrid.ThingsListAt(c);\n\t\tfor (int i = 0; i < list.Count; i++)\n\t\t{\n\t\t\tThing thing = list[i];\n\t\t\tif (checkBlueprintsAndFrames && (thing.def.IsBlueprint || thing.def.IsFrame))\n\t\t\t{\n\t\t\t\treturn thing;\n\t\t\t}\n\t\t\tif ((thing.def.category != ThingCategory.Plant || thing.def.passability != 0) && thing.def.category != ThingCategory.Filth && (haulThing == null || thing.def.category != ThingCategory.Item || !thing.CanStackWith(haulThing) || thing.def.stackLimit - thing.stackCount < haulThing.stackCount))\n\t\t\t{\n\t\t\t\tif (thing.def.EverHaulable)\n\t\t\t\t{\n\t\t\t\t\treturn thing;\n\t\t\t\t}\n\t\t\t\tif (haulThing != null && GenSpawn.SpawningWipes(haulThing.def, thing.def))\n\t\t\t\t{\n\t\t\t\t\treturn thing;\n\t\t\t\t}\n\t\t\t\tif (thing.def.passability != 0 && thing.def.surfaceType != SurfaceType.Item)\n\t\t\t\t{\n\t\t\t\t\treturn thing;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n}\n\n", + "timestamp": "2025-08-29 15:32:32,527" } } \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/CompMultiFuelSpawner.cs b/Source/WulaFallenEmpire/Spawner/CompMultiFuelSpawner.cs new file mode 100644 index 00000000..5c815521 --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/CompMultiFuelSpawner.cs @@ -0,0 +1,128 @@ +using System.Collections.Generic; +using System.Linq; +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + public class SpawnerProduct + { + public ThingDef thingDef; + public int count = 1; + } + + // --- Properties Class --- + public class CompProperties_MultiFuelSpawner : CompProperties + { + public List products; + public IntRange spawnIntervalRange = new IntRange(100, 100); + public bool spawnForbidden; + public bool inheritFaction; + public bool showMessageIfOwned; + + public CompProperties_MultiFuelSpawner() + { + compClass = typeof(CompMultiFuelSpawner); + } + } + + // --- Component Class --- + public class CompMultiFuelSpawner : ThingComp + { + private int ticksUntilSpawn; + private List fuelComps; + + public CompProperties_MultiFuelSpawner Props => (CompProperties_MultiFuelSpawner)props; + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + base.PostSpawnSetup(respawningAfterLoad); + if (!respawningAfterLoad) + { + ResetCountdown(); + } + fuelComps = parent.GetComps().ToList(); + } + + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Values.Look(ref ticksUntilSpawn, "ticksUntilSpawn", 0); + } + + public override void CompTick() + { + base.CompTick(); + + if (fuelComps.NullOrEmpty()) return; + + bool allFuelsOk = fuelComps.All(c => c.HasFuel); + + if (allFuelsOk && (parent.GetComp()?.PowerOn ?? true)) + { + ticksUntilSpawn--; + if (ticksUntilSpawn <= 0) + { + foreach (var comp in fuelComps) + { + comp.Notify_UsedThisTick(); + } + + TryDoSpawn(); + ResetCountdown(); + } + } + } + + public void TryDoSpawn() + { + if (Props.products.NullOrEmpty()) return; + + foreach (var product in Props.products) + { + Thing thing = ThingMaker.MakeThing(product.thingDef); + thing.stackCount = product.count; + + if (Props.inheritFaction && thing.Faction != parent.Faction) + { + thing.SetFaction(parent.Faction); + } + + if (GenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near, out Thing resultingThing)) + { + if (Props.spawnForbidden) + { + resultingThing.SetForbidden(true); + } + + if (Props.showMessageIfOwned && parent.Faction == Faction.OfPlayer) + { + Messages.Message("MessageCompSpawnerSpawnedItem".Translate(resultingThing.LabelCap), resultingThing, MessageTypeDefOf.PositiveEvent); + } + } + } + } + + private void ResetCountdown() + { + ticksUntilSpawn = Props.spawnIntervalRange.RandomInRange; + } + + public override string CompInspectStringExtra() + { + string text = base.CompInspectStringExtra(); + + if (fuelComps.All(c => c.HasFuel)) + { + if (!text.NullOrEmpty()) + { + text += "\n"; + } + string productsStr = Props.products.Select(p => (string)p.thingDef.LabelCap).ToCommaList(); + text += "NextSpawnedItemIn".Translate(productsStr) + ": " + ticksUntilSpawn.ToStringTicksToPeriod(); + } + + return text; + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/CompRefuelableSpawner.cs b/Source/WulaFallenEmpire/Spawner/CompRefuelableSpawner.cs new file mode 100644 index 00000000..6b4bfc5c --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/CompRefuelableSpawner.cs @@ -0,0 +1,138 @@ +using System.Collections.Generic; +using System.Linq; +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + // --- Properties Class --- + public class CompProperties_RefuelableSpawner : CompProperties_Refuelable + { + public List products; + public IntRange spawnIntervalRange = new IntRange(100, 100); + public bool spawnForbidden; + public bool inheritFaction; + public bool showMessageIfOwned; + + public CompProperties_RefuelableSpawner() + { + compClass = typeof(CompRefuelableSpawner); + } + } + + // --- Component Class --- + public class CompRefuelableSpawner : CompRefuelable + { + private int ticksUntilSpawn; + + public new CompProperties_RefuelableSpawner Props => (CompProperties_RefuelableSpawner)props; + + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Values.Look(ref ticksUntilSpawn, "ticksUntilSpawn", 0); + } + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + base.PostSpawnSetup(respawningAfterLoad); + if (!respawningAfterLoad) + { + ResetCountdown(); + } + } + + public override void CompTick() + { + base.CompTick(); + + if (HasFuel && (parent.GetComp()?.PowerOn ?? true)) + { + ticksUntilSpawn--; + if (ticksUntilSpawn <= 0) + { + TryDoSpawn(); + ResetCountdown(); + } + } + } + + public void TryDoSpawn() + { + if (Props.products.NullOrEmpty()) return; + + foreach (var product in Props.products) + { + Thing thing = ThingMaker.MakeThing(product.thingDef); + thing.stackCount = product.count; + + if (Props.inheritFaction && thing.Faction != parent.Faction) + { + thing.SetFaction(parent.Faction); + } + + if (GenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near, out Thing resultingThing)) + { + if (Props.spawnForbidden) + { + resultingThing.SetForbidden(true); + } + + if (Props.showMessageIfOwned && parent.Faction == Faction.OfPlayer) + { + Messages.Message("MessageCompSpawnerSpawnedItem".Translate(resultingThing.LabelCap), resultingThing, MessageTypeDefOf.PositiveEvent); + } + } + } + } + + private void ResetCountdown() + { + ticksUntilSpawn = Props.spawnIntervalRange.RandomInRange; + } + + public override string CompInspectStringExtra() + { + string text = base.CompInspectStringExtra(); + + if (HasFuel) + { + if (!text.NullOrEmpty()) + { + text += "\n"; + } + string productsStr = Props.products.Select(p => (string)p.thingDef.LabelCap).ToCommaList(); + text += "NextSpawnedItemIn".Translate(productsStr) + ": " + ticksUntilSpawn.ToStringTicksToPeriod(); + } + + return text; + } + + public override IEnumerable CompGetGizmosExtra() + { + foreach (var g in base.CompGetGizmosExtra()) + { + yield return g; + } + + if (Prefs.DevMode) + { + yield return new Command_Action + { + defaultLabel = "DEBUG: Spawn items", + action = delegate + { + TryDoSpawn(); + ResetCountdown(); + } + }; + } + } + } + + public class SpawnerProduct + { + public ThingDef thingDef; + public int count = 1; + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/CompRefuelableWithKey.cs b/Source/WulaFallenEmpire/Spawner/CompRefuelableWithKey.cs new file mode 100644 index 00000000..12411b6f --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/CompRefuelableWithKey.cs @@ -0,0 +1,24 @@ +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + // 1. New Properties class that adds the save key + public class CompProperties_RefuelableWithKey : CompProperties_Refuelable + { + public string saveKeysPrefix; + + public CompProperties_RefuelableWithKey() + { + compClass = typeof(CompRefuelableWithKey); + } + } + + // 2. New Component class. It's empty for now. + // Its purpose is to be a safe target for our Harmony patch. + public class CompRefuelableWithKey : CompRefuelable + { + // We will override PostExposeData using a Harmony patch + // to avoid re-implementing the entire class. + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/CompRefuelable_WithKey.cs b/Source/WulaFallenEmpire/Spawner/CompRefuelable_WithKey.cs new file mode 100644 index 00000000..53155137 --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/CompRefuelable_WithKey.cs @@ -0,0 +1,163 @@ +using System.Collections.Generic; +using System.Linq; +using RimWorld; +using UnityEngine; +using Verse; + +namespace WulaFallenEmpire +{ + // --- 1. The Properties Class --- + public class CompProperties_Refuelable_WithKey : CompProperties + { + public float fuelConsumptionRate = 1f; + public float fuelCapacity = 2f; + public float initialFuelPercent; + public float autoRefuelPercent = 0.3f; + public ThingFilter fuelFilter; + public bool consumeFuelOnlyWhenUsed = true; + public bool showFuelGizmo = true; + public bool targetFuelLevelConfigurable; + public float initialConfigurableTargetFuelLevel = -1f; + public string fuelLabel; + public string outOfFuelMessage; + public bool showAllowAutoRefuelToggle; + public string saveKeysPrefix; // The only field we are adding + + public CompProperties_Refuelable_WithKey() + { + compClass = typeof(CompRefuelable_WithKey); + } + } + + // --- 2. The Component Class (Full Re-implementation) --- + public class CompRefuelable_WithKey : ThingComp + { + // Re-implemented fields from CompRefuelable + private float fuel; + private float configuredTargetFuelLevel = -1f; + public bool allowAutoRefuel = true; + private CompFlickable flickComp; + + public new CompProperties_Refuelable_WithKey Props => (CompProperties_Refuelable_WithKey)props; + + public float Fuel => fuel; + public bool HasFuel => fuel > 0f; + public bool IsFull => TargetFuelLevel - fuel < 1f; + public float FuelPercentOfMax => fuel / Props.fuelCapacity; + public float TargetFuelLevel + { + get + { + if (configuredTargetFuelLevel >= 0f) return configuredTargetFuelLevel; + if (Props.targetFuelLevelConfigurable) return Props.initialConfigurableTargetFuelLevel; + return Props.fuelCapacity; + } + set => configuredTargetFuelLevel = Mathf.Clamp(value, 0f, Props.fuelCapacity); + } + public bool ShouldAutoRefuelNow => Fuel / TargetFuelLevel <= Props.autoRefuelPercent && !IsFull && TargetFuelLevel > 0f && (flickComp == null || flickComp.SwitchIsOn); + + + public override void Initialize(CompProperties props) + { + base.Initialize(props); + allowAutoRefuel = true; // Simplified from base + fuel = Props.fuelCapacity * Props.initialFuelPercent; + if(Props.initialConfigurableTargetFuelLevel > 0) + { + configuredTargetFuelLevel = Props.initialConfigurableTargetFuelLevel; + } + } + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + base.PostSpawnSetup(respawningAfterLoad); + flickComp = parent.GetComp(); + } + + // The ONLY method we actually change + public override void PostExposeData() + { + base.PostExposeData(); + string prefix = Props.saveKeysPrefix; + if (prefix.NullOrEmpty()) + { + Log.ErrorOnce($"CompRefuelable_WithKey on {parent.def.defName} has a null or empty saveKeysPrefix.", GetHashCode()); + // Fallback to default scribing to avoid data loss + Scribe_Values.Look(ref fuel, "fuel", 0f); + Scribe_Values.Look(ref configuredTargetFuelLevel, "configuredTargetFuelLevel", -1f); + Scribe_Values.Look(ref allowAutoRefuel, "allowAutoRefuel", true); + return; + } + Scribe_Values.Look(ref fuel, prefix + "_fuel", 0f); + Scribe_Values.Look(ref configuredTargetFuelLevel, prefix + "_configuredTargetFuelLevel", -1f); + Scribe_Values.Look(ref allowAutoRefuel, prefix + "_allowAutoRefuel", true); + } + + public void ConsumeFuel(float amount) + { + if (fuel <= 0f) return; + fuel -= amount; + if (fuel <= 0f) + { + fuel = 0f; + parent.BroadcastCompSignal("RanOutOfFuel"); + } + } + + public void Refuel(float amount) + { + fuel += amount; + if (fuel > Props.fuelCapacity) + { + fuel = Props.fuelCapacity; + } + parent.BroadcastCompSignal("Refueled"); + } + + public void Notify_UsedThisTick() + { + if (Props.consumeFuelOnlyWhenUsed) + { + ConsumeFuel(Props.fuelConsumptionRate / 60000f); + } + } + + public override IEnumerable CompGetGizmosExtra() + { + if (!Props.showFuelGizmo || parent.Faction != Faction.OfPlayer) yield break; + + // Simplified Gizmo Status (can be replaced with copied Gizmo_RefuelableFuelStatus later) + yield return new Gizmo_FuelStatus_Spawner(new FuelSystem(this)); // Using a dummy adapter + + // Copied Set Target Level Command + if (Props.targetFuelLevelConfigurable) + { + var command = new Command_Action + { + defaultLabel = "CommandSetTargetFuelLevel".Translate(), + defaultDesc = "CommandSetTargetFuelLevelDesc".Translate(), + icon = ContentFinder.Get("UI/Commands/SetTargetFuelLevel"), + action = delegate + { + Dialog_Slider dialog = new Dialog_Slider( + "SetTargetFuelLevel".Translate(), 0, (int)Props.fuelCapacity, + (val) => TargetFuelLevel = val, (int)TargetFuelLevel); + Find.WindowStack.Add(dialog); + } + }; + yield return command; + } + } + } + + // Dummy adapter to make the new Gizmo work temporarily + public class FuelSystem + { + public CompRefuelable_WithKey comp; + public FuelSystem(CompRefuelable_WithKey comp) { this.comp = comp; } + public float Fuel => comp.Fuel; + public float FuelPercent => comp.FuelPercentOfMax; + public CompProperties_Refuelable props => comp.Props; + public float TargetFuelLevel { get => comp.TargetFuelLevel; set => comp.TargetFuelLevel = value; } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/Patch_CompRefuelableWithKey.cs b/Source/WulaFallenEmpire/Spawner/Patch_CompRefuelableWithKey.cs new file mode 100644 index 00000000..ad9bab7f --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/Patch_CompRefuelableWithKey.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using HarmonyLib; +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + // We patch the base class method + [HarmonyPatch(typeof(CompRefuelable), "PostExposeData")] + public static class Patch_CompRefuelableWithKey_PostExposeData + { + public static bool Prefix(CompRefuelable __instance) + { + // But we only act if the instance is our custom subclass + if (!(__instance is CompRefuelableWithKey refuelableWithKey)) + { + // If it's not our class, run the original method + return true; + } + + // Get the private fields from the base CompRefuelable class using reflection + FieldInfo fuelField = AccessTools.Field(typeof(CompRefuelable), "fuel"); + FieldInfo configuredTargetFuelLevelField = AccessTools.Field(typeof(CompRefuelable), "configuredTargetFuelLevel"); + FieldInfo allowAutoRefuelField = AccessTools.Field(typeof(CompRefuelable), "allowAutoRefuel"); + + // Get the props from our custom component + var props = (CompProperties_RefuelableWithKey)refuelableWithKey.Props; + string prefix = props.saveKeysPrefix; + + if (prefix.NullOrEmpty()) + { + Log.ErrorOnce($"CompRefuelableWithKey on {refuelableWithKey.parent.def.defName} has a null or empty saveKeysPrefix. Defaulting to standard save.", refuelableWithKey.GetHashCode()); + // If no prefix, let the original method run + return true; + } + + // Get current values from the instance + float fuel = (float)fuelField.GetValue(refuelableWithKey); + float configuredTargetFuelLevel = (float)configuredTargetFuelLevelField.GetValue(refuelableWithKey); + bool allowAutoRefuel = (bool)allowAutoRefuelField.GetValue(refuelableWithKey); + + // Scribe the values with our prefix + Scribe_Values.Look(ref fuel, prefix + "_fuel", 0f); + Scribe_Values.Look(ref configuredTargetFuelLevel, prefix + "_configuredTargetFuelLevel", -1f); + Scribe_Values.Look(ref allowAutoRefuel, prefix + "_allowAutoRefuel", true); + + // Set the new values back to the instance + if (Scribe.mode == LoadSaveMode.LoadingVars) + { + fuelField.SetValue(refuelableWithKey, fuel); + configuredTargetFuelLevelField.SetValue(refuelableWithKey, configuredTargetFuelLevel); + allowAutoRefuelField.SetValue(refuelableWithKey, allowAutoRefuel); + } + + // Prevent the original PostExposeData from running + return false; + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/Spawner/Utility.cs b/Source/WulaFallenEmpire/Spawner/Utility.cs new file mode 100644 index 00000000..bffd54b1 --- /dev/null +++ b/Source/WulaFallenEmpire/Spawner/Utility.cs @@ -0,0 +1,303 @@ +using System.Collections.Generic; +using System.Linq; +using RimWorld; +using UnityEngine; +using Verse; + +namespace WulaFallenEmpire +{ + public static class Lifespan_Utility + { + public static IEnumerable deathThought = new List + { + ThoughtDefOf.KnowColonistDied, + ThoughtDefOf.PawnWithGoodOpinionDied, + ThoughtDefOf.WitnessedDeathFamily, + ThoughtDefOf.WitnessedDeathAlly, + }; + + public static bool IsDeathThought(this ThoughtDef tDef) + { + return (deathThought.Contains(tDef)); + } + + public static Thing ThingInCaseOfDeath(Pawn p) + { + Thing refThing; + if (p.Dead) + { + if (p.Corpse == null) + return null; + refThing = p.Corpse; + } + else + refThing = p; + + return refThing; + } + + public static void TrySpawnFilth(Thing refT, float filthRadius, ThingDef filthDef) + { + if ( + refT.Map != null + && CellFinder.TryFindRandomReachableNearbyCell( + refT.Position, + refT.Map, + filthRadius, + TraverseParms.For(TraverseMode.NoPassClosedDoors), + x => x.Standable(refT.Map), + x => true, + out IntVec3 result + ) + ) + FilthMaker.TryMakeFilth(result, refT.Map, filthDef); + } + + public static void ThrowCustomSmoke(ThingDef moteDef, Vector3 loc, Map map, float size) + { + if (loc.ShouldSpawnMotesAt(map) && !map.moteCounter.SaturatedLowPriority) + { + MoteThrown obj = (MoteThrown)ThingMaker.MakeThing(moteDef); + obj.Scale = Rand.Range(1.5f, 2.5f) * size; + obj.rotationRate = Rand.Range(-30f, 30f); + obj.exactPosition = loc; + obj.SetVelocity(Rand.Range(30, 40), Rand.Range(0.5f, 0.7f)); + GenSpawn.Spawn(obj, loc.ToIntVec3(), map); + } + } + + public static bool TryDoSpawn( + Pawn pawn, + ThingDef thingDef, + int thingNum, + int spawnMaxAdjacent, + bool tryToUnstack, + bool inheritFaction, + bool spawnForbidden, + bool showMessageIfOwned + ) + { + Thing refThing = ThingInCaseOfDeath(pawn); + IntVec3 spawnPos; + Map map; + if (refThing == null) + return false; + else + { + map = refThing.Map; + spawnPos = refThing.Position; + } + + if (spawnMaxAdjacent >= 0) + { + int num = 0; + for (int i = 0; i < 9; i++) + { + IntVec3 c = spawnPos + GenAdj.AdjacentCellsAndInside[i]; + if (!c.InBounds(map)) + continue; + + List thingList = c.GetThingList(map); + + for (int j = 0; j < thingList.Count; j++) + { + if (thingList[j].def == thingDef) + { + if (tryToUnstack) + continue; + + num += thingList[j].stackCount; + if (num >= spawnMaxAdjacent) + return false; + } + } + } + } + if (TryFindSpawnCell(refThing, thingDef, thingNum, tryToUnstack, out IntVec3 result)) + { + Thing thing = ThingMaker.MakeThing(thingDef); + thing.stackCount = thingNum; + if (thing == null) + Log.Error("Could not spawn anything for " + refThing); + + if (inheritFaction && thing.Faction != refThing.Faction) + thing.SetFaction(refThing.Faction); + + GenPlace.TryPlaceThing( + thing, + result, + map, + ThingPlaceMode.Direct, + out Thing lastResultingThing + ); + if (spawnForbidden) + lastResultingThing.SetForbidden(value: true); + + if (showMessageIfOwned && refThing.Faction == Faction.OfPlayer) + Messages.Message( + "MessageCompSpawnerSpawnedItem".Translate(thingDef.LabelCap), + thing, + MessageTypeDefOf.PositiveEvent + ); + + return true; + } + return false; + } + + public static bool TryFindSpawnCell( + Thing parent, + ThingDef thingToSpawn, + int spawnCount, + bool tryToUnstack, + out IntVec3 result + ) + { + foreach (IntVec3 item in GenAdj.CellsAdjacent8Way(parent).InRandomOrder()) + { + if (item.Walkable(parent.Map)) + { + Building edifice = item.GetEdifice(parent.Map); + if (edifice == null || !thingToSpawn.IsEdifice()) + { + Building_Door building_Door = edifice as Building_Door; + if ( + (building_Door == null || building_Door.FreePassage) + && ( + parent.def.passability == Traversability.Impassable + || GenSight.LineOfSight(parent.Position, item, parent.Map) + ) + ) + { + bool flag = false; + List thingList = item.GetThingList(parent.Map); + + for (int i = 0; i < thingList.Count; i++) + { + Thing thing = thingList[i]; + if ( + thing.def.category == ThingCategory.Item + && ( + thing.def != thingToSpawn + || thing.stackCount > thingToSpawn.stackLimit - spawnCount + ) + ) + { + flag = true; + break; + } + } + + if (!flag) + { + result = item; + return true; + } + } + } + } + } + result = IntVec3.Invalid; + return false; + } + + public static bool RemoveBadMemoriesOfDeadPawn(Pawn deadPawn, bool myDebug = false) + { + bool didIt = false; + if (deadPawn == null) + { + Log.Warning("removingRelationAndThoughts, null pawn"); + return didIt; + } + string deadName = deadPawn.LabelShortCap; + Log.Warning(">>>>>" + deadName + " dissappeared, the world must not know"); + + foreach ( + Pawn p in Find.CurrentMap.mapPawns.AllPawnsSpawned.Where(pH => + pH != deadPawn + && pH.needs.mood?.thoughts?.memories != null + && pH.needs.mood.thoughts.memories.AnyMemoryConcerns(deadPawn) + ) + ) + { + Log.Warning(p.LabelShortCap + " has memories of " + deadName); + + Log.Warning( + "pre removal mem count: " + p.needs.mood.thoughts.memories.Memories.Count + ); + p.needs.mood.thoughts.memories.Memories.RemoveAll(TM => + TM.otherPawn == deadPawn && TM.MoodOffset() <= 0f + ); + Log.Warning( + "post removal mem count: " + p.needs.mood.thoughts.memories.Memories.Count + ); + } + + return didIt; + } + + public static void removingRelationAndThoughts(Pawn deadPawn, bool myDebug = false) + { + if (deadPawn == null) + { + Log.Warning("removingRelationAndThoughts, null pawn"); + return; + } + string deadName = deadPawn.LabelShortCap; + + Log.Warning(">>>>>" + deadName + " dissappeared, the world must not know"); + foreach ( + Pawn p in Find.CurrentMap.mapPawns.AllPawnsSpawned.Where(pH => + //!pH.AnimalOrWildMan() && + pH != deadPawn + && !pH.GetRelations(deadPawn).EnumerableNullOrEmpty() + ) + ) + { + string pName = p.LabelShortCap; + Log.Warning("Considering :" + pName); + IEnumerable relationT = PawnRelationUtility.GetRelations( + deadPawn, + p + ); + if (relationT.EnumerableNullOrEmpty()) + continue; + + List pThoughts = new List(); + if (p.needs.mood == null || p.needs.mood.thoughts == null) + continue; + //p.needs.mood.thoughts.memories.AnyMemoryConcerns() + if (pThoughts.NullOrEmpty()) + return; + int tNum = 0; + foreach (Thought thought in pThoughts) + { + Log.Warning(pName + "'s Thought n" + tNum); + tNum++; + + if (thought.pawn == null || deadPawn == null) + continue; + + if (IsDeathThought(thought.def)) + { + if ( + !( + thought is Thought_MemorySocial TMS + && TMS.otherPawn != null + && TMS.otherPawn == deadPawn + ) + ) + continue; + + deadPawn.needs.mood.thoughts.memories.RemoveMemory(TMS); + + Log.Warning( + "removed " + pName + "'s thought " + thought.def.defName + ); + } + } + } + Log.Warning("<<<<<" + deadName); + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index 88df74d4..731d77d4 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -194,6 +194,12 @@ + + + + + +