From d8087cce3a49aa50006fa1f3d5f6cf3a29910be5 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 19 Jun 2020 22:09:25 -0700 Subject: [PATCH] Disable collision in flight scene --- .../ConformalDecals/Assets/decal-blank.mu | Bin 4892 -> 4972 bytes .../Plugins/ConformalDecals.dll | Bin 41472 -> 41472 bytes .../ConformalDecals/ModuleConformalDecal.cs | 117 +++++------------- 3 files changed, 30 insertions(+), 87 deletions(-) diff --git a/GameData/ConformalDecals/Assets/decal-blank.mu b/GameData/ConformalDecals/Assets/decal-blank.mu index a2e687d35e2d2daaf991b61445ffd7b5db30ded6..3c13c113692cacdfbf5512fc19c9be00874f06d9 100644 GIT binary patch delta 57 zcmbQE_C{^PTCUBfxV%_}7=VD!B{exQN7p$&Cnqx{b+Vw4=;Q`2w#nUGLKFLWC$Hs_ MWn|neD8S7O01n9zlmGw# delta 21 dcmaE(Hb-s4TCT~?01^`|N2Pyyn diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index bcdc259b013fd2878083d474adb857341c2c112e..9a4e15ecd4156a552f31c260b1e182fc494087a3 100644 GIT binary patch delta 13689 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 delta 13698 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 A`Tzg` diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 48bfa23..9b67eea 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -17,45 +17,21 @@ namespace ConformalDecals { // CONFIGURABLE VALUES - /// - /// Shader name. Should be one that supports decal projection. - /// [KSPField] public string shader = "ConformalDecals/Paint/Diffuse"; - /// - /// Decal front transform name. Required - /// - [KSPField] public string decalFront = "Decal-Front"; - - /// - /// Decal back transform name. Required if is true. - /// - [KSPField] public string decalBack = "Decal-Back"; - - /// - /// Decal model transform name. Is rescaled to preview the decal scale when unattached. - /// - /// - /// If unspecified, the decal front transform is used instead. - /// - [KSPField] public string decalModel = "Decal-Model"; - - /// - /// Decal projector transform name. The decal will project along the +Z axis of this transform. - /// - /// - /// if unspecified, the part "model" transform will be used instead. - /// + [KSPField] public string decalFront = "Decal-Front"; + [KSPField] public string decalBack = "Decal-Back"; + [KSPField] public string decalModel = "Decal-Model"; [KSPField] public string decalProjector = "Decal-Projector"; - - [KSPField] public string decalCollider = "Decal-Collider"; + [KSPField] public string decalCollider = "Decal-Collider"; // Parameters - [KSPField] public bool scaleAdjustable = true; - [KSPField] public float defaultScale = 1; - [KSPField] public Vector2 scaleRange = new Vector2(0, 4); - [KSPField] public DecalScaleMode scaleMode = DecalScaleMode.HEIGHT; + [KSPField] public bool scaleAdjustable = true; + [KSPField] public float defaultScale = 1; + [KSPField] public Vector2 scaleRange = new Vector2(0, 4); + + [KSPField] public DecalScaleMode scaleMode = DecalScaleMode.HEIGHT; [KSPField] public bool depthAdjustable = true; [KSPField] public float defaultDepth = 0.1f; @@ -77,45 +53,28 @@ namespace ConformalDecals { [KSPField] public Vector2 tileSize; [KSPField] public int tileIndex = -1; - /// - /// Should the back material scale be updated automatically? - /// [KSPField] public bool updateBackScale = true; // INTERNAL VALUES - /// - /// Decal scale factor, in meters. - /// + [KSPField(guiName = "#LOC_ConformalDecals_gui-scale", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), UI_FloatRange(stepIncrement = 0.05f)] public float scale = 1.0f; - /// - /// Projection depth value for the decal projector, in meters. - /// [KSPField(guiName = "#LOC_ConformalDecals_gui-depth", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), UI_FloatRange(stepIncrement = 0.02f)] public float depth = 0.2f; - /// - /// Opacity value for the decal shader. - /// [KSPField(guiName = "#LOC_ConformalDecals_gui-opacity", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "P0"), UI_FloatRange(stepIncrement = 0.05f)] public float opacity = 1.0f; - /// - /// Alpha cutoff value for the decal shader. - /// [KSPField(guiName = "#LOC_ConformalDecals_gui-cutoff", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "P0"), UI_FloatRange(stepIncrement = 0.05f)] public float cutoff = 0.5f; - /// - /// Edge wear value for the decal shader. Only relevent when useBaseNormal is true and the shader is a paint shader - /// [KSPField(guiName = "#LOC_ConformalDecals_gui-wear", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F0"), UI_FloatRange()] public float wear = 100; @@ -126,7 +85,8 @@ namespace ConformalDecals { [KSPField] public Transform decalBackTransform; [KSPField] public Transform decalModelTransform; [KSPField] public Transform decalProjectorTransform; - + [KSPField] public Transform decalColliderTransform; + [KSPField] public Material backMaterial; [KSPField] public Vector2 backTextureBaseScale; @@ -139,10 +99,10 @@ namespace ConformalDecals { private bool _isAttached; private Matrix4x4 _orthoMatrix; - private Material _decalMaterial; - private Material _previewMaterial; + private Material _decalMaterial; + private Material _previewMaterial; private BoxCollider _boundsCollider; - + private int DecalQueue { get { _decalQueueCounter++; @@ -171,43 +131,22 @@ namespace ConformalDecals { this.Log("Loading module"); try { // SETUP TRANSFORMS - - // find front transform decalFrontTransform = part.FindModelTransform(decalFront); if (decalFrontTransform == null) throw new FormatException($"Could not find decalFront transform: '{decalFront}'."); - // find back transform - if (string.IsNullOrEmpty(decalBack)) { - if (updateBackScale) { - this.LogWarning("updateBackScale is true but has no specified decalBack transform!"); - this.LogWarning("Setting updateBackScale to false."); - updateBackScale = false; - } - } - else { - decalBackTransform = part.FindModelTransform(decalBack); - if (decalBackTransform == null) throw new FormatException($"Could not find decalBack transform: '{decalBack}'."); - } + decalBackTransform = part.FindModelTransform(decalBack); + if (decalBackTransform == null) throw new FormatException($"Could not find decalBack transform: '{decalBack}'."); - // find model transform - if (string.IsNullOrEmpty(decalModel)) { - decalModelTransform = decalFrontTransform; - } - else { - decalModelTransform = part.FindModelTransform(decalModel); - if (decalModelTransform == null) throw new FormatException($"Could not find decalModel transform: '{decalModel}'."); - } + decalModelTransform = part.FindModelTransform(decalModel); + if (decalModelTransform == null) throw new FormatException($"Could not find decalModel transform: '{decalModel}'."); - // find projector transform - if (string.IsNullOrEmpty(decalProjector)) { - decalProjectorTransform = part.transform; - } - else { - decalProjectorTransform = part.FindModelTransform(decalProjector); - if (decalProjectorTransform == null) throw new FormatException($"Could not find decalProjector transform: '{decalProjector}'."); - } + decalProjectorTransform = part.FindModelTransform(decalProjector); + if (decalProjectorTransform == null) throw new FormatException($"Could not find decalProjector transform: '{decalProjector}'."); + + decalColliderTransform = part.FindModelTransform(decalCollider); + if (decalColliderTransform == null) throw new FormatException($"Could not find decalCollider transform: '{decalCollider}'."); - // get back material if necessary + // SETUP BACK MATERIAL if (updateBackScale) { this.Log("Getting material and base scale for back material"); var backRenderer = decalBackTransform.GetComponent(); @@ -319,6 +258,10 @@ namespace ConformalDecals { OnAttach(); } } + + if (HighLogic.LoadedSceneIsFlight) { + decalColliderTransform.gameObject.layer = DecalConfig.DecalLayer; + } } public virtual void OnDestroy() { @@ -601,7 +544,7 @@ namespace ConformalDecals { public void Render(Camera camera) { if (!_isAttached) return; - + // render on each target object foreach (var target in _targets) { target.Render(_decalMaterial, part.mpb, camera);