From 16ef53ea65eb69d1945f6d78fa400e673dc8f773 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Wed, 14 Oct 2020 20:08:25 -0700 Subject: [PATCH 01/14] remove lfs stuff from travis config --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index a654c1d..95c4459 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,6 @@ python: - 3.6 before_install: - echo -e "machine github.com\n login $GITHUB_OAUTH_TOKEN" > ~/.netrc - - git lfs pull - - git lfs fetch --all install: - pip install awscli boto3 requests branches: @@ -24,4 +22,4 @@ deploy: script: python build-deploy/src/deploy.py --f ".mod_data.yml" # Deploy package to spacedock, curse, github skip_cleanup: true on: - branch: release \ No newline at end of file + branch: release From ac1289a46ef44fa135c4252cdb0479cf3831fcbc Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 12 Nov 2020 14:55:04 -0800 Subject: [PATCH 02/14] Add fallbacks to all fonts, even squad ones --- .../Plugins/ConformalDecals.dll | Bin 83456 -> 84480 bytes .../Resources/ConformalDecals.cfg | 2 ++ Source/ConformalDecals/DecalConfig.cs | 24 ++++++++++++++---- Source/ConformalDecals/Text/DecalFont.cs | 12 +++------ Source/ConformalDecals/Text/FontLoader.cs | 11 ++++---- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 74d53ee48dc8258813794f31a2137451846c4320..c37cd9dce2d64928a1b1508d1213b447dd94672a 100644 GIT binary patch literal 84480 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 M`u`;Q->e7zUtt)9GXMYp diff --git a/GameData/ConformalDecals/Resources/ConformalDecals.cfg b/GameData/ConformalDecals/Resources/ConformalDecals.cfg index 0057e17..a2ddad2 100644 --- a/GameData/ConformalDecals/Resources/ConformalDecals.cfg +++ b/GameData/ConformalDecals/Resources/ConformalDecals.cfg @@ -21,6 +21,8 @@ CONFORMALDECALS { shader = Solid Color (Alpha) } + fallbackFont = NotoSans-Regular SDF + FONT { name = LiberationSans SDF title = Liberation Sans diff --git a/Source/ConformalDecals/DecalConfig.cs b/Source/ConformalDecals/DecalConfig.cs index a0cc843..bdddb65 100644 --- a/Source/ConformalDecals/DecalConfig.cs +++ b/Source/ConformalDecals/DecalConfig.cs @@ -13,6 +13,7 @@ namespace ConformalDecals { private static Dictionary _fontList; private static int _decalLayer = 31; private static bool _selectableInFlight; + private static string _fallbackFontName = "NotoSans-Regular SDF"; private struct LegacyShaderEntry { public string name; @@ -50,8 +51,8 @@ namespace ConformalDecals { public static bool SelectableInFlight => _selectableInFlight; public static IEnumerable Fonts => _fontList.Values; - - public static DecalFont FallbackFont { get; private set; } + + public static TMP_FontAsset FallbackFont { get; private set; } public static bool IsBlacklisted(Shader shader) { return IsBlacklisted(shader.name); @@ -94,14 +95,27 @@ namespace ConformalDecals { } var allFonts = Resources.FindObjectsOfTypeAll(); - + ParseUtil.ParseStringIndirect(ref _fallbackFontName, node, "fallbackFont"); + FallbackFont = allFonts.First(o => o.name == _fallbackFontName); + if (FallbackFont == null) Logging.LogError($"could not find find fallback font asset named {_fallbackFontName}"); + foreach (var fontNode in node.GetNodes("FONT")) { try { - var font = new DecalFont(fontNode, allFonts); + var name = ParseUtil.ParseString(fontNode, "name"); + if (string.IsNullOrEmpty(name)) throw new FormatException(); + + var fontAsset = allFonts.First(o => o.name == name); + if (fontAsset == null) throw new FormatException($"Could not find font asset named {name}"); + + if (!fontAsset.fallbackFontAssets.Contains(FallbackFont)) { + fontAsset.fallbackFontAssets.Add(FallbackFont); + } + + var font = new DecalFont(name, fontNode, fontAsset); _fontList.Add(font.Name, font); } catch (Exception e) { - Debug.LogException(e); + Logging.LogException($"Exception parsing font node:\n{fontNode.ToString()}\n", e); } } } diff --git a/Source/ConformalDecals/Text/DecalFont.cs b/Source/ConformalDecals/Text/DecalFont.cs index efa0b6e..206dfa9 100644 --- a/Source/ConformalDecals/Text/DecalFont.cs +++ b/Source/ConformalDecals/Text/DecalFont.cs @@ -40,19 +40,15 @@ namespace ConformalDecals.Text { public bool SmallCapsMask => (FontStyleMask & FontStyles.SmallCaps) != 0; - public DecalFont(ConfigNode node, IEnumerable fontAssets) { + public DecalFont(string name, ConfigNode node, TMP_FontAsset font) { + if (name == null) throw new ArgumentNullException(nameof(name)); if (node == null) throw new ArgumentNullException(nameof(node)); - if (fontAssets == null) throw new ArgumentNullException(nameof(fontAssets)); - - var name = ParseUtil.ParseString(node, "name"); - FontAsset = fontAssets.First(o => o.name == name); - if (FontAsset == null) { - throw new FormatException($"Could not find font asset named {name}"); - } + if (font == null) throw new ArgumentNullException(nameof(font)); Title = ParseUtil.ParseString(node, "title", true, name); FontStyle = (FontStyles) ParseUtil.ParseInt(node, "style", true); FontStyleMask = (FontStyles) ParseUtil.ParseInt(node, "styleMask", true); + FontAsset = font; } diff --git a/Source/ConformalDecals/Text/FontLoader.cs b/Source/ConformalDecals/Text/FontLoader.cs index 01f16ad..72ef4a1 100644 --- a/Source/ConformalDecals/Text/FontLoader.cs +++ b/Source/ConformalDecals/Text/FontLoader.cs @@ -11,12 +11,13 @@ namespace ConformalDecals.Text { [DatabaseLoaderAttrib(new[] {"decalfont"})] public class FontLoader : DatabaseLoader { private const string FallbackName = "NotoSans-Regular SDF"; - private static TMP_FontAsset _fallbackFont; + + public static TMP_FontAsset FallbackFont { get; private set; } public override IEnumerator Load(UrlDir.UrlFile urlFile, FileInfo fileInfo) { - if (_fallbackFont == null) { - _fallbackFont = Resources.FindObjectsOfTypeAll().First(o => o.name == FallbackName); - if (_fallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'"); + if (FallbackFont == null) { + FallbackFont = Resources.FindObjectsOfTypeAll().First(o => o.name == FallbackName); + if (FallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'"); } Logging.Log($"Loading font file '{urlFile.fullPath}'"); @@ -28,7 +29,7 @@ namespace ConformalDecals.Text { var loadedFonts = bundle.LoadAllAssets(); foreach (var font in loadedFonts) { Logging.Log($"Adding font {font.name}"); - font.fallbackFontAssets.Add(_fallbackFont); + font.fallbackFontAssets.Add(FallbackFont); } } From ea8c069d68adb92d7cee3d130c7e20902e52ed10 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 12 Nov 2020 20:10:40 -0800 Subject: [PATCH 03/14] Fix issues with fallback fonts Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations. closes #24 --- .../Plugins/ConformalDecals.dll | Bin 84480 -> 84480 bytes .../Versioning/ConformalDecals.version | 2 +- README.md | 2 +- Source/ConformalDecals/DecalConfig.cs | 6 +++--- Source/ConformalDecals/Text/FontLoader.cs | 1 - Source/ConformalDecals/Text/TextRenderer.cs | 19 +++++++++++++++++- changelog.txt | 5 +++++ 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index c37cd9dce2d64928a1b1508d1213b447dd94672a..902be6de71d00c960d0329a77c1bb7027f829f59 100644 GIT binary patch delta 23437 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 diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 30db53b..2f9b497 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,7 +6,7 @@ { "MAJOR":0, "MINOR":2, - "PATCH":2, + "PATCH":3, "BUILD":0 }, "KSP_VERSION": diff --git a/README.md b/README.md index f033670..c2c2508 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.2 +# Conformal Decals v0.2.3 [![Build Status](https://travis-ci.org/drewcassidy/KSP-Conformal-Decals.svg?branch=release)](https://travis-ci.org/drewcassidy/KSP-Conformal-Decals) [![Art: CC BY-SA 4.0](https://img.shields.io/badge/Art%20License-CC%20BY--SA%204.0-orange.svg)](https://creativecommons.org/licenses/by-sa/4.0/) [![Code: GPL v3](https://img.shields.io/badge/Code%20License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) ![Screenshot](http://pileof.rocks/KSP/images/ConformalDecalsHeader.png) diff --git a/Source/ConformalDecals/DecalConfig.cs b/Source/ConformalDecals/DecalConfig.cs index bdddb65..ec66d63 100644 --- a/Source/ConformalDecals/DecalConfig.cs +++ b/Source/ConformalDecals/DecalConfig.cs @@ -93,7 +93,7 @@ namespace ConformalDecals { _shaderBlacklist.Add(shaderName); } } - + var allFonts = Resources.FindObjectsOfTypeAll(); ParseUtil.ParseStringIndirect(ref _fallbackFontName, node, "fallbackFont"); FallbackFont = allFonts.First(o => o.name == _fallbackFontName); @@ -103,14 +103,14 @@ namespace ConformalDecals { try { var name = ParseUtil.ParseString(fontNode, "name"); if (string.IsNullOrEmpty(name)) throw new FormatException(); - + var fontAsset = allFonts.First(o => o.name == name); if (fontAsset == null) throw new FormatException($"Could not find font asset named {name}"); if (!fontAsset.fallbackFontAssets.Contains(FallbackFont)) { fontAsset.fallbackFontAssets.Add(FallbackFont); } - + var font = new DecalFont(name, fontNode, fontAsset); _fontList.Add(font.Name, font); } diff --git a/Source/ConformalDecals/Text/FontLoader.cs b/Source/ConformalDecals/Text/FontLoader.cs index 72ef4a1..9ab93a5 100644 --- a/Source/ConformalDecals/Text/FontLoader.cs +++ b/Source/ConformalDecals/Text/FontLoader.cs @@ -29,7 +29,6 @@ namespace ConformalDecals.Text { var loadedFonts = bundle.LoadAllAssets(); foreach (var font in loadedFonts) { Logging.Log($"Adding font {font.name}"); - font.fallbackFontAssets.Add(FallbackFont); } } diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index f81c3c6..8915905 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -89,9 +89,11 @@ namespace ConformalDecals.Text { if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D12) { textRenderTextureFormat = RenderTextureFormat.ARGB32; // DirectX is dumb } + if (!SystemInfo.SupportsTextureFormat(textTextureFormat)) { Logging.LogError($"Text texture format {textTextureFormat} not supported on this platform."); } + if (!SystemInfo.SupportsRenderTextureFormat(textRenderTextureFormat)) { Logging.LogError($"Text texture format {textRenderTextureFormat} not supported on this platform."); } @@ -279,9 +281,24 @@ namespace ConformalDecals.Text { // CLEAR SUBMESHES for (int i = 0; i < transform.childCount; i++) { - Destroy(transform.GetChild(i).gameObject); + var child = transform.GetChild(i); + var renderer = child.GetComponent(); + var filter = child.GetComponent(); + if (filter == null || renderer == null) { + Logging.Log("TMP Sub object has no filter or renderer, destroying"); + Destroy(child.gameObject); + } + + if (filter.mesh.vertexCount < 3) { + Logging.Log("TMP Sub object has no mesh, destroying"); + Destroy(child.gameObject); + } + + renderer.enabled = false; } + _tmp.ClearMesh(true); + return new TextRenderOutput(texture, window); } } diff --git a/changelog.txt b/changelog.txt index fc0cfa2..fe74d19 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +v0.2.3 +------ +- Fixes: + - Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations. + v0.2.2 ------ - Fixes: From e82b02b0e55ef92cff63ac852bf5cfb019045400 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 12 Nov 2020 21:25:24 -0800 Subject: [PATCH 04/14] Fix overlapping text and add text escaping --- .../Plugins/ConformalDecals.dll | Bin 84480 -> 84992 bytes Source/ConformalDecals/ConformalDecals.csproj | 1 + Source/ConformalDecals/ModuleConformalText.cs | 2 ++ Source/ConformalDecals/Text/TextEncoder.cs | 31 ++++++++++++++++++ Source/ConformalDecals/Text/TextRenderer.cs | 18 ++-------- 5 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 Source/ConformalDecals/Text/TextEncoder.cs diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 902be6de71d00c960d0329a77c1bb7027f829f59..e36bb223f267d96632f4d4a0be887e89c7a94034 100644 GIT binary patch delta 28024 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

I?jN7_P}!g6vxD7&4Wpe$jX%h_@#6)A50@|X|G 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 diff --git a/Source/ConformalDecals/ConformalDecals.csproj b/Source/ConformalDecals/ConformalDecals.csproj index 8ab7fce..9501b09 100644 --- a/Source/ConformalDecals/ConformalDecals.csproj +++ b/Source/ConformalDecals/ConformalDecals.csproj @@ -91,6 +91,7 @@ + diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index bc282e4..501a1a4 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -99,6 +99,7 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { base.OnLoad(node); OnAfterDeserialize(); + text = TextEncoder.Decode(text); if (HighLogic.LoadedSceneIsGame) { // For some reason, rendering doesnt work right on the first frame a scene is loaded @@ -112,6 +113,7 @@ namespace ConformalDecals { } public override void OnSave(ConfigNode node) { + text = TextEncoder.Encode(text); OnBeforeSerialize(); base.OnSave(node); } diff --git a/Source/ConformalDecals/Text/TextEncoder.cs b/Source/ConformalDecals/Text/TextEncoder.cs new file mode 100644 index 0000000..d804baa --- /dev/null +++ b/Source/ConformalDecals/Text/TextEncoder.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using System.Text; + +namespace ConformalDecals.Text { + public static class TextEncoder { + private static readonly Dictionary _escapeSequences = new Dictionary() { + {"\n", "\\n"}, + {"\\", "\\\\"}, + {"/", "\\/"}, + {"=", "\\="} + }; + + public static string Encode(string input) { + var builder = new StringBuilder(input); + foreach (var escapePair in _escapeSequences) { + builder.Replace(escapePair.Key, escapePair.Value); + } + + return builder.ToString(); + } + + public static string Decode(string input) { + var builder = new StringBuilder(input); + foreach (var escapePair in _escapeSequences) { + builder.Replace(escapePair.Value, escapePair.Key); + } + + return builder.ToString(); + } + } +} \ No newline at end of file diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 8915905..4eefd64 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -280,25 +280,13 @@ namespace ConformalDecals.Text { RenderTexture.ReleaseTemporary(renderTex); // CLEAR SUBMESHES + _tmp.text = ""; + for (int i = 0; i < transform.childCount; i++) { var child = transform.GetChild(i); - var renderer = child.GetComponent(); - var filter = child.GetComponent(); - if (filter == null || renderer == null) { - Logging.Log("TMP Sub object has no filter or renderer, destroying"); - Destroy(child.gameObject); - } - - if (filter.mesh.vertexCount < 3) { - Logging.Log("TMP Sub object has no mesh, destroying"); - Destroy(child.gameObject); - } - - renderer.enabled = false; + Destroy(child.gameObject); } - _tmp.ClearMesh(true); - return new TextRenderOutput(texture, window); } } From a6e2edc475123ba0dfa3ba2c3094613e56d6b562 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 01:42:55 -0800 Subject: [PATCH 05/14] use URL-style string escaping --- .../Plugins/ConformalDecals.dll | Bin 84992 -> 84992 bytes Source/ConformalDecals/ConformalDecals.csproj | 1 - Source/ConformalDecals/ModuleConformalText.cs | 14 ++++---- Source/ConformalDecals/Text/TextEncoder.cs | 31 ------------------ 4 files changed, 8 insertions(+), 38 deletions(-) delete mode 100644 Source/ConformalDecals/Text/TextEncoder.cs diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index e36bb223f267d96632f4d4a0be887e89c7a94034..50a1b52d54282cbe81974438a12127a4bb5f40ba 100644 GIT binary patch literal 84992 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 literal 84992 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 - diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 501a1a4..03a3cb2 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Net; using ConformalDecals.MaterialProperties; using ConformalDecals.Text; using ConformalDecals.UI; @@ -27,7 +28,7 @@ namespace ConformalDecals { [KSPEvent(guiName = "#LOC_ConformalDecals_gui-set-text", guiActive = false, guiActiveEditor = true)] public void SetText() { if (_textEntryController == null) { - _textEntryController = TextEntryController.Create(text, _font, _style, lineSpacingRange, charSpacingRange, OnTextUpdate); + _textEntryController = TextEntryController.Create(_text, _font, _style, lineSpacingRange, charSpacingRange, OnTextUpdate); } else { _textEntryController.Close(); @@ -75,6 +76,7 @@ namespace ConformalDecals { } } + private string _text; private DecalTextStyle _style; private DecalFont _font; private Color32 _fillColor; @@ -99,7 +101,6 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { base.OnLoad(node); OnAfterDeserialize(); - text = TextEncoder.Decode(text); if (HighLogic.LoadedSceneIsGame) { // For some reason, rendering doesnt work right on the first frame a scene is loaded @@ -113,7 +114,6 @@ namespace ConformalDecals { } public override void OnSave(ConfigNode node) { - text = TextEncoder.Encode(text); OnBeforeSerialize(); base.OnSave(node); } @@ -132,7 +132,7 @@ namespace ConformalDecals { } public void OnTextUpdate(string newText, DecalFont newFont, DecalTextStyle newStyle) { - text = newText; + _text = newText; _font = newFont; _style = newStyle; UpdateTextRecursive(); @@ -203,6 +203,7 @@ namespace ConformalDecals { } public void OnBeforeSerialize() { + text = WebUtility.UrlEncode(_text); fontName = _font.Name; style = (int) _style.FontStyle; vertical = _style.Vertical; @@ -213,6 +214,7 @@ namespace ConformalDecals { } public void OnAfterDeserialize() { + _text = WebUtility.UrlDecode(text); _font = DecalConfig.GetFont(fontName); _style = new DecalTextStyle((FontStyles) style, vertical, lineSpacing, charSpacing); @@ -247,7 +249,7 @@ namespace ConformalDecals { foreach (var counterpart in part.symmetryCounterparts) { var decal = counterpart.GetComponent(); - decal.text = text; + decal._text = _text; decal._font = _font; decal._style = _style; @@ -264,7 +266,7 @@ namespace ConformalDecals { private void UpdateText() { // Render text - var newText = new DecalText(text, _font, _style); + var newText = new DecalText(_text, _font, _style); var output = TextRenderer.UpdateTextNow(_currentText, newText); _currentText = newText; diff --git a/Source/ConformalDecals/Text/TextEncoder.cs b/Source/ConformalDecals/Text/TextEncoder.cs deleted file mode 100644 index d804baa..0000000 --- a/Source/ConformalDecals/Text/TextEncoder.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Collections.Generic; -using System.Text; - -namespace ConformalDecals.Text { - public static class TextEncoder { - private static readonly Dictionary _escapeSequences = new Dictionary() { - {"\n", "\\n"}, - {"\\", "\\\\"}, - {"/", "\\/"}, - {"=", "\\="} - }; - - public static string Encode(string input) { - var builder = new StringBuilder(input); - foreach (var escapePair in _escapeSequences) { - builder.Replace(escapePair.Key, escapePair.Value); - } - - return builder.ToString(); - } - - public static string Decode(string input) { - var builder = new StringBuilder(input); - foreach (var escapePair in _escapeSequences) { - builder.Replace(escapePair.Value, escapePair.Key); - } - - return builder.ToString(); - } - } -} \ No newline at end of file From c42e443b4b9899a0dbaf7c9801f2c1661ef9bc30 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 01:43:08 -0800 Subject: [PATCH 06/14] Add minimum size for text decals --- .../Plugins/ConformalDecals.dll | Bin 84992 -> 84480 bytes Source/ConformalDecals/Text/TextRenderer.cs | 3 +++ 2 files changed, 3 insertions(+) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 50a1b52d54282cbe81974438a12127a4bb5f40ba..489ec7fa3b81dd7988203b7337f718112a6bd64b 100644 GIT binary patch delta 24000 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 diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 4eefd64..8d210f1 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -207,6 +207,9 @@ namespace ConformalDecals.Text { // CALCULATE SIZES var size = bounds.size * PixelDensity; + size.x = Mathf.Max(size.x, 0.1f); + size.y = Mathf.Max(size.y, 0.1f); + var textureSize = new Vector2Int { x = Mathf.NextPowerOfTwo((int) size.x), y = Mathf.NextPowerOfTwo((int) size.y) From d4978b1b3ca60e19ce6e906ba0ada566726cf575 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 01:44:52 -0800 Subject: [PATCH 07/14] Update changelog --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index fe74d19..b99d037 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,8 @@ v0.2.3 ------ - Fixes: - Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations. + - Started using URL-style encoding for text decals behind the scenes to prevent issues with certain characters. + - Fixed text decals having zero size when they had only whitespace or an empty string v0.2.2 ------ From 981a1678643859cb1b5501ee30ded50d9ed1c343 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 01:55:42 -0800 Subject: [PATCH 08/14] Revert "Add fallbacks to all fonts, even squad ones" This reverts commit ac1289a46ef44fa135c4252cdb0479cf3831fcbc. --- .../Plugins/ConformalDecals.dll | Bin 84480 -> 83968 bytes .../Resources/ConformalDecals.cfg | 2 -- Source/ConformalDecals/DecalConfig.cs | 24 ++++-------------- Source/ConformalDecals/Text/DecalFont.cs | 12 ++++++--- Source/ConformalDecals/Text/FontLoader.cs | 10 ++++---- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 489ec7fa3b81dd7988203b7337f718112a6bd64b..33734ea0ab608d75585b42c6c334aac40183206a 100644 GIT binary patch literal 83968 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

r^ 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 HB=Elg3Xtkv diff --git a/GameData/ConformalDecals/Resources/ConformalDecals.cfg b/GameData/ConformalDecals/Resources/ConformalDecals.cfg index a2ddad2..0057e17 100644 --- a/GameData/ConformalDecals/Resources/ConformalDecals.cfg +++ b/GameData/ConformalDecals/Resources/ConformalDecals.cfg @@ -21,8 +21,6 @@ CONFORMALDECALS { shader = Solid Color (Alpha) } - fallbackFont = NotoSans-Regular SDF - FONT { name = LiberationSans SDF title = Liberation Sans diff --git a/Source/ConformalDecals/DecalConfig.cs b/Source/ConformalDecals/DecalConfig.cs index ec66d63..b681d8e 100644 --- a/Source/ConformalDecals/DecalConfig.cs +++ b/Source/ConformalDecals/DecalConfig.cs @@ -13,7 +13,6 @@ namespace ConformalDecals { private static Dictionary _fontList; private static int _decalLayer = 31; private static bool _selectableInFlight; - private static string _fallbackFontName = "NotoSans-Regular SDF"; private struct LegacyShaderEntry { public string name; @@ -51,8 +50,8 @@ namespace ConformalDecals { public static bool SelectableInFlight => _selectableInFlight; public static IEnumerable Fonts => _fontList.Values; - - public static TMP_FontAsset FallbackFont { get; private set; } + + public static DecalFont FallbackFont { get; private set; } public static bool IsBlacklisted(Shader shader) { return IsBlacklisted(shader.name); @@ -95,27 +94,14 @@ namespace ConformalDecals { } var allFonts = Resources.FindObjectsOfTypeAll(); - ParseUtil.ParseStringIndirect(ref _fallbackFontName, node, "fallbackFont"); - FallbackFont = allFonts.First(o => o.name == _fallbackFontName); - if (FallbackFont == null) Logging.LogError($"could not find find fallback font asset named {_fallbackFontName}"); - + foreach (var fontNode in node.GetNodes("FONT")) { try { - var name = ParseUtil.ParseString(fontNode, "name"); - if (string.IsNullOrEmpty(name)) throw new FormatException(); - - var fontAsset = allFonts.First(o => o.name == name); - if (fontAsset == null) throw new FormatException($"Could not find font asset named {name}"); - - if (!fontAsset.fallbackFontAssets.Contains(FallbackFont)) { - fontAsset.fallbackFontAssets.Add(FallbackFont); - } - - var font = new DecalFont(name, fontNode, fontAsset); + var font = new DecalFont(fontNode, allFonts); _fontList.Add(font.Name, font); } catch (Exception e) { - Logging.LogException($"Exception parsing font node:\n{fontNode.ToString()}\n", e); + Debug.LogException(e); } } } diff --git a/Source/ConformalDecals/Text/DecalFont.cs b/Source/ConformalDecals/Text/DecalFont.cs index 206dfa9..efa0b6e 100644 --- a/Source/ConformalDecals/Text/DecalFont.cs +++ b/Source/ConformalDecals/Text/DecalFont.cs @@ -40,15 +40,19 @@ namespace ConformalDecals.Text { public bool SmallCapsMask => (FontStyleMask & FontStyles.SmallCaps) != 0; - public DecalFont(string name, ConfigNode node, TMP_FontAsset font) { - if (name == null) throw new ArgumentNullException(nameof(name)); + public DecalFont(ConfigNode node, IEnumerable fontAssets) { if (node == null) throw new ArgumentNullException(nameof(node)); - if (font == null) throw new ArgumentNullException(nameof(font)); + if (fontAssets == null) throw new ArgumentNullException(nameof(fontAssets)); + + var name = ParseUtil.ParseString(node, "name"); + FontAsset = fontAssets.First(o => o.name == name); + if (FontAsset == null) { + throw new FormatException($"Could not find font asset named {name}"); + } Title = ParseUtil.ParseString(node, "title", true, name); FontStyle = (FontStyles) ParseUtil.ParseInt(node, "style", true); FontStyleMask = (FontStyles) ParseUtil.ParseInt(node, "styleMask", true); - FontAsset = font; } diff --git a/Source/ConformalDecals/Text/FontLoader.cs b/Source/ConformalDecals/Text/FontLoader.cs index 9ab93a5..01f16ad 100644 --- a/Source/ConformalDecals/Text/FontLoader.cs +++ b/Source/ConformalDecals/Text/FontLoader.cs @@ -11,13 +11,12 @@ namespace ConformalDecals.Text { [DatabaseLoaderAttrib(new[] {"decalfont"})] public class FontLoader : DatabaseLoader { private const string FallbackName = "NotoSans-Regular SDF"; - - public static TMP_FontAsset FallbackFont { get; private set; } + private static TMP_FontAsset _fallbackFont; public override IEnumerator Load(UrlDir.UrlFile urlFile, FileInfo fileInfo) { - if (FallbackFont == null) { - FallbackFont = Resources.FindObjectsOfTypeAll().First(o => o.name == FallbackName); - if (FallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'"); + if (_fallbackFont == null) { + _fallbackFont = Resources.FindObjectsOfTypeAll().First(o => o.name == FallbackName); + if (_fallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'"); } Logging.Log($"Loading font file '{urlFile.fullPath}'"); @@ -29,6 +28,7 @@ namespace ConformalDecals.Text { var loadedFonts = bundle.LoadAllAssets(); foreach (var font in loadedFonts) { Logging.Log($"Adding font {font.name}"); + font.fallbackFontAssets.Add(_fallbackFont); } } From 8accabe9e5a000f4e64083649ddf8b69ab51318b Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 02:22:56 -0800 Subject: [PATCH 09/14] Fix FAR incompatability --- GameData/ConformalDecals/Patches/FAR.cfg | 5 +++++ changelog.txt | 1 + 2 files changed, 6 insertions(+) create mode 100644 GameData/ConformalDecals/Patches/FAR.cfg diff --git a/GameData/ConformalDecals/Patches/FAR.cfg b/GameData/ConformalDecals/Patches/FAR.cfg new file mode 100644 index 0000000..2db98b0 --- /dev/null +++ b/GameData/ConformalDecals/Patches/FAR.cfg @@ -0,0 +1,5 @@ +@PART[*]:HAS[@MODULE[ModuleConformalDecal]|@MODULE[ModuleConformalFlag]|@MODULE[ModuleConformalText]]:After[FerramAerospaceResearch] +{ + // Decals are just paint, so they shouldnt affect a vessel's aerodynamics at all + !MODULE[GeometryPartModule] {} +} \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index b99d037..7376194 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ v0.2.3 - Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations. - Started using URL-style encoding for text decals behind the scenes to prevent issues with certain characters. - Fixed text decals having zero size when they had only whitespace or an empty string + - Fixed decals having drag and causing issues when using FAR v0.2.2 ------ From c6b9812fe3b51c52e6ee44d3a279af5ea872ca23 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Fri, 13 Nov 2020 03:20:51 -0800 Subject: [PATCH 10/14] Fix MM patch --- GameData/ConformalDecals/Patches/FAR.cfg | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/GameData/ConformalDecals/Patches/FAR.cfg b/GameData/ConformalDecals/Patches/FAR.cfg index 2db98b0..7aa2034 100644 --- a/GameData/ConformalDecals/Patches/FAR.cfg +++ b/GameData/ConformalDecals/Patches/FAR.cfg @@ -1,5 +1,17 @@ -@PART[*]:HAS[@MODULE[ModuleConformalDecal]|@MODULE[ModuleConformalFlag]|@MODULE[ModuleConformalText]]:After[FerramAerospaceResearch] +// Decals are just paint, so they shouldnt affect a vessel's aerodynamics at all + +@PART[*]:HAS[@MODULE[ModuleConformalDecal]]:After[FerramAerospaceResearch] { - // Decals are just paint, so they shouldnt affect a vessel's aerodynamics at all + !MODULE[GeometryPartModule] {} +} + +@PART[*]:HAS[@MODULE[ModuleConformalFlag]]:After[FerramAerospaceResearch] +{ + !MODULE[GeometryPartModule] {} +} + +@PART[*]:HAS[@MODULE[ModuleConformalText]]:After[FerramAerospaceResearch] +{ + !MODULE[GeometryPartModule] {} } \ No newline at end of file From dbbc621181df143541691ad496e3b1eff5b1e716 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 14 Nov 2020 21:11:16 -0800 Subject: [PATCH 11/14] Fix text decal saving and loading Closes #25 --- .../Plugins/ConformalDecals.dll | Bin 83968 -> 82432 bytes Source/ConformalDecals/ConformalDecals.csproj | 1 - Source/ConformalDecals/ModuleConformalText.cs | 103 +++++++----------- Source/ConformalDecals/Text/DecalFont.cs | 46 +++++--- Source/ConformalDecals/Text/DecalText.cs | 49 +++++++-- Source/ConformalDecals/Text/DecalTextStyle.cs | 101 ----------------- Source/ConformalDecals/Text/TextRenderer.cs | 6 +- .../ConformalDecals/UI/TextEntryController.cs | 98 ++++++++++------- Source/ConformalDecals/Util/ParseUtil.cs | 10 +- 9 files changed, 177 insertions(+), 237 deletions(-) delete mode 100644 Source/ConformalDecals/Text/DecalTextStyle.cs diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 33734ea0ab608d75585b42c6c334aac40183206a..dad1a8ec0c213d725489578812e176e915567bb6 100644 GIT binary patch literal 82432 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 - diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 03a3cb2..f6bf14a 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -8,27 +8,26 @@ using TMPro; using UnityEngine; namespace ConformalDecals { - public class ModuleConformalText : ModuleConformalDecal, ISerializationCallbackReceiver { - [KSPField(isPersistant = true)] public string text = "Text"; - + public class ModuleConformalText : ModuleConformalDecal { [KSPField] public Vector2 lineSpacingRange = new Vector2(-50, 50); [KSPField] public Vector2 charSpacingRange = new Vector2(-50, 50); - // serialization-only fields. do not use except in serialization functions - [KSPField(isPersistant = true)] public string fontName = "Calibri SDF"; - [KSPField(isPersistant = true)] public int style; - [KSPField(isPersistant = true)] public bool vertical; - [KSPField(isPersistant = true)] public float lineSpacing; - [KSPField(isPersistant = true)] public float charSpacing; - [KSPField(isPersistant = true)] public string fillColor = "000000FF"; - [KSPField(isPersistant = true)] public string outlineColor = "FFFFFFFF"; + [KSPField(isPersistant = true)] public bool vertical; + [KSPField(isPersistant = true)] public float lineSpacing; + [KSPField(isPersistant = true)] public float charSpacing; + + [KSPField] public string text; + [KSPField] public DecalFont font; + [KSPField] public FontStyles style; + [KSPField] public Color32 fillColor = Color.black; + [KSPField] public Color32 outlineColor = Color.white; // KSP TWEAKABLES [KSPEvent(guiName = "#LOC_ConformalDecals_gui-set-text", guiActive = false, guiActiveEditor = true)] public void SetText() { if (_textEntryController == null) { - _textEntryController = TextEntryController.Create(_text, _font, _style, lineSpacingRange, charSpacingRange, OnTextUpdate); + _textEntryController = TextEntryController.Create(text, font, style, vertical, lineSpacing, charSpacing, lineSpacingRange, charSpacingRange, OnTextUpdate); } else { _textEntryController.Close(); @@ -46,7 +45,7 @@ namespace ConformalDecals { guiActive = false, guiActiveEditor = true)] public void SetFillColor() { if (_fillColorPickerController == null) { - _fillColorPickerController = ColorPickerController.Create(_fillColor, OnFillColorUpdate); + _fillColorPickerController = ColorPickerController.Create(fillColor, OnFillColorUpdate); } else { _fillColorPickerController.Close(); @@ -69,18 +68,13 @@ namespace ConformalDecals { guiActive = false, guiActiveEditor = true)] public void SetOutlineColor() { if (_outlineColorPickerController == null) { - _outlineColorPickerController = ColorPickerController.Create(_outlineColor, OnOutlineColorUpdate); + _outlineColorPickerController = ColorPickerController.Create(outlineColor, OnOutlineColorUpdate); } else { _outlineColorPickerController.Close(); } } - private string _text; - private DecalTextStyle _style; - private DecalFont _font; - private Color32 _fillColor; - private Color32 _outlineColor; private TextEntryController _textEntryController; private ColorPickerController _fillColorPickerController; @@ -100,7 +94,12 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { base.OnLoad(node); - OnAfterDeserialize(); + text = WebUtility.UrlDecode(ParseUtil.ParseString(node, "text")); + font = DecalConfig.GetFont(ParseUtil.ParseString(node, "font", true, "Calibri SDF")); + int styleInt = 0; + if (ParseUtil.ParseIntIndirect(ref styleInt, node, "style")) style = (FontStyles) styleInt; + if (!ParseUtil.ParseColor32Indirect(ref fillColor, node, "fillColor")) fillColor = Color.magenta; + if (!ParseUtil.ParseColor32Indirect(ref outlineColor, node, "outlineColor")) outlineColor = Color.magenta; if (HighLogic.LoadedSceneIsGame) { // For some reason, rendering doesnt work right on the first frame a scene is loaded @@ -114,7 +113,11 @@ namespace ConformalDecals { } public override void OnSave(ConfigNode node) { - OnBeforeSerialize(); + node.AddValue("text", WebUtility.UrlEncode(text)); + node.AddValue("fontName", font.Name); + node.AddValue("style", (int) style); + node.AddValue("fillColor", fillColor.ToHexString()); + node.AddValue("outlineColor", outlineColor.ToHexString()); base.OnSave(node); } @@ -131,31 +134,34 @@ namespace ConformalDecals { _outlineWidthProperty = materialProperties.AddOrGetProperty("_OutlineWidth"); } - public void OnTextUpdate(string newText, DecalFont newFont, DecalTextStyle newStyle) { - _text = newText; - _font = newFont; - _style = newStyle; + public void OnTextUpdate(string newText, DecalFont newFont, FontStyles newStyle, bool newVertical, float newLineSpacing, float newCharSpacing) { + this.text = newText; + this.font = newFont; + this.style = newStyle; + this.vertical = newVertical; + this.lineSpacing = newLineSpacing; + this.charSpacing = newCharSpacing; UpdateTextRecursive(); } public void OnFillColorUpdate(Color rgb, Util.ColorHSV hsv) { - _fillColor = rgb; + fillColor = rgb; UpdateMaterials(); foreach (var counterpart in part.symmetryCounterparts) { var decal = counterpart.GetComponent(); - decal._fillColor = _fillColor; + decal.fillColor = fillColor; decal.UpdateMaterials(); } } public void OnOutlineColorUpdate(Color rgb, Util.ColorHSV hsv) { - _outlineColor = rgb; + outlineColor = rgb; UpdateMaterials(); foreach (var counterpart in part.symmetryCounterparts) { var decal = counterpart.GetComponent(); - decal._outlineColor = _outlineColor; + decal.outlineColor = outlineColor; decal.UpdateMaterials(); } } @@ -202,33 +208,6 @@ namespace ConformalDecals { } } - public void OnBeforeSerialize() { - text = WebUtility.UrlEncode(_text); - fontName = _font.Name; - style = (int) _style.FontStyle; - vertical = _style.Vertical; - lineSpacing = _style.LineSpacing; - charSpacing = _style.CharSpacing; - fillColor = _fillColor.ToHexString(); - outlineColor = _outlineColor.ToHexString(); - } - - public void OnAfterDeserialize() { - _text = WebUtility.UrlDecode(text); - _font = DecalConfig.GetFont(fontName); - _style = new DecalTextStyle((FontStyles) style, vertical, lineSpacing, charSpacing); - - if (!ParseUtil.TryParseColor32(fillColor, out _fillColor)) { - Logging.LogWarning($"Improperly formatted color value for fill: '{fillColor}'"); - _fillColor = Color.magenta; - } - - if (!ParseUtil.TryParseColor32(outlineColor, out _outlineColor)) { - Logging.LogWarning($"Improperly formatted color value for outline: '{outlineColor}'"); - _outlineColor = Color.magenta; - } - } - public override void OnDestroy() { if (HighLogic.LoadedSceneIsGame && _currentText != null) TextRenderer.UnregisterText(_currentText); @@ -249,9 +228,9 @@ namespace ConformalDecals { foreach (var counterpart in part.symmetryCounterparts) { var decal = counterpart.GetComponent(); - decal._text = _text; - decal._font = _font; - decal._style = _style; + decal.text = text; + decal.font = font; + decal.style = style; decal._currentJob = _currentJob; decal._currentText = _currentText; @@ -266,7 +245,7 @@ namespace ConformalDecals { private void UpdateText() { // Render text - var newText = new DecalText(_text, _font, _style); + var newText = new DecalText(text, font, style, vertical, lineSpacing, charSpacing); var output = TextRenderer.UpdateTextNow(_currentText, newText); _currentText = newText; @@ -288,10 +267,10 @@ namespace ConformalDecals { protected override void UpdateMaterials() { _fillEnabledProperty.value = fillEnabled; - _fillColorProperty.color = _fillColor; + _fillColorProperty.color = fillColor; _outlineEnabledProperty.value = outlineEnabled; - _outlineColorProperty.color = _outlineColor; + _outlineColorProperty.color = outlineColor; _outlineWidthProperty.value = outlineWidth; base.UpdateMaterials(); diff --git a/Source/ConformalDecals/Text/DecalFont.cs b/Source/ConformalDecals/Text/DecalFont.cs index efa0b6e..bf422ee 100644 --- a/Source/ConformalDecals/Text/DecalFont.cs +++ b/Source/ConformalDecals/Text/DecalFont.cs @@ -3,41 +3,47 @@ using System.Collections.Generic; using ConformalDecals.Util; using TMPro; using UniLinq; +using UnityEngine; namespace ConformalDecals.Text { - public class DecalFont : IEquatable { + public class DecalFont : ScriptableObject, ISerializationCallbackReceiver, IEquatable { + [SerializeField] private string _title; + [SerializeField] private TMP_FontAsset _fontAsset; + [SerializeField] private FontStyles _fontStyle; + [SerializeField] private FontStyles _fontStyleMask; + /// Human-readable name for the font - public string Title { get; } + public string Title => _title; /// Internal name for the font - public string Name => FontAsset.name; + public string Name => _fontAsset.name; /// The font asset itself - public TMP_FontAsset FontAsset { get; } + public TMP_FontAsset FontAsset => _fontAsset; /// Styles that are forced on for this font, /// e.g. smallcaps for a font without lower case characters - public FontStyles FontStyle { get; } + public FontStyles FontStyle => _fontStyle; - public bool Bold => (FontStyle & FontStyles.Bold) != 0; + public bool Bold => (_fontStyle & FontStyles.Bold) != 0; - public bool Italic => (FontStyle & FontStyles.Italic) != 0; + public bool Italic => (_fontStyle & FontStyles.Italic) != 0; - public bool Underline => (FontStyle & FontStyles.Underline) != 0; + public bool Underline => (_fontStyle & FontStyles.Underline) != 0; - public bool SmallCaps => (FontStyle & FontStyles.SmallCaps) != 0; + public bool SmallCaps => (_fontStyle & FontStyles.SmallCaps) != 0; /// Styles that are forced off for this font, /// e.g. underline for a font with no underscore character - public FontStyles FontStyleMask { get; } + public FontStyles FontStyleMask => _fontStyleMask; - public bool BoldMask => (FontStyleMask & FontStyles.Bold) != 0; + public bool BoldMask => (_fontStyleMask & FontStyles.Bold) != 0; - public bool ItalicMask => (FontStyleMask & FontStyles.Italic) != 0; + public bool ItalicMask => (_fontStyleMask & FontStyles.Italic) != 0; - public bool UnderlineMask => (FontStyleMask & FontStyles.Underline) != 0; + public bool UnderlineMask => (_fontStyleMask & FontStyles.Underline) != 0; - public bool SmallCapsMask => (FontStyleMask & FontStyles.SmallCaps) != 0; + public bool SmallCapsMask => (_fontStyleMask & FontStyles.SmallCaps) != 0; public DecalFont(ConfigNode node, IEnumerable fontAssets) { @@ -45,14 +51,14 @@ namespace ConformalDecals.Text { if (fontAssets == null) throw new ArgumentNullException(nameof(fontAssets)); var name = ParseUtil.ParseString(node, "name"); - FontAsset = fontAssets.First(o => o.name == name); + _fontAsset = fontAssets.First(o => o.name == name); if (FontAsset == null) { throw new FormatException($"Could not find font asset named {name}"); } - Title = ParseUtil.ParseString(node, "title", true, name); - FontStyle = (FontStyles) ParseUtil.ParseInt(node, "style", true); - FontStyleMask = (FontStyles) ParseUtil.ParseInt(node, "styleMask", true); + _title = ParseUtil.ParseString(node, "title", true, name); + _fontStyle = (FontStyles) ParseUtil.ParseInt(node, "style", true); + _fontStyleMask = (FontStyles) ParseUtil.ParseInt(node, "styleMask", true); } @@ -95,5 +101,9 @@ namespace ConformalDecals.Text { public static bool operator !=(DecalFont left, DecalFont right) { return !Equals(left, right); } + + public void OnBeforeSerialize() { } + + public void OnAfterDeserialize() { } } } \ No newline at end of file diff --git a/Source/ConformalDecals/Text/DecalText.cs b/Source/ConformalDecals/Text/DecalText.cs index c974292..4de8081 100644 --- a/Source/ConformalDecals/Text/DecalText.cs +++ b/Source/ConformalDecals/Text/DecalText.cs @@ -1,21 +1,38 @@ using System; using System.Text.RegularExpressions; +using TMPro; namespace ConformalDecals.Text { public class DecalText : IEquatable { + private readonly string _text; + private readonly DecalFont _font; + private readonly FontStyles _style; + private readonly bool _vertical; + private readonly float _lineSpacing; + private readonly float _charSpacing; + /// Raw text contents - public string Text { get; } + public string Text => _text; /// Font asset used by this text snippet - public DecalFont Font { get; } + public DecalFont Font => _font; /// Style used by this text snippet - public DecalTextStyle Style { get; } + public FontStyles Style => _style; + + /// If this text snippet is vertical + public bool Vertical => _vertical; + + /// The text snippet's line spacing + public float LineSpacing => _lineSpacing; + + /// The text snippet's character spacing + public float CharSpacing => _charSpacing; /// The text formatted with newlines for vertical text public string FormattedText { get { - if (Style.Vertical) { + if (Vertical) { return Regex.Replace(Text, @"(.)", "$1\n"); } else { @@ -24,17 +41,22 @@ namespace ConformalDecals.Text { } } - public DecalText(string text, DecalFont font, DecalTextStyle style) { + + public DecalText(string text, DecalFont font, FontStyles style, bool vertical, float linespacing, float charspacing) { if (font == null) throw new ArgumentNullException(nameof(font)); - Text = text; - Font = font; - Style = style; + _text = text; + _font = font; + _style = style; + _vertical = vertical; + _lineSpacing = linespacing; + _charSpacing = charspacing; } public bool Equals(DecalText other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; - return Text == other.Text && Equals(Font, other.Font) && Style.Equals(other.Style); + return _text == other._text && Equals(_font, other._font) && _style == other._style && _vertical == other._vertical && _lineSpacing.Equals(other._lineSpacing) && + _charSpacing.Equals(other._charSpacing); } public override bool Equals(object obj) { @@ -46,9 +68,12 @@ namespace ConformalDecals.Text { public override int GetHashCode() { unchecked { - var hashCode = (Text != null ? Text.GetHashCode() : 0); - hashCode = (hashCode * 397) ^ (Font != null ? Font.GetHashCode() : 0); - hashCode = (hashCode * 397) ^ Style.GetHashCode(); + var hashCode = (_text != null ? _text.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (_font != null ? _font.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (int) _style; + hashCode = (hashCode * 397) ^ _vertical.GetHashCode(); + hashCode = (hashCode * 397) ^ _lineSpacing.GetHashCode(); + hashCode = (hashCode * 397) ^ _charSpacing.GetHashCode(); return hashCode; } } diff --git a/Source/ConformalDecals/Text/DecalTextStyle.cs b/Source/ConformalDecals/Text/DecalTextStyle.cs deleted file mode 100644 index ac55fc3..0000000 --- a/Source/ConformalDecals/Text/DecalTextStyle.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using TMPro; -using UnityEngine; - -// ReSharper disable NonReadonlyMemberInGetHashCode - -namespace ConformalDecals.Text { - public struct DecalTextStyle : IEquatable { - private FontStyles _fontStyle; - private bool _vertical; - private float _lineSpacing; - private float _charSpacing; - - public FontStyles FontStyle { - get => _fontStyle; - set => _fontStyle = value; - } - - public bool Bold { - get => (FontStyle & FontStyles.Bold) != 0; - set { - if (value) FontStyle |= FontStyles.Bold; - else FontStyle &= ~FontStyles.Bold; - } - } - - public bool Italic { - get => (FontStyle & FontStyles.Italic) != 0; - set { - if (value) FontStyle |= FontStyles.Italic; - else FontStyle &= ~FontStyles.Italic; - } - } - - public bool Underline { - get => (FontStyle & FontStyles.Underline) != 0; - set { - if (value) FontStyle |= FontStyles.Underline; - else FontStyle &= ~FontStyles.Underline; - } - } - - public bool SmallCaps { - get => (FontStyle & FontStyles.SmallCaps) != 0; - set { - if (value) FontStyle |= FontStyles.SmallCaps; - else FontStyle &= ~FontStyles.SmallCaps; - } - } - - public bool Vertical { - get => _vertical; - set => _vertical = value; - } - - public float LineSpacing { - get => _lineSpacing; - set => _lineSpacing = value; - } - - public float CharSpacing { - get => _charSpacing; - set => _charSpacing = value; - } - - public DecalTextStyle(FontStyles fontStyle, bool vertical, float lineSpacing, float charSpacing) { - _fontStyle = fontStyle; - _vertical = vertical; - _lineSpacing = lineSpacing; - _charSpacing = charSpacing; - } - - public bool Equals(DecalTextStyle other) { - return FontStyle == other.FontStyle && Vertical == other.Vertical && - Mathf.Approximately(LineSpacing, other.LineSpacing) && - Mathf.Approximately(CharSpacing, other.CharSpacing); - } - - public override bool Equals(object obj) { - return obj is DecalTextStyle other && Equals(other); - } - - public override int GetHashCode() { - unchecked { - var hashCode = (int) FontStyle; - hashCode = (hashCode * 397) ^ Vertical.GetHashCode(); - hashCode = (hashCode * 397) ^ LineSpacing.GetHashCode(); - hashCode = (hashCode * 397) ^ CharSpacing.GetHashCode(); - return hashCode; - } - } - - public static bool operator ==(DecalTextStyle left, DecalTextStyle right) { - return left.Equals(right); - } - - public static bool operator !=(DecalTextStyle left, DecalTextStyle right) { - return !left.Equals(right); - } - } -} \ No newline at end of file diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 8d210f1..5176c15 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -163,9 +163,9 @@ namespace ConformalDecals.Text { // SETUP TMP OBJECT FOR RENDERING _tmp.text = text.FormattedText; _tmp.font = text.Font.FontAsset; - _tmp.fontStyle = text.Style.FontStyle | text.Font.FontStyle; - _tmp.lineSpacing = text.Style.LineSpacing; - _tmp.characterSpacing = text.Style.CharSpacing; + _tmp.fontStyle = text.Style | text.Font.FontStyle; + _tmp.lineSpacing = text.LineSpacing; + _tmp.characterSpacing = text.CharSpacing; _tmp.extraPadding = true; _tmp.enableKerning = true; diff --git a/Source/ConformalDecals/UI/TextEntryController.cs b/Source/ConformalDecals/UI/TextEntryController.cs index 40d047d..aded7bf 100644 --- a/Source/ConformalDecals/UI/TextEntryController.cs +++ b/Source/ConformalDecals/UI/TextEntryController.cs @@ -9,9 +9,8 @@ using UnityEngine.UI; namespace ConformalDecals.UI { public class TextEntryController : MonoBehaviour { [Serializable] - public class TextUpdateEvent : UnityEvent { } + public delegate void TextUpdateDelegate(string newText, DecalFont newFont, FontStyles style, bool vertical, float linespacing, float charspacing); - [SerializeField] public TextUpdateEvent onValueChanged = new TextUpdateEvent(); [SerializeField] private Selectable _textBox; [SerializeField] private Button _fontButton; @@ -28,21 +27,25 @@ namespace ConformalDecals.UI { [SerializeField] private Toggle _smallCapsButton; [SerializeField] private Toggle _verticalButton; - private string _text; - private DecalFont _font; - private DecalTextStyle _style; - private Vector2 _lineSpacingRange; - private Vector2 _charSpacingRange; - private TMP_InputField _textBoxTMP; + private string _text; + private DecalFont _font; + private FontStyles _style; + private bool _vertical; + private float _lineSpacing; + private float _charSpacing; + private Vector2 _lineSpacingRange; + private Vector2 _charSpacingRange; + private TMP_InputField _textBoxTMP; + private TextUpdateDelegate _onValueChanged; private FontMenuController _fontMenu; private bool _ignoreUpdates; public static TextEntryController Create( - string text, DecalFont font, DecalTextStyle style, + string text, DecalFont font, FontStyles style, bool vertical, float linespacing, float charspacing, Vector2 lineSpacingRange, Vector2 charSpacingRange, - UnityAction textUpdateCallback) { + TextUpdateDelegate textUpdateCallback) { var window = Instantiate(UILoader.TextEntryPrefab, MainCanvasUtil.MainCanvas.transform, true); window.AddComponent(); @@ -52,9 +55,12 @@ namespace ConformalDecals.UI { controller._text = text; controller._font = font; controller._style = style; + controller._vertical = vertical; + controller._lineSpacing = linespacing; + controller._charSpacing = charspacing; controller._lineSpacingRange = lineSpacingRange; controller._charSpacingRange = charSpacingRange; - controller.onValueChanged.AddListener(textUpdateCallback); + controller._onValueChanged = textUpdateCallback; return controller; } @@ -81,7 +87,7 @@ namespace ConformalDecals.UI { font.SetupSample(_fontButton.GetComponentInChildren()); _textBoxTMP.text = _text; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; _textBoxTMP.fontAsset = _font.FontAsset; UpdateStyleButtons(); @@ -91,7 +97,7 @@ namespace ConformalDecals.UI { public void OnLineSpacingUpdate(float value) { if (_ignoreUpdates) return; - _style.LineSpacing = Mathf.Lerp(_lineSpacingRange.x, _lineSpacingRange.y, value); + _lineSpacing = Mathf.Lerp(_lineSpacingRange.x, _lineSpacingRange.y, value); UpdateLineSpacing(); OnValueChanged(); @@ -101,7 +107,7 @@ namespace ConformalDecals.UI { if (_ignoreUpdates) return; if (float.TryParse(text, out var value)) { - _style.LineSpacing = Mathf.Clamp(value, _lineSpacingRange.x, _lineSpacingRange.y); + _lineSpacing = Mathf.Clamp(value, _lineSpacingRange.x, _lineSpacingRange.y); } else { Logging.LogWarning("Line spacing value '{text}' could not be parsed."); @@ -114,7 +120,7 @@ namespace ConformalDecals.UI { public void OnCharSpacingUpdate(float value) { if (_ignoreUpdates) return; - _style.CharSpacing = Mathf.Lerp(_charSpacingRange.x, _charSpacingRange.y, value); + _charSpacing = Mathf.Lerp(_charSpacingRange.x, _charSpacingRange.y, value); UpdateCharSpacing(); OnValueChanged(); @@ -124,7 +130,7 @@ namespace ConformalDecals.UI { if (_ignoreUpdates) return; if (float.TryParse(text, out var value)) { - _style.CharSpacing = Mathf.Clamp(value, _charSpacingRange.x, _charSpacingRange.y); + _charSpacing = Mathf.Clamp(value, _charSpacingRange.x, _charSpacingRange.y); } else { Logging.LogWarning("Char spacing value '{text}' could not be parsed."); @@ -137,39 +143,55 @@ namespace ConformalDecals.UI { public void OnBoldUpdate(bool state) { if (_ignoreUpdates) return; - _style.Bold = state; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + if (state) + _style |= FontStyles.Bold; + else + _style &= ~FontStyles.Bold; + + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; OnValueChanged(); } public void OnItalicUpdate(bool state) { if (_ignoreUpdates) return; - _style.Italic = state; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + if (state) + _style |= FontStyles.Italic; + else + _style &= ~FontStyles.Italic; + + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; OnValueChanged(); } public void OnUnderlineUpdate(bool state) { if (_ignoreUpdates) return; - _style.Underline = state; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + if (state) + _style |= FontStyles.Underline; + else + _style &= ~FontStyles.Underline; + + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; OnValueChanged(); } public void OnSmallCapsUpdate(bool state) { if (_ignoreUpdates) return; - - _style.SmallCaps = state; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + + if (state) + _style |= FontStyles.SmallCaps; + else + _style &= ~FontStyles.SmallCaps; + + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; OnValueChanged(); } public void OnVerticalUpdate(bool state) { if (_ignoreUpdates) return; - - _style.Vertical = state; + + _vertical = state; OnValueChanged(); } @@ -177,7 +199,7 @@ namespace ConformalDecals.UI { private void Start() { _textBoxTMP = ((TMP_InputField) _textBox); _textBoxTMP.text = _text; - _textBoxTMP.textComponent.fontStyle = _style.FontStyle | _font.FontStyle & ~_font.FontStyleMask; + _textBoxTMP.textComponent.fontStyle = _style | _font.FontStyle & ~_font.FontStyleMask; _textBoxTMP.fontAsset = _font.FontAsset; _font.SetupSample(_fontButton.GetComponentInChildren()); @@ -188,7 +210,7 @@ namespace ConformalDecals.UI { } private void OnValueChanged() { - onValueChanged.Invoke(_text, _font, _style); + _onValueChanged(_text, _font, _style, _vertical, _lineSpacing, _charSpacing); } private void UpdateStyleButtons() { @@ -204,7 +226,7 @@ namespace ConformalDecals.UI { } else { _boldButton.interactable = true; - _boldButton.isOn = _style.Bold; + _boldButton.isOn = (_style & FontStyles.Bold) != 0; } if (_font.Italic) { @@ -217,7 +239,7 @@ namespace ConformalDecals.UI { } else { _italicButton.interactable = true; - _italicButton.isOn = _style.Italic; + _italicButton.isOn = (_style & FontStyles.Italic) != 0; } if (_font.Underline) { @@ -230,7 +252,7 @@ namespace ConformalDecals.UI { } else { _underlineButton.interactable = true; - _underlineButton.isOn = _style.Underline; + _underlineButton.isOn = (_style & FontStyles.Underline) != 0; } if (_font.SmallCaps) { @@ -243,10 +265,10 @@ namespace ConformalDecals.UI { } else { _smallCapsButton.interactable = true; - _smallCapsButton.isOn = _style.SmallCaps; + _smallCapsButton.isOn = (_style & FontStyles.SmallCaps) != 0; } - _verticalButton.isOn = _style.Vertical; + _verticalButton.isOn = _vertical; _ignoreUpdates = false; } @@ -254,8 +276,8 @@ namespace ConformalDecals.UI { private void UpdateLineSpacing() { _ignoreUpdates = true; - _lineSpacingSlider.value = Mathf.InverseLerp(_lineSpacingRange.x, _lineSpacingRange.y, _style.LineSpacing); - ((TMP_InputField) _lineSpacingTextBox).text = $"{_style.LineSpacing:F1}"; + _lineSpacingSlider.value = Mathf.InverseLerp(_lineSpacingRange.x, _lineSpacingRange.y, _lineSpacing); + ((TMP_InputField) _lineSpacingTextBox).text = $"{_lineSpacing:F1}"; _ignoreUpdates = false; } @@ -263,8 +285,8 @@ namespace ConformalDecals.UI { private void UpdateCharSpacing() { _ignoreUpdates = true; - _charSpacingSlider.value = Mathf.InverseLerp(_charSpacingRange.x, _charSpacingRange.y, _style.CharSpacing); - ((TMP_InputField) _charSpacingTextBox).text = $"{_style.CharSpacing:F1}"; + _charSpacingSlider.value = Mathf.InverseLerp(_charSpacingRange.x, _charSpacingRange.y, _charSpacing); + ((TMP_InputField) _charSpacingTextBox).text = $"{_charSpacing:F1}"; _ignoreUpdates = false; } diff --git a/Source/ConformalDecals/Util/ParseUtil.cs b/Source/ConformalDecals/Util/ParseUtil.cs index 5a712c7..d600bf5 100644 --- a/Source/ConformalDecals/Util/ParseUtil.cs +++ b/Source/ConformalDecals/Util/ParseUtil.cs @@ -30,9 +30,15 @@ namespace ConformalDecals.Util { } public static string ParseString(ConfigNode node, string valueName, bool isOptional = false, string defaultValue = "") { - if (!node.HasValue(valueName)) throw new FormatException($"Missing value for {valueName}"); + if (node.HasValue(valueName)) return node.GetValue(valueName); + + if (isOptional) { + return defaultValue; + } + else { + throw new FormatException($"Missing value for {valueName}"); + } - return node.GetValue(valueName); } public static bool ParseStringIndirect(ref string value, ConfigNode node, string valueName) { From 06137357c1777cc80ecfa1f821577c171f4e69ef Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 14 Nov 2020 21:15:43 -0800 Subject: [PATCH 12/14] Close windows when text part is destroyed --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes Source/ConformalDecals/ModuleConformalText.cs | 7 ++++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index dad1a8ec0c213d725489578812e176e915567bb6..20b7463605ff38fa0d2018a2ed5715c076229976 100644 GIT binary patch delta 5724 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 delta 5718 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 Date: Sat, 14 Nov 2020 21:17:54 -0800 Subject: [PATCH 13/14] Add defaults to text decal config --- GameData/ConformalDecals/Parts/decal-text.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/GameData/ConformalDecals/Parts/decal-text.cfg b/GameData/ConformalDecals/Parts/decal-text.cfg index ed1edc1..4e3e391 100644 --- a/GameData/ConformalDecals/Parts/decal-text.cfg +++ b/GameData/ConformalDecals/Parts/decal-text.cfg @@ -52,6 +52,11 @@ PART name = ModuleConformalText text = Text + font = Calibri SDF + fillColor = #000000FF + outlineColor = #FFFFFFFF + fillEnabled = true + outlineEnabled = false shader = ConformalDecals/Decal/Text useBaseNormal = true From 6f0c1f8ff549907e52dd57064dba8289d260ea23 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 14 Nov 2020 21:19:26 -0800 Subject: [PATCH 14/14] Update Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 95c4459..33780f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ branches: only: - release script: - - git clone https://github.com/drewcassidy/build-deploy.git + - git clone https://github.com/post-kerbin-mining-corporation/build-deploy.git - cd build-deploy - git checkout master - cd ..