From f04b586af8a3b4f53a77eefba8cc460cf5451412 Mon Sep 17 00:00:00 2001 From: blowfish Date: Sat, 12 Jan 2019 22:13:59 -0800 Subject: [PATCH] Fairing material updater module --- .../GameData/ReStock/Plugins/Restock.dll | Bin 8704 -> 8192 bytes .../ModuleRestockModifyFairingMaterials.cs | 80 ++++++++++++++++++ Source/Restock/Restock.csproj | 1 + 3 files changed, 81 insertions(+) create mode 100644 Source/Restock/ModuleRestockModifyFairingMaterials.cs diff --git a/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll b/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll index 5e86d2990152ca0c3c47b4bc7c736507199e11ad..e323f09e6e189cb296d1cc01a6e7ec0a6f461fa6 100644 GIT binary patch delta 2739 zcmZ8jeN0v78GoMh@t%7R_Z~Rsz!gx~1w<}fKv5JBjS{Ou)E4HLCAKOVI`699dcp<1#Gti z=l4Dzzvtt9&U??jqYsU)f9|QuSKnGaL37s~s!ZnbGNNJ_#H?{&%jutenf;Kt#yqf! zs5Pw6>cc*+u@5W&BZ<2>e45i-8eZlaE)Q>WWy$82+2Bqr8kw|bF;UDT;?ON^3A?q< z+!Q=aLHCzTc0Po3EIi&g;EBFGGEWnOgLG8SpO2QD= zBhhRHgmn8{;K~PqwVw<04J+u`{vfmx5x%LrhHGZ4Ad4(&+pCYx%*@;_6i2a1_Ju3z zEmve+c;2fcE|A-b(U}*h5G_-=mRcOXtrzdFhQGl&wggK(*J-I52*W8ruv^wczjk#N z+ezDnsk9{J1y9Hx>mk?a!Ap|V068xaYpnv$ikyu{gDdmBR{KW%7S~8MhTTRYw-iM5 zjK^iW)`CZU%SDUNW|rSgCxSN-0%8+_g_8T)p^&kL&O)oMRhA9Z7?wEoH?JY;#)t8E?6l>^vp80Ewk2F?E-!9{s3k_)u++)1%5}AtS{>%h-hp;# z^|2s>B5GHOI%^nHGE!^cPzNcIT?;X0smW(GOgbK&8+9zW^trg`@H!A9DFY|YiVm-T zpoHb3v^hGwL1ugi;2Y@*&q!^AIJ`+3btLso3zL_dnauz~XLwRHb60p(G_C!$NmO-= zD230^0Sof>!60+!t4AMf8f1&W0!XGGnM{!=_dxoHKg(mDaZ9-=@ z-9vtdzDLuLuR-2GUqVqqp>Zu|I&?;#hWmsu4bv^UfihoX*~)$M22%VJ6Bd+DeUzo2 zV3aofRPRDmM)4VTK_8)AhYrHx&<>zYOHg2f>cDsCO=XYrG;N_qG$bgd%PMzKD`(Rq z=*XsGI2^jAT3IS&qWh-AI#>j~j{t|(UThnd}W3q?PakxKa zX=Aj{>?fTj=QaHq)@h&uVRW+i5*~s{2b4CO#iTsEcIJJ8{0CZ&(O0EX@A3*XVA0|^ zZLL)at#h#qyc>N%G(qd0)%asP9*cI&`R*v6-2dC)G7Vt(Oy_j@2Aj3a;%+uj&7j9| z_fV8B8Jr^*i=YyqO|`%RYEsyyutQ;&!XAZv3j2XYlu`0wg+stnIt3K;y22~82^%_3 zaw9RC5%rKgAuTg#m{~G&V`|LT$=2IxjO37O+2D+sg2JW{g6MVebm8Uv@(!C z)Uv>@8-w&RjTzsfE`FHDAir;(L*%KU+>_XbX4C8Y*m;WSIbs~ubSOl zNau{*yhx4fLt15I`G;IDI$)7wJghL{ZZ#u{oL<^61o!mNC9mDe(L5NBnHL%iv9g}-w%UJn0%O)G+WH3Zh zV=ytOm}5#gmbCKAywUM8uPcHi-smZ*MW8y42K97A6PikjQ|yhtB9aVr#4@I`ax!gR z4tf-2ywNN8M`B(Cj*J%s>M2wwuNNk%pdZI^!tXC=+?FYF53_gF8$x3so5)QU7 JDYx_!{x81p-k<;g delta 2932 zcmZ8jYitzP6+UMkcXr3?v1iAuZ7|N-#(43rDK-RbUIv-h0u4~(Di%S-sY<_l*9O$F z_q*qud(L;xJ@?+(?O)Wtq@>zk8MkZaJ0y#>=!LIT-!CGxa zuAHF}xkd)K)1O3S*V?HXk*JVTK`N|U{$z;B;!F`7M4}Q(;wgaP$ANwoAkzFU5`_E- zkozQkVK`e2IrB6^5;c%gZQ)G&cmmG|XEx@Q9LP|U?U|WwSX{$350`=YDnOSu zzYbEeeT;SF5$ob7Sw%Q=ZahUIAxW(~sc@~s_5Vi-n?H>xXNPl>6rgb$I;iOhRBrE20vfFSDGVvD z*Afj7veN;X-^uE}1gX|XOwuk%H0GpNLFOa5BH7e>J>xOFnjja%BF!~$v_i)V!%u9F zXQWoSMt*}lGc`?kBIa4iQWtAF?$1Od8YcJ5wMw7$EZ1_yE8R`ElQFe}h0Ac0M{UE7~6 zwL-VB!OQH1r)xjXo1CX=c9O|z6zz-^9d-*E!fs&}XVy+yZlT`{!EXt!7)@n!A!@OG z^DxwpH-D~{m>-my9V-{Wnu=sbkVQ2yR&Qm|HzTo762t*9zZDp<)MohDtz=;s-OtC} zeH<73-kkW170$L{CX_I6`JgO$q=d6eA^Xb!o{_AI8j0l)v$$QhuY=SxEwoCW@CaI?8K$6LD*P^AH;QNqatQhf|3??pq)GG?zM;@p__D%Z zE1%c+t|4fT!hgYH(@a!m(+%)DG)VU#zX!REmLjR3qsCh~)1f2!Jxs4RBn|)tU8GA$ zwt;0qH_S^Qx{u`uDx#ItOFuv_ZF*B*hS+V&pJ5kt3q?EhJS;YqBEb==gQr8kQOpmJ zUXZC@(jBTp##J;4#pMKDM>3lhp)Q+Dm>jyU3aSvYpc|$PyQ#t&K;e+Z691^|j&TWl zMKnbM-hJ|~m^PaY`r=30OG?wgqT}kv;Ma{i9>V;OXfTIiEgxd0&&BsyP^Wp6*TyB; zMcPWUG21hydDbF?9Z=c;eWDGJPOpw>oAp;&rw^+TMuTOiun8vpL1}pwlX~&u9G?@E zeWc|WbsbXbZJvSxEIK@<)mzojPOGKe4u4NHK|7n*_+xC0Md!xmuBbV={_{w})Pd$R z4eRn%bqYHbb^#}#knf9hG`wQ@*9vpG=GdNGI1xLHm*`mTH%Wd(+YoRK8vrXVPiX2sMdW-GmUTa>s&6 z8Q?iXRo?0)#<=0}cu$E2PHh+c1r1!o0lgrZiPB4V?C#l`>FV<{n;L0#cW)nt`Ahuv zzTMlljh=~I(5x{f*jv=1t@cMx7cJBRGx~L7nV;zy-4Y$b9S`0rnH_xQ&6+)@9mlQ@ zf8Df$wo{yTQigosR*ZeL7nUr|pnVwoV3%4W?F;Hk21jp~;5G8a$j!^?ZMhZi{PdN! z3)wHe5&Uz)R8vfd_74P=v6@`56?USX(RII~_C57);U}$3fq? z!i-b2|4jq9P7`p_FauWv;*I4v6%`_`F?iq{K{VvZQ&!RBX#c^<(R2tYqMcF+L313< ziS`e*gfyWk+P4i6?LQ;p40OZ{rpc9L+RzS$ktf>!KK?N)LuCOS!9QZtzuYsy-ObUx z(S5Suv@95TOaxbwf!H2hL^~`jb{Cw+hESYjkVhgPE7M+)&ih7tN_CEPFB&>0w-MhW zXeWNR;&;J{@?fy6y7>LiPqb}nDPMi&^>^?7yz|gkg0p2C3jd7x@#o(`ynGVh59XI& ZAB|T&$D_`~2f7w%9(61K#zQl#{{b=Y`eOh9 diff --git a/Source/Restock/ModuleRestockModifyFairingMaterials.cs b/Source/Restock/ModuleRestockModifyFairingMaterials.cs new file mode 100644 index 00000000..e2e448c4 --- /dev/null +++ b/Source/Restock/ModuleRestockModifyFairingMaterials.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace Restock +{ + public class ModuleRestockModifyFairingMaterials : PartModule + { + [SerializeField] + private string serializedNode; + + public override void OnLoad(ConfigNode node) + { + base.OnLoad(node); + + if (serializedNode == null) + serializedNode = node.ToString(); + } + + public override void OnStart(StartState state) + { + base.OnStart(state); + + StartCoroutine(WaitAndUpdateMaterials()); + } + + private IEnumerator WaitAndUpdateMaterials() + { + yield return null; + + if (string.IsNullOrEmpty(serializedNode)) + { + Debug.LogError("Serialized node is null or empty!"); + yield break; + } + + ConfigNode node = ConfigNode.Parse(serializedNode).nodes[0]; + + ModuleProceduralFairing fairingModule = part.FindModuleImplementing(); + + if (fairingModule == null) + { + Debug.LogError("No fairing module found on part!"); + yield break; + } + + UpdateMaterial(fairingModule.FairingMaterial, node); + UpdateMaterial(fairingModule.FairingConeMaterial, node); + UpdateMaterial(fairingModule.FairingFlightMaterial, node); + UpdateMaterial(fairingModule.FairingFlightConeMaterial, node); + + foreach (ProceduralFairings.FairingPanel fairingPanel in fairingModule.Panels) + { + MeshRenderer renderer = fairingPanel.go.GetComponent(); + UpdateMaterial(renderer.material, node); + } + } + + private void UpdateMaterial(Material material, ConfigNode node) + { + foreach (ConfigNode node2 in node.nodes) + { + if (node2.name == "COLOR_PROPERTY") + { + string name = node2.GetValue("name"); + Color color = ConfigNode.ParseColor(node2.GetValue("color")); + + material.SetColor(name, color); + } + else if (node2.name == "FLOAT_PROPERTY") + { + string name = node2.GetValue("name"); + float value = float.Parse(node2.GetValue("value")); + + material.SetFloat(name, value); + } + } + } + } +} diff --git a/Source/Restock/Restock.csproj b/Source/Restock/Restock.csproj index a74979d0..5f036689 100644 --- a/Source/Restock/Restock.csproj +++ b/Source/Restock/Restock.csproj @@ -41,6 +41,7 @@ +