Allow selectability in flight to be disabled

This commit is contained in:
Andrew Cassidy 2020-06-19 23:24:01 -07:00
parent e04d5dc39a
commit e10ea7af5a
No known key found for this signature in database
GPG Key ID: 963017B38FD477A1
2 changed files with 14 additions and 10 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:162fe1f8fe6eb10578271fc3dfb8b69ec9654eee698afb51db935eb45c95643f oid sha256:cb10644075b5b826620fe4cf86eb78d71ad1ae3ab7a30527b5b67b329c3d978b
size 41472 size 41472

View File

@ -1,11 +1,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using ConformalDecals.MaterialProperties; using ConformalDecals.MaterialProperties;
using ConformalDecals.Util; using ConformalDecals.Util;
using UnityEngine; using UnityEngine;
namespace ConformalDecals { namespace ConformalDecals {
public class ModuleConformalDecal : PartModule { public class ModuleConformalDecal : PartModule {
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum DecalScaleMode { public enum DecalScaleMode {
HEIGHT, HEIGHT,
WIDTH, WIDTH,
@ -54,7 +56,7 @@ namespace ConformalDecals {
[KSPField] public int tileIndex = -1; [KSPField] public int tileIndex = -1;
[KSPField] public bool updateBackScale = true; [KSPField] public bool updateBackScale = true;
[KSPField] public bool selectableInFlight;
// INTERNAL VALUES // INTERNAL VALUES
[KSPField(guiName = "#LOC_ConformalDecals_gui-scale", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), [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"), [KSPField(guiName = "#LOC_ConformalDecals_gui-wear", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F0"),
UI_FloatRange()] UI_FloatRange()]
public float wear = 100; public float wear = 100;
[KSPField(isPersistant = true)] [KSPField(isPersistant = true)] public bool projectMultiple; // reserved for future features. do not modify
public bool projectMultiple; // reserved for future features. do not modify
[KSPField] public MaterialPropertyCollection materialProperties; [KSPField] public MaterialPropertyCollection materialProperties;
@ -100,9 +101,9 @@ namespace ConformalDecals {
private bool _isAttached; private bool _isAttached;
private Matrix4x4 _orthoMatrix; private Matrix4x4 _orthoMatrix;
private Material _decalMaterial; private Material _decalMaterial;
private Material _previewMaterial; private Material _previewMaterial;
private BoxCollider _boundsCollider; private MeshRenderer _boundsRenderer;
private int DecalQueue { private int DecalQueue {
get { get {
@ -246,7 +247,7 @@ namespace ConformalDecals {
materialProperties.RenderQueue = DecalQueue; materialProperties.RenderQueue = DecalQueue;
_boundsCollider = decalColliderTransform.GetComponent<BoxCollider>(); _boundsRenderer = decalProjectorTransform.GetComponent<MeshRenderer>();
UpdateMaterials(); UpdateMaterials();
@ -263,6 +264,9 @@ namespace ConformalDecals {
if (HighLogic.LoadedSceneIsFlight) { if (HighLogic.LoadedSceneIsFlight) {
Part.layerMask |= 1 << DecalConfig.DecalLayer; Part.layerMask |= 1 << DecalConfig.DecalLayer;
decalColliderTransform.gameObject.layer = DecalConfig.DecalLayer; decalColliderTransform.gameObject.layer = DecalConfig.DecalLayer;
if (!selectableInFlight) {
decalColliderTransform.GetComponent<Collider>().enabled = false;
}
} }
} }
@ -412,7 +416,7 @@ namespace ConformalDecals {
// update projection // update projection
foreach (var target in _targets) { foreach (var target in _targets) {
target.Project(_orthoMatrix, decalProjectorTransform, _boundsCollider.bounds, useBaseNormal); target.Project(_orthoMatrix, decalProjectorTransform, _boundsRenderer.bounds, useBaseNormal);
} }
} }
else { else {