diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 18c06f8..fe26fc2 100644 Binary files a/GameData/ConformalDecals/Plugins/ConformalDecals.dll and b/GameData/ConformalDecals/Plugins/ConformalDecals.dll differ diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 12e8875..64bc2a8 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -89,10 +89,8 @@ namespace ConformalDecals { [KSPField] public Transform decalProjectorTransform; [KSPField] public Transform decalColliderTransform; - [KSPField] public MeshRenderer boundsRenderer; - [KSPField] public MeshRenderer frontRenderer; - [KSPField] public Material backMaterial; - [KSPField] public Vector2 backTextureBaseScale; + [KSPField] public Material backMaterial; + [KSPField] public Vector2 backTextureBaseScale; private const int DecalQueueMin = 2100; private const int DecalQueueMax = 2400; @@ -103,8 +101,9 @@ namespace ConformalDecals { private bool _isAttached; private Matrix4x4 _orthoMatrix; - private Material _decalMaterial; - private Material _previewMaterial; + private Material _decalMaterial; + private Material _previewMaterial; + private MeshRenderer _boundsRenderer; private int DecalQueue { get { @@ -133,33 +132,24 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { try { // SETUP TRANSFORMS - // Projector transform, where the decal is projected from when attached - decalProjectorTransform = part.FindModelTransform(decalProjector); - if (decalProjectorTransform == null) throw new FormatException($"Could not find decalProjector transform: '{decalProjector}'."); - - // Model transform, containing all visible elements of the decal when not attached - decalModelTransform = part.FindModelTransform(decalModel); - if (decalModelTransform == null) throw new FormatException($"Could not find decalModel transform: '{decalModel}'."); - - // Front transform, shows a preview of the decal when unattached decalFrontTransform = part.FindModelTransform(decalFront); if (decalFrontTransform == null) throw new FormatException($"Could not find decalFront transform: '{decalFront}'."); - frontRenderer = decalFrontTransform.GetComponent(); + decalBackTransform = part.FindModelTransform(decalBack); + if (decalBackTransform == null) throw new FormatException($"Could not find decalBack transform: '{decalBack}'."); + + decalModelTransform = part.FindModelTransform(decalModel); + if (decalModelTransform == null) throw new FormatException($"Could not find decalModel transform: '{decalModel}'."); + + decalProjectorTransform = part.FindModelTransform(decalProjector); + if (decalProjectorTransform == null) throw new FormatException($"Could not find decalProjector transform: '{decalProjector}'."); - // Collider transform, selectable area and shows where the decal is projecting onto decalColliderTransform = part.FindModelTransform(decalCollider); if (decalColliderTransform == null) throw new FormatException($"Could not find decalCollider transform: '{decalCollider}'."); - boundsRenderer = decalColliderTransform.GetComponent(); - - // SETUP BACK + // SETUP BACK MATERIAL if (updateBackScale) { - decalBackTransform = part.FindModelTransform(decalBack); - if (decalBackTransform == null) throw new FormatException($"Could not find decalBack transform: '{decalBack}'."); - var backRenderer = decalBackTransform.GetComponent(); - if (backRenderer == null) { this.LogError($"Specified decalBack transform {decalBack} has no renderer attached! Setting updateBackScale to false."); updateBackScale = false; @@ -254,8 +244,7 @@ namespace ConformalDecals { public override void OnStart(StartState state) { materialProperties.RenderQueue = DecalQueue; - boundsRenderer = decalProjectorTransform.GetComponent(); - frontRenderer = decalFrontTransform.GetComponent(); + _boundsRenderer = decalProjectorTransform.GetComponent(); // handle tweakables if (HighLogic.LoadedSceneIsEditor) { @@ -289,7 +278,7 @@ namespace ConformalDecals { if (!selectableInFlight || !DecalConfig.SelectableInFlight) { decalColliderTransform.GetComponent().enabled = false; - boundsRenderer.enabled = false; + _boundsRenderer.enabled = false; } } } @@ -451,7 +440,7 @@ namespace ConformalDecals { // update projection foreach (var target in _targets) { - target.Project(_orthoMatrix, decalProjectorTransform, boundsRenderer.bounds, useBaseNormal); + target.Project(_orthoMatrix, decalProjectorTransform, _boundsRenderer.bounds, useBaseNormal); } } else { @@ -476,7 +465,7 @@ namespace ConformalDecals { _decalMaterial = materialProperties.DecalMaterial; _previewMaterial = materialProperties.PreviewMaterial; - if (!_isAttached) frontRenderer.material = _previewMaterial; + if (!_isAttached) decalFrontTransform.GetComponent().material = _previewMaterial; } protected void UpdateTargets() {