From 7b9ed99325cd2c2c1e6e435b534c23d4eee6eaf9 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 1 Jan 2021 14:28:30 -0800 Subject: [PATCH] Cleanup of abandoned saving code --- .../Plugins/ConformalDecals.dll | Bin 86016 -> 84480 bytes Source/ConformalDecals/IProjectionTarget.cs | 3 +- .../MaterialPropertyCollection.cs | 8 +- .../ConformalDecals/ModuleConformalDecal.cs | 2 +- Source/ConformalDecals/ModuleConformalFlag.cs | 5 +- .../ConformalDecals/ProjectionMeshTarget.cs | 74 ------------------ .../ConformalDecals/ProjectionPartTarget.cs | 39 +-------- 7 files changed, 9 insertions(+), 122 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 2336c5f607bd4a4c632ec990d6d7d11d7edc7f1f..98f7ec6916b8d0f17e9e8fbe6bb7866ec686af75 100644 GIT binary patch literal 84480 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

3_w#8rp}Y5?_%Wlx}P!pi>?9Q0<= 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 literal 86016 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 R&8c|`GS>N!_5V|U{}-3#RbT)B diff --git a/Source/ConformalDecals/IProjectionTarget.cs b/Source/ConformalDecals/IProjectionTarget.cs index 31f6f58..861833e 100644 --- a/Source/ConformalDecals/IProjectionTarget.cs +++ b/Source/ConformalDecals/IProjectionTarget.cs @@ -2,8 +2,7 @@ namespace ConformalDecals { public interface IProjectionTarget { - void Project(Matrix4x4 orthoMatrix, Transform projector, Bounds projectionBounds); + bool Project(Matrix4x4 orthoMatrix, Transform projector, Bounds projectionBounds); void Render(Material decalMaterial, MaterialPropertyBlock partMPB, Camera camera); - ConfigNode Save(); } } \ No newline at end of file diff --git a/Source/ConformalDecals/MaterialProperties/MaterialPropertyCollection.cs b/Source/ConformalDecals/MaterialProperties/MaterialPropertyCollection.cs index 5ffafbd..6d2e10f 100644 --- a/Source/ConformalDecals/MaterialProperties/MaterialPropertyCollection.cs +++ b/Source/ConformalDecals/MaterialProperties/MaterialPropertyCollection.cs @@ -95,7 +95,7 @@ namespace ConformalDecals.MaterialProperties { var property = MaterialProperty.Instantiate(_serializedProperties[i]); _materialProperties.Add(_serializedNames[i], property); - if (property is MaterialTextureProperty textureProperty && textureProperty.isMain) { + if (property is MaterialTextureProperty {isMain: true} textureProperty) { _mainTexture = textureProperty; } } @@ -214,7 +214,7 @@ namespace ConformalDecals.MaterialProperties { var newProperty = AddOrGetProperty(propertyName); newProperty.ParseNode(node); - if (newProperty is MaterialTextureProperty textureProperty && textureProperty.isMain) { + if (newProperty is MaterialTextureProperty {isMain: true} textureProperty) { _mainTexture = textureProperty; } @@ -252,7 +252,7 @@ namespace ConformalDecals.MaterialProperties { public void UpdateScale(Vector2 scale) { foreach (var entry in _materialProperties) { - if (entry.Value is MaterialTextureProperty textureProperty && textureProperty.autoScale) { + if (entry.Value is MaterialTextureProperty {autoScale: true} textureProperty) { textureProperty.SetScale(scale); } } @@ -263,7 +263,7 @@ namespace ConformalDecals.MaterialProperties { var mainTexSize = _mainTexture.Dimensions; foreach (var entry in _materialProperties) { - if (entry.Value is MaterialTextureProperty textureProperty && textureProperty.autoTile) { + if (entry.Value is MaterialTextureProperty {autoTile: true} textureProperty) { textureProperty.SetTile(tile, mainTexSize); } } diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 0e9ccdc..291971b 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -99,7 +99,7 @@ namespace ConformalDecals { private const int DecalQueueMax = 2400; private static int _decalQueueCounter = -1; - private Dictionary _targets = new Dictionary(); + private readonly Dictionary _targets = new Dictionary(); private bool _isAttached; private Matrix4x4 _orthoMatrix; diff --git a/Source/ConformalDecals/ModuleConformalFlag.cs b/Source/ConformalDecals/ModuleConformalFlag.cs index ecbefd4..857f56f 100644 --- a/Source/ConformalDecals/ModuleConformalFlag.cs +++ b/Source/ConformalDecals/ModuleConformalFlag.cs @@ -1,5 +1,4 @@ using ConformalDecals.MaterialProperties; -using ConformalDecals.Util; using UniLinq; using UnityEngine; @@ -46,8 +45,8 @@ namespace ConformalDecals { [KSPEvent(guiActive = false, guiActiveEditor = true, guiName = "#LOC_ConformalDecals_gui-select-flag")] public void SelectFlag() { - var flagBrowser = (Instantiate((Object) (new FlagBrowserGUIButton(null, null, null, null)).FlagBrowserPrefab) as GameObject).GetComponent(); - flagBrowser.OnFlagSelected = OnCustomFlagSelected; + var flagBrowser = (Instantiate((Object) (new FlagBrowserGUIButton(null, null, null, null)).FlagBrowserPrefab) as GameObject)?.GetComponent(); + if (flagBrowser is { }) flagBrowser.OnFlagSelected = OnCustomFlagSelected; } [KSPEvent(guiActive = false, guiActiveEditor = true, guiName = "#LOC_ConformalDecals_gui-reset-flag")] diff --git a/Source/ConformalDecals/ProjectionMeshTarget.cs b/Source/ConformalDecals/ProjectionMeshTarget.cs index 84ed75c..61c1bb9 100644 --- a/Source/ConformalDecals/ProjectionMeshTarget.cs +++ b/Source/ConformalDecals/ProjectionMeshTarget.cs @@ -1,7 +1,3 @@ -using System; -using System.Text; -using ConformalDecals.Util; -using UniLinq; using UnityEngine; using UnityEngine.Rendering; @@ -36,36 +32,6 @@ namespace ConformalDecals { SetNormalMap(renderer.sharedMaterial, useBaseNormal); } - public ProjectionMeshTarget(ConfigNode node, Transform root, bool useBaseNormal) { - if (node == null) throw new ArgumentNullException(nameof(node)); - if (root == null) throw new ArgumentNullException(nameof(root)); - enabled = true; - - var targetPath = ParseUtil.ParseString(node, "targetPath"); - var targetName = ParseUtil.ParseString(node, "targetName"); - - _decalMatrix = ParseUtil.ParseMatrix4x4(node, "decalMatrix"); - _decalNormal = ParseUtil.ParseVector3(node, "decalNormal"); - _decalTangent = ParseUtil.ParseVector3(node, "decalTangent"); - _decalMPB = new MaterialPropertyBlock(); - - target = LoadTransformPath(targetPath, root); - if (target.name != targetName) throw new FormatException("Target name does not match"); - - renderer = target.GetComponent(); - var filter = target.GetComponent(); - - if (!ValidateTarget(target, renderer, filter)) throw new FormatException("Invalid target"); - - mesh = filter.sharedMesh; - - SetNormalMap(renderer.sharedMaterial, useBaseNormal); - - _decalMPB.SetMatrix(DecalPropertyIDs._ProjectionMatrix, _decalMatrix); - _decalMPB.SetVector(DecalPropertyIDs._DecalNormal, _decalNormal); - _decalMPB.SetVector(DecalPropertyIDs._DecalTangent, _decalTangent); - } - private void SetNormalMap(Material targetMaterial, bool useBaseNormal) { if (useBaseNormal && targetMaterial.HasProperty(DecalPropertyIDs._BumpMap)) { _decalMPB.SetTexture(DecalPropertyIDs._BumpMap, targetMaterial.GetTexture(DecalPropertyIDs._BumpMap)); @@ -110,18 +76,6 @@ namespace ConformalDecals { Graphics.DrawMesh(mesh, target.localToWorldMatrix, decalMaterial, 0, camera, 0, _decalMPB, ShadowCastingMode.Off, true); } - public ConfigNode Save() { - var node = new ConfigNode(NodeName); - node.AddValue("decalMatrix", _decalMatrix); - node.AddValue("decalNormal", _decalNormal); - node.AddValue("decalTangent", _decalTangent); - node.AddValue("targetPath", SaveTransformPath(target, root)); // used to find the target transform - node.AddValue("targetName", target.name); // used to validate the mesh has not changed since last load - - return node; - } - - public static bool ValidateTarget(Transform target, MeshRenderer renderer, MeshFilter filter) { if (renderer == null) return false; if (filter == null) return false; @@ -135,33 +89,5 @@ namespace ConformalDecals { return true; } - - private static string SaveTransformPath(Transform leaf, Transform root) { - var builder = new StringBuilder($"{leaf.GetSiblingIndex()}"); - var current = leaf.parent; - - while (current != root) { - builder.Insert(0, "/"); - builder.Insert(0, current.GetSiblingIndex()); - current = current.parent; - if (current == null) throw new FormatException("Leaf does not exist as a child of root"); - } - - return builder.ToString(); - } - - private static Transform LoadTransformPath(string path, Transform root) { - var indices = path.Split('/').Select(int.Parse); - var current = root; - Logging.Log($"root transform: {current.name}"); - - foreach (var index in indices) { - if (index > current.childCount) throw new FormatException("Child index path is invalid"); - current = current.GetChild(index); - Logging.Log($"found child {current.name} at index {index}"); - } - - return current; - } } } \ No newline at end of file diff --git a/Source/ConformalDecals/ProjectionPartTarget.cs b/Source/ConformalDecals/ProjectionPartTarget.cs index 3070279..8dae1f9 100644 --- a/Source/ConformalDecals/ProjectionPartTarget.cs +++ b/Source/ConformalDecals/ProjectionPartTarget.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using ConformalDecals.Util; +using System.Collections.Generic; using UnityEngine; namespace ConformalDecals { @@ -10,16 +8,12 @@ namespace ConformalDecals { // enabled flag public bool enabled; - // locked flag, to prevent re-projection of loaded targets - public readonly bool locked; - public readonly Part part; public readonly List meshTargets = new List(); public ProjectionPartTarget(Part part, bool useBaseNormal) { this.part = part; - locked = false; foreach (var renderer in part.FindModelComponents()) { var target = renderer.transform; @@ -36,26 +30,7 @@ namespace ConformalDecals { } } - public ProjectionPartTarget(ConfigNode node, Vessel vessel, bool useBaseNormal) { - if (node == null) throw new ArgumentNullException(nameof(node)); - locked = true; - enabled = true; - - var flightID = ParseUtil.ParseUint(node, "part"); - - part = vessel[flightID]; - if (part == null) throw new IndexOutOfRangeException("Vessel returned null part, part must be destroyed or detached"); - var root = part.transform; - - foreach (var meshTargetNode in node.GetNodes(ProjectionMeshTarget.NodeName)) { - meshTargets.Add(new ProjectionMeshTarget(meshTargetNode, root, useBaseNormal)); - } - - Logging.Log($"Loaded target for part {part.name}"); - } - public bool Project(Matrix4x4 orthoMatrix, Transform projector, Bounds projectionBounds) { - if (locked) return true; // dont overwrite saved targets in flight mode enabled = false; foreach (var meshTarget in meshTargets) { enabled |= meshTarget.Project(orthoMatrix, projector, projectionBounds); @@ -69,17 +44,5 @@ namespace ConformalDecals { target.Render(decalMaterial, partMPB, camera); } } - - public ConfigNode Save() { - var node = new ConfigNode(NodeName); - node.AddValue("part", part.flightID); - foreach (var meshTarget in meshTargets) { - if (meshTarget.enabled) node.AddNode(meshTarget.Save()); - } - - Logging.Log($"Saved target for part {part.name}"); - - return node; - } } } \ No newline at end of file