From e10ea7af5a0eb1b0faaf7e383e70ef267a353a1a Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 19 Jun 2020 23:24:01 -0700 Subject: [PATCH] Allow selectability in flight to be disabled --- .../Plugins/ConformalDecals.dll | 2 +- .../ConformalDecals/ModuleConformalDecal.cs | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index e55b33d..31e40eb 100644 --- a/GameData/ConformalDecals/Plugins/ConformalDecals.dll +++ b/GameData/ConformalDecals/Plugins/ConformalDecals.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:162fe1f8fe6eb10578271fc3dfb8b69ec9654eee698afb51db935eb45c95643f +oid sha256:cb10644075b5b826620fe4cf86eb78d71ad1ae3ab7a30527b5b67b329c3d978b size 41472 diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 466ea57..9a997c0 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using ConformalDecals.MaterialProperties; using ConformalDecals.Util; using UnityEngine; namespace ConformalDecals { public class ModuleConformalDecal : PartModule { + [SuppressMessage("ReSharper", "InconsistentNaming")] public enum DecalScaleMode { HEIGHT, WIDTH, @@ -54,7 +56,7 @@ namespace ConformalDecals { [KSPField] public int tileIndex = -1; [KSPField] public bool updateBackScale = true; - + [KSPField] public bool selectableInFlight; // INTERNAL VALUES [KSPField(guiName = "#LOC_ConformalDecals_gui-scale", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), @@ -76,9 +78,8 @@ namespace ConformalDecals { [KSPField(guiName = "#LOC_ConformalDecals_gui-wear", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F0"), UI_FloatRange()] public float wear = 100; - - [KSPField(isPersistant = true)] - public bool projectMultiple; // reserved for future features. do not modify + + [KSPField(isPersistant = true)] public bool projectMultiple; // reserved for future features. do not modify [KSPField] public MaterialPropertyCollection materialProperties; @@ -100,9 +101,9 @@ namespace ConformalDecals { private bool _isAttached; private Matrix4x4 _orthoMatrix; - private Material _decalMaterial; - private Material _previewMaterial; - private BoxCollider _boundsCollider; + private Material _decalMaterial; + private Material _previewMaterial; + private MeshRenderer _boundsRenderer; private int DecalQueue { get { @@ -246,7 +247,7 @@ namespace ConformalDecals { materialProperties.RenderQueue = DecalQueue; - _boundsCollider = decalColliderTransform.GetComponent(); + _boundsRenderer = decalProjectorTransform.GetComponent(); UpdateMaterials(); @@ -263,6 +264,9 @@ namespace ConformalDecals { if (HighLogic.LoadedSceneIsFlight) { Part.layerMask |= 1 << DecalConfig.DecalLayer; decalColliderTransform.gameObject.layer = DecalConfig.DecalLayer; + if (!selectableInFlight) { + decalColliderTransform.GetComponent().enabled = false; + } } } @@ -412,7 +416,7 @@ namespace ConformalDecals { // update projection foreach (var target in _targets) { - target.Project(_orthoMatrix, decalProjectorTransform, _boundsCollider.bounds, useBaseNormal); + target.Project(_orthoMatrix, decalProjectorTransform, _boundsRenderer.bounds, useBaseNormal); } } else {