From 1529bda41097210e18397db25041de7e640d78e8 Mon Sep 17 00:00:00 2001 From: ProDeath21 <> Date: Mon, 25 Mar 2024 20:21:32 +0100 Subject: [PATCH] 1.7.0 Automated MLOD optimized material fix --- Blender/_Release/L1960_Tools_1_7_0.zip | Bin 0 -> 29419 bytes .../L1960_Tools_1_7_0/ColorPalette_01.png | Bin 0 -> 16990 bytes .../L1960_Tools_1_7_0/ColorPalette_02.png | Bin 0 -> 15542 bytes .../L1960_Tools_1_7_0/CubeProjection.py | 94 +++++++++++++ .../_Source/L1960_Tools_1_7_0/Materials.py | 48 +++++++ .../_Source/L1960_Tools_1_7_0/PrepareLods.py | 128 ++++++++++++++++++ Blender/_Source/L1960_Tools_1_7_0/__init__.py | 113 ++++++++++++++++ 7 files changed, 383 insertions(+) create mode 100644 Blender/_Release/L1960_Tools_1_7_0.zip create mode 100644 Blender/_Source/L1960_Tools_1_7_0/ColorPalette_01.png create mode 100644 Blender/_Source/L1960_Tools_1_7_0/ColorPalette_02.png create mode 100644 Blender/_Source/L1960_Tools_1_7_0/CubeProjection.py create mode 100644 Blender/_Source/L1960_Tools_1_7_0/Materials.py create mode 100644 Blender/_Source/L1960_Tools_1_7_0/PrepareLods.py create mode 100644 Blender/_Source/L1960_Tools_1_7_0/__init__.py diff --git a/Blender/_Release/L1960_Tools_1_7_0.zip b/Blender/_Release/L1960_Tools_1_7_0.zip new file mode 100644 index 0000000000000000000000000000000000000000..a28b313850c31cc90c33083a0d7a9d5b8d97ca44 GIT binary patch literal 29419 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 G-G2djjq%a| literal 0 HcmV?d00001 diff --git a/Blender/_Source/L1960_Tools_1_7_0/ColorPalette_01.png b/Blender/_Source/L1960_Tools_1_7_0/ColorPalette_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ac18544e1ec26f5b66b2f11e06eef40422f6e3 GIT binary patch literal 16990 zcmeHtXH*l+wrCJ(N>NmhUZjYS&`YQ)AWgdTP6$Xzz=Yl+pn&wEpn#whL3)uAdXr)V zL?yIPq)Q3Cw-@}r@09!QTlb#(y#EfYSu2^@d(ZB(_e`GYXsJ+LV7veT0I1YdmGl6B zb9QHgoRl!rbXl$*0AOVCePHaaXXC~0hH$labb+$F`?x{bq27-60D$*MPO1rlOSl+% zijJs0KYt$-mSwW~Ci#^5w(pbYueNo^64WBr+~yzum^%07^Fh<8L+a@dei^3w;pps? zuWd$oZ)-auH_}SpHLYCPst(LqtMS_&^w`{Qe$>4=m_eg1jauDybZrK5?ey-< zAI8OxN11Q+0{ftWekl6MS>Edt-aqzxn9%EuF}`EtFWBQy-9I-CO!|{@LQ&&e8vGeX zI}?LF86y|)<5Q=X5C=!c^B$1trpnCBQ(@%I-4}-e0r1h@h?BU+qh&b^R<0tFjy6-v zOMlgH>)NizySVp}HjY2LkCZ~Y4lMRT#@o$T=S0(ccS{GPzgNOaze&`sd~Ir@PP&d0 z0d2OTf7DwF$k#1~KKx9!Uo{G~I^H6&pf>PZ!&lH1e8W0ie_bTB`2n{m5Msi*U((cr zI&2=Fx`36Ry}^&2O(Rc*hR@ANR=>SmSE7@3Vej~4Q)6qf-})+FWaNYMqkWg;Mg(cS z4L;0wbWKc$Nc717IBgfZYztM0ANCwPObjST4x64g(b0kYoDyZB8oEAa7Z38z_@enp zL_F56pt^RU#-)b(<=bZqiG2(24noWCh7V~|lQ22;cV2?r7w)8WcInQIvsLHgCHj~Y zK+V&chUn!U#6<|cZBI}K<$V8|U%>h$N_@avqo`7R&Ls-xUHeGUdCX%%G4@?Y)87p()iHu_B8PziBG8#J;jmhhm45EM9)Sz+e1f<5od&m2l-s548;b!zQQ>ztcZr zuw*rH`V_l7kfN{I9lf6=UOab1Z9}4!xj^|8d_{n(QNRIuR{bKuXO<0hxx@Wm62p5vlwlq2lIIMu+=`rXTm z)9Z~a7b-&2tGeJN<*@N0l}lfWo$SENA9kA!DE$w{B9~%QwFh`R?Bn|7XxfK}K5yHx z8NKB5synzU{M<2G*}kFc{ARogkG9H1Y}KpXPgjIyoF=*}nY~;C2OdH^i=xdTpIa&; zU@C1-ZtPCZ?#QMa9xw{Hxi;C&JgdN7Ud-bsD)i{AQh)Y#aMs>M++!(zEM-m5Z(mns6|e_VC%%5W{(~xW+~B-T(jRUD9fNDW?DKb{uXr*!-??e{L$MK zig)bZ9FSoE8pR5`kG}d6R{wb-L`(_dpshOI=P_`}U|jwk|60(}(2H}oWeSJh-YKNA;!{uVD-R=a`%Wj&=6j5>!{^jf{{|6zV!DNf*a}wd56?3Ozq14v-BT8ePV*XXE0Vc_) z3BPw2Q8YR+!b475J|@vHyK@6P^(jTNCB&?0ZElaKwZNY z>ISF|p3%&|vRdR0m0|cYiG*=VC)eBS!yDk;Smx9qZyU0Jfn#e49gk;MhIEGH>Gs<` zKfZj}$=a;^r9a3oa(*7r@%Axh&ax+sB)i-3gNWN&S*H~1_`2JZ6v@0Rv{;^t=D_E*7f7O;V-SU6$3AbF zytdA95w%qmeOp*CAmx6a_i=<#;>a-Zu_LK_MSt{WA-n8AltYfGfj_N>`S2Uc2s z9jO@)rKrg@`Ht_EEp&0aFIzCM8p>(|#hWBr?k74W20LuMRmA1Dm51xf+|$ZpXuzIz zwfcR_-)fSE)I!E=NV*5v?D0aZlh-Z}zSp>ymq)jmlFFXuQ7Y;gaQ_mO=9qdh(VnJK zMqu-YwD)%&hEg0bt+&^xr(|Udp+D%~+USfE4W}1dI26c}qTu%v!aUz5mG48uU&@wz zaBjvk3Cz>`{Vl_n#7jvnOi6E|-$V|nQBJ8TO;8~tT&OpnEm1^~96-_>4W_6I&u7>* z4z+*fCsyukw=m?}85eCyUnv#F^tHAn^S=Au(MC1!%qAx|XjoWZV2bCZn##RSE$ow2 zYsrAOe$STWnOU-QcZMc9Y>p0Lb}xUlKTl>G5C9bv)pc?AmD-J!oBG8IAVHFtH)AV zuV%h{G&GpO69Wv1XoHo5x@TNoP|q&ut;D592E1%jvHT{moaaz3K+3Lyfxh;*>M=T{ zP(1~>c^WP&Go+X#)f}}L*RpkyWupI@9Zj_93<)bf`22c*v#%k!?c+GTD4KUx&D%jE z)iazma<97SBKo{JF0u{|D!=`-G@M=ygIkx|0Um{H`KY`N?q!=0TTHXQK7L6<*Yh%W zZ^F$71zq9EId?Bb8RXq72L@x*WUuBL6ofIf4yh_;F3>&!mxXEGBeLQ&y#`2;#foZO>Bp> z@RFG7%T^(~XWFv3<74sk#o=K868n)juVM6ka&MSFi zM~I`Qo=it6k=@E&@-W^ zq9W(8p-)k-x%Ff@$WOJFv$%<7<*J+1OC6SkdpfjVh%G;=o20Y`pHuXoeBx4ZpP2vZ zc$n$cq+H_Ym(S`i`S`yPiOjtpe@xrfnyl+!vPO%T;Q7)0`4TiR8gu)056#{nZ7Evq zQ=H804ROt{mE0NpD7wwd=;_^8019NfN2%#P)%{5hJEm9WY?THUT3=qixO}eo0~El) zb@5W@Vtm{^J%w-C%q02{@^FerHqtibtts5uT$zV&K>$C#CvuVTyfzFlmU1-^=~I#Q zb})B{=oPYCj=?tpx~}oe{kOqZUREfU5+ym~JZ1<(B>ST!q9eny@inv@C2t7tUOc%e zC`fx#?D_PY^b@EnmQPlm9DP0#gJr@+Uefdd{s#D{~h}PM8fm^EQ`U|hn7{ZI3IgsDh0>dS)2vvq(K?G~Z zf3_>Oa@#8^=NaV7_CQtUvUuYa z=-}%IVw_)rEi@VJ!(*6Yx)|+3rC_ND{c6slVwFk@-3|q9 zPnO<-PRRwvCtRF@w;vRSHOJJG4txG=!H^rM7rvngDgCmOSKR$7Ch)M|HS}T?j|+?| zwY@W(gIpD<9z@+z zd4DK-bgdqYXa-hzSlj zAi;96mx-W;QiDXZJ_FG&cuUsy=q_848Xkgv(`GgNU&+hn?Nm`+i|j@}#y^!88KQp>-kWb1Ch-Gkb^ z^q!-FkNiFls+Ics3=gN_2cxHo>fZ_3_(@A(umUoHR5b1&x8&1~Hebg@ipy8LMQIZ#$ zF@eTC&&l2}Wiauppm{=6f`?x4iXTx8c~-MUr^gx>SLa5-Fwq@>8g#wax|ZuajE*n& zW-e8l+8ux4+T09o2CU&Kr=7D;GL~s#>feb7%qAvZu@p(^cjCZ_nFoIW0p^a^!?Y+; zQDpBG6x`Z3lbH-@lOjs{9oUsr4gKMqP2N7bH`(V>=~Q2pSSECH3fao*Glf1%k#ULC zv+_1^-PaY~GsyGiTE4@`V!z9B4f8Pu^!@PYb?q>QlcU?%nn;WY$?t8Dirt$e(_5B* zACOpHaQQB9qBF-5p;MgJH>(u&leXYe7SlShdstzbndZTq;_Hv9=aqnYi`f%1s$ z`hyjQSmC=>n;}S}xUgmNouB$&3SAar+Kg_`P*2#Ml4YIeuk7#-AJYbt+sw4k2=6Z~3dI{x-Sx!_xyl#pS=duvVfGf&$l&*B8o}opg?f? z6#m_yh;dwshr99a#<5D)N1PUBA~sSx&F@L6~(aS zIP<9zcyCrfX9i3q%i`S?IqibWYT6egqqAYB4>ync5Bqy#uZN>u3{r^gUc9%qI)#hQ zHc3u=8@xpxXUn5na^eRlyq6!EYnH0OlCsn*vBBk2v@%!Ht8;(ZscJiobS-x!Wzj5* zO@s504IwI##}z2yHN3;E={2r1hI&{ZDCyED6G+{pa7ap%K>I~>UAxCJ;1p{sa$sCf z)j`{eJN0(Q#Y|O>Rt&rQ(enNfU5}R@EE($_Uq&sQS0}qKNkzm(a;#Lc6F~Vbwb>yoYxVPMLz=m8rQ`sDY zn2Hy5m*k9;^>rK4gk!rUTC>hiXWKB(JcXjY>vHELp1m~u#@wLNn%O?(6SwxXVUmVv zU|2{DAlL56(O=IDq!?|EqDh>t5_#m6tlGxqu)#Z~`Tkaz?3h`2K{8Peyk#*00beeVw!quh@woxK^WP0Q6e z=x=tFw*TEu&YLaD%YiKlLVbz4uMAs?ekA99-BmZ-y)?_CsA?m*pNpP+)7tysLw4Cr z`pNtWzO%Nyb=u^k!(0)b*TBi(+=V`NKdzt+nK4g+ANM!v+hE*OMoa5K)}^czN;^e43Ip)jNH&k2NJmw61+i%Rb3XhlW&+15Q)o88heF zrDfZVE$&}ro04f0Qr9unuB8Ij3!zpUn6aXSxKH*S1OilHr@?>qZB@!5Jl&Zd~iaHdiFKyf%b=xhhMa`xyT&D zBA^@-^QLl(;!`2xYSX3J zv-2Y@2)m#%qhTr^x8SJFVhMWTxlqF#u=oUCmQutp`BuIE1rO7m}eU9f;oMiIp9_uPxL|d?c zD=u-Z=;_@TsLe^!M``ZIrx()Aw92iu?%lZrA%k>|>Nd__GvFXEJyLjY{rQQ+E}7-`hK(@zyjC*rEB#f@Dj)X^o|u$bN1}yK`ZsrpM{wp8 zKIyU3YA&{39Y8OH#xtBPWPP7R{_7m@>qF1Zhb!8_#uSI#d8w)1FYzjYC%q&q*PLfW z-%}(WoPR%wYpsa7aV-GW#oY2L{HDMIU(S&I3T&|01oo%qu{DF{RECDtO+AeB&5n3-uOq9bF3fZDT_!nIEyMgf)32G<7@*=wjWTuz52<#QsU7ujdQ^_yNf2@ zm6H^Ijy=oH6_BrBnkwN8;}efBBGZmpTYg4wxtOx%a%v;rL`3C4iD+Kpt{GI)GJG|& zXKwTrDPOo-6Q)NCe#>=LrKUpR`_ap?CN}j@o{ZWXIoo9eLS2JjX=;(i3uT!qH$PZv zI`mHSUQA-Vzb4WluRm zYU3(0>eREy89#0!xA5Ms6BX&nbR$o@o5nNpW@%A8@!Lu=ewuxow}CW9Ie8-!jWEl?P&KD(j!lTW(K)1>wpW6gk_LjH_{ z{*8pY8ja0Ix!3Q_1zn3PSNv*CWp~l{oOY6UbG+Ov`L)TN=f_=OGh!KQP3?iJ;~M>H z8%o_(_?((5=DP{SFJ*6~C$Ge331Fz?1SO-dawK72nAW~JeIB9yS=U+FGU-;>rlNni zyFzE=hM<%Z_c+#;)BL@Mj}RtADIh?H+F0Rh0o$Sbp~UxqIkj_7kCD081w|_6S2nGO z^>dtZAQ8-*OtdIzDBX{{Ot;hg)LxL*bnP0~oDU!^38;`9%DdBgLViTf&=?M99)4}w z{F;lpFtfvp>(y%4&!{I-R13ArN+C0k!<2Zq?-ukV=^LE9jstE>qHQXG|5x zU~7+%iTQpDY8x_FGZlFd_us0I?j13O;Dzw|7SdU@?9fbhox@)9RnUcd9bfcM#_%Yj z0IiPa@}Tl7007ZbM@2;)HATh09*PLhLumo=a;j~&uZK>&Q&+x4O~*GC_g32E(lw9g zx9D2#I`V&5v_|}76LVD6GiN3l3=UCQ0I%t?0IruP|}nx(5y0#A>E2rViiN zpF5*Tx~DV+e#b<&PP)GJE(bZzOI?FUPfxB3N`&u<>E!V#s+m5o`xNS}U5DPmz z9I8s?eSFGL^L6CJiTLF)SHn1#Q|0!lgxjMr?2Ozbf{a|@X95Q}AtOoWCScWJOA~B8 zNw;8uJj6|AZ3Aa9r(;bjj1kX7(@vw=86-PvuS4vug+&eggmPIgB-IZh*SO(9J; zMd(9ERbK>D-&gAa#Mc=Dw&PTgzaZ-^O&|b+y4$dO!(8AU2sUv#AjpUn8f)sXE4m_}>|!7>kPuMW+tE{mQ~m;g0zn^w-ZpN6!XP0*7)Dj!C)X5Y-awUZM22U2Qq zq`M6q0zD%|AP#aQ(6JX1wF5)NY=Ke|Hj+RwQK%G9N>~aCv=sx}i`j@vKyB^p|AB-y z!ja&WHZK3j)fp)}0x4lJ5r_yBVgnSh1KR?{#6@g@wxVJ}Kq;uWsF1zA7*s+?=ocwF zi1a;I1k8qDPDhxH160rr?(l2jOySaZbkyWHML>Um{+iKov2nL2AP{1}5pL(|h5S44 z14kHC-`(a+pTd&D!lJ@pVIg5L2`M27iN6CGLJ>%UFP>2q76OU>LHW!u(gbk`sIxS5+HoeeEv_b*M~m( z7Hls96tfYr0op)pM1l4~B9g*VQsPisn?Ef6H|j`Ndv`Az1oVyrK~jP=1Q+@x4g1YM zmC5(d+;}~No@q)*L<}e-3KS80AR;O)A}%c?%qjS%u!3hX{gM|MsrmrmhQrZ+D<@LIvbSXl4vkn$-x65UH((iW1=T?Eg(eZX#iZ!cEl#2>?*H zoeiQ+*F3^6A^~LXYMRPq3&hvy7>F*}x@7?X3{+}LcOH0;tPH_o_|<$_CM930mFL5~ zw0ENf`UpRvYtr!jg;~*b{RifJ&&a~IpPsjRIpo}yti zBW^|EBp0=SI$A$G2bhFJ85o>SHyzEJPbruqO;86Mblde^z@^jgz@+U51(T0XxTTpR z59-W^esIum{9^WPXHQvM#0nWxv!t~i7Ed5u@t1gB4i>WYy(gqx&;BXp5=TXdx@m(A=#`dkq zd#7b&wh2GL3z)eHzy;A2g?&ZAigcUF!afNtJtc~3J3dj$7IaH%15)#uhG>RSK}1E< zDfVXGFIlp5*TyK?;DRmHc11k6DjP_m>zI9dGse5MmyeJ3Jyl}!ZjnC9J| z9RD}C{eQ?>Us0Bye{uj$-b;1{IpfRnrsK@8gS8*a1M$0P&#@B=cPY~zbSWSGfMiRd z6~bgU7gwL21oTdjds*413`9jLTgV5{zdmmK)G)oxSABXoslAX4-qn*oZPHeoW5rlt zivlu6OCcN7OT#_^pJ%rx7f=dwq@FL1!oPzgA=4W09S=Rg}N?zQ_h`hn;dD1>RuVl z2#o4I@kjMMJ&uc%7C?mU;{?$%Wrk=J#fT!PAn+6HL|Dqob(qG-kJ8=(xjUo{fm;rW zlX{GS~PTes_I~?VlTrwZ# zk!2n<9|B(Arae;L0884T#%Hk}mfYGRdz=IEN#F5o$irye&PS zzWyE`oO-G#;P?=As0lyW8p)a-Ne}j#0`G#3eZcMIjoN`qx4cZMx1HguzsVeDLDb|5 zA%y$^m~M!=6SwFat4v~K5PM8833>leYURF)$-oW?R_>`%1oKk3cHW@;uHp0pe-cv`SEq>S$x^pOEc`Ie+2Z{5FG^Dp2v~F0yd91G3PN`R)zdIh;?+N# z;dy92#O;+7##ddaIg3w+S%lP`(rGw(^foAmeUsd0G%y%If}EISKS9>SrOBF9x{0r| zS_V&;0|4^R2?_UKOtk+Yb*=SwngXwB;JI02mDHz{<;cCZR#kKPz+{Pul{XbqR z$j!B;pGYKEUX-7Io>~T}#MSSF8DpITsI)%vB)KmQ;__qW7nZA!fnKow$)DsP7snxyb=8v%6}=WRb<6cwKJVBbw4aOQ%+B%`B(k4>j|!cJ*vwBn2k;m8 zJ=SRY+|r&*7wL3b-C3Sqg;tTxNKp9_Y*M%Ejyomf{tXL|a}&)8S9i}4*gMH;>CEl6 znVBOr1>PIMSJ|}Z7Z&2%`i{hWwt>@WB5fPa|nXpkrBHNh+=!G?;#Isip9v zybOz%m96dyCIF7{oS!`DE6bbAUvwUuwagkJHKOy6Uu4wqm9@;wQg98<-G3hGJ3d=Z zJvg&Wroai@jf*sZZ;m42P4BADjIqlytli>cQD|$j6i5j-#%nQ$D#9&)Q_ea&3>PdSz)d=+T*og_l>Tif)S7m%hCkGq$wI**fyJrJJIh!`xJQyEX}L;e&pG6 z7V=t`ecjjJ-vrl24{it(9IF`7SJN~%w{5NnZ=yr{z^3&<&d6wJ&!L&SuKCBYsH&|AWeKYx)$Z-(GDg4e*psYML!iFF_ZMZKwLb0u3NG4@yex+XGmT)2697 z?}4irUula>2cJMW0*Atq^r<-G@50`zR=yk6$DpJS*E0|mD5;rpPkktvgcN;?_E!xi zTNC|R{PB2oS>g7^^HihPR|%Et|9^N8a#-`~sIkHJ5|G{-ciw0h{V_8=2@SP)$Lil@ zhb4qan`>F#j%U}(kj(}7DRZPW32H)?w8Hdt$hQMVOl<*fyeX}>zhA+;ujROJ4ARMw z?C}zDh@zH<444Tx3P-g>qF5qRy!72Im(mVn1bp!VRwJBJ5On6(Ly07hrq2y3Cxqi~ z&-(Y2CntlL(bdMOl@3;nv}X5f+-g&E6rtm)pj`nqoewqEwt> zW5`uAko(=Dr0KY_Jx6aJry;IAWVKbT|R_LUVnmtLv%WMhr3Gyg7j zo`#)%pbuSPzKx5MBdnMEy76e0WgoBe?FI^lEzBq!t;P8XcH&HWTO8^?qtWCsC#R;n{tu1b} z)aUa_mH%kt$8yuPYZ-o^B^>flp%Ql@c(PsbeE3j(yaXMq+O)G!-;37vrfONTmGh6R zvod%wT57Ya?X2M-Lbr4B9qiyLW`s;;JyWy)$HQ*o8W2*nss~um zv~7%4bUO^=sNSt!YFoe97=Ugv zUQ9a>udd~w-=_QQn~v!7&VvdR0Lzbk`whzq0~=?{$AfA16C!KJ=ZvwwNj zqmMPupeqL!?mMoLxOzjpc)m}+t;wMoo;B4J9}I)N#^jqDZsW#x_4hQ=kCwI2hf|D% zB6cCv0>SO{c_kS|*kAtT?<}#f>whkhHl;zvrVB&@EP(`5kBQ?3@8F31H9o_hg}%62Y=&N1yH@ zygdE3#7w!RE84*yR$y#cVBjuA7paY|e9ejwt$Jl^a?Dq4^{ukAJkU70tPrY65G9hE zY6&LbT%DF#fnq8_mwJE}zXtRA^vF$nTsAkxSR5&03tNVZnW2uU!E@IBZj- z+5xlJLM1bcy;kq{J5OsCD=XWe!ENEBfkxM|!hllW#_`^=!p^GR6{EU7>dvWL^C1p; zkI~QQ(s}a-GV|E&-0kZa(}AmL5ioco9puxb1X|Q}W~^d}dq!V%)`x_qJysaD=WG5)RtwbQV}@ zeCLYjNb(xR1qLKHTrZghOO>MYkQXgWTKtyHTb>T2)wP+fO*K)W>IK}?W+0bYK60izw@UDo~ISd070GusAzn`6c}?V`y7 zOe&4BqtFN_OTz0KSb1BS@296Lpt8JC2}y{@G8+97iScC_M3;hVtX`y+ef-c@v2K1&AdlV0H1M;Y7vD^=-xdJ}bF6WO|61A;thNFmL8&(>WP6 zd+_*o=BdGBK00r+xpJo$k-ipl<8T{;G)6JH?|>VaLaXGQ1@ z`V`^Txq*Z(PomoDIL>T9-cQ(al$+j@y4X3sPH?9h=jUEDDThTYF?R4(?^g@&YT;c8 zV$8Gp3nG_N!f@%)a^6WT$%x8c*vsE3Msgbmowo@y#02)RtgxEUt=5e)W28xC9yz-X zSILjhx5nfee?Rh!glR$Vml!M1)69wIci{1Wd`A}Mw_llRUG>YpWg&w z2o|AZj>0V%(WK8hV^)seYqvPyK9=K0nPoei-FLLBadL)=AScTi`(@er9n_-SvB@Ww zV>hj{AQw@YuY^y`)L^0UqZP{9coV#qtTx(b`*#Z9EBo=>?l+F=S`ES_Y?wJVFdey+ zPbb@(4qJ-EA+aB#lzZyS?4XQhMS^A`vm-l{g?BIi;7 zAJR*EjWso^PT_p@5_7#}$m*_m9ppHvt}`^ruUGhGC3)b4Z{OH6ns3s3Q2>Dd&EHgw zub@s=%_pTg%9Aiq0q087fJBp}ZRsQrFG;1aX?!tB1p@hKciOA0@bK`^7~9s?wi;-0 zN>~2%Fyr&V*3U$r<2N2-V`BuYpR1~fzJw+9ouHZ8gx8(Ft=Ky~_tP!=PPE1p4dJZ> Opr)*)RD9Pu`2PUmEl~IX literal 0 HcmV?d00001 diff --git a/Blender/_Source/L1960_Tools_1_7_0/ColorPalette_02.png b/Blender/_Source/L1960_Tools_1_7_0/ColorPalette_02.png new file mode 100644 index 0000000000000000000000000000000000000000..68a926be528a08255b88e5290bbe12b5b98e9fe9 GIT binary patch literal 15542 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 1: + for uv_layer in reversed(arr_layers): + arr_layers.remove(uv_layer) + arr_layers.new(name = 'MLOD') + + + texture_filepath = os.path.join(L1960_path, colorpalettes[1]) + + if not len(obj.data.materials) == 0: + obj.data.materials.clear() + + palette_enum_selection = context.scene.color_palettes.mlod_enum_selection + mlod_material_name = "MLOD_" + palette_enum_selection[:-4] + + if not bpy.data.materials.get(mlod_material_name): + material = bpy.data.materials.new(name=mlod_material_name) + material.use_nodes = True + bsdf_node = material.node_tree.nodes["Principled BSDF"] + texImage = material.node_tree.nodes.new('ShaderNodeTexImage') + texImage.image = bpy.data.images.get(palette_enum_selection) + + material.node_tree.links.new(bsdf_node.inputs['Base Color'], texImage.outputs['Color']) + + obj.data.materials.append(bpy.data.materials.get(mlod_material_name)) + + + self.report({'INFO'}, 'Mesh configured like MLOD') + return {"FINISHED"} + + def import_palettes_textures(self): + for image_name in colorpalettes: + texture_name = image_name.split(".")[0] + if texture_name not in bpy.data.textures: + texture = bpy.data.textures.new(name=texture_name, type='IMAGE') + else: + texture = bpy.data.textures.get(texture_name) + if image_name not in bpy.data.images: + image = bpy.data.images.load(os.path.join(L1960_path, image_name)) + else: + image = bpy.data.images.get(image_name) + texture.image = image + +### PREPARE LODS ### + +class MESH_OT_prepare_lods_decimate(bpy.types.Operator): + """Copy current Mesh and apply decimate Modifier""" + + bl_idname = "mesh.prepare_lods_decimate" + bl_label = "Copy current Mesh and apply decimate Modifier" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + + #Selected Mesh + obj = bpy.context.active_object + + if obj not in bpy.context.selected_objects or obj.type != "MESH": + self.report({'WARNING'}, 'Select a Mesh to continue') + return {"CANCELLED"} + + if not obj.name[:-1].endswith('LOD'): + obj.name = obj.name + '_LOD0' + + LODnumber = context.scene.lod_slider #Get from Slider + startLODcount = int(obj.name[-1]) + endLODcount = startLODcount + LODnumber + + for i in range (startLODcount + 1, endLODcount): + new_obj = obj.copy() + new_obj.data = obj.data.copy() + new_obj.name = obj.name[:-1] + str(i) + bpy.context.collection.objects.link(new_obj) + + for t in range (startLODcount, i): + newModifierName = 'LOD_Decimate_' + str(t) + new_obj.modifiers.new(type='DECIMATE', name=newModifierName) + mod = new_obj.modifiers[newModifierName] + mod.ratio = 0.49 + mod.use_collapse_triangulate = True + + self.report({'INFO'}, 'LOD´s created') + return {"FINISHED"} \ No newline at end of file diff --git a/Blender/_Source/L1960_Tools_1_7_0/__init__.py b/Blender/_Source/L1960_Tools_1_7_0/__init__.py new file mode 100644 index 0000000..8a38e5b --- /dev/null +++ b/Blender/_Source/L1960_Tools_1_7_0/__init__.py @@ -0,0 +1,113 @@ +bl_info = { + "name": "L1960 Tools", + "author": "Prodeath21", + "version": (1, 7, 0), + "blender": (2, 80, 0), + "location": "3D Viewport > Sidebar > 1960Life category", + "description": "Set´s up the Projection-Modifier automatically and add´s in the Emptys if not allready created.", + "category": "Object", +} + +# ---------------------------------------------- +# Import modules +# ---------------------------------------------- +if "bpy" in locals(): + import imp + imp.reload(CubeProjection) + imp.reload(Materials) + imp.reload(PrepareLods) + print("L1960 Tools: Reloaded multifiles") +else: + from . import CubeProjection + from . import Materials + from . import PrepareLods + +import bpy + +from . CubeProjection import MESH_OT_add_auto_cube_projection, MESH_OT_add_modifier_to_mesh +from . Materials import MESH_OT_fix_material_names +from . PrepareLods import MESH_OT_prepare_lods_decimate, MESH_OT_set_up_mlod, EnumColorPalettes + +class L1960_PT_tools(bpy.types.Panel): + pass + #where to add the panel + bl_space_type = "VIEW_3D" + bl_region_type = "UI" + + #add labels + bl_label = "1960-Life Tools" + bl_category = "1960-Life" + + def draw(self, context): + """define the layout of the panel""" + box = self.layout.box() + # UV-Project helper + box.label(text="UV-Projection") + row = box.row() + row.operator("mesh.add_auto_cube_projection", text="Set up Projectors") + row = box.row() + row.operator("mesh.add_modifier_to_mesh", text="Add Modifier to Mesh") + self.layout.separator() + # Materials helper + box = self.layout.box() + box.label(text="Materials") + row = box.row() + row.operator("mesh.fix_material_names", text="Fix Material Name´s") + self.layout.separator() + # Generate LODs + box = self.layout.box() + box.label(text="LOD´s") + row = box.row() + row.operator("mesh.prepare_lods_decimate", text="Create LOD´s") + box.prop(context.scene, "lod_slider", text="Amount") + box = self.layout.box() + box.prop(context.scene.color_palettes, "mlod_enum_selection", expand=True) + row = box.row() + row.operator("mesh.set_up_mlod", text="Set up MLOD") + self.layout.separator() + ############################### + # Enfusion Blender Tools Linked + box = self.layout.box() + box.label(text="EBT Linked") + row = box.row() + row.operator("view3d.ebt_sort", text="Sort Objects") + # colliders setup is allowed in both OBJECT and EDIT mode + row = box.row() + row.operator("view3d.ebt_colliders_setup", text=" Colliders Setup") + row = box.row() + # Light Setup + row.operator("view3d.ebt_setup_light", text=" Light Setup") + row = box.row() + col = row.column(align=True) + # Update Materials + col.operator("scene.ebt_update_enf_materials",) + row = box.row() + col = row.column(align=True) + + +#register the panel with blender +modules = [ L1960_PT_tools, + MESH_OT_add_auto_cube_projection, + MESH_OT_add_modifier_to_mesh, + MESH_OT_fix_material_names, + MESH_OT_prepare_lods_decimate, + MESH_OT_set_up_mlod, + EnumColorPalettes +] + +def register(): + for mod in modules: + bpy.utils.register_class(mod) + + bpy.types.Scene.lod_slider = bpy.props.IntProperty(name="LOD Number", default=3, min=0, max=10) + bpy.types.Scene.color_palettes = bpy.props.PointerProperty(type=EnumColorPalettes) + +def unregister(): + for mod in modules: + bpy.utils.unregister_class(mod) + + del bpy.types.Scene.lod_slider + del bpy.types.Scene.color_palettes + +if __name__== "__main__": + register() \ No newline at end of file