From 516e0829a5d330b5d53d8a9a92bf97c993e61e99 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 31 Aug 2019 11:28:37 -0700 Subject: [PATCH] Use for loops instead of foreach loops to minimize GC --- .../GameData/ReStock/Plugins/Restock.dll | Bin 33792 -> 33792 bytes Source/Restock/ModuleRestockHeatEffects.cs | 6 +++--- Source/Restock/ModuleRestockISRUAnimation.cs | 8 ++++---- Source/Restock/ModuleRestockLinkedMesh.cs | 6 ++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll b/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll index 264fd8429ca2bd24232c40b64eeaff1b8acb021e..752515e0e579c817c4eb35218f7b5c7bf2e30e71 100644 GIT binary patch delta 8446 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∓$gM{UTbCj4+wGrtc+@pv@J%mi99tq0{ zyH&Ahpb2E!M~Imuml1Yb{~)Y3fn|jCgsp^|33n5A6N3E@F?6lBi-1TV+4gy0f}+u%G@uyO7}^Zq<7_@GFhonrYW~74a&R9Y2}`ovU62SOGAEJYBdxDUA2-!83G$bW~OvGOYvj0h5NE%ar)*tHk>6g0}OsHjP zKjLlt8~!6HB8`%-lc&kc zo5wpLkMD#Ez7NOq@CF~v@_0GQ)i`#tp=>8Ss`Pa2s`BQ$RumpfKUT7#tbP3ZS0CG* zw4kdy@(#0DHN|1^w6+_sHtkXsO>#Oc#>zVf)Tx<_d0PLdX?&ok^|(c`A^U)<30fu- ziUc(i#E5oxjigmIzZc#J^%jL?gJUiuD)`i&j~B zaPd*q({*vtN>+QuGs<&^r*)TSII4W^*7In(;A!pfEI>EZV?{BTot%+X?AfZuD_rO+ zb-|hm6zc_x7>&bs)v)tMaB()`#Klh~9+y;iO@G`6#y5*^aABo31rxTpEh+`wyd;!* z++2X;awfQI6kH4p0~tFwZfssM2xqWw$<6rsHYoaS@w8X!yMaxq;kZQ$@b47a$BHt$F8$7n=U-H_TYJw7w*+9Mz}9)b%?i zm$xr=JS5i+Z{Ph4hWCB;3OTbq=;zxu8bg}9jfKt2x)NHxmiUn|UGBS2v-TqGe*yRn BBq0C* delta 8513 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 diff --git a/Source/Restock/ModuleRestockHeatEffects.cs b/Source/Restock/ModuleRestockHeatEffects.cs index 61349689..6742d344 100644 --- a/Source/Restock/ModuleRestockHeatEffects.cs +++ b/Source/Restock/ModuleRestockHeatEffects.cs @@ -150,10 +150,10 @@ namespace Restock _propertyBlock.SetColor(_shaderBlackbodyID, Color.black); } - - foreach (var r in renderers) + + for (var i = 0; i < renderers.Count; i++) { - r.SetPropertyBlock(_propertyBlock); + renderers[i].SetPropertyBlock(_propertyBlock); } } } diff --git a/Source/Restock/ModuleRestockISRUAnimation.cs b/Source/Restock/ModuleRestockISRUAnimation.cs index b8fd27a7..f8c1a79c 100644 --- a/Source/Restock/ModuleRestockISRUAnimation.cs +++ b/Source/Restock/ModuleRestockISRUAnimation.cs @@ -312,11 +312,11 @@ namespace Restock { return false; } - } - - foreach (var m in _modules) + } + + for (var i = 0; i < _modules.Count; i++) { - if (m.ModuleIsActive()) + if (_modules[i].ModuleIsActive()) { return true; } diff --git a/Source/Restock/ModuleRestockLinkedMesh.cs b/Source/Restock/ModuleRestockLinkedMesh.cs index 5e3a1e19..f487c11c 100644 --- a/Source/Restock/ModuleRestockLinkedMesh.cs +++ b/Source/Restock/ModuleRestockLinkedMesh.cs @@ -100,10 +100,12 @@ namespace Restock texScale[pipeStretchIndex] = stretch; texOffset[pipeStretchIndex] = (1 - stretch) / 2; - foreach (var material in pipeMaterials) + for (var i = 0; i < pipeMaterials.Length; i++) { - foreach (var id in pipeMaterialIDs) + var material = pipeMaterials[i]; + for (var j = 0; j < pipeMaterialIDs.Length; j++) { + var id = pipeMaterialIDs[j]; material.SetTextureScale(id, texScale); material.SetTextureOffset(id, texOffset); }