From 4ae1ce3dbee619082fccf641a76984183a73cd8a Mon Sep 17 00:00:00 2001 From: JozsefA Date: Mon, 5 Apr 2021 23:23:35 -0700 Subject: [PATCH] Don't crash with starlight --- build.gradle | 10 ++- deps/starlight-1.0.0-RC1.jar | Bin 0 -> 93406 bytes .../render/RenderedContraption.java | 16 ++-- .../content/schematics/SchematicWorld.java | 4 +- .../PlacementSimulationWorld.java | 9 +- .../PlacementSimulationWorldStarlight.java | 60 ++++++++++++++ .../worldWrappers/WrappedChunkProvider.java | 13 ++- .../worldWrappers/chunk/WrappedChunk.java | 6 +- .../chunk/WrappedChunkStarlight.java | 77 ++++++++++++++++++ 9 files changed, 184 insertions(+), 11 deletions(-) create mode 100644 deps/starlight-1.0.0-RC1.jar create mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorldStarlight.java create mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunkStarlight.java diff --git a/build.gradle b/build.gradle index b94ff4fac..2fc5362b4 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,8 @@ minecraft { workingDirectory project.file('run') // property 'mixin.env.disableRefMap', 'true' arg '-mixin.config=create.mixins.json' - jvmArgs '-XX:+UnlockCommercialFeatures' + //jvmArgs '-XX:+UnlockCommercialFeatures' + jvmArgs '-Dmixin.env.disableRefMap=true' property 'forge.logging.console.level', 'info' property 'fml.earlyprogresswindow', 'false' mods { @@ -109,6 +110,10 @@ repositories { maven { url = "https://www.cursemaven.com" } + + flatDir { + dirs 'deps' + } } configurations { @@ -135,6 +140,9 @@ dependencies { // runtimeOnly fg.deobf("slimeknights.mantle:Mantle:1.16.3-1.6.40") // runtimeOnly fg.deobf("slimeknights.tconstruct:TConstruct:1.16.3-3.0.1.24") + compileOnly fg.deobf("local:starlight-1.0.0-RC1") + //runtimeOnly fg.deobf("local:starlight-1.0.0-RC1") + annotationProcessor 'org.spongepowered:mixin:0.8:processor' } diff --git a/deps/starlight-1.0.0-RC1.jar b/deps/starlight-1.0.0-RC1.jar new file mode 100644 index 0000000000000000000000000000000000000000..5578a6bf2ef96923e311a27ca9ae74e842b65b25 GIT binary patch literal 93406 zcmbSybCf5+vS!zv4}KO!PC zBeJ5hzKW2S0tJHs0)m19f^-d51p0e{{G<7MLH{Kg5oG}y30YA(P$2pL!5HfhteBMK z81D0z;ovW!{;!NO0yCyQ2$?+^uMzp{*%Sg&eqAv*vQIQ-{ik!$NJCgj!yaxR_3N=PXDDK!G9%aXlre4 zYx7^qQ~ewA23EF)mVc+?Wc;60&0*1g5B*i~`In^r-&BdXIT_m+85;>0I667#8#)R8 zV-%%-j6!Q@rSItI9K$0E%77HS6BHLbOTby)IJ+AH%bz4(rdU*%*+l*mas=T*L%3SB z511Xbzr-|y-1}PW{`3A7d>2^_p7y6SbPMl{l9R4?1Wvy>M^G*A-3CEWL&rNtzYMu% z*rSK0^@)}1{#PZMe!GN_t?`+V#0)w<OB_qdj3ls|F)L@Ft^Y@bpF%A*|9RR1N5jtBc#@n zgpEmfL|ePym8UTB8VYe?V2T|MIEf|p36w6#UD&V)z4=Jfh~fgtaX0;iw{E;$&$q8n z2)j7stTEPb&~N#(YK#ZBI*0FyzXD)gJ6n&U%AHG^po)IaD4VBD{L;1p?Z`vB_ z1d8o`wizaFx^Fu%&diF;6o(ne?zV`BAZpdMnSXH_(#7ms)8o3^XR=m?h7d`YObL0| z)`PC*0t2H#1y~~g=>v&so}*Z*_HKE4KTY=V8&J$%$4A?adpow#zXAVO7kzNr)`AySi0{dfIgO$l?`1;P(YD=AMUfSbSW!rj1C|2dau+v+oO zs&xefT!Z{1(`P8r+DS^C5B{RHmOedeFRDA!ilu3ZhkV}iF?-p*ot??Rdc9J<*)x8v zQDV*hQw3YlUDCi-A_ryNgeYwUO0)1ak5RhxkHhUaB=X*Ef^ZV#HPma!mhv1`gmoxm zNj))CFUFOfM24%-D(0_H(U%&j1m(0KO9Q~ieDAv!> zt5g&qAZ)sS&(;6b@*iQ!LHZxDS;WTF+~&UrtS(JxFXg4S?`|WLD{3}a!c_Xo0%}6P zc6LMQ-C{nkS8XR=CmYi(TPWM?ulp0i%;7sXiWHv`g@|2A zLL)rNa^Ix8GuWR)Vzh6zz~98XH6UNdg|VlGh~9$aoj|@Ai*m+SOjy~dv**PgWWbg7 zF{u$}t;21)=VBwq^Zv+O{-dG0>IsycK>!GNK15>lZxHaD01 zN3mQHADrD4*vH2X+v%O4d#XI4!qNwc@o7-|`)ulszIAc?L5}wmAQrpV`VoSJjK?^F z!7aRO!U423IOTfn)_D3Sh~1O?6!Bw^8S!KH>Oh9gy}DD6?b`fc!J;q}QNW}Z-4ccq zSrFXJfpJ6oUIY>Kz_x*ejvl3m@_iQ!F3o4M0rNU;g{%eirEt)fQ8t1w7y;Frsf zoK-6kqzUSkp!=9_nCk_KIGI=~>L`Mbj2v`J!_AGJ$Ad014KKz6lkd_PJ(eWt<&~sQ zo}v(W$ELkR9|LB}lMTAElyUggpZpu|3oZ4F4+GSThrS|o$2O$2mZ>vaMh)nRo+yRy3Nel?SruZv>M{VeRwbHB;F;miuX^w7OEi=2 zRu=H-k8lc+rM5UIql@Z0}eYgra6$+m^Lg z-10IiE}(7ZtSCow;y5bF2xcoq(OL|9>BS)$gOHf%F}ZSO6Nr1r!Mrpdiub-A`iG3jL7lwNz%aN>zGa4t*4&3W8OH{S`&#%~KK=Gc7ULfIg^-L%y_b3C zkX30sL)3l>iIug}prvK1RxH}GkSwQph)B$DYJ=v+6B~R%eHReLkixR)u;{k^UaUYO z7EhwNAQ6!RY$)zR(u}P1bc2kg4e_(I_fS^?;xCJ4<~?x6CP)4zf%y>1>#> zW(O?3<^2={Y`TylY&w0$j2~&01FRy|^}MJRiR_5EWwsAlrR6mURfrlRDuyM>1(VhZ zAe(J>PBeS7y0FE6icb5;j<_T!hH%3fA1~A+*jSCnZwF&al{`&2;m2SEJuC{G>*UKh zfQi_?^)idq48qSkOY>RmCTg=(w=n3IPhA|q_cZgBwH=a}%sbQNFN+wcNN~k$WY!{fAfuOQtj>fQ(CVHv>irb$T(B4 z6_^~g?O%1(6PRSgA6AOvVv{qYvp+^otI~O43b0Vsn~0IxzjRzo&S2be4!NOm_q6B{ z1o#HaDp<^x#mD85KPh8T2Toc@q(ilY)kjXN-KlWa9J6qSx>Zf<$Mh;Wv9_rmaAsd{ zl;1DG4MMc*oQTGp;Q%f<*`QlPP&mo4nsLgh7yW|t@T|<}F9hMo^-Pc?T24XqiIp@NmHfvfLn4ED9K%D2gOD+(S~ga3D08Ar zb=1ff770&oW{9U|3LE<>?(s$v*||q2%s#p&*LS?xdPs)FL+PrgoqCJx{Cr{ti?0Md zVKdJQC;HIcLZbjq-&nnVHnX2Sk&w*l8cyW7Q7o~@kYG-&EkB{H}&BV4FrW$obsQ$~;JZfjBc$u`pFdU)}FvupQ2-9Vnlg#BS zNj!6ha9+}(hldj$HgZ+g4%r1_iOKK^UJ6UXM~s6y_>$|NkTJ*?-~@$a^K;}$y_Te`THtm(Ir zY|^TfdnQhXM;@%Nko0LD86&^0GAW(sbait5%z0|x-Vlv7mwiUw?9=nGxf#-YwT`~# zrru9N>Pj%BF+`tK$E(!fVQMu~J=)(5cx91}Qc20ol~IN1p+?_9(#nDwN|4D9!h*GJ zWSa>N9m!mL49fDZMAk$+lP!4)rmtz{K-cBb|2TxDORMD^bQ-}ZI5}&}c|&dQ5Td$Z zsV_1|8G?ntS|RP0n;B#s2ntUehE%OF)|^{|18n#}l%BVD4kW`O&}3Xvz9r}E?+Xbb zr`a|GZ6GVf?!%Qh6oFgTgjoBZ`1w+|;89hED!VZEHQffGeWlwOWZ0G9Pn{$5OveDK zu^MG;DlUjvALNcJ^2UJR~^ zn%8O#Xtb$m7R!?mnd!tI{`n}roCYw)AgXN?*EJLw=IE@t$g%S;ZQHN~Fkw!|5xGdN zQ&oA`sJu)zE%YK(2h<2MErvC#;Sp#$L=?+T$4PYk&if)OsHDQc`d#}F*`riPy~*c! z#?>?6?3ysF#FP9(0Re4-1zdE*D*~S zQo_)KRca-er9l7E%)OzpvoW5PLUU!_nYGHjcWh{Zym1(h#1)|l`b-5(be}^KnR`TV z>c_(xnDK-0I-C`xj+|CI#=?TiBm+-aTe1y%aN2gYfv(@li*DE}8tE}>`y83|zRpuD zremC!^h{z-NoTgQVsq@BYkbTaNJ(}P$5R}!Yt2V&fD5*?4WKWKdH|VqAQM&hYIajf zI5YDMJ@d#jZRw^G4~#4rQK63eom<*tt+&sdl2bJ1WE=vazt%Q*;+j)*0PckL4!6Ld zHU2h&8n?g)GqtGf8_(fg$NY{jHQ9>99f)dFPRR^Nc8@y)0kJ!1cn)qgGkSPlaiN>Dl4N*nEB1M2=G|to6J@uL zbp^)pj|}M-9&_xJ5=RkZEbQtj;2J@ePIJzgo2#NT<3KpE{0if#UBNEn=sj&mLk9Ss z?VEjuySILUpDpMMr&T^P`XJYJ4wX3u*r9=sRx(QN&z@VjPbFsotWuD_5bX#XdvMxU z2*NN1-lTRTq!=2qROci$LEWgTASzTIXxKLp;}{0-WKwwQQ}_h+0Jgs-@bhig|K30U zZ2~?w^xZMKq&xnucL%r~kr<aEin7b zz*^zr2ljMj?QcgQ1ka?mq*tBu(@pj{zYRN#<7={-J=Uz)xCy)K;K(S%-IpZ=ncpxk zaC*~$%Kq-5A`bhEJtl2&lf~wWy{3f~iH~nhFxPnJBOtKwdis4r5%k-*A=f}M2roGR z{@|+>J%qy}h`VSnVp}$hH)mpBL6JTJ-#*@UJDEJYS~yxwlvB{}fm10<5E0S*<}qtj z^UU)V)VFBfJ7#W65bueoZc##1<_Mt16dF-{ZrCjvt$AhSU#t0Thui zI`onCX-c%rZ&*W4w=p`X6ihJDyrS{ya`W*__b^jZ^%-0um1pm#3CvTar`OMT#52I{ zPKe1bUDnIUIKjIkJztQe4uDaH)nBY$@%-Tm2CYK`SFHE86DK_6v4(NZPg~`1Hh#oS z1dVJ&T~>k`FN})gChbsV9@vZ*+D1#kc8yeVf3V}PSo|OB&Ii<`VU?%&`zdnHRNPG&=#XcDv zhLYgVDM2L)j@}dUL@VHnKjQHODj*xZBS);boWnxriXN@W4#nC2j2Lnq^CR&#$3K=N zfS!YengqH1kTx?k3S|{_`DdqUHgTE@CdFDyk2)KoR_#ujS z%DueoKwBebuo{y@B;Z4Ld=h~f%c6hcGj zIUtxy7{#S1TvNn4R%V|Ve#tg3|AB-`&nA<4Y5pm)md30iMdtGBzbY@7}fk8Ht9!OP3wLYT^jaRHLW~ z3@1GmyOaI49#hqhP%{;bS!lrVY``gSr#M842!(Rf=UGAXM66r8q`)UTC8E)lJUQBNM{S`sByuN=!Tkqzh?An~>8|g#EjD6V&laeTH!pr?{oV-W*}v zL&p*pUnGmyC|*(R60D}F8te+;DtGSoAjcOb&yZHB-nU=T9joM$oPwHf2<4k2%mUxs z(t}jmD=u?wkEr4+e0!X0ysS^8ojasrceK(6=x4wee8snHPa)qt*2eY?a%vTa3enLzs+#Y=0SKE)?-t9!3$z9g7#QL`4mGgp5tev@E?UjNVO z!k*HgJ-MWb z+glF|NAzem{sXe5S`TEKqy3N{HrSsHqTfXMPc_tQwymN)JQQ^=T*q?eP((Li(H6l@ zTl={LCje%oz4eIJu_*(;=%cNk(70;>0hJ}kW`07tAiQ#Hb}{m6{>m5`C1DR$t^{8a zVy=WHMsuKYFfj1RbIDa;LA=K8x)_NZ{<_lLL>z>3p z-#q4%1lY!FCA=*}W7*D?^r-;!rtil0kLW{=a1=F(uc?_*%|gEZDU<%Kkb)3plXa<= zcpd2NM*4M@1b}E=`ayGE;Fg%$U=;6T;% zcG!#pGmXb-bO{7Fwzjs~iJTK{liyIy-Pqc@7@t`wY*P0TG<*SztP*u=haCY<5Vp`a zTVAod?zVAUuiZetiPx$AkVapse4n6$`7bG`8U2vOFU?~+61i9L`PPb7sY{69FZw>h z5!D2I<6HrqO4W6V_)M?2Kr|;hie73FQ?jn( z($qEr4ADgs?ae!~MJ-ft04htYqEs82T8d@rN{-a+1@$y&GOVz`$%Jn)ngJwr#WcLP^n#;o(SzY{{bbD8vbv-TW%$_+79u|yPI*9xA_7%fRKw1MJ zECbAKe;lvK*b*btqc6uu+=9<$b7L9a4iZ5Ps{h%w!SeB>*wms=Kg3qDHvyN#Q>Sb~dSFe=tVBFj( z0bkO^k}{{Qh^~rek#kiw=$2!}qsS_d(8#K$mQWLxt#k3f9}Ibh1f$uvhNQ)vi!C<2 zcvdY#FVW7rWIWCiZUWus_~iU_ytm1taU@x2`y_mJ#3N1RKD%GQvWg-@ZyeH=e;Z1@ zBg$xV^7L4cY}@ZAu35|iRq1BkMwOD~yc76Mu^GJ*C@%B4I4s)9r*x!{6ZA-xKx4^h zuq)SObe{VCJXRe&P*1XNxt}a!eLIde*PPVMWL=?|P}V%|@%ncsuyu@!RHuQ<#7C8A zCP){))wK_2M@Jeraclr3Gl;oXkM$sXlg*Sy<1Yji1{Vyw6Huj?1=(jd7=Wwe$*A>N zp!Frui8gj|WJH_|!4^(k&Sqoy#57pEjUAY4mDd!zrlZOH7I8>0`-PGtY{(5>LTO`^um7;)r^j!i?QO6|fcm4yg4k(Xpc1a@O75ZOEomhwYEdkv(ll$HV9weP^7W+*bX#5 z_x(u8+XyC_a@#iX?>%&t{>mQfVSCllo;iH}-K?qe&9FSt6Ew>Fg%9=pI@hFd5`AGv zG4hDw?+0y*26@N7;9UzFk%?9NBsHjFZf>KOsGe08zCR>SXN%cz$C!HY7-GVFWZ}dY z6Wu{cbOLmaa3Zm2rg=P65c4!S#@=OK3j5Akb)mHobMewmp5<`3Asa&W7C7e1{3=KG zjrFiRqDEFw_C(_HzW@FB{t(IQKHz5}hA|KR?Ol(Ps})2*N`x=R+@4!}W~0o0+YEV*{Yl(l~>u`6UfYj9p;C26ncjN!gE#5s!qW@ux9`ljdZ)u7veg z+$jwzWoDj!=F@7f!sWzoW$*Tpi}IIKU%913m}`4CZtp0&cX&IJ0TrdEH!RH(Lsu6xjLF1Sx7r%8X6K zqx$|3WMeAMtgeNmnJbVxV1)4yttjDQA%kogr7a0R>k?cDclQy4@ef>{W1X{AJw0hOUdB46!`(AUp^{x1_Kqk%GX9XU32 zr$SV{c*yULq3>N^&4(VR>>>O)vdC}Jp^=a9A5(VSpWUnDW(_VsOKL2mnmFq@ z_8i^s1gCi;`Hnu(w`8BSHmgPp0BBm0{vb#3{qnj}uVxj+(zDg|Njr+bW#DHVQX2L9 zF6{$~YY(W(ukojLMj!&e;kv_!b5gML9H`M0+fv4rUQ;OLSr zlhwHF=@#+_UJL3e6D2~9^3CYhQteellJ`|LNXg*|ML)0uO4%A6T z%NsM^l^2VS|8XE}>zRE#LX=V|RY<|E8dfh?v>+c1FT^F z7q0>*D$|69(&J|%;Q#6jXa3ds1!*L`^bNj}ewH>9!<#0GpZwj&e8l(AoNn^KHDDK1 z`rD|dFh8*McGt3B{NeTlp`ob7K44(8q3C1}Vd7;8>s#OL8wd3CrM_5f6e83^e0Ke3 z$4{#Lsi_1Bu8r{W5gcfnE=}7uAQo~qwjNS6YZn?5PP&`5vNLRGiv93y%PfKeKRl~y zI*mj-$LoO!epBDOIQR6;4LEktt8*o%{u@W~D!+N=OU6(}jb=D~K*}SZie0I;ra-4m zLW%5iz%tpOMtJhNmex55r?Vs@P#EJW7*JoIys?KUSL$VpUOJ!m)8?yGipq?pyz6oO z+u72+SqJH6@M@X7+%`HY6R2Xw$y+($uXwkqUmQ zo_W2h$j0U(tkKA4IAqIGg!QR_8jq3L;KhwC=t61X7?WVU{&V5Dc}89n0(Hy=`OVyb z=GQrC^5T4gRRno&>Y28%OYROy9%Nxv)lI;0OOa4jLl)H7FD{`5J*}OyH#X!ddnVWg zfw&I4--dLzi|#ECbKvZ6lfo0h;jd$61yw8=QKZ-_0AF~H0m7=5H9VJJB6eY$1*6MZ zpa(=iK*l_Icr^R@_@%DfqJz@ za_rRTpIrL;&<81m0Uz_eM-aK*=X-jG^5(mDK6247+j7{p{?{$KYjOCN9&KI zr4WMl8dC6wl;^~P^Dck)NI7If)0~5!*-x!IrsN{78aWlq8jYHk-N)AvYP-!MuHueIBGR!yU$Zmvr!d@?K%PGfW$drtR zH%ho{nayN%E)$F!jwdTLH~}_ai|f2N)|~BCYjZ%dF4m$_^_t|q@1s7}k*m7_L0?h< z98|vvYweEa)fJij%-S=y=_M>`ZQdr!(nU>-%&+5l;rTD@=g*B}JpKe4YqmVe!Y)6) zQh+!ajl5gz{@Lb3rQyx%I`m@=!&)@$dIxp3rmjDiBA+7i|id1Yy| zAwi_@0wn)Li~W&$!gvY8Em;1cujoFEaF@a-+f5pq@Cs%8sQh`<7LtSUt7cW8PiL6e z$a;V_qC4i!ZCucu@s(c(AsRqLTSBNUX!xR$A+ExlOg6_xUpUK=Zd0Q5u!Ag9sCC9V zYbG%)ZhxM3d`)P$`ELJ*vXDx5tt}#aT~~|zjr}-y zzPsG`>_JjbP_$UtZ;9lZ$Uk?rh}q3^BEf=nVoKauA8$2)ekW{r5L}_sjPX+^Y?%df zkf|aKCy1qm^o(;21RkvNlZEU?=tW6uCJV`xE5WHkORZCzO>v9oyyKy5!!zA;FwW5UR zO$#4FV!e^3eKOyl9T{W&Zx_n8RIhC1b%|H~T&525kEwaI+6E#M@>j0zUXEi;LykiX>?Ayip79r|uZJ`XcZaYU5;k{vF6N2jmKY@JC^H4T< zceC7Qbymxi_)cj*8zom*I}qEY_^R?PwH^YG_k(N$vGHvhgS!J2l=!SEj7={Af{D!x zsbx4jx_8G{#C);BBJMY<8)t;66D|6duMI6>C(1xPFX3aP#jXm$%2LBBSo(%+Xu0`^!SDD_ln~s(MAi#af4K5B-I+>-Ovvr@Dt(eV-TsZU=Xxy zIe5#dll?;6`?`z?z{G+&K*>6~k6w}*lLLHn=O&PsPVSE~n>t`-nN&skYT}N!bxyf< zSt|`q0PD$T;ZDl^2Jd0?az*3?R)w-(EmMENs|~ev0`3&F>2;a5J?be#AL9MXqAUay zHJ{>vP=^-!)3P%eS!r9wN>h}LM(>}tgtgRH7C`j}k9T^fM|^c%T1=x$3cTYrKz*5J z^t3E6P|AY%*7xvH;YBd`>O*BW@tU;ioZYfHn zF1WH#jZmY)-RYkV%q z&nTX&yxHXsjdknV2n~|*Zc++vk~cywo4oI=Ojb8#R96>0+((xY=r(lq!#c(=#@9T0 z2d{Pv3dH0lxrZ@<$XD(Kg+Y)KaOh1KFzxBp?MZ%T_(kS|Wyk`q1ll^V* zhH*}h^+Q0nxZnIkrllHKY76vD&3|{X7ixlD3`n3nCUPjk5idmxdCvNmkYW2Z$t^Hd zzsL@&Js~P{iwL>S(}$po{}jqC*;~_vpo`0A*o8?I=rE7%Sh1RnAAuj&Ep(Z;6X8i= z$zyZF+sQqLhvZUX`U$ZGU;HFgN)lX^Ta1sJF^LSB_^~Q^C5>z;hq%L@>ejGAI?iaC z@~CJ;7G;xi!rbW}|h;w(Xn_E2z`#(W9i=KDgKCrxA zQsMApd!tetHGw$Ne=hF2`}_p~3a<;CF45Gm7H4Nz#4!50T9q6hkg_i98Vfs@e7M_2 zANakm)wVpZ9k07~>7Q9Wt}b!A63OVp0ZoZScOXNGnWJE~U^~0!>*4Lu;SYgiPPEGpKrBw|=;)lRAtIWvel1%J0h})1X&oz< zA`rRy$-0X3q5A6HoI^P3#l0hl?NS767i@93quSCiAV_C6blZ9mpMH!^4r+0YPPV`K zc)QSWe2+Ioh^eP-futH9Dik(an;L$NTHZh^iQkPek=Z~~)56&3B z#NjeJ8DE02C-!aU@Kk7}ca-aiYkJVA>=Qgbg%;T>xaq}p z%2ACjcInPuLZxVgz4YTps|9Vwa9KgHx*R>8{=6W<5JvFc5p+~9iA?u<;l0NWg1 zo_c2)et7Hl&D=PBG33&HOb70^N`tg~sdii>+6TJkNq;tiQTCs4LDB$h9Zeo!Zw`E7 zHT^II89F013H9Kf_j!J8`+Gqq_2DZ}1>C-35KYP0f#??Z2x8d=cy&hede}-IVkBaZ>GG-rRhJbPH}~=dJPvI0B_hNRe4o8x(^fO)%+z#_7)e3t)URSF>I9E zjW2G)#L?y4tZHt#|h%B`PQlO&nts zBWcEv9lvPD9}t+Q;G2Ve1snsLGn&DZNp5wT+iaM0{+wbngoJgpp_eoZb>z zQ@`sYjh81^33jyC6qo(^W4ukN6rbh=OS_dq+|Ht z&HHozg~f0W3uHcbC)@ZD8djDe_8(eF0umarmmMPXso9KU0ZhAn^g9PCW5)z5o5H@V z09+eDqB}0l{v+xMe9|G^tcVw~&Q$7blNYIXbWH)*YorsMp3u&rr8$=#B-@9FM~ZFH z%In1}{Z5|iEBafQE$GP(u#6)){z#@f_YUZmJstCuw-@@uxR(!-$I(V-0{*@w!!<;A zLeI3^UDXGws#k8$1m7;ktN9n!_3?^(Y;!H2P!dikkEi;C`j3nOej4#eGip!$^v_ur zCa1i(33Qz@6llU$9AD6Zzx$C_fNmgXeBJac^v{Z=9ssxYC^N5NyX4vq>5cfO=9!Om zqT{K@WWqxIOUEqL8(e&B6q!45p~QA?`1+OrO(rCN;_3(7);LG6Cq3UWrytsf^$IXI zR$7p7Vs9it*7VglcO~kjeYp6w@*UT_r9<}^IN1i#khZuy6Vp?|x)=<@ApuzA1clR$ z^k*(%0Te!fXW;ZY$IqA)HK27oyai&kb1=O>RDZ zd8dBODO9f4u!!_SGfd6-A|{Dif{y4yHZyzH5p%}yWywd5D29$5Q!HJJcbw(|aY9pe zf{GnQP8b*uvee-tt*SoMRcpD`2FCO<-XPFM5;hJb)FTk}6f!bgu#l(lY|cW1O^HH| zcs26aLe<9T4_xH2YbVP5tY|xY=?7G&d2!-|3wyHZ)Nq@Y>d`?E)3RlvS(P=N#bzIa z{7W&@cpVa^ewTRMZNbN!Q35VLMJo(p$v*=5vpURWo3zbRjk6f$`7NH%-uc8209QDJ z$#Lu6{vTX5go^WPpH5=Pt}eEhwRupyO`o`5Hjra7@A!X6Vgt8LoY{DR^GM}@3_f% zxfPO|d{y@eRJ5yVVIKlx#DACVvbubed-U|I`J*|vK*U9NJ$6Ha0#SyVn)+dYcp$=1 zNC^hkRsQ`51YnOm3%3DYFndp$s{s`4M$AqygTRUfpSRTy>64w!2OvfykU1L_;SlYK z;V#T-2(Gye^ZeEHcrzMs7v|pF#9&|u@Ult-JY%9zEMAuA@_=Szb$LWET4rqK*v-(| z%n;~93bbO%X}Ga{s<^ddvZwWDknSb$pw>qU<&!ZW4P|fjJjhYgP!DYu&=^4=iM+Qg zXzEu^Y<~Ikd}2IZ;V&-qRJ;1N0(`x%zXS{Ql}wBRxqi^r!5*?$t*Ftucpo8woxuhd ze`VT~ARoDDYB}1}9dB;xW@%*{ZyIpRR;O)&uy-~?)^r&ti1DU9QMzY-T1wfLgryZk z_OjRoXa6apSq0N}zlQo9`HWOGo^~m=x-D_=&eah~yWC+a$X2=yHh%K^G$%CQ6WHQa zgz_lW>{kz*^9M}yiCTV?USY$lbJ{GM8GH}4;WPTyXiv$;i*yh83Cc$_`BrXG+(#w(-c}j> zTO)eUyIc`op1joGq7plQxI)1K#6wn9X^EssJiB082~b|jDN`jn18$MAo>#s!l;#_p zQEj7obS}%HxK%hUk66mIL|m@QQ)W`JRW8c|K(Ej%Ygl?e=SHk3CD&td4=F>-fwm|H zXja`#DxP>Amo4RhQ|@V0YVuT-PdPSeUaS=@d%BcLanqGiabH&;%!r*!8pgFx|591` z8Mp*5T3pUTR>~ADac((``UrpE zSq5aG>LiL8OhBcKazNMgf{h?DqW=W3jbNHh(KC{dwcxDX&#rJEd$6m*)ZIV`A1~fr}}uHo&5gfxl%|L0U$H< z2zJH002c!0B**)uK(B0GHbfjxs{T1kA34Tu(Bu3vOGe=rNrA{y<47)6h zodLm5BWu%a94ZYSaiWREtjdXSI-Hk4CwZP~@F1tlO8QEUuuFW$Qd}s#RLr7i4DJW4 zeX3u#8gBs+ZO*L4w6y5?SoFpx9_9U+Q7;$jm1hfh?i`rhA3MV*Kq`UY_YuBQGPq0f zW?p^?ir8c3EdIik^pU4cj5US8y*no4(c6w@WoQa91Qu8c4(|f(x?9THr?Bw z>A2Z(Lf38iIZpo_78yLz8G7>J9e32lY}U(brs5?eF9x_(W)tfWPlF>N)Ay$<6R|g! z^kLje%ZR$GS020(K5QwOAXWSQepRpzv!TT?N6lP=Ak$V?FF2z}4 z8!a`7RX8Bnr1a2WY+M(&Zk#kGHLNSL#MN!@@3B8IHyR539Qdxh3RQWhK>Lwk@zk|c z+PaY8oRCw3N1ADoSh=R%EPY*|g2Bb#gZjSk0h2QsAYh*1^aCfrqUwjqEIqFdRh~y$ z=ozP`HUxpmsaYK+%!fMe0p1hMQVfU@hPvEeT-L)5 zmprtb-0vc>_mN`vjc4}_boY(fZVO)f8E6F`WCefD{nS>GZ|q~56JqZ-_QD>PbR=UM zgpPD%8Cjr_GsKuW#8?Pif)tbZ^b7&V`>41qXo90#bzsp6j1`?kwT|CKIi->qw1$oD zsGhDO4EgpfRzBC5R(n(D;HEqbV5^s}2Elip$%3S!EA(%&u1cRGo7fAL26p;Oj37=5VlEEr)p$gxs6O!&dJ8`@LZ15kyNT!q2QxxGv$| ze2qT7JSsuL*fp@Q)%IOc%maNt(rZ$rOP2eFrE!kt#$Gdz^oR|w)Ke7ZkyujJVpj6T zvQ)k^FZhTM^!>b8zFi1^j_6eOM(kYLGY^06-LB-#zp)tFDD|10ql`bdaE{_3@R{jT z{WM3n=;N_)pdSml-AUd{C>JNigC6??w;P^=q~?C-mN9ayDMy%lM6v&x^F#L<>u>>nJ7SYIf zAveeG>p9N3EUBNn4cz=aiQjs7-n*4~7)Y*@E8UdroQWyx#h(PrO-=!x7<6_hn;neM zS2}MqXq_HTgciJa_86#d@JO1GJ%!%&)Z#PV>%NZ*%)&I00s``p8)HcgxgqJDLGaf7 z&+u#HB_?`Hyo}Pf;QidF2!V^w32lfiZ$TldUechQMQ&x&blEa`!)%CPZ)P0c&|)8f zC9`~TRIk4Onw%uU11?Pu1_VU>w{l+M-%n2Z*UTgm0XK6;VRMK7wFi|wVD=~j9Ogkl{^UQE~%1)2m=XAav)a3er+kx(wiL(j}T|!+E6zgjbm?A$I z1dC+wxN3M!??*yWSJu1G2^vH78L3eQ1s#9fZVG zM8z_%{vdK)P<3EwOIdXz*qhw+*Xlk>$*R0Y=YbZTzt5T%+@?*ci66xnfY zzKiL?rF(awxIT9IaBEioh1&I!uRnKzY6(qu;xXM@SE;1zNLt7I+tv3$XE@t7ms z6$;nY+M-6?(M>GCnMW=$W9ZSHOyCKA-pF>u;nT@K)IjRF5v%6KhF@cwzp&;i8T*O5 zGBKt0v6O9SDAhu$&4IjI6qw*_zuvp9eXiS|Q2SCVuo(1w=@s0j8w1Zq38q9H_)x?F#E;kNbU7*{JO1BCok?xsi`hTYDBSID)De; z#cL)LW1s)-{7Kp=sozc*Z1O^GfJRkZ*>K9Jfgw8>>!1RS@?DYUf8n(d^>bBNwO~KkE)8fk)PH~#ggCi5<5lQ zQOt&kraFUMs8I?fGQJRw<9_I*58|l|%k&XgPUcfL#uL-sml~)V>s5)P|QlT~sD|xyzjup4;&a$uQ?4r>g&ev7WKlUByU}|1B2mt&nUivU=I? zLq|P9sP78Zq4eK4JE!Q(f^7>Y9VdTm+qToOZQHidv2EM7ZQJPBwsZU3^K@VD9&3zx z+4Wj`uQliVst|PG8p*YlE)?!6XXTduQM6{iD_Nl;OcS#?!j&4ireJWwT*X-fvpWLs zf>RJh7?HIpfkcPm3WYogZXtL z=ilEI6<(f9ixOmF7oJx&)W6<()wUOzp@0LfUwWxkmbYEHJjJ?aD=WsOAn^af z0uc{`N2j*!n(%2H6eA++DzUi7-ZMqZIr)!}FAh3OPEe)`j6)?&6&a(EHd2=78OwrJ z9gr(p(2*w7=?=>kEbvfGmoEIGQc z@0cE`H&Z+Jn!I#RC0XP8VD;LJ)jI>*`1Z8)1Uuv}^Jv4&yCXg>le8s0PMfrKe%yN3 zSmw-4szuQrDB8jN%k`m?qCJ!Al*I6Q{*1$veU&F}2rLV7vHhnz(B9#mgB3A{;{#fM@ zfg^hPwq%{Jm7lT7d#tcK`QWvSgSlmoAuy$nWX&IqnZ3h*T_1XH-NaFDkOFrKsr-r; zK9t}2ft=kI4?_FHWt7Q-r_VL_kHnPU)emyp@)P|e;dAFNX2+3w^4#jP zdhdFb?%_Q@L#XVEYREHqXLf&z)cz{o>wx~`{Os=kzW0j{_{_xk!Y?=?m;A20%PrsZ zN%|BV_mzY*zYQ6I@7VR&7im%qW^0|#4rlbCIdzM#Gl~WnTF*dIM)op92U)Nhz?X2pyw@{MWju;qE zQf*mn`50viqt0Y4t?-mMdrUMnYHV1jxQ|!|IC`@3bQf2b_te!GxI9D*C`wYxVAX-F zCf&E2HcEmkp-)#;(gK=Vnp!_DGC!Lqp+T;iZDgV+u{U5YG*xS?E$CSA?O$8cm8qLkhGz2S6=JjM>(_$dF+$FoC$bCiqGYL! zGWws171t^x$f*jOX3YqZrF5^O^Jh&Q7g;HN4iKA^w;_UBwbsf_>`Z92l@|82{gLy) zstzMBXT_xh3s9=`-u9Z}9ld&MjlRD1m?W{+_GjHUH97SE} z_hOfM@lCuuY3yoVYN1->s$h_nV(IJsQLTyr$4$*mD|EFsb{0ZZ<>)^XqDYxbl^V_d zs2s9Jc}?Z>f46kk)nlaAlAi9=H?32R%*`PMuJ@i@GMu?;6bD< z*k3PHrSI66Yo1m!u@EUlm_BWakjLhy2A4CgMjcXGszxH}mCRD4wE`shx&bntrt4h| z=^XQzW8VuYrplAY&mPS(l@6Ne4f~G?6Qs#UN)shC6NF*!z9i8zrlicV;F0?eIG8096k#E}ck45Qa8)##pD zRnoyxxEqUWS}b&Jw1|1N=#!sAM71@~W>B*s+xymVEE)|<~h(1zfjuQBTa4quL)DqKE%Ckby=Gf3i)!X7k_gt(fG(vgV zz$;|!(zUeywqbcGn`nW9d^Aemd7c;Hafc`A1q?D!@Q8NUN7$G{Sbdsj?>x6OtI#rQ zSzee7_bsKg6cBiHj6=Q|2+WS2=fsXti)C5|hp8cBO?bEWb}wn0SCP6f-1D^lMs``! z0LcKmI_rOG7i{9^IeESJfLU8?e@}MY6Rl>^tB|FmQ-t_Ad9p4urTbX!N)6^y&xu~mVPT>`3Y5g)yB{S4VApBtQ zDlRUj0dQxK93eSI!9RW)mqRKviFbf*|1C7YsaC86xuT^WBxm3)%{@nXEJ{di2t8|_ zUK4yL7|&eeTJNmV_c4;c&+HTnS*90~Jc$2B&d`#ztFf%Kfooc6AvD*)Mwtgl2{TW5 z$l6$2-mfCNtxWV_pqzY$91XAz|BaXfD;B!8zCJ&G9!VDHq_h~}$XBHcZS$VxX?||n z7%15|J_^ofTN{+{*-QyG^5r!#a`K&I8pDcjm+^f>tiR$2FR_=#A#mG(|7jg_%;9Zz z7XO`*p^1g8c|x5bB~$0<*bDysv=6AR1IV7i7xx;ByR0s=<)YkbF;8C4PK~u44WLrk z@XOql!>=uD;s^pxn79PiHb2i%4R zqo7vX3Z1Ol8l>zN9?cbAR;;|t!BmDw!lJ3a2~vyE6cYpuO7l)92^MX`32lIN=UB|Q z=9+1xt^NYq(@{I1&&ZJItFNsbPF@*f#6Y4&%uDEALZ zX?f;1AT=qbg$xkP&ul~-*1xWSy%M`{tYn*USgVH(5lZibp!FAe!4oo9GWMWf0)1fukY1Vd7IY8Ok*`mFT;iDqDup-y4!&9c@Va~_(Qx;% znNtE6;s7^#hp>FVuK-DDZd!hmNrb-HcIAWp@#?{y`SG|c8^GJ%w0EBY!`qlC_QJ)^hNXj9fKRFL+yRYOOA*9^bWvqOBh4Y(|+I z8>{opmZoHKUSVTRPRHkcW>dN(xDNf zDE{$UsrFoDCi5*Qaq5ACNZE?Ga&%eHla9_+=g^{x2&d>7CjDt@7yE#pmD zvAm!uXl@}^ggz>mX``{eaaf8Q7F9SeS2h61Bdcvbvq<~?2#~VLqi{+VTq1lYlpHqgP)&ga{6wV3 zd^8i1z;Ya`!M4TyDx;7Qw)zx-eYO}F)StCediP~KWp`@(J%YS?49`;Ykov*{s^sW+ zhB5WdQGDW&s<0VxSzc?&Su_tgS72G#3+;%|wTud0zFC&@uIz>Vs)uq4^vMS<c8uyxT;x^i5yhn*MIA#MjP7Wt(; zQ88^zh&!KF$8n0NBQ@x%OkCaKs8p9T@Im0(-vIiXB~7IzfFm`l6E%>sn${o8v}JCp z!s5JN_k8dLL8i|tuz*iKx7_r|F|Ykw^C5^rGDa*`wP-(ueqfe*5WdEXNA1N^m!j45 z==K;!X2_hVCABFaA<3&Szwu~y!cd01W|Y!04ySc_fG5l~rqZfmh5}a#dz19pX*txP z54mKR85^W2oT+!U(%~l&A*hN64x)BwxMAjZbG$NPk6NMu3j-5RkgECooCYX2BKk*R zH6+(3>dxvO$g4c^9l-J3i%}pnb{83!ulSHz(l^A1>oWifWWI=O`pP|hULY=D%%#Io3sS?c)_xsn) z=`CGX>EHMUjv( zVQwgiBAon%`;C%>mZP>Y*4EVO@`u(8LQx5oO-*e{rVTA7>yODeVbe5n4os=9vi$WpS`mpzf3D6Tor*?5*Q}Y0wKpy+Q`(L(q(Eo3jOh7wuuH*g8Iwil zcv|p_Tdb~{#(3+b8L~!29YDXEbqGckR4JXKa1GtPa1GhL3!^g1sbLz$(vU+323-UN zX8vI1tyuQ7Npc4UrKrU~Y2>^iAcRSbFL!?U&hQUi1ej&BmRaQ5I3OaHj6rG1#A?H# z{dx5Tfs|&@6M!G>e>D z!0cch6!#locWO;JULWFYOXMgZjYJChJ4Q6AJXoOMP_&nhEK)Ihd%$*iUFOnMM;g%t zPm}g)l;h(sA_8q8!O&@IpZ8p5wB4?&v<%SB(enXUxS--YYrjYOsNE~kZ$SmMy`*L zFC{bd`bbO^Ty9k&U}Yk{1(9TqvpBFj`KW?$kB+q2l{iUyf-BA1NXvS8Ge1MSxQOWG zVIl{n0D7G)A~fP(h2G(GmcrFD9OsC!hYDOuWhgSF$(+urQkrb3`K8p{8F|x#!28|R z`lM1IS2oQqS9>K*%2NyLQohoR;p*tAg@7Xm@kU(=dtTlM=lPXv2bUNVfkO|<<7C}%D4v#oc;90o*CkLDWaRn zJCc!_)sxSohVqnX2anrW{#y58t42DROTa3PbQ&J-;E3JHqUV}>3Rzl0VGRs0670sH zeNxd|$tQ*#!s69;h?C_sRuR&gJUdPw9s1iwI<0?NKePt8fA6gxB{+iQz+F8f4*d7I z7eW>Ec@8HXFu)Jo@)g=6(60wxM3iO@<2BD@W?1cQ2>x?jS9qt_k~+C1q0V$uKXvY- zVc&-sYdcx3+D(rlnxXUL4cDpauH9=c6!Ve#u_=8{l-jb)w#uqMhs$qO+9!h78Jgdr z(Hx}A+kYXhq_sig?e!X|(9O^ukK9tMvc412Hn>&Q$0y`P`NlcwNUUZBP}kBT3Y}qN zwRpa7zXt`qKl5=l(ZUuHzF#38C>{*|izQ73WTz3Lxw0Ca&~t8dlat(Rv*H@=F)^-h z`IiZPeknKS$kw73ENV!U4%Wa~_LZ!#T|S!kF`9>JLc{plnJVnr(&Bed?7Ws$=4Y8q zu+vl*9&K|sT4kJaD4vuL%A}*_B0#xT=!{WCKvzXzyRU=kG2V^-IGrjSxXoXs;=N7& z4{|yUxgiVqgisp6QYJF?4ExO^+{9V#z;oBKVQp41=U2C0= zAxv4?bPWwtI($WU!uB&MnKAP#SaWATLsm)$LD}mmp)a7Ae3nUx;giR5LE?|**W``V zIg2ltG(h|mpTDbEbQY$ME1jlV>mpbZrVoaa-cznXj#hmXodIoz0^Li2VKKsyuJl{OuB~**4~yUC#xwZR+j!+>CDx|^V<;{S=dYA= zR6GyLi-QxOoe>~Sr|zy9h0UcVSE>nU3w4nOCKi3C%S|=-yk)lyJ*IErp0xmaa_~mbm%A`k* z!7M>lpML#j9!iYv$@5GbhlAid&a{n1-q-oR3n43+pW`qXFAF_n93uQQuFgwbtw0=i z32|;N_)2-C6H9}>dS_gkK;Ae}laEx69wt)ey2IB^79}qsJ|+il>0!J;N742NObjfD z3$~Z1os)v%Rfw;S=^k6-MItslS@tP3$*bWL&zxng?Be;p8G3kIW8EalKzB`m#{88x z82c5euDZr>Kxoo?Esp$BJb11Q$3N+BW2XKFzZie3x$7O{_k}Y3K=Q@Em8yQHPoZw~ zB)p}nekUjU*&O*b-uG&~{jU1Nrv53NIAvSqqfo<@ZE^_|L9k>}A1VpM1K@m4yK%h>IO&$bH zyayxR+R+ZULcgH1?gZQIVX^fu8RvlW@EveQ4<;*v7?Xw=W&{8~BWyv4rQfT==Gs;8@s44b%M`o-HL0#8naAJ}`2 zl_mY0qxsb(>%dDMRuQdGRB#9_n?OPj%M9;Sp&M{+#&L_jj`qhi>UEBwoCm!43Zbb< z5cCpue`H&55LQl(J+WQfjd< z4OEsD(nE&RkxQN+!1setMeAfSPBM2mbG& zl+vz48i-t<_ZnE_o`mwub{%kdH)xK)vNziDy+<4B^8oMdudP^^bGBCy9*ElA#mYAI zZ^YEDQ3uY=aH(Z%MOk=)){{XK8cb5ea9-Up#X6MWua-Jx<-g{a-66&Gz~UmD)&^&< zDxr6`7?XWS7ANp6QGWXA)_F;H@QNGSDM&?8<-!Z9#*{E#swNf)DLCriAtncEuqPj= z*ioe9F)vWq0mYD6F9$RbQgjylqoQTi{QoIdpk#48WA;G}h1z@ojsbrJ zb9Mg60qf`_w=*4n5Uk0X5azQyIJN<-$(Vpe*}s2B)+I@6u>q+|BZ^wbu`Ry-;AbVy zUGc_rUj2gq7Arxr_vtq(jwcJY5oh&!8R3!`2(1a2mLOX?;83xb-|H1g z5|M&tqzf%Kb@1K(BvPTp5CsCAiZj zN;HIet=9z%(u_X2I(QHCsGFf(YWUsI@;0*KVoTqfvNSDK$(eCU z%o@N!*94yCg-VA(z;icIDZ3if_}s^`qERBn>D(tqIkt5iSx!#q+y|@KK`Apl6R~L` zhpoTQo5tgii$P+;7s}IX+Wzv-ICs7>KZICMHT<0oMmtZ5APJE*2zg>`nS<2RaBziYHV3*U3y%H+*-ep z2DNP}Wx&LmtzCWmj>#Smh@7*}`tVSI15V>SE0``;dI$5-_cdG_zhHtVTE)3AQ7s@B z2n60S#Az)&MK{}@R$^#$eqqK{9AvuAad-k(6|WU45XiW24cLSb9JWsa$kUJf-RGZ* zL6Q>0>uvx^6eXBKg;|hkl$MyFgxCiiAJ<;>58lG4xyL}C%qOaKB1}SY70KiTOra`X zprH$fe%UGUM~Rzor?SYsV6}9=m*sO6Y!S~C{zchSn4z2o8L~X7?vlZaraApz_e`Tg zZ$hq7p*wLbVNkR$U8I-bEEcc^AKaEUGr#5?$E>bDtxwEG41+~uCePBT4_|~96py8H ziywi_Fp@8PTmW@KT!#rAh#(iVveC~LAE?nRa;V=TkMs}2Ln0F-E+x2Ns$N8E zNUl}1ZNcakpxp*Hxz){NEybuIdAYQbC6x8Vv6{6AM$V(3NVCeWysOMc6_tx@tw_H1 znWg{W6fiyOUt%C$P*1LudBQAlM~OCENn@JP1C?&Ea7-h96&QEm&!hAAyL{tWP9R5Q zd{4yu)%+h#5wMT(-97a_KLlD~1nXw%<#)(45XdDb5MV zL@5p#$W(qqiT?*+w74J7Cd+je8Vn;{u-^eL76lchRX~|Q!L-$DLbN$`<0r$+Lp)@V2kuc9lB*f<35M~1_A;LGUFP9It zHASqsl+xg2X~3L|sC>X|qx$DEnoox8zaIW1^xg@%$<(F?@dp?U5`r3I>C{^(&YI=F6#5&F&p zOUi<7;zV^^{pyX?^E;6?k?FDzDqDYCK2#zFu#It?$>f~RBZEnGIxCG?Vcu5)z>PB* zmlx_}HaQL2O92pvsk8uQ8%*3&Xa^gmF(oNs$tk0Mxy5~jqQ-&I7g?h-Hx z-{W#>rda9Pz-wEoEXIP{gq*#kMR_|N$jaFcp~`icI>VHa*VF@rnkKEDl@VO@!5cIZ z1`kF%V&PFVpC`=sD4HuMo-6Q#wgIPm{sVm>JVC613~fUSU5y#M5+G<5OcW$ETm?(k z2sEXCWsjs4J;evBTDQ38Jw-oqGI{sad`ZKdQril8>TfCaXWsm_1gKD6*hcY>EXq7I zWgjF(02d`cI!fU>eIijVAX)Jb*Md28+tE9L1O$?1C2p=JPI125O$g+x9(;Urx20d8pQ!8+$x%t59CAavv|hIr_% z3MA8xBZQ*|btf@@o+_zZZm^^nHjf#d5nbbO@MuwRLCFWCDQPIJIf}mnTgF^zdv@z)+w46{h^O@Jq z09<1X_!Kmaeu;>)V2GLrmT4ljG-J16#u2KUAXq2_F@z-0W=N5ykpuriC7wf z3Hba)VT(+KXgk3qSLOvzt+cg9>-Pq0q45SpF-r`|L}gL}m7_JffNGPATMz|Sem244 zr=jaVoJB)4(&0A-W^-b$C2t|wV5S#OD_IeBXw7cNSAUSJpZ7#>`7z+!G)GbBI&dtT zdjS{Y;Uq@td`eNX>>!N9zn`GQYfUFy)3hjs3jGdWBK`%ZDy*qTl4Av-kJGCrk0V1O zTw@OXVV=&lrC=M^JnokShyMf?*qY|6`66he&@|){3MicB&;cFeS_e+i>!VM65-s^n z&>N&mM!w?;?b3GhbHj<-nyKjeRk-~C7GSu1W*cSz*N1d#9zWVBAr5Z(>FxPEae@e?$8 zpV@ZX3-)wr^Vn(EFFB>Pu6KFrNYfFEq%Fy!y-GGdEwE9gX=1fU#cY{W{A*HDbsZZ} zxn^?dNO`St3EjksYC~6s^LS-B8PLGL4UZvwTr#|%nn;Xdpj%jPbw+T&Mc%1vxdBTN zFJq23<=KOnYbVG|DDiJ>mK@aBH6Hyee-bRGa@CzcbdodupubHGf3E4p7(;Pd}(^ z1-y`rA@@)WqtkK=z{oDHyz*o-y$I(9%IXZGGiJwCzZQUYczu!01>P9@TMmz@zHux3 zgRw7N3-j%)uz3)N-{sIQ`JfYIaw}9oK^a}RwNHH1tYU5Auto>z)!{LY%VCivX ziZCSFsIYXMf{RKV!yk)1alwN*dsv9msfr$J82Yd+0C~`79&c-f{@cYKMxA*x;+?1k z4l0Y$Z803CMXI|m#-BNcMVWsWr*Gm#y~TK#!Ihm!m@Ww_z{7%sm>(u5BWZXP=_!x z{Q`=-Gt9G$NKwjH(w>W8PwKooRd|?HIct@kit0}>#w0f(F_0@ByNL)5@1P@j{$IGM z$9{QY-{7mkH~JJGc%pUq2nt^?+v9Q!p8Xvq_n4PXzQ5Gm!Q37=d2({c#BR$!-JfxD$4(OO8b=K%szy2O;=^h&!Rxt6X0(D~ zZnBX+bfSFwKRr2DI$@+3?L&3mp%@Rh)g?m$?eQ*#6rrX1c6ae;iW{8EOkNBrqoYF{ zUGY=E^~X5Ew_}T)Uor5KCq0O~WA=7I)FlII_k5oTQo8=ltB1bvQvmMRIY#gXl>R<& z|8UcFW`|`e10r=g&k0eJ+t6nyiu#~#bz&rNw5Hpq!jPdkec$7FB3l^Y<}b2VDeQHd z)f#*uWs_M)LZ?tu?Yy(9jiYlgLj$@iBQ1NK97W~9E(Vl%t9jGb-1DK$wFcZIKJdis zt_x9XbO15DQp|d@J?H13ta*97ao2kCGn^zjXu4|kh7?s>x-RV$=&52(L zqxLt77H*6fq7AlZp{T9yMb<;)3(+8C6S}IlxeR_a-?=p0QM(mGp91w?;u1_fJfmywKr*@55cg?*&|`Gyqd zO_>K0g)KboTUH}JM?DaJw+RZi=}A<8>^sco?vJHrD_9=YPnRpUZl6`CL&mzL^~}zm z8`DQ7IX;3P4u->*GvP-(jF`Ee9lv9L+ITvI=^sZIVEK)S^lCV^C#8?02Tj^Fl6EDKmY0_jTgMiIY)^}AdhiJ7kY^xh+ly>m zU4y~$idVly%62aqU+=Y^{`Sh^%`aeFxm2l@Y;==v*($}1n6=| zow=U5?tRI4;NK_G^LMfx;H(|uY~=^H6XCY-C&K$P-=#D2VT?nMNqYv*bUhS*jOV< zQLRRF1)hJf^K@*{tn?U+ytj;F0GqJ>p9g_BjNA2NOVDgrkX7vYS2z0UV7t2TLz2 zKVK>OCJ1L3o!Glxlx2C*xZAy=H2rD6+@F3%guu)Mouw962D^CuG%tIBl^hXpSMc|7 z2N-ujq|hzqrI;v>A7kP0NnD<=n}#s5XpW3NAco}#j;Ngi-a&|Jo3{Ukt0bHidq4lk zni#fG#mq}_H78TwooOWp8~*CVwcp}2tzH1Im!VADGLpKn?&Bhc#C5@Jj(@T1RHOt^ z3sb&G%K*A;0b8-Csa)z(CTmu}l^uNEgctJAXh8BCJ+SUUAMZE5>>hSrupX${z0|I? zFRSyd)t;a)uJ(W(zgsuv_M^;ciJbtu54ZJ^mOgebGTw>X;LRKFEmbf4&LRAO7|u4b zAI9^YSlUc$gLY3K>iwt&qF=)De&_P1fh+j$)a=PwWAyv(g>6|;qfP7fO^!AM$0Fj0 zc<$W8FvC6D$?cJTkd(yeP_sbNlt@XLO#%yhpcQr7*nALgelA^9MqbWYmSi;F&)w= z=4-K(t3ZR(HuI{n!IskRo1I@m z_lptFe`3nJy7J&5V-5PpbJZdVbF zyMK*7{N9}RU=htdQJ1<=r_||db}Z^D`8!_isdq2!QbHcw zG4^X=)5oqOrG3JlR!LD+Cso(JRzh5$b``cQ+au%*wih}Qp`r?+li5?+k$;#;`r=os znv+5ulh?uPZo3ar>|*Z~Q?D7X(;lqL8g#HH%Zd%khQ~IxZLna%y}orr$n1`sobj^9 z`2o^+Ae2797eM{NuzV}U!1V^N{&eEV_6wh!S+$4z!On_(8&3O)`Pts_)AEnXlh68f z8{Ja6Y3|kWpJi-EFa%n-{X~NJUtBcXwm_JA3k~89Y!MP^eXr&5X0_mW%pM!UEAwl3 z|D7W8Vp(kcmOmGL>vnANh3FcJaV|S_R%|z~yA2xR;;q2l4*3w}12p#OO^U&&uo_aBku!p&qXMjrraCuTgkWzm*aot9X1CduI6dg zXCD6m;6_7O@vNdv`O6rLWmqS!L;Gv^lYvp&_XG!o64RJj;tJRLE?IL3XcZ`WB&Gch zdHU&9j@(8|aM&XA!0Dh0 z^AWRyK8&J(XHR7EjQYBGV#$cX0naK-A$f|OuCHYRm~yv?55gt2ED@n95uy4$)@S~J zRR*o4*fjt#*wrr?=;avr<=?d&{h4(ThFwrv2A4X*zg1be_T%m!xC|L#orm-_uz?ZcObna%mRV8v+V=4 zg!u#P1xn@!^>*)R3iJ!YLMR77mWlArgMmvUK+O@u=jamjyTyYeZ@)~4K-j{i+f)ES zUczWR6yW`XhLG0i?R8Rz{YnKux(I{2E{r&Q=pwgri~*DdVeLZ<$B1Aw0>*X9j4>vW zch+fXVuhFcV2v2WqNb;}!4R6kkHA{-y!c2Zok#KP%+4 zv7a^12x+c73>y;gPATYuI|=x4({%11`D%@v!C@o0;`^b{XPlX2+Wj>d`(SIt$(j(Y zbu-XCci5g(<@)H`U>@2?Q?^6u0ErapL-^%YuUJ7$R*`%|-7zPe)(CjAr^abAb8*7sPdEa~gH}J1J14fCY0kG75E;N_?!=cqLETBSc$ zAsg$0FB;o=t`K#A6V8N?IM5k~JrHPVgSPK`k0E34x;p?%_nnOI8&V8@f=-!5N?n39 z0-Asmxb`NXH)B=Te47TI3sFn(lNY4(3n}+m1fJ%y>j|#iL%s(0B}ndr*jOfF2NH$s z#n7!!`(Z;5Lk5pWgvX;9nQ|dXncz=GL=Q)f#-gd?uvZD$YlLmJVTp%W8NhQ#!!H~} zy5Kk+d8N^h6W44hdb;|CCeZPYAtUSV zpD>b?^nEj@2I=6#x#xbi!oN@GIApg#5{G=`>8?ZH_JPY#;RPGrAy>je_h{}Qox{ZT z6z?#!Nn84#47s-`T>EI#{)T&$u36kf$ppOJGnIp^@OQYR1%EaiImOcEdRc?|z<>huwJnqN~_}Lr1Ud z4;V!5oK&F|7HJOnQPx$s>eC+dlcn*(fhK!AbWlVRh^2eqElH4-AR$$Fq{~2p=N-9? zFqC=CqS%nanA=&DZAq(I8C8p_^=lRq$#q*_oIeQDkbN&#cj^7cFLVPf%FEeLu zgOafgoyUB4G=%P|t15S18NA)_LPU0bEE9!T6rg!4N4It#|^#4GL0;SQ8f?_+e<3fck$flNR!mf}U+G>2lwN-E+hB9`A>)1bi^1O>H;r-i?y=X+_ zl5-=na{0%qD0-eDggtx%&gU1Ks#5cn{grH642VwhaEHXgd)HmS)GSjwi-n_woQv?? zOrWoERie#tsFOX$M?P z+h!MBj??LpDf_l|13f$P>$ekdh!2?Vs%%@1P-vnHURzd;-Kp-d{k3pAa1Geh=*jJy zIoN{->(MbIn-swhNscJZCtxVzBv0ZK>h3tRPT>=?2GK6Rx)=5(ytfbT4vvTR8`=-$ zW>9PYpJ~h+QZFoa7yAzC5zO23uOjAH z?dYc|Y3AQzz+NmR=O^scUxkqSm*ijH?TTZ)iZKU%Y7wt)6OiAHL^pj6>5z0(`m`Sk zIpouUY|r!_IZdEg>%DtG?i$QA#y|bZG{HL12S*#J6J&+KenhhcF`?L`bSwz0;Knc@ z^*iMaxc>*}|TA-9_Ql5&vDL>;{t%^p|RTe&A|t8Cj7=aQ zgw=d4&hp(qPeMmJT*f+&j?}lys_`D@Ys0z>lQl59LPqCjs0j# zAK2diN)&{!^--yhQFNR~#{r6NAt?=FLycV`a94oU8o3nnKt8+-aR7CS&Hu+jP0GFu z<#5(<=1+5v;sy14aYgtQarV`rU^~hIKCPn>)KbjyVS|S8GYK*GJ5sMysO@P_eaL2nI0aV(UVK#6LVoe*ZHXa zgJ7{KwslG7hr+OAhT6Ih_fQ^0dpuE0(<5j0ZjwiBp@a$E>4bNf3fdpF@(^beLV$v7 zNdClrot70C+ZvTV{G?vi1;+QVBqR28OAR&3sJLm+6uGUo0Lc&s}qsawmi{eFF_RFtbqQ7u~$TT4Sg!fm9jNhli?hrwZtwGyG z#BYI-D}N}$#wz-81OFb9(Dn3ibI4$q!Anf>Sj-8T$qt+8XYa%KhsQOovH`3CgFW>) z6K{)mCz>eAiE?d^upvPfxb%06b~utdVOav7Lk$zM&(JX}!6h36lXzUFQN-dBR~d~u zf2_qHyW(f_6i9ae0Tl!7?DF#+I(3fBfHR>Q-8zYSp)m2<#2-FIUGJT zXgBgy5ai0%Q)Jd?gu%NrL3&G1`1Bv)Csx4=rHg0ASaSjgN#-`N>@{P!ox>z4S|kw` zvxn|r0acgpO@^{WX zCDHTjYwH9$k?fl!K(z<0ed4!p_L(43)e3>|OKSi%wBKQ|5fsHMFdapR%=Od56sU6Xhxj*6grAC0b0dMR2u9wsa(>hEZkZ(wf z*O5`?GjM{gk(?8d^+f%!51I<5WCwlmiiRWIe6l zs1iD*l6xNaKsrlmKd1s&nskNek}kO4_uimo9rqC7Y@i#-t}}A%=h|-X9=oGi&@P4j^RI=-4%}csX#R zz>a>1JFyFS-L`{m$eJi(6_banNJQq#NOZ9Z3nXX;Ov;T|LInJISn>r-!QWbjfrHbI z1B8v2^k?S=K|_dEF#yBq)5yb{YW@pogXznH|? zQmK8})}idjgC`8VqV`r|zq8*%Q1fV)D2?6V*#Xzjq|hBIrX;qAMqQA$5fR;@QLEGnV*eD+ z;!a4+Aw?(!v5I)n+V_;()r;s`9{{A)Fh9>!e+W1Keqw#Y0KQ&bgq{?wc?1`=Xa8lYOp zDC}U$%Z74cyn~iJ(|~*3-5uq}MgU?`s$0Q}fN>UEBy}@dnSMXcMrTf>9)KD>_H=m0 zE^t&I#ZopZzM@TX9>zc87J%e%jkE6$hLs?*=3E=^0^_x056U<=9fpa68#4%-fI0xs z#eS^&1Inu!3+mZ05K4b*nvpk({fl=!2)Z$_%wAY9MVMDZRYs6^J>g|tUNhxcAiPzMPb^DYsfX#4Ma~$AQQZ;-CzFNr zGp)51KGxz3!8&2I1YEjVCW~C97}M1%uU5K0b7*}Jli>VgsI9I6n z3OrN;AB0A(llsLa`2})=m&S=fd#=?X-U`xoUQ_ojbwE=HwVRhylGrJ^vY^2=uf&84^tJwp$Mrq~* zdI_#usLM|`Pp7{|h4!GO;@<=366Gu5dGhDW`O+uz6Xth_2ad1o)?kkk>%&he>pk%K zlz_4=qRkTvy?mFXlnQ6CZkK3g`8MhL;>Qr?6Tf}zd#anz7D={TOJvCsjzLYk;wQhi z0HQ^3euXEU#Cipcimn_<87&3l;=d${Cu8Hf_Xvmd_i~4{_w;(@uf%)LC)gv+Sh0roz#ebzc<&wW0 zRlii8bK>)!#fnAW3f5BIGTQQ<(wlPdI^~x4=)f{ww$}Fs!BTLX@`72!Ju(L&4iff! z?4lU65$wqi{&^x)^&!B$F5OxGS0}BEfut8Suy16-ZAFu12Jdo zETZhf?q1l~Gt2ZfQHk}dXt#gyhzW~#H1Bj+dJ?JQopU)5WUqLRlAUf~()B@Ej>wK3FT^@Km2G1QA1kiMy2B)1f%G(b431Syn)fF;r)b-^%g&kl<&SOif zB^^^R4tj~3M<@`Rh)XCY59KQg;-SQhTDng1Ek^krxL}}_$K`L0 zPH8F!Hc`HsVZfrAp-n){K@v7S7zKsR<+_AKA!y6xSEV54V-=fIGYBl|r!0?-j6yWa zR3!D-Mdp{v!vxW9)%NmCCIE_)k>r&cwGU@+%Yw7ZF6jQ1=Fk%U+@{RG2x)qT?~T#u zx(RbYHY7|arhAVB+M)vl`%2%gB}@;^eV1U>zWsvjBCAIWHvZaVoTWCJG)2@%6|UQ* zza>Y1^Y~aGqKeW2KO31PU`xAIdj%+*+k_jq>g&mOy=;`t{(0{9aPaBhWB0AJQaZvz zV%LI>7|;5A-QD3Ze5f2K*KF>Op;>(+lkx_dFCTJo`;$qhyy=x>yC9QsMN09EmonPI4q>UXU zy7p#627L4BuA_?0>_EvDU;A|lbMAq{J#ZqYM8wi&vvxOp7+R%g(%Kbf-6DmS?6r-< zrnGEW{M~r}1LI65_dUiATCNX-7nvQ#&#pAa38eQ!4)Czyb}_?9v@rGV zAfj5TlynVZV&Qu{69B&c#E4|h&jl@T zfZ2;AG;ql1k;ypF_?OU8jlHqa>}GI`Ehrr2XL^eyNMcTcSkMuO%ZTEp#K@bQA)^tq zQyLp4L`fP*I;dA?#tp`ILt$#cW`~ITtI^qfaK1o0nK+uP=R5}Vj&r84r#}NXoUR%k z@N=A?KxJppz=M%bOVAvEsn{=0s%tkoth!v~YVL|%98WdELJE0wbrQ>EG-+GrDxud! zm`);wCQz%>nsNx5%%vR2p~v?@qhqWzMRdiSeV~Shvf}hlho(ldn1IHn`IFD?q&rvr z)z+hG%V)(J|&^<65l;CCbws z*5Ch%48sjzDj{Q@&RP$w0qmIQjiuXgx5F*r!+O`#ZMoOcO=kcatUHzx%*PK6wvz}& zci0EG#xL}HcPm1Dc&#q2*Wp1$r*Enk{*DlscesKo&cEUna>97GWPZ=mZL4>N=*4mD zOMt^eFoE?BRde!qrif2Lh4?Dy#^} zl%>*gfZ}evw0_*_mK7if?l-~aa!7SbCY6Vx%Ql5emg;PURkG8_R{XfhINV*5Mm#w@ z#1dw=$ELcmPj3e5>Q?$#<;txJM}q!GSB!OAUoJJ4$5QKA#cL9e;yL0b)B{IJ$1ZCj)?Zgu2bfWasA1td1^(DAP zqiM$@(+D-m7mr}^5vW7eni}M!2o1bYgB88YE=XxTT+LA>$WORC;nNia6g)ZJxh$I1 z+q-iz^4iK@53aCw_|q8budD6JS#8W=hP`4+}0L4z3>|yn9DH!}v{bWr~_VeV; z<63afG)1I;cgmNB$D*&2hP>9igKtCzl4f&uxgu11KKSKjzt|2<<=}BljS4W{ok^1k z#DsU71WyhEhFKBoYW)1EI~ zNB9$pXbuXZ8D}!W|0)*BiW*V6KK-Z5XLqcqMQX&cI7gaq>^w}0SprG`{R-U1)OsQGNgoKB&`bj3F{TA#!P zEBSS0{yLaDQ?qu)_K~OrGTT5eLj*EoQV!@v)2+%m>^xCI*4bTvT~+(-YB&9s01YvM zToT)CLhxq@hWwx!(TlLHx}|4$L4vZ`$p?%~(e4YsetP}8Wht)pGxriZlh&dC4luoA z<%;b&0QC~6l65b7Wz|8&)It2MSz&IaIKNF;jaV6E>7;2skhYJ*`zc68Q`h=qdMjy< z*n?EyrYYrM1JxrB&^hjF`Yk@nEf7Xr+7%n;jT~ZzZDq~wylRfkZ`7f~(@VtDWDGmx9Nf)mplvN^qqqL((9NMB{Z3wpU&I5OLn2aM^D z?o`kfW`#oJv|Kz*RLu2PCJK!4FbVKNa2;{FwFJ26xk;)Q#LZmUiWGau)q6@q z0z+VBhCE$OJ|e5qVgbJzD+*Pq+8{Mbi*Q2_C&f0}GWe~APPx}a;08cwb_~b6vCf#rVLKX^`}Se2xP&X2L?%lI5%ls zWJAcLMz4Ky1*9h2e^E)Mr0sApXp$1JArnO+{(JpG8gZJ~T zIeD&13FeYJh*eMD0FShpoe!o{f^zIx(Wi%;zl4c~o2`MN%Q%ay zV&zn;tl)z(A|ERqJ5Yob!gufB0i${Gm(jx_sK&6>;^1I8ltnhC^UvUjM zL%B;_BLY716g~*$Kf+Icr0{=|gLnz{dgd<1ZqSDeqYh-tD`iW8zCrPPC;YUgBFVuH zc{t{T6;QkcE4|0S#|00mA|8Ht{Yg0Gc8Nqbz+582~_Ep+z!zZ5@(;fJ0K~%#^ zh{~q`jCuV-J>$$IS3{R>PtOlXZICK1*JKBoryX66D6Xs)*VF6{OZJ*!U+~R7`+(l; z?zvcyCr7-9MKT?7#mFc0iy|Rm56L8yU^huDGOIZiI_giib`^#GXNnR*nEO`a7qt!M zw?|jKZ$V!YV<;8%?c{y>d7=r(Q$z zs~AR8Oa}YA1d(zLn{CZ~bSO=U@K&TdB1EBN)w*QP&MRf$Yf{p6bj11Xa~}h@Ohie- zCJl`@>jIH$7)MDA#1;3yCLP2k9bqZc=`sg=RuUWYgFWHUDbYa1wPG`66MCk5pjx8- zDX#1m(5byuKqU5|`X?5od8|v?8`pdE+-_)+Fv*l;1GB327v5hzYHs{L-m%?CG$B;_ zdae8^ff4NAG3s8MZ>V8@v^ zlMvnYu~^*X5tSv9l}(0RXUu`u~f?{J%8y|62b4S@T1x zAF9}{C_i4I!H^R~2!Hv2U?FFX&{iwO$wJ~p5}D~|K@+HmLo5>YUG+#Wr>#s)#OEx$ z8+k03-Yb`13Y05IP)8?tteEcHK1I1ixkvC8@fMdqzNTwCj@s-_@BXEI`J8y(e0g1W z?RegN-$iHC0G#&YeVPq`VxWD++2vtZ$-Nmy(H{5^0 ztA-tOF2iPdYR;Wm`*hoC!Kp4P8?0DNuOC|Q$VJEGA|A;pzm>X(B#1G^RLlnI!?1~`)|0*q5lCx5GAfxosDm|GJi=tD zh9mhKs$7h!C_`MDe_P*pWEam0a5Ny~8pz7q_{{*BrsokMU>lcu1o^UMGaMww7g|Wg z4VnG5Fq2`EzTHpZkjXpjldOZ6?$zMx7;`Z`Exy*wKn#K6r|KJvb8CgTdwWJ$$kaLa zgOUBgTcgFO^t|swYBJJqrJ$m=mT3b=zosV02_Vc*_Kj(8iz+EqZN-#1Pq`w#SmU!h zh%DqaF{xrp+lwyosoUj|(dpyy%HEsx@azl#2!P^1RItNqH|DC^g?=Sy%0DPRTa76) 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%0A_n$kBU5;swOXPp9%TE-P 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 h`lFyoo|*Hbkj$AdSDImw#8wb=7qVUol#kL$5#@ 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 E1LV)(C;$Ke literal 0 HcmV?d00001 diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java index 5e398a028..67365a0e3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java @@ -16,6 +16,7 @@ import com.simibubi.create.foundation.render.backend.instancing.IInstanceRendere import com.simibubi.create.foundation.render.backend.light.GridAlignedBB; import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; +import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorldStarlight; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; @@ -33,12 +34,7 @@ import net.minecraft.world.gen.feature.template.Template; import net.minecraft.world.lighting.WorldLightManager; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.model.data.EmptyModelData; -import org.lwjgl.opengl.GL11; - -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Random; +import net.minecraftforge.fml.ModList; public class RenderedContraption { private final HashMap renderLayers = new HashMap<>(); @@ -170,6 +166,14 @@ public class RenderedContraption { } private static PlacementSimulationWorld setupRenderWorld(World world, Contraption c) { + if (ModList.get().isLoaded("starlight")) { + return PlacementSimulationWorldStarlight.setupRenderWorldStarlight(world, c); + } else { + return setupRenderWorldVanilla(world, c); + } + } + + private static PlacementSimulationWorld setupRenderWorldVanilla(World world, Contraption c) { PlacementSimulationWorld renderWorld = new PlacementSimulationWorld(world); renderWorld.setTileEntities(c.presentTileEntities.values()); diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java index 70f99bc27..e0dc217f2 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java @@ -3,6 +3,8 @@ package com.simibubi.create.content.schematics; import com.simibubi.create.Create; import com.simibubi.create.foundation.utility.worldWrappers.WrappedChunkProvider; import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import com.simibubi.create.foundation.utility.worldWrappers.chunk.WrappedChunk; + import net.minecraft.block.AbstractFurnaceBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -43,7 +45,7 @@ public class SchematicWorld extends WrappedWorld implements IServerWorld { } public SchematicWorld(BlockPos anchor, World original) { - super(original, new WrappedChunkProvider()); + super(original, new WrappedChunkProvider(WrappedChunk::new)); this.blocks = new HashMap<>(); this.tileEntities = new HashMap<>(); this.bounds = new MutableBoundingBox(); diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorld.java index 9e548cf46..1a8164a03 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorld.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorld.java @@ -6,12 +6,19 @@ import java.util.HashSet; import java.util.function.Predicate; import com.simibubi.create.foundation.render.backend.instancing.IFlywheelWorld; +import com.simibubi.create.foundation.utility.worldWrappers.chunk.WrappedChunk; + +import ca.spottedleaf.starlight.common.light.VariableBlockLightHandler; +import ca.spottedleaf.starlight.common.light.VariableBlockLightHandlerImpl; +import ca.spottedleaf.starlight.common.world.ExtendedWorld; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.SectionPos; import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunk; import net.minecraft.world.lighting.WorldLightManager; public class PlacementSimulationWorld extends WrappedWorld implements IFlywheelWorld { @@ -24,7 +31,7 @@ public class PlacementSimulationWorld extends WrappedWorld implements IFlywheelW private final BlockPos.Mutable scratch = new BlockPos.Mutable(); public PlacementSimulationWorld(World wrapped) { - this(wrapped, new WrappedChunkProvider()); + this(wrapped, new WrappedChunkProvider(WrappedChunk::new)); } public PlacementSimulationWorld(World wrapped, WrappedChunkProvider chunkProvider) { diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorldStarlight.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorldStarlight.java new file mode 100644 index 000000000..f4f66858e --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationWorldStarlight.java @@ -0,0 +1,60 @@ +package com.simibubi.create.foundation.utility.worldWrappers; + +import ca.spottedleaf.starlight.common.light.VariableBlockLightHandler; +import ca.spottedleaf.starlight.common.light.VariableBlockLightHandlerImpl; +import ca.spottedleaf.starlight.common.world.ExtendedWorld; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunk; +import net.minecraft.world.gen.feature.template.Template; +import net.minecraft.world.lighting.WorldLightManager; + +import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; +import com.simibubi.create.foundation.utility.worldWrappers.chunk.WrappedChunkStarlight; + +public class PlacementSimulationWorldStarlight extends PlacementSimulationWorld implements ExtendedWorld { + + VariableBlockLightHandler variableBlockLightHandler = new VariableBlockLightHandlerImpl(); + + public PlacementSimulationWorldStarlight(World wrapped) { + super(wrapped, new WrappedChunkProvider(WrappedChunkStarlight::new)); + } + + @Override + public Chunk getChunkAtImmediately(int i, int i1) { + return null; + } + + @Override + public IChunk getAnyChunkImmediately(int i, int i1) { + return null; + } + + @Override + public VariableBlockLightHandler getCustomLightHandler() { + return variableBlockLightHandler; + } + + @Override + public void setCustomLightHandler(VariableBlockLightHandler variableBlockLightHandler) { + this.variableBlockLightHandler = variableBlockLightHandler; + } + + public static PlacementSimulationWorld setupRenderWorldStarlight(World world, Contraption c) { + PlacementSimulationWorld renderWorld = new PlacementSimulationWorldStarlight(world); + + renderWorld.setTileEntities(c.presentTileEntities.values()); + + for (Template.BlockInfo info : c.getBlocks() + .values()) + renderWorld.setBlockState(info.pos, info.state); + + WorldLightManager lighter = renderWorld.lighter; + + renderWorld.chunkProvider.getLightSources().forEach((pos) -> lighter.func_215573_a(pos, renderWorld.getLightValue(pos))); + + lighter.tick(Integer.MAX_VALUE, true, false); + + return renderWorld; + } +} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java index 4bb1dfffa..a364ceb47 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java @@ -21,6 +21,12 @@ public class WrappedChunkProvider extends AbstractChunkProvider { public HashMap chunks; + protected final ChunkFactory chunkFactory; + + public WrappedChunkProvider(ChunkFactory chunkFactory) { + this.chunkFactory = chunkFactory; + } + public WrappedChunkProvider setWorld(PlacementSimulationWorld world) { this.world = world; this.chunks = new HashMap<>(); @@ -58,7 +64,8 @@ public class WrappedChunkProvider extends AbstractChunkProvider { if (chunks == null) return null; - return chunks.computeIfAbsent(pos, $ -> new WrappedChunk(world, x, z)); + + return chunks.computeIfAbsent(pos, $ -> chunkFactory.create(world, x, z)); } @Override @@ -70,4 +77,8 @@ public class WrappedChunkProvider extends AbstractChunkProvider { public WorldLightManager getLightManager() { return world.getLightingProvider(); } + + public interface ChunkFactory { + WrappedChunk create(PlacementSimulationWorld world, int x, int z); + } } diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java index 5f1132831..a3ac8be0e 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java @@ -9,6 +9,9 @@ import javax.annotation.Nullable; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; +import ca.spottedleaf.starlight.common.chunk.ExtendedChunk; +import ca.spottedleaf.starlight.common.light.SWMRNibbleArray; +import ca.spottedleaf.starlight.common.light.StarLightEngine; import it.unimi.dsi.fastutil.longs.LongSet; import it.unimi.dsi.fastutil.shorts.ShortList; import net.minecraft.block.Block; @@ -120,7 +123,7 @@ public class WrappedChunk implements IChunk { @Override public ChunkPos getPos() { - return null; + return pos; } @Override @@ -257,4 +260,5 @@ public class WrappedChunk implements IChunk { return null; } + } diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunkStarlight.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunkStarlight.java new file mode 100644 index 000000000..e3aed0267 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunkStarlight.java @@ -0,0 +1,77 @@ +package com.simibubi.create.foundation.utility.worldWrappers.chunk; + +import ca.spottedleaf.starlight.common.chunk.ExtendedChunk; +import ca.spottedleaf.starlight.common.light.SWMRNibbleArray; +import ca.spottedleaf.starlight.common.light.StarLightEngine; +import net.minecraft.world.chunk.ChunkSection; +import net.minecraft.world.chunk.IChunk; + +import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; + +public class WrappedChunkStarlight extends WrappedChunk implements ExtendedChunk { + + private SWMRNibbleArray[] blockNibbles; + private SWMRNibbleArray[] skyNibbles; + private boolean[] skyEmptinessMap; + private boolean[] blockEmptinessMap; + + public WrappedChunkStarlight(PlacementSimulationWorld world, int x, int z) { + super(world, x, z); + + this.blockNibbles = StarLightEngine.getFilledEmptyLight(world); + this.skyNibbles = StarLightEngine.getFilledEmptyLight(world); + this.skyEmptinessMap = getEmptySectionsForChunk(this); + this.blockEmptinessMap = getEmptySectionsForChunk(this); + } + + @Override + public SWMRNibbleArray[] getBlockNibbles() { + return blockNibbles; + } + + @Override + public void setBlockNibbles(SWMRNibbleArray[] swmrNibbleArrays) { + this.blockNibbles = swmrNibbleArrays; + } + + @Override + public SWMRNibbleArray[] getSkyNibbles() { + return skyNibbles; + } + + @Override + public void setSkyNibbles(SWMRNibbleArray[] swmrNibbleArrays) { + this.skyNibbles = swmrNibbleArrays; + } + + @Override + public boolean[] getSkyEmptinessMap() { + return skyEmptinessMap; + } + + @Override + public void setSkyEmptinessMap(boolean[] booleans) { + this.skyEmptinessMap = booleans; + } + + @Override + public boolean[] getBlockEmptinessMap() { + return blockEmptinessMap; + } + + @Override + public void setBlockEmptinessMap(boolean[] booleans) { + this.blockEmptinessMap = booleans; + } + + public static boolean[] getEmptySectionsForChunk(IChunk chunk) { + ChunkSection[] sections = chunk.getSections(); + boolean[] ret = new boolean[sections.length]; + + for (int i = 0; i < sections.length; ++i) { + ret[i] = sections[i] == null || sections[i].isEmpty(); + } + + return ret; + } +}