From 1ebed608a8209fbcf583a8cdfb519eb3951df04b Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 11 Oct 2020 03:05:07 -0700 Subject: [PATCH 01/32] Fix corrupted text rendering Fix text corruption when rendering text right after a scene change by delaying it by a single frame in OnLoad --- .../Plugins/ConformalDecals.dll | Bin 82944 -> 83456 bytes .../Versioning/ConformalDecals.version | 2 +- README.md | 2 +- Source/ConformalDecals/ModuleConformalText.cs | 24 ++++++++++++------ Source/ConformalDecals/Text/TextRenderer.cs | 1 + changelog.txt | 9 +++++-- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index ed08705a543423a4856d5b7224620d1c1fbd5901..74d53ee48dc8258813794f31a2137451846c4320 100644 GIT binary patch delta 37104 zcmcG%2Y6If*EYQOIWuQ!CR3738Y!f3GD&~{snj6Sm98`?f^;27K*bOyK|}>a@dyew zP%PLL>>k%vE>4L%Ub&- z7j(SolrNqU*1yA|W1dHL6{3$6LNkTSPg#GYhX;K_g*XM`4EmC;FyH1v3 ztdXyj853kD_uAgbm&eFn$za7q-iVD0@l>dHJH= zvUD-?oUh7s;~vi}*~!T8_LjPFvbVQ!k~i77-W%w7qoV4)QA0)V z3|u}%2zQxJQS@$L`Vz3>h@y7~iPR~2IT@<@nGi>WFh2I)onApI)FZ2_DkkIV6e0kV zvy8ivMx)p!UxtzG^T@Ld-DmQfA$>79+vt~kF{jQz9sBy7Qac-7k?({+bv(H`FiPj!~5!qjH)$M47Ucwd;&iQ!dDFL1smbwvr>5*c7!H zU0_pe%{}PSxWe$H=4j_at*%zq2Bm&soOwZ36IlZY z*@Jd{EfPtPUi1%X$fh(^!Q=7(z!_Z!151zuflI#_g6JhAJ=wHNhB#nrm-}pGi?!u0 zNTcgvRyNzpP7+IgDfut}7QYP1kYCIbrm6t8ph1DPA6jYyKTz} zqgN1Y0$8S-Sw$GVlHe*(lh+xSq;E{Q9wn5eDM}M&p>6qS zu;^tw>M~SWyA5f#rjN&^yiik?od5&<24ZOqi``O$H|arE&4DT{`jD|NJ0tdw+CB`Ef7bR9l1>7Yr7izQ zZ677&V*oT8!PFWbM_S(nSd3nfEv#xnylwh!2qRftr9dEPc{65o=!=!>`VRYm(VSug zWMfWo3NKM9Rs_yK9$WMYe%SHEFMZp%r6aw&qGrF{5#8o_M>SiEi0OCJeeQSOxMQu`F{<2 z0T#{VzZCldm-8ZdX&-@6EL)|~mmzeQo)Q%LD@b`9Jiej_kS-hSh>pTF`l`{pAX~m> zOf1OFcpU=RzJW{m=68HSaWt*aEdJ7h!Wi!j&w1K+4;H)@7sPju_u>MtwS9aS7bIB% z?Dysl6tZC}!~ScFE<=$HrKvuib}CI6aHia)Gz~&J#zp}w%N#1ok*kO7rh~Fs%MU`J zEb9x)CX8vfPCXma0$49tc4C{%VeMMoFw~0zTJxLG6a^g3Z<*JCHX&f2KdJc;DCS3h znjf^O#dudU>)2M@amN-;yeNOF~y;-@h#ifQj|T79eM*^ zW!Vras=XCSW+6#tAxW;pHhHZ=lB`0K0^a{xNOp1d7%s#Y@F~lNA6rOrz?SIOXZcOG z{3Zu{|JCoB;{2X8)!e1I7{TUDn+5OI3j7XKY81PaRtz=IuQ$vAj&@;w?fAI3mz3`s zh5CrJ!?2Cyq_&)j?2&;D>o8gsY!%z}+}O=f>F<%g3dcMwkebQbtVsXMZ?T6*T<;7NmPA%jOsgL#^I8%_B~Si z55}J*x!#K@`6FqtVH_?=b%ymeZMG|{@*zq8(U=$M5YKi|Bv&)D8TUkrW2QMgxRYf( zGngk?rdzJSyg?P6`4dt&!SO}mi%tur60{vn#d;!xwq%*C=oBLTX95ZjgbIhI=@&2; z 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 delta 36839 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 diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 9da95d5..30db53b 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,7 +6,7 @@ { "MAJOR":0, "MINOR":2, - "PATCH":1, + "PATCH":2, "BUILD":0 }, "KSP_VERSION": diff --git a/README.md b/README.md index 285a4b3..f033670 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.1 +# Conformal Decals v0.2.2 [![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/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 3b8e5d2..bc282e4 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -1,3 +1,4 @@ +using System.Collections; using ConformalDecals.MaterialProperties; using ConformalDecals.Text; using ConformalDecals.UI; @@ -99,7 +100,15 @@ namespace ConformalDecals { base.OnLoad(node); OnAfterDeserialize(); - UpdateTextRecursive(); + if (HighLogic.LoadedSceneIsGame) { + // For some reason, rendering doesnt work right on the first frame a scene is loaded + // So delay any rendering until the next frame when called in OnLoad + // This is probably a problem with Unity, not KSP + StartCoroutine(UpdateTextLate()); + } + else { + UpdateText(); + } } public override void OnSave(ConfigNode node) { @@ -107,12 +116,6 @@ namespace ConformalDecals { base.OnSave(node); } - public override void OnStart(StartState state) { - base.OnStart(state); - - UpdateTextRecursive(); - } - public override void OnAwake() { base.OnAwake(); @@ -210,7 +213,7 @@ namespace ConformalDecals { public void OnAfterDeserialize() { _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; @@ -252,6 +255,11 @@ namespace ConformalDecals { } } + private IEnumerator UpdateTextLate() { + yield return null; + UpdateText(); + } + private void UpdateText() { // Render text var newText = new DecalText(text, _font, _style); diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 4aef069..f81c3c6 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -257,6 +257,7 @@ namespace ConformalDecals.Text { Graphics.SetRenderTarget(renderTex); GL.PushMatrix(); GL.LoadProjectionMatrix(matrix); + GL.LoadIdentity(); GL.Clear(false, true, Color.black); for (var i = 0; i < meshes.Length; i++) { diff --git a/changelog.txt b/changelog.txt index 71c69d1..fc0cfa2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,8 +1,13 @@ +v0.2.2 +------ +- Fixes: + - Fixed corrupted text rendering when a vessel loads during a scene change. + v0.2.1 ------ -- Changes +- Changes: - Pressing enter in the text entry window now types a newline. -- Fixes +- Fixes: - Renamed font assetbundle. The old extension was causing the game to try to load it twice on Windows due to legacy compatability features. - Fixed text rendering on DirectX resulting in black boxes by using ARGB32 instead of RG16 for the render texture in DirectX. From a937888c0d491f6a0f212b83cda9f4020572ad59 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 11 Oct 2020 16:48:10 -0700 Subject: [PATCH 02/32] Fix deploy script --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c594017..d05018f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,9 +11,9 @@ branches: only: - release script: - - git clone https://github.com/post-kerbin-mining-corporation/build-deploy.git + - git clone https://github.com/drewcassidy/build-deploy.git - cd build-deploy - - git checkout master + - git checkout main - cd .. - pytest -s --testpath "GameData/" build-deploy/src/tests/ # run the deploy tests - python build-deploy/src/package.py --f ".mod_data.yml" # Build package From f37c3d57b78f53e208631668a5adf1228994efd9 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 11 Oct 2020 16:49:59 -0700 Subject: [PATCH 03/32] For real this time --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d05018f..a654c1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ branches: script: - git clone https://github.com/drewcassidy/build-deploy.git - cd build-deploy - - git checkout main + - git checkout master - cd .. - pytest -s --testpath "GameData/" build-deploy/src/tests/ # run the deploy tests - python build-deploy/src/package.py --f ".mod_data.yml" # Build package From 16ef53ea65eb69d1945f6d78fa400e673dc8f773 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Wed, 14 Oct 2020 20:08:25 -0700 Subject: [PATCH 04/32] 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 05/32] 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 06/32] 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 07/32] 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 zcmcJ233yb+w(hFEch5l8(SkE&KQEE3cTA|q9f`^j^VF%#lGk;N)sog3Mza@4@cN2-1DE%3m9{qfPrMpvyO z`uQay)l|}3l}9erZgPD^WDGIvbzevJXh&1O1>^S=v5~uACD6&s2Cvs;ud>i?f z-cN0aWEd&VZ=m$s>%NIp8S(1A$Z#X5zKP51j+OV<81vu8Ml@&R<}tJk)R`X^k1E} z+Ud2zXY_d=l6!40q@u>KuMq81ReXMt(a zNd!48FfA|+VbOsFd$v3s_lhlTk(4kJlG?L8G`Yq>l&{qdVvD_7?n-H|I@|(_{7kLx zLdX(I6SX=vHmO#J0c_MPi5yNnrKWB9B<*&k)<etAvXC*~RcFv>M{TA7LR?V5}Ooi}Fb*7zRsLl<-tm=$E+o|V2-O`Ez zMeZdgLo4#nFl5UUwq^A>leI)PvDdX)+bz>b`@Y%giAevxTT@S=5Ls?cB5~Tj9U+~1 zDLiC1oQfo$dx?4`GWp!$>dDB<=WbBXZmH=v&Y?C(_MLwtaPS35YR8tVFBoQ1+qP^U zc8^k9w~W5zu%>oy=`(VR=6n&pvh{jzd!fxpxF{}9ufbAkk8|raBls992Nv{|T&5_X zYPKPBL5U+4eM7Z{N#Eyhzh)SYZz#%=V}@ zrp}t@QJk~2uo2Q8-B~jhhR(d$Vh0V~^5PW{O%2~NvU-+wu2%Ofnpm5xFo(AwYeK9q zznvCZgkj_N)f|JQ1_tgBP7e?yj)?X7eWtqRTPRES8h*#r;gRWA4T$Wxs)Ic@fhO0M zY&m*We?5$|OKP!BLvZXy%G!zqDxX|)S_EfvOnL(>K7je)GkhrX;Vrx&(sO)HX}VVT8se1K zUeoI(afudMh(=@izX(048KGe~Tkv^qAi)%=d?qXr2gMfXYmp#vUo7PXJ}ilrsMQ-g2wlOI-WM5iZRUtcTxss4kYScx z_YvnJ9+oLX8|71f7{)W3x>E#inOvoSynRyx{B}P~g&?BO@gf4T*cI z3%Z*SD#;?rQKQjJ}A~io$f`;F+{P$U_!)Ipfse=V-^vXG7!DgVvQ!DC1^2P!b8FuTqus2EaGNool$U4Sqh1c4>fV; z#|0?lN6LdmIDn&AKo*O1;ip)T>2$)`)`A?l@%naQ#M6If4)#oHndfFz&Cb=OnYuL7 zZ7+ziw=~mkb~5(_oKg>|Ki5XDi9>-{I4)p^G9q~AobR?T!5%eLui+`iMRb9!DU&kn zJX198Qi3^x(Z*S@g~dmfO-hQ4o)n+@mjeG_lbd+f86N?vN#H8=)k4!FZ%&F2PC*SE zHOUyUgcXP+0#gVgXk|k`ASGAF&*>(&{gC?N% z$l#ZgvpYa~Z46E=A#B0y7>;+fMntdOiF9H@XgV|nPR$;ghdOn{5vR%gY%5Z{IGbsS zzsFG!(b4Zj0>jh zME&mUq}mcmC)@ANPN}^Bv;ntVU)mXFOV@NKbwU6M!c|6m|+c5v0gySAow}_X!v2bm{h*d$>$xPL4Ot z-Ac>ka3A0nVV@G&HYGj^XEdu0HBFKCrt}Qof}D9vwGdx6%#MLWUCvWlXvQA}tv1nr zwmBon8)*6Qx7xHsvjlbM!)1r2!*30){V>P9_8M09rHs zmY0TtM4abXrqy-+Q&^?B*5FTp6{`y!p%g?T-xku5x&CnE__UO8+n(nT{crMc1zNUq z646w6Y?T~=x+bly8KfsdlKH8u~E%7U}034ojOrfZ=Nu;V6RgD*)b zyk)~GR}gsv&6BZK_YHRd*CnrL>PED(;aKFn8$;pa5M$RWCs3@@bgryfEJY`MkAufv zV7Dh0B`4%*@%1dn3jQ4*5``tUh#jHM7*Ywm>tl6Z%G4~>?xq%sZE-fY5yy_!F$c$< zEC{inXzJ5ktCO4;GQRxDOV?|nxI@5m+hl_63vBC-6we4<3=69TI(>x}^ph5_6uS;h zs?8*ni7Zx3`-T+Gm9sq%%bf=|5~uCEU|`+o^h6$>k$S!@72P)st*X5qDXq>6vzk0q z`!#8WwYhoJ;C`oHenYMbbl-j!!(MF6oat z={L^QrdC4D63bB{<{!>x>?q@OXWaAQDoN!!d$a_2%Rq_l{MZD!gy9`5U&F|SjC9~T zk+C=Bo)w39b(oF&RydBqMy$ioX|)q3T{9K_>EIHgBdL&GJd|F(pU4MUhkh3i=!4^X z;F%ebS8wXr6B~5i<`LY}9(-2flK_r5VPi;yfld%{eF+;ixz1_CF@R66NMT(t{6jkH z(Qyuv5CarjJ#J0 zc8A3Fr=Q}-rr4=pJbUhyxGBR&@4Me zLE@$C>?WU^;ygr`Q9>>|`nmlk7(Oqbpo!a}^=}T%;hMNWjiI&mUEW+K9 z`*YbcwT#n;IyL#cbX6u}NNe(i-PFyA=|ySSf^4E0ah$#!p>tDJ4$*e%%_}c;lgv#y z?C5RmJKVGf74p(eA(m9ZgPq1m@y|*7)`n6G-Bb%dc8ZSXYE75s`4WE2^-@0kczTb{TznVobi6bej_h=2CKphg#oZAV z$LY*c# z;I0z(CrY{aDW&YEINWhX0qP>y6Noy-vwCYRtM4{e6u4=1K0BReW2fUVTHVwe&993@bOiSja9m%RuYnWy>cppzQRx z;L`j>u>2~UB}Ijd2Rg7MA&YS;;$)|RnDLl9=|t`6O^I0;X?K`zLZ|~YJ6Nm#uGuiD z0`$49R=3kCWOGxBdM<0Cx>~~Z1ZSW$Y~j%YjFJn~7|ep9D%hTLt;tUOfgPRFIbueASr za5R05%Gs&ENY-Fd@k+TLUBTUmXyf9hYrL&sa4Y*At0yy!8u`K}xx8Qqn2wK+Ue75n zxSd?&7v0ue)}j6JqIAMEL~&TW*|cXlvqTCC+gHq{opCFfbzR$)7d(t~cX4xB%DVI+ zbS+&-E)*D-w=R7?*rm`BJ)6$D>u9Rzp4VA7i53dWGMLp;_)c;2l9*1X2c?J=9UJxA zX*xYD>;YkQ^t7-$GFTU;=Y>5hy1DeCuye9m*F^h;Y01o1)91o=i*5~lA?#jZ&Gc

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 08/32] 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 09/32] 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 10/32] 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 11/32] 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 12/32] 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 13/32] 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 14/32] 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 15/32] 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 zcmY+|3s{s@8VB(Aone@di}GCnM?ew5E67N42XVY+ii%(YnMI0%QyEV@}?t z8Ipq#213Y4t|GAZ;c6fiYAsBsNWJ5E78JuP-QZRysRJQhs2T2$LV4rT2+S zN5oLB-+Gj;hC`G&N_KN2dbTKWQE93Z&ZbCx$P@!F zrb-R8uT)1t6Ui3)j2Z{Qqh&V6=Z|UvOcrX!@oWtfp^d~>G!atMWMwlu>_o_OaWx}f zr$p#>0Uy5@&PQ=Jjg=u^wnW%Jfy)g+gSM)P;6G7FEMgLrPU0$a3?F*KCkb{7Rlvxg z05u5?_NZJR9y>olk*`3)$vO@sGIJ_(K1>2QW*Box}F zLpv$8Pos4PTqRBHQ)rt3H-${MqIfh~Ga!WDHc+JK9)-3Ha0$7U5SGn^e98v1Y$lXY zHj-tTP)AuZ%QE2;%3ex%(V7LHQTBGidukSR$c&xB_tja@@cN-W_q-zwiJdEw>$l`<&Z{7ig9SG;6c(6XPCAYmXg-uaP4XM11ZoM zr#%b1NqeKmXdB@W>1AiSRtz7Iye!$;bMOTz(sbr)Ti{1xtYx{j9lWySvALXu+D;fi zdNuGlZ5K3<9&}b~)u7ChmGg(xX?viXv>NNQy)a@n&)jUef40^@x=;&T@7n?UpjKu~ z<~omkke)3{Av>~Odkyvrbz*j8mwi993bnB8UF`rUIlQt3{^_;Deh{LC+{&x{f3qHh z6{NrP_waZfjtf;Nk0u@0-hdBDOPLPA-$_c$NmF|hx_fv=dkc(QK17A0#C)zDf#4op z(&`~X3NBkNX>Y@B(oXB=+B=Xxhqo(-9QZ~%3N1o%_6^V_BxipNTo3a~H=F%B5Azsw z5&7&JVZvM<%Gv)F3WVhBk3%hq&%Oyh5|XoT0^dhOrwX6_-(ZdqpZ#_11S}yfW%>Zt zl9ZU6+DQ|3^$_$^P~Rg({}7J#NYy`rW-0jAqUxvNCh1G7qPIfgqkQ-ZxYgI8e+=75 zgJS#ZpTJ=uw{pW0p`U>U(k;tZUT45ON$j)^*U!QQ()U&;QoJxRf#{c9q@^CrSCS^O&y8 zH+iW%nlB+GUo?ckUQg*?!W=1aFqdGyP!a5h0JsEeg!rLt&^zD|{)=Sg zt6Bj30L7#Vrt8p6dW-1>faK#~XL&;)Z%4X=vb&NEb zZOz?Kw^U}w9bAsbrJyfYv5-7z-LO@tLix#Km);HKB!`Wwnsi8HwOl4Gem5jO!82xXw4FdYr0Y=1M-G8(ey>w>K^k zlGl?DZX-R;KJED6Uq~AxxX#FSrntO(@GD6+pxeU-uab5Knyl1!l^lW(=!?aqPuS(v z8$TeqbQApWYawNo8^LSzX2Lq;=7s zF?~SdYoX!CB)%3Jc9F_F+jSkUlWIM`X1XQRf|*`dbpwAD>ck2I!5?pvHkyLJ2{uEZ zFAx3K$m9NS7}pA+X7FVX41e4}*&}R8{qZnqy5olKk54`++pTx}st4lpLM?E5;6d*` z7`c{bEx6io(A$9%NVyL4pm$%KCMeH+5Uv%v?6ocQX$Zm%GE-W6buhU}oxQorNl%Ql z7(w^~X=`sg(<`Khykc18VbZ5Iu0~R+UyRB45phlw58Fup4d&f+kbVf}*>|K4piqFukj2Ci9v8$^W??noldi6Cz(6x?N@-1$FVfMop1?3*sA6rR$j|;`9r+F#g z#|9gr7)M&l6ozAkI?XS5NHvxMaO4#J0pDwKM!WMhztg_6)a zevB~)>q#x~GmN2ljWjMk#~6-@>-oXR$5kY@kN zU`dgXxYL|iDkMKYI?=3`p>ip%1Dtq_#5W5kHs29DqfTrkEny4n#0#WD4!4IBzaU)~ zxVW%l57e5~TH}O*W@hSoL3Gu~WYb4+y(o&`*d{4-& z%u_cQDR@GtNLi+CVrr%ALj057sd$01OYxhHRBWg0o7f%p(fF@TV*hh1KgHT$G=48b zwos);8hR9q<5qr&t1?{ZOIj7rU8PfT*@&v0e6p{6J^m|F}%{Op5ChYRN!$xw2QWxJqZDBIH&w z*mwV#sFLymZ7>r@k%A+dY?+usN{W2L$i#Hgv5>)*Osprh3pt+SBe<1Q>QPoXK!|<+ zYf~E;Gbx-G?)J#SHA3><&cY@Vzqhk+Wr^rUe1glu5)%JGAq)LC%j}b+W+MypdUV>D zg>|HXDW{DGv0KW7evGp*@lUd$JNc|T{Y$N5dY!2QetxLXa z%*7R3WG|5sDm;SeTcw(Pa=jnL29mqiW+M;Nx5>os5g+ca zGTC>CA(VYVJM4?mpR|1>R~YHA$i|bZM7DsmKk^yx#aK)_DzulxPw!%^7vlGUsaY3e zVJRO_-UmxCwoHm&mP>K7kQ;8XMSL80l3rnp_ypGW=v!kM`tIcI%3!_vA7cfU3(05x zDtxm?HduvCLYFa4!)REI&BTVd7^Yt3yqn8j?e~pk3XsB|oyZhY{@R}>J{Te1lU+ZH zQTHhJ9;M!+2}1J8|14(QljW3;-Se!Och`FrSa6S42yKFskmg^3n}lRvmAK=s%1W%H z%AKsT5)brbHrR~~LSpJrg~v#I=2h5iKL7jFtFTo{OuY)vQx-aEEGxYzB$uEHzwVKZ zWw)svTV1F|*d_WzK14Mxm-2f4zQLAie2Ox@xYf8}SBM;*4^fRJ6xI!y;9rfWcO7Ya zsWcp2M;4!m%u(m9={$Adwa3T3(6r~39<2?=+WrBGckQQu(=sfqqmAs(m4o1_ zoSTe&Je%0RP05w(lX0N>_R4Le_g}g_d2?*)#?@zDURGI`jH~aXcT2qJUDnymJ$-`T z{AKc*Ww$$ro%f^PclkjM Date: Sat, 14 Nov 2020 21:17:54 -0800 Subject: [PATCH 16/32] 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 17/32] 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 .. From 40d4e2cc8abefa98cdd1947c5d642c55e8df1b81 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 14 Nov 2020 21:26:16 -0800 Subject: [PATCH 18/32] Update changelog --- .../ConformalDecals/Versioning/ConformalDecals.version | 2 +- changelog.txt | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 2f9b497..a722e4d 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -7,7 +7,7 @@ "MAJOR":0, "MINOR":2, "PATCH":3, - "BUILD":0 + "BUILD":1 }, "KSP_VERSION": { diff --git a/changelog.txt b/changelog.txt index 7376194..16dfba6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,9 +3,10 @@ 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 - - Fixed decals having drag and causing issues when using FAR - + - 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. + - Fixed broken saving of text decals in certain circumstances. + v0.2.2 ------ - Fixes: From c9853049c50fe225d5cd119068bb2ac1a62c4b11 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 14:01:10 -0800 Subject: [PATCH 19/32] Clear rendertex because KSP wont --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes .../Versioning/ConformalDecals.version | 4 ++-- README.md | 2 +- Source/ConformalDecals/Text/TextRenderer.cs | 1 + changelog.txt | 4 ++++ 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 20b7463605ff38fa0d2018a2ed5715c076229976..8ac1384eb029771a2da189f3243fceae1fd3bd74 100644 GIT binary patch delta 2107 zcmY+_3rtg27zgn4uawq0q(1YiA>V!lq_DEM|wX=i*lln^t)6s>6YxXUe(EmcUYb1 zmAZk-jC#d|S$wLD^|8u~594ysNV+t<)szd1Ut|Z(HTkb7xll-Jxbk6>(#%V(Zzxlc zF6A??w{GXkr0inO%a#J<`Bl-4&wM4PMJa%X!kgKxrl}|)-Oo0%sVLXQC)%b=!z#)i zy245!>PZbbLXD)F=qy%|qTtBdU(3pNwcJH#S1R_GFnC2blr(>fD&sXjKr5;v>}(@7`uY=&a2 zO>`x! zZ|a%NeL<;0CTY3*lJXJ?NQ-&401HWt?yE{QE|N0rR<;OTyY*grN6fd>AZ3p{aT?QN zT9n1;+M|bBjMK0L(R+1G%~#nnOd|Css;m}sNY~R;wj8yjq71MVI7K>=Vl%9Oy;b%i zZ{bSh>XOgmN=)bC>(}JNxDv$_mW~@>tKcOq9B1WPLwa{itEmo+q`jF!J4jtJJ5CDA z>>TMt#_N_k+#>ZzMYZv%seE{Gf9sGW$p2r&L9D|7Njw{?(H_tfg%f2eXFuM8n(zuY9b@^++1=_?N-l_XXk zhC@9dO0UYLhmolZV(DSzQf7PF!!=z>--0lT9?QtHC3KzG+z4t(Vu%R7(=~km zQ3TFIj=Rd-BBPdzjW(D|vof^VvNhM7<%CsgwPmigidpOb|G!@jZhPB(-uL%@zxRLl z-o1l9(?Or9>xePNcOmF+x8a2UopL-G0Fq6G6<})ua}BA1^+?9)fES+F=JjCWvz%`R zW@4#>v4*M**gm*t(+|eM&07PRo>8wT(5&_pFemOw`K?c+JecZ4^vg1{+;)xfERIx} z+4Ptbw*NKVtU6&Q?Xacu%2d+(R?X-{Ch0e+T+%(+v&N&7k55sY7?!$&a>s7fg~f-& z_z_m_I2W6R2GY&QPV++iE7fDE%6?v52(wRA_E>guWkZ$HEL)V9)EvZ1c`dt?LtJ*s zu4nCy%0;TrBM$UhZfCWrxo}Z+I8%;0LJ?3y{972vRsiTPg3E%OY{4hql4q_ZXHp#z6wW^kR>Gd}*5 z`V=1MV(oLliZD*fcL_~7ES99Pmf1y05v)=pY+h9Clx4^uon4e@SdMBgK41UsS785y z(iP~LQ2I13Na>Zu7@1I6jIjxoD`C{+czHjSK-Fb&$BeQP#FL6+6fRN60?&mbJubO_ z1mYy0!8(#_R-&O46;eLgZxyPkL+Q*;^D1m7RnIiBRX9e9w_h}^Mu3#L9;-&jYH2dy9k`+T=j?W%ebt48xCfRb2z)QF#w)Y+lY)buCsN)l27atwR?{bAJ_44&yOB zOLTv&R=`fGb>CE{U`oX6H%$ zj{Q;f_>MFr^_P%`j~BmhJ)*nBnd(nVJ+70))3O8YemxVn1%f8l1gqp2T(Mxyu#tvc>0GtCB5y4y z;A*7oPp7DC2@JlzbnOATPjB4{-z2q9QuidiCZ+%9x1xViHV`N|)#@3Zu&)OfC+UjR zA$FN9j_bjWRNG6`GrQ^iK4Woi2Muc%$S7i5s`GzpAQ6?sY@y*G2eY_YE z#wdmFB^Snpku>=I8~!Bp4(|QbQK5YF*2aj+j<=U~=kDqA4Q%^tXdoVa3F&23D<3kH zlp1)SgM91dZ|YvR{{JUhi*G95lKE!kZ)|Juup3E=^>Xo<#&t`UcSV;LHjjMpPjJ|c z<^{BOkwSY#^Zs+@lwUtisQjd`F}{vo`MekNitms6=gvfPuq6j!e_Hg=^jwTjF?44S M#pdHa{AuR@02*W5X8-^I diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index a722e4d..56afe25 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,8 +6,8 @@ { "MAJOR":0, "MINOR":2, - "PATCH":3, - "BUILD":1 + "PATCH":4, + "BUILD":0 }, "KSP_VERSION": { diff --git a/README.md b/README.md index c2c2508..f607557 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.3 +# Conformal Decals v0.2.4 [![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/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 5176c15..a1bd492 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -272,6 +272,7 @@ namespace ConformalDecals.Text { } } + GL.Clear(false, true, Color.black); //KSP doesnt clear render textures before using them so we need to clear afterwards, as well. Thanks Squad. GL.PopMatrix(); // COPY TEXTURE BACK INTO RAM diff --git a/changelog.txt b/changelog.txt index 16dfba6..bfa046f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +v0.2.4 +- Fixes: + - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. + v0.2.3 ------ - Fixes: From d31576fb0b1660806b3a5ec90564827550876e15 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 14:44:07 -0800 Subject: [PATCH 20/32] Fix font saving and rendering --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes Source/ConformalDecals/ModuleConformalText.cs | 26 +++++++++++++----- Source/ConformalDecals/Text/TextRenderer.cs | 6 ++-- changelog.txt | 1 + 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 8ac1384eb029771a2da189f3243fceae1fd3bd74..fba5b8ba1207b232319e2829027142b2373cec7a 100644 GIT binary patch delta 33617 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 delta 33683 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

o*FGx&6w(t)hyh;u?erWl)%DY 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 diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 49906b6..471f688 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -94,12 +94,24 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { base.OnLoad(node); - text = WebUtility.UrlDecode(ParseUtil.ParseString(node, "text")); - font = DecalConfig.GetFont(ParseUtil.ParseString(node, "font", true, "Calibri SDF")); + + string textRaw = ""; + if (ParseUtil.ParseStringIndirect(ref textRaw, node, "text")) { + text = WebUtility.UrlDecode(textRaw); + } + + string fontName = ""; + if (ParseUtil.ParseStringIndirect(ref fontName, node, "fontName")) { + font = DecalConfig.GetFont(fontName); + } + 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 (ParseUtil.ParseIntIndirect(ref styleInt, node, "style")) { + style = (FontStyles) styleInt; + } + + ParseUtil.ParseColor32Indirect(ref fillColor, node, "fillColor"); + ParseUtil.ParseColor32Indirect(ref outlineColor, node, "outlineColor"); if (HighLogic.LoadedSceneIsGame) { // For some reason, rendering doesnt work right on the first frame a scene is loaded @@ -210,12 +222,12 @@ namespace ConformalDecals { public override void OnDestroy() { if (HighLogic.LoadedSceneIsGame && _currentText != null) TextRenderer.UnregisterText(_currentText); - + // close all UIs if (_textEntryController != null) _textEntryController.Close(); if (_fillColorPickerController != null) _fillColorPickerController.Close(); if (_outlineColorPickerController != null) _outlineColorPickerController.Close(); - + base.OnDestroy(); } diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index a1bd492..c1b098d 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -272,14 +272,14 @@ namespace ConformalDecals.Text { } } - GL.Clear(false, true, Color.black); //KSP doesnt clear render textures before using them so we need to clear afterwards, as well. Thanks Squad. - GL.PopMatrix(); - // COPY TEXTURE BACK INTO RAM RenderTexture.active = renderTex; texture.ReadPixels(new Rect(0, 0, textureSize.x, textureSize.y), 0, 0, true); texture.Apply(); + GL.Clear(false, true, Color.black); //KSP doesnt clear render textures before using them so we need to clear afterwards, as well. Thanks Squad. + GL.PopMatrix(); + // RELEASE RENDERTEX RenderTexture.ReleaseTemporary(renderTex); diff --git a/changelog.txt b/changelog.txt index bfa046f..e3bb636 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,7 @@ v0.2.4 - Fixes: - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. + - Fixed fonts not saving correctly v0.2.3 ------ From 98f774b2aecc3720186b2e3ef4bf8af637e33476 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 15:05:55 -0800 Subject: [PATCH 21/32] More font fixes and UI changes - Lowered step size for decal size and depth to 1cm. - Changed default max size to 10m. - Text decals now show as a circle if they contain only whitespace. - Fixed font name in config and defaulted to Calibri if its missing --- GameData/ConformalDecals/Parts/decal-text.cfg | 2 +- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes .../ConformalDecals/ModuleConformalDecal.cs | 18 +++++++++--------- Source/ConformalDecals/ModuleConformalText.cs | 1 + Source/ConformalDecals/Text/DecalText.cs | 1 + changelog.txt | 6 +++++- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/GameData/ConformalDecals/Parts/decal-text.cfg b/GameData/ConformalDecals/Parts/decal-text.cfg index 4e3e391..37df801 100644 --- a/GameData/ConformalDecals/Parts/decal-text.cfg +++ b/GameData/ConformalDecals/Parts/decal-text.cfg @@ -52,7 +52,7 @@ PART name = ModuleConformalText text = Text - font = Calibri SDF + fontName = Calibri SDF fillColor = #000000FF outlineColor = #FFFFFFFF fillEnabled = true diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index fba5b8ba1207b232319e2829027142b2373cec7a..f4e5a103ffd37eabb42d0d229b4249cf64b81c25 100644 GIT binary patch delta 19388 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

q$tI^qv?C+5+ipK9w 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 BS9AaX diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 1ff3b53..0cce9a5 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -31,7 +31,7 @@ namespace ConformalDecals { [KSPField] public bool scaleAdjustable = true; [KSPField] public float defaultScale = 1; - [KSPField] public Vector2 scaleRange = new Vector2(0, 4); + [KSPField] public Vector2 scaleRange = new Vector2(0, 10); [KSPField] public DecalScaleMode scaleMode = DecalScaleMode.HEIGHT; @@ -60,19 +60,19 @@ namespace ConformalDecals { // INTERNAL VALUES [KSPField(guiName = "#LOC_ConformalDecals_gui-scale", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), - UI_FloatRange(stepIncrement = 0.05f)] + UI_FloatRange()] public float scale = 1.0f; [KSPField(guiName = "#LOC_ConformalDecals_gui-depth", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F2", guiUnits = "m"), - UI_FloatRange(stepIncrement = 0.02f)] + UI_FloatRange()] public float depth = 0.2f; [KSPField(guiName = "#LOC_ConformalDecals_gui-opacity", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "P0"), - UI_FloatRange(stepIncrement = 0.05f)] + UI_FloatRange()] public float opacity = 1.0f; [KSPField(guiName = "#LOC_ConformalDecals_gui-cutoff", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "P0"), - UI_FloatRange(stepIncrement = 0.05f)] + UI_FloatRange()] public float cutoff = 0.5f; [KSPField(guiName = "#LOC_ConformalDecals_gui-wear", guiActive = false, guiActiveEditor = true, isPersistant = true, guiFormat = "F0"), @@ -215,7 +215,7 @@ namespace ConformalDecals { foreach (var keyword in _decalMaterial.shaderKeywords) { this.Log($"keyword: {keyword}"); } - + if (HighLogic.LoadedSceneIsEditor) { UpdateTweakables(); } @@ -512,7 +512,7 @@ namespace ConformalDecals { cutoffField.guiActiveEditor = cutoffAdjustable; wearField.guiActiveEditor = useBaseNormal; - var steps = 40; + var steps = 20; if (scaleAdjustable) { var minValue = Mathf.Max(Mathf.Epsilon, scaleRange.x); @@ -521,7 +521,7 @@ namespace ConformalDecals { var scaleEditor = (UI_FloatRange) scaleField.uiControlEditor; scaleEditor.minValue = minValue; scaleEditor.maxValue = maxValue; - scaleEditor.stepIncrement = (maxValue - minValue) / steps; + scaleEditor.stepIncrement = 0.01f; //1cm scaleEditor.onFieldChanged = OnSizeTweakEvent; } @@ -532,7 +532,7 @@ namespace ConformalDecals { var depthEditor = (UI_FloatRange) depthField.uiControlEditor; depthEditor.minValue = minValue; depthEditor.maxValue = maxValue; - depthEditor.stepIncrement = (maxValue - minValue) / steps; + depthEditor.stepIncrement = 0.01f; //1cm depthEditor.onFieldChanged = OnSizeTweakEvent; } diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 471f688..d2c85ce 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -104,6 +104,7 @@ namespace ConformalDecals { if (ParseUtil.ParseStringIndirect(ref fontName, node, "fontName")) { font = DecalConfig.GetFont(fontName); } + else if (font == null) font = DecalConfig.GetFont("Calibri SDF"); int styleInt = 0; if (ParseUtil.ParseIntIndirect(ref styleInt, node, "style")) { diff --git a/Source/ConformalDecals/Text/DecalText.cs b/Source/ConformalDecals/Text/DecalText.cs index 4de8081..d6af8d1 100644 --- a/Source/ConformalDecals/Text/DecalText.cs +++ b/Source/ConformalDecals/Text/DecalText.cs @@ -32,6 +32,7 @@ namespace ConformalDecals.Text { /// The text formatted with newlines for vertical text public string FormattedText { get { + if (string.IsNullOrWhiteSpace(Text)) return "•"; if (Vertical) { return Regex.Replace(Text, @"(.)", "$1\n"); } diff --git a/changelog.txt b/changelog.txt index e3bb636..671d31f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ v0.2.4 - Fixes: - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. - - Fixed fonts not saving correctly + - Fixed fonts not saving correctly. +- Changes: + - Lowered step size for decal size and depth to 1cm. + - Changed default max size to 10m. + - Text decals now show as a circle if they contain only whitespace. v0.2.3 ------ From 121428414c8a8a86d9efbfd087774069e5beeff1 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 15:34:10 -0800 Subject: [PATCH 22/32] Add input locks for text entry --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82944 bytes .../ConformalDecals/UI/TextEntryController.cs | 27 ++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index f4e5a103ffd37eabb42d0d229b4249cf64b81c25..259b824eb0d724add1c560f369c39af018f13a11 100644 GIT binary patch delta 30910 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 Q$NO&y3{u~yw(hR~1snEgFaQ7m delta 30260 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 @@ -209,6 +226,10 @@ namespace ConformalDecals.UI { UpdateCharSpacing(); } + private void OnDestroy() { + RemoveControlLock(); + } + private void OnValueChanged() { _onValueChanged(_text, _font, _style, _vertical, _lineSpacing, _charSpacing); } From 33b0307aa2298d2535c201db75bc889261775621 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 15:39:41 -0800 Subject: [PATCH 23/32] Lower text decal default size --- GameData/ConformalDecals/Parts/decal-text.cfg | 1 + changelog.txt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/GameData/ConformalDecals/Parts/decal-text.cfg b/GameData/ConformalDecals/Parts/decal-text.cfg index 37df801..1f92cb5 100644 --- a/GameData/ConformalDecals/Parts/decal-text.cfg +++ b/GameData/ConformalDecals/Parts/decal-text.cfg @@ -62,6 +62,7 @@ PART useBaseNormal = true scaleMode = MINIMUM + defaultScale = 0.2 defaultDepth = 0.2 defaultCutoff = 0.5 } diff --git a/changelog.txt b/changelog.txt index 671d31f..3dcd088 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,10 +1,12 @@ v0.2.4 +------ - Fixes: - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. - Fixed fonts not saving correctly. - Changes: - Lowered step size for decal size and depth to 1cm. - Changed default max size to 10m. + - Changed default text decal size to 0.2m - Text decals now show as a circle if they contain only whitespace. v0.2.3 From a6de537e4ab0532eb0d10e13edfae35a1c61110b Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 15:44:40 -0800 Subject: [PATCH 24/32] ScaleRange change --- .../Plugins/ConformalDecals.dll | Bin 82944 -> 82944 bytes .../ConformalDecals/ModuleConformalDecal.cs | 2 +- changelog.txt | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 259b824eb0d724add1c560f369c39af018f13a11..6c54a57d808ddf4698566997b9cc17ed86b6d2b1 100644 GIT binary patch delta 119 zcmZqZU~TANozTHDt8L}YjXj>~ObZ+~Usu2TRX{*$-&B`V=9YDjix+G^BFnf! zj%Dh7#XZvtY#0LsG~{MfU22l@>%6+p{`|bNx2IpQVJudFivBwZ6$Prd+2!?9`P=JR Qr_U={Z{D74%Q%+}0F&`JGynhq delta 119 zcmZqZU~TANozTG&o-yn0#vV^~CI!dM*VXTS6`1t@h1uQoeU2T=Tlq4gORsD{BFnf! zjzvH}VEyz08^!qyQ+mme>=du9+3}rF_ diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 0cce9a5..8181a87 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -31,7 +31,7 @@ namespace ConformalDecals { [KSPField] public bool scaleAdjustable = true; [KSPField] public float defaultScale = 1; - [KSPField] public Vector2 scaleRange = new Vector2(0, 10); + [KSPField] public Vector2 scaleRange = new Vector2(0, 5); [KSPField] public DecalScaleMode scaleMode = DecalScaleMode.HEIGHT; diff --git a/changelog.txt b/changelog.txt index 3dcd088..61480c1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,7 +5,7 @@ v0.2.4 - Fixed fonts not saving correctly. - Changes: - Lowered step size for decal size and depth to 1cm. - - Changed default max size to 10m. + - Changed default max size to 5m. - Changed default text decal size to 0.2m - Text decals now show as a circle if they contain only whitespace. From 17ef93bb6e6dbf856aa301d807a8e7c64bde2db6 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 16:45:54 -0800 Subject: [PATCH 25/32] Copy other text parameters to symmetry counterparts --- .../Plugins/ConformalDecals.dll | Bin 82944 -> 82944 bytes .../Versioning/ConformalDecals.version | 2 +- Source/ConformalDecals/ModuleConformalText.cs | 3 +++ changelog.txt | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 6c54a57d808ddf4698566997b9cc17ed86b6d2b1..f5e6fe09538f47c88524a0b3dcc1c54b02abfdea 100644 GIT binary patch delta 5724 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 RZMB?E+pZ18E9i;${y(eY_QC)F delta 5720 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 F{{yF)_pbl| diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 56afe25..8b59792 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -7,7 +7,7 @@ "MAJOR":0, "MINOR":2, "PATCH":4, - "BUILD":0 + "BUILD":1 }, "KSP_VERSION": { diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index d2c85ce..0d6d027 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -249,6 +249,9 @@ namespace ConformalDecals { decal.text = text; decal.font = font; decal.style = style; + decal.vertical = vertical; + decal.charSpacing = charSpacing; + decal.lineSpacing = lineSpacing; decal._currentJob = _currentJob; decal._currentText = _currentText; diff --git a/changelog.txt b/changelog.txt index 61480c1..29d1432 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ v0.2.4 - Fixes: - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. - Fixed fonts not saving correctly. + - Fixed line spacing, character spacing, and vertical settings not applying to symmetry counterparts - Changes: - Lowered step size for decal size and depth to 1cm. - Changed default max size to 5m. From 334af786f6dd58b4ef074f883f9e0b02a313afb5 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 16:48:45 -0800 Subject: [PATCH 26/32] Version change --- GameData/ConformalDecals/Versioning/ConformalDecals.version | 4 ++-- README.md | 2 +- changelog.txt | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 8b59792..d1c4139 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,8 +6,8 @@ { "MAJOR":0, "MINOR":2, - "PATCH":4, - "BUILD":1 + "PATCH":5, + "BUILD":0 }, "KSP_VERSION": { diff --git a/README.md b/README.md index f607557..5e6663a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.4 +# Conformal Decals v0.2.5 [![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/changelog.txt b/changelog.txt index 29d1432..9e062d3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,13 @@ +v0.2.5 +------ +- Fixes: + - Fixed line spacing, character spacing, and vertical settings not applying to symmetry counterparts + v0.2.4 ------ - Fixes: - Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards. - Fixed fonts not saving correctly. - - Fixed line spacing, character spacing, and vertical settings not applying to symmetry counterparts - Changes: - Lowered step size for decal size and depth to 1cm. - Changed default max size to 5m. From 8ed7a130ab58d318380f034e6e2ff7884b5d3421 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 22 Nov 2020 20:18:16 -0800 Subject: [PATCH 27/32] Alternate rendertex handling --- .../Plugins/ConformalDecals.dll | Bin 82944 -> 82432 bytes Source/ConformalDecals/Text/TextRenderer.cs | 5 ++--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index f5e6fe09538f47c88524a0b3dcc1c54b02abfdea..cccc384057c81ef83cc87398c448a0f6d42b0f56 100644 GIT binary patch delta 19966 zcmc(Hd3+Sr(srHhp2=*P%#uv@kd0)rXCNz!5Y!7OD3L{!u!Kd3EMeCWpc8=rf=e7$ z0WT4*vfZl!iYN$?MG&}%f)YVY#4Cc}YY-I#^{c9GV!Xch{oe1dFZ}XMJymtisZ(d^ z?&%Y%78t7L8lIi2j;xVjXpv~V=wcv?nBf$ZEl0h z;Qa{2bTbMkQOJmxJS7M-&h(KU$V>4mP?S=@ z{*1qFxLa-21`l57lnz*rLrVLLQht_7YMpE!rIdfBQR-^@K&AW~esYn_NJaOe)^BS= z%Rfgk>GyWmYVH0Wfz#;y)Zc!@FtrgK|5$@(HqEBcP;V2O+-9fQQ~m`?PP6wset5qm z_!q%f2%b>y6Bx7i0?BTBT3Ue9{(Sk@$imx&n^5+YUqq5bYVT3XJM95a z_bzMqPptVHR4No5Fz5k|)%!Gd%6Tm5@r0INCcpAd#9B4%y+U=Gz2EwWj*Juk<*yzY zCBE~&Ffz&7jE1Vc*qtd?{l`ZZiSPZ+QHkQ(w!Be~i?komSQ`5juI7iO%7f@+bqVi} zt(EWHR{9$r`Ck0wKQ=l^T=!oa{Wo#L|NNK&`_Jf{Dod58(69Wazi~{BxaA*R)}`;kU|B^nbmHGcp@MV-Z; zIBo#?SB~=qT2Y^FoqU6;1^>=*iKss}E+UBaaksl}^WQ%{%-?2w+<&9b7lHoy<2wtx z|G@a?aK9Wl;lIRQe~;j!$~LJ#81M?W9UvDB5O`S|e3{i6q0OE7?Pu`7hLYgRp`!|G>!!Av0Q8$KEdP z-#WQjIQ{FV^gz5aCED$x2BpfASXQdMKux&)(Nja)2cy2cFAj{h1STgKa88AwGCfkB zoDvQb^`+rKm3IsJmH+G?J+&a_e{{L&-#xXr$ALv2nspzRF)H3rB$fdD^v6!?A;SD+ z)1u>?s7sY5-;1qy6R`K`+PCI9rzP7W&}-IL6t_3R|LL@8!I7w#fy?6x z>TsEOqmcUtO%M0aoZd#n_*YLq6&Z`F$yu_#JiHi#QL3~G>~*Yv@ng{<*1zeo0&6^a z&3>J7k>J1bSa{OyiY@3!6(^!S^%2QCm&2K5L$%~>>ra1to{02seLPLH^`CqEfzF3| z10>7_$iZgTcSO1G)X8NNMo*!=@bp4}T@k43-xrpw2fnXJ=-$8QU1(d6e64?cMRGXq z0Dx-~f^Z{y2Y*-LZwT_X{=Zk;t$JgS;*SwT$e9!)%w;rqNFErRmg0se+zyOT75q!A z5&DD>`WP=Wu4mlM_&WQH3*LogJ2D2N-U2y=RKo|sgTjpv8%#Bad%lPVhk=PpgDlY5f(e4RvTG6s!M$FpC@uaAELADUnx71yLUkDF zzYh8$#safr0T#i<1OPjH<|Ut5xg-Z=Ee*26@-~EaiS$Mj;2qEmlUnSiCbqUG9Ge8N z17=~w7I+>DT3}CVO#;RcNV0?*wH;nbrs6?Z+z3ey>dA8M)rZNw(k<{F)?c@NOwBCLwAbB^>$qyK9X*6-}!0BUwud!+)e904PN+5YYi=%FYXBfAp?n2L) zwxk)FP8gIxnx2d=#i^u9zy)mq1$z(=3MXo7G{yUOT#YVxEw;D(laz_8$OW$(Xli(H zx*6eU9F_9fnsNI40L=-b#oN3HbK6qcf8oYcDT+9wUvq7LLA@Prxt9jrE0XXUc)#cu zhtt3XC%gyJ;^EuEr9nHyAxygwzQC&O&^}>lP!ilMxLIIviBRA_5Du^h=cV=5nd*SkxM>oV zpc;+S!p5W(Ba`vh0dn$~v|2EMlWpI4$!5k4m~59q$E10|4IXAs7E5hrc9Pk2c$3+Y7_!ZP-OMhqZ8q#6f9z zR>K8mH`ulYzGils*^BTUvtN<*7MtJ(vw+;Ryq)4z2o#i=*@A3fU$x`w$+`SO>Cw1pP%d z+CtE_Q=Ei>Y|Drv_Av}$wv|24!E7G>-8d79;Ud%uE9Q58p}$-8U1?Ww-r`!vi>nmt zfX|V+kgaBR0+|Qd8fLQpwd%;AD|ng75I@6 zfsXGX-o z^(QPmy-fq+Z!v^zS?{HIJvbgH!=QW^<4azE2NBJd_-dmx${eoh6eZ-4;W*OyT~u(#Plj zu0Lu_!s^a?(h%obvJtlwJD_|z<^nF7i@Aj1JVlm7b_p`#E){qentiAe zurj(Q%5QSvUGev!T$k7vaV~4Nv%G@kN8_nf3FDKDn;BOzevdQpcAfvknJ8d6&Q<~M z<7^dR!r3a|Fb)>_oZ*k%@<6O^vvDwDNd9odtEp6=0B4hcPr|!kV(T%nPVoDi=7p+R zjz=(0Ta07T^Q?y|^0b|Z@>1?Sl{LcK#;I(j#@@&ECZJ6|)uwgN)0R5+yT5>gnH4Ry zZ8pwE`CA-%%o*!9WK$~_0;yvSYW5s7|ATuLAGHN%fF+1Rypb~}$OD5j=OboiE)FWL z3PpW!)g8F#i>rF$JS(n}J9yBu$y|#yG$v3$d+=%~pl9OqI05dmzJM5%vLPrAD2s7C zGI2mzjN>fEVHQ;n8niS{G0nrcellG}++<2e{Q=V{bUlYC@L8N1=*l<r_9-2d+c{)i7w8uS4f$>Hjh(2 zg_o+>V@#_zs37R;PqA-TJc6Bm287_#`O+5FO_E`~ z&ZNRfhXQAH=FDyD2ml9O0Rd{EEG*4o0_|(QTDT8GGpn!`@8$rOL7_3wW`=%v+mEhc zC0=5)@Lrs3i*ifMW?0Ou1~%p5(>@Ht3+(OQTVM<`t(*m>{(*(zBP4p77R5ATx!KGP zLOY`YpK{a@Y;-d_;kcTV+KFClt z8WGsv5d||dHD*B;1Kuo+H9Pw|Vqpn0Ei>^DoK3dgWb@Ti8y=U9f@~J~>$SIl99e z8dD)7=!l~yoMc*K8kkZm-veiLHYVj|>pk!g=hc*@k=dcV{)GvWz`) zF9__xy*EwEm~H3lI^lj)ZcZ zeUcUI90T)owkR{&ITlvy>|$1uvmCbSY>6++IT;S?%${A~oDQGsY`Q3NR=|%so0Qc{ zbMf%+%S^ zhBv}X5cVM3kj+qDg1tIhmUhJXGDHm|+gD;)+NFRE(3ROiSeACexe;dS>>G1!z$SQ+ zS&eCDj8HbI@TE@QjWH^lq5VTt%`(&B!jGMQht4`Xh3pmRsk0HjbI#XbObh$UxfSNO zuy38);F%WoqjNi~&=@pHKRRCr+r!)fJSTtad;`?egNXX^tA$^kJD@`eF|GG+LJ2di z_q$-bX5-%Pf|9}Pi9I~x+zoFs(|Z37oMoojj37c=sFJRI=dk$mgCS-XJ5%h zt`DGx&c2oZf~6sbptDfd5Z6cW^)SBv)xczDrR8IYE(QFl zfx&n=`UD2*Y^=+HYzeb!n2y(j)6i)+c~-+qcxP}L)-uy>DNe(7X4L#B*J&_}(CVb- z&wxv3?*vr1&Oj$**#8=k-Ky&>#ExWFzF2$)?KNgPkh9SB8FbXyKXWRO4P>STa}Hk7 zY>*uIwCfxk*BICGIeemfZh#Q@9KL2op)GYa!iZ7Wo{G&=Y!_i6QDny>9mrnR*=}T) zV86~bU@pFak920q7jPL&k7(sqxhhi(`vyfed^*URL?0X0<(`*Y}A#e?z(3uh053rh9HQ%EC2+uuA zp4EIe`6H~-*=nPJAK|FRRG6Pmbk{h|^(DNy{1Lq4HFkm75@y=?{s^m?Ei+wIwzz(T zbvm;dh;7o@I<{?RrVZ1N&|?DCSquI0x1y&qQDf?3mYuGjAVa5*S@yYZKp&lrvF&u- zgfDeAJ$|R_7l@st75pagnCmwv(b<*wV=hT7)7jg3pSlcUD>E%@vv}(d>|KqS%2m%A zi&?y{(+W=|GG#I~LF=HG!y<<3EZJ3Qv56VXv_1ujH9Fgj_eFu?9i1&nB=)&hjwfQE zxT-Nzxo3eAD1O#ig-2D!$tM?9??*I-ILVz16}!%S|Em^WSPZ)upz9VXT@I|!f0AGL&wj*pS;pm;d!s3k)5 z(^*$!kzz12Ef-OuhFO!ju1y6*sp4tPX!`oSoH3pC8 z4M4VEXW99WxKqWg8T$2aOJ2D7A61`?>wh4x5?hFw;i&zcR z<;`|yi6u`kktC?w!89uRBvzdD4HG)qZ(ivS;S*KNDEaf<`NBAtY+CXQM2^lV`Gw*jGVDJk z|0#E&IL^jprc=l|iZje=Og$Y--JQjGX4R(tj^~kG)@^s>FSpzwuIaX(`D@*Gh+lMD zac*ru7h#ykp_zu}8la1?YYg-Bvb(EDB!<^N)5yG6-Q7gG?s}G4j?VfTeSoI~nN^#H z7(q_EY$M$xyfxfI9{YR6oy;`Pd&Ll)k!LSa z)5^2Acv`cy<4Svrjjdeo6GvOQ-Y?E*%ye&1BfjT3?^joas8nSi@rzbUP+-L(W$^cPE*X-m1kXw(@k<^G~}A=kpU zcKyW$ozXW9{YB1`nysM28FznC)xy*-+ylf>oi6V9h5JDfyhwAMk8GeAsI%`nd}w?~ z9M##v4j0`Ii_1DY-l5rDBChM~eY6c0VT-j|zUXk>Jyblavo47a7$(L&rP)qdD^*LW zIIYv=fot8v#ki+6aqIG{U38rn8AL4rIwXTNzOsFjnN~ z>|!>tBAu;c+X$UqW7|BPT}WGF87tQ7>_=j%*sD_--?8E(Gi~0F6{~A0n1eu*be!n- zoW^Kcju#u5)!>=2O3MVXRcG5Vhvi~_3xnW^BHd5rYN6C&37#yrG1IpAsbcVn7HWX0 zqLEpXh{8MRY2r(r#pn5uWh|j;n#=|5i;(4NOgxZHo}F~t47QPtlZ(fL2oxv4C z(;O5tt!;v5iM!Za3qcjV{=oYEftCD$jbx@>5L7Yo54Ojd&B0f{DZ%(%^z8_|!&RxO zrTInH3fB`Ytj3xZJg0@tv~~=xXt`s|T&*#u{r8wMTGr;rWG&5~%R*ADZqp?{fzFbN@ z*2ZR)xU4ZAn^mg#UN_R_*aV;bQ`s>T5Qm5=aL5nuNLYzI!*B&L?fMy_{>8%A(1dXNJ9yaMD)j#ZZf`W zA^ZoAm_|){5e2lCFLGMrTV|iYw}j-QAB^J-f#1Cb^ofD6V!V+)q4}D8EqA7Gxp1D z@)^uKOl$dxK++r8el~} zl1uoyn8Gu)1}|R!X+M);6ONt&DOnQwP%9EV!6SbRcY1+((r7hk3zQJAFjz`vtAHm| zF3{Rlzu5i{t5v}N-6w#XG2L#4Tloi1KMl1`mbm@fHw{qfw1N}p#w8q4KpY|-5k++1 z;YY$E#-5DDj1MuEGL|8Rz$BI{7^@K@@azPYtwqH8#Q<+S^h6X;%D9lRRt!*4^%{~? zI4rW9xH$^CPqM+v_MK3kg!e@|#Y(&%YTyEsB&u{FA_giC@J<0AVk#8Md+^(4=M=gliZHJ-oZ%hTH>hnpScs<3OaH1hY~Z)Cg1YwViqiX2K57Z!nJ0sn{|DMYuxE zoPf@$UU35UQq z`G~#n;c=?oJcV8>A22^JYUS{>wH_hFqOc9Zr_7K2yO_yNGvQtTnk}KK6wxevf_hdV zo@{eVn3cnYMyUuh;XpiA;6eOrM?@vEU9)Hs3DIq&CgF)rl6oqy(UCRjMQfH6$C*0} zNpikatnBu7k{(i?knvEHlG>pgYA)EjOQp(_s3}%D;z_z<@z>nm61J$a>Xf~cRHhVU z^_3Q5aKoh~*w=D&+LAFts#bQ!R7v$>C04owqC(51g_ybdh)0zR817H5<&sZOaCN93 zE|rPr174CQiR6UM(n^_5+Ej>dGv1O`b9UErcGq)Wn_+}cJuPkFCO0ZQEX~-DSAu?& zHYyLGd;;cpeq)@1NB-&11r>;v&B`gvP_eiprL(*pcE;Q<*NLS#J?q3qZ-03g*LGN$ zZX6}A6x$*vA})4Ml4SDJ%|taUX`20l!60twKT$a4CN8tk7cJcs^dAtOOErX z`N44s<>#zd5g*IGik|d}v!}8dPn0!_Wtl=zo5f!el~onuj&_$tnKH!st@0%sF7phi5GDAR zH5H2SS zBhC;NnrSdA{R%r6R^zg~gf*)Zv41`h5E=q;hNpru4Jn2-`9l$3%^hVBQgnw$5#NoO zXb8vDJ!U8r&DPn5Ydn>1@l?9SQ|TIy?llO+w*nQSf5rxbB4{z&a9`4m?CKYo23|c!G(zmfCSSp{VaF4hWqgkRu z3_{u&GvAnEu%?Vs(Uo3`2XoH~4d)Bi8#jtCZ2v&?r|vKoOOg0(Xt5OGu%hNvVZE`` zK<^2PrMEmsjKPBT#9(19yoB!$wf%Ih=R@Np!`;qLj8RzUaH#_2i^fEjt5LpbOlLWV zQSHPZ&5BV<3Ajs_eNs_CFP15p!vma3yAHIM9WE>jC=rXSj|D8misqvJef$ck86Ps1 zBCa$LrbQ55^e#o~?(|KF*TY{42o|*cJC$t5-tx9L(V{Ih`NS_i+`J7NVv9{t;7A%_S}Ex5dlW3PJ|u1!wC(&3I*cyS;`fQm zZJsraL|KCjGSWZXzU3@wIU7iDSST-9esvNARyO^q_%y_)us%fU^q2g6>F3*1o zBF=19<_0<7uym$P2(AbvwpkpOwir8`7jv;Cf~r0&eb@#Ugz46i3EmX*?TmI%b5aj}R# zce2GS-|uTMhs#&o=Mg_eG|M5Oq&dX$%m9*KM|q`GDN*VubHrOF9q1NXD9%fA%4Ft*Z?BKz|R$7C(Hq~PLTV=3Z_%H#=gYb=wDeFE2^p5!9&ZR~bSnekVT z59{n<^Ff(>GJY?1j9v*Ai4_SSS<2*IN`qyRYFw7{Ig(N&h~^M1KsP3n@ZL$_UqsR3 zbQ+bso0e*xL=8Nx>hN?)ko7L!Pj`vYp6+5lubut)75^pdK(eueVWF{mX0COi(Vf}J zdRQKk)YDpPOiaArx}Ud$2I)QgKA}NUL&E8!TX+a!72|V^@s_8o4bpkv62vYMWNpHm z!Uo=$ozkO;b=He?X~qrE=6=~4j@RM8;AT~q@DFQ)T%K=$2KloB!m|9@fCl-Kg4%$M zu-LK9nu1&3o7N&6j(1S5RYNN+4e|)zd#G9+`vI!fB~@B#mA$xU)G7ua6|2hp)VdL# z4{fvxX=1`9Ym+>_@JGZA=@^#MG23W+&3GX{5V3oK6VcIuGt<1w{et*Pte3UWe!0E=D)9ril>*d5#bi&_3}!d>?&YsPrM@9|Cu?S4*qlp71)x zb&?-`iLOVvo4tuq$YhOUOps*}5R)KVMRZJ8c^%|=ida7k;z&&GH@_CfiZgvqs1>zVJ0;q~2mP;9{ z8S5D98Jie|iAymSF_tn`GuAQIGd3{_Gy5|ZF_sdl_G%_|jP;1?BJ0iDFo;I86|o65 z(NRsT5tdc>r!2xk)>sQ!<4|Laj$=&`%2T6@SRTgKQqvg&CPooLp0Od6v#yLqtSJpq z$xs~Iv}WA92I_F;@wjB6S968cBHGbOpdb*QzIt-?0PcGz~@)?m9}yKei@-HabslvfcQ z2EvzF{>bwN${%@lA-_c{si%`f$(oZgfFBM z21k)KAd2Mck%YM{4~kNWoHn09{3eg8OW}YHadl6#)7xPb#4W}F>~r1Gh?+t9|3Vy* zOSu`7_YEQr6JoiM>ij%_@E8X%j03%wv)DfIJJc^u`vLJ})Nd+&{1EjU;y#BV1Ykx2 zHKsK%m6QKg1U2w$HsQ-GUuW5sPWkvbjZiD~WIHR?aEP(Be0MvlpY-%5R>tpr6?|bz z|7TbLY#UfVUG{ait+%~ps|xIg|7pxcP^#!VJ%{ z_mjB)_LEDCWvO8@@v@G6^aE!KO+!^-X(tGAxE06WDH~+HZ>u8Z{U7nC4 zhM0OAV})?eDPF!XMU;vD%fC+%4~nuK_oj-wUHHQG_7A>P{lm}l#?B&hM{GB-SnROh IA+E~*2Lv=gA^-pY delta 20523 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 Date: Wed, 25 Nov 2020 02:44:04 -0800 Subject: [PATCH 28/32] Another attempt at fixing the planet glitch --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes Source/ConformalDecals/Text/TextRenderer.cs | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index cccc384057c81ef83cc87398c448a0f6d42b0f56..7ff9bc3d3a000724cf7b458f70af0c81f22ec98d 100644 GIT binary patch delta 19790 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 Ldd_*3I4}PnE~Oc# diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 78eec46..6c1206a 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -272,14 +272,16 @@ namespace ConformalDecals.Text { } // COPY TEXTURE BACK INTO RAM + var prevRT = RenderTexture.active; RenderTexture.active = renderTex; texture.ReadPixels(new Rect(0, 0, textureSize.x, textureSize.y), 0, 0, true); texture.Apply(); + RenderTexture.active = prevRT; - GL.Clear(false, true, Color.black); //KSP doesnt clear render textures before using them so we need to clear afterwards, as well. Thanks Squad. GL.PopMatrix(); // RELEASE RENDERTEX + renderTex.Release(); RenderTexture.Destroy(renderTex); // CLEAR SUBMESHES From 833ec43a52c140edaa751f48695083986d111653 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 26 Nov 2020 17:47:42 -0800 Subject: [PATCH 29/32] Update project files --- .gitignore | 1 + Source/ConformalDecals.sln | 10 +- Source/ConformalDecals/ConformalDecals.csproj | 171 +++++++----------- .../Properties/AssemblyInfo.cs | 33 ---- 4 files changed, 70 insertions(+), 145 deletions(-) diff --git a/.gitignore b/.gitignore index 45bb007..5b4dea1 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ Source/ConformalDecals/bin *.sublime* .idea obj +*.swp diff --git a/Source/ConformalDecals.sln b/Source/ConformalDecals.sln index 5962f05..2e27ad0 100644 --- a/Source/ConformalDecals.sln +++ b/Source/ConformalDecals.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConformalDecals", "ConformalDecals/ConformalDecals.csproj", "{1ea983f9-42e5-494e-9683-fdac9c9121f4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConformalDecals", "ConformalDecals/ConformalDecals.csproj", "{1EA983F9-42E5-494E-9683-FDAC9C9121F4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,9 +8,9 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1ea983f9-42e5-494e-9683-fdac9c9121f4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ea983f9-42e5-494e-9683-fdac9c9121f4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ea983f9-42e5-494e-9683-fdac9c9121f4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ea983f9-42e5-494e-9683-fdac9c9121f4}.Release|Any CPU.Build.0 = Release|Any CPU + {1EA983F9-42E5-494E-9683-FDAC9C9121F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EA983F9-42E5-494E-9683-FDAC9C9121F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EA983F9-42E5-494E-9683-FDAC9C9121F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EA983F9-42E5-494E-9683-FDAC9C9121F4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Source/ConformalDecals/ConformalDecals.csproj b/Source/ConformalDecals/ConformalDecals.csproj index f4c47b7..2e59b75 100644 --- a/Source/ConformalDecals/ConformalDecals.csproj +++ b/Source/ConformalDecals/ConformalDecals.csproj @@ -1,115 +1,72 @@ - - - + + - Debug - AnyCPU - {1ea983f9-42e5-494e-9683-fdac9c9121f4} - Library - Properties - v4.6 - 512 - true + net48 8 - ConformalDecals - - - true - full - false - bin/Debug/ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin/Release/ - TRACE - prompt - 4 - bin/Release/ConformalDecals.xml - CS1591,CS0649 + false + x64 + 1701;1702;CS0649;CS1591 + echo "hello world" + + - - dlls/Assembly-CSharp.dll - - - dlls\KSPAssets.dll - - - dlls/Shabby.dll - - - - dlls/UnityEngine.dll - - - dlls/UnityEngine.AssetBundleModule.dll - - - dlls/UnityEngine.CoreModule.dll - - - dlls/UnityEngine.PhysicsModule.dll - - - dlls/UnityEngine.TextCoreModule.dll - - - dlls/UnityEngine.TextRenderingModule.dll - - - dlls/UnityEngine.UI.dll - - - dlls/UnityEngine.UIElementsModule.dll - - - dlls/UnityEngine.UIModule.dll - + + dlls\Assembly-CSharp.dll + + + dlls\KSPAssets.dll + + + dlls\Shabby.dll + + + dlls\UnityEngine.dll + + + dlls\UnityEngine.AnimationModule.dll + + + dlls\UnityEngine.AssetBundleModule.dll + + + dlls\UnityEngine.CoreModule.dll + + + dlls\UnityEngine.InputLegacyModule.dll + + + dlls\UnityEngine.PhysicsModule.dll + + + dlls\UnityEngine.TextCoreModule.dll + + + dlls\UnityEngine.TextRenderingModule.dll + + + dlls\UnityEngine.UI.dll + + + dlls\UnityEngine.UIElementsModule.dll + + + dlls\UnityEngine.UIModule.dll + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - sh -e -c "cp -v '$(TargetPath)' '$(SolutionDir)/../GameData/ConformalDecals/Plugins'" - + + + + + + + + + + + diff --git a/Source/ConformalDecals/Properties/AssemblyInfo.cs b/Source/ConformalDecals/Properties/AssemblyInfo.cs index 3eab961..0d9584a 100644 --- a/Source/ConformalDecals/Properties/AssemblyInfo.cs +++ b/Source/ConformalDecals/Properties/AssemblyInfo.cs @@ -2,37 +2,4 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ConformalDecals")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Cineboxandrew")] -[assembly: AssemblyProduct("ConformalDecals")] -[assembly: AssemblyCopyright("Copyright © Andrew Cassidy 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1ea983f9-42e5-494e-9683-fdac9c9121f4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - [assembly: KSPAssembly("ConformalDecals", 0, 1, 0)] From 2793f5fcb1cf1e03f7004a9ecc821f2bc4cf26aa Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 26 Nov 2020 19:17:31 -0800 Subject: [PATCH 30/32] Fix DLL copying --- Source/ConformalDecals/ConformalDecals.csproj | 79 ++++++++----------- 1 file changed, 31 insertions(+), 48 deletions(-) diff --git a/Source/ConformalDecals/ConformalDecals.csproj b/Source/ConformalDecals/ConformalDecals.csproj index 2e59b75..ab0a0dd 100644 --- a/Source/ConformalDecals/ConformalDecals.csproj +++ b/Source/ConformalDecals/ConformalDecals.csproj @@ -1,72 +1,55 @@ - net48 8 false x64 1701;1702;CS0649;CS1591 - echo "hello world" - - - dlls\Assembly-CSharp.dll - - - dlls\KSPAssets.dll - - - dlls\Shabby.dll - - - dlls\UnityEngine.dll - - - dlls\UnityEngine.AnimationModule.dll - - - dlls\UnityEngine.AssetBundleModule.dll - - - dlls\UnityEngine.CoreModule.dll - - - dlls\UnityEngine.InputLegacyModule.dll - - - dlls\UnityEngine.PhysicsModule.dll - - - dlls\UnityEngine.TextCoreModule.dll - - - dlls\UnityEngine.TextRenderingModule.dll - - - dlls\UnityEngine.UI.dll - - - dlls\UnityEngine.UIElementsModule.dll - - - dlls\UnityEngine.UIModule.dll - + + dlls\Assembly-CSharp.dll + + + dlls\Shabby.dll + + + dlls\UnityEngine.dll + + + dlls\UnityEngine.AssetBundleModule.dll + + + dlls\UnityEngine.CoreModule.dll + + + dlls\UnityEngine.PhysicsModule.dll + + + dlls\UnityEngine.UI.dll + + + dlls\UnityEngine.UIModule.dll + - + - + - + + + + + From e56278c6cb26c589799305e6582760edb056d11c Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 29 Nov 2020 16:02:45 -0800 Subject: [PATCH 31/32] Fix stock flags being stretched --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes .../Versioning/ConformalDecals.version | 2 +- README.md | 2 +- .../MaterialTextureProperty.cs | 9 ++++++++- .../Properties/AssemblyInfo.cs | 6 +----- changelog.txt | 6 ++++++ 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index 7ff9bc3d3a000724cf7b458f70af0c81f22ec98d..d5b67899afec1638443de3402576f5733c746290 100644 GIT binary patch literal 82432 zcmeFad7KnQ@;97WRb73|(bL^S_sjsp48sgXcMlBLz~BLhD6n22B8Mp8iKrz#c+vDQ zD54^wu7U`x*Xpi#ud*KNv961#D=J>BqT;zK>U!;=xGuckh|KEg;n?+g-sksu{&|`Y zSs9U$5s{IRQJGm;HHS~VN|-_j3;%cR65?T8={JJY|D3d=xU|RbO2zu%3$+i+!(OPJ zc-rjNnzJ+RshOE))|@!=th3yCHM35x$((am&Fr&k4nFeenls&#PVQS$66&Q{A2nKt zla?4F`t{DwJZWExo;5{AlMwq$rI=Sx!BYKA`q+_bmWdZ5Z8j=h;r1p%A!1FY=mQzx7->VtT1Hg3 z4$9I|)6T+8tnrqe{hY3eq**@RDjy$5HLeF1)cp~bO!dGhls4>S2HegzG9^eI5Qkb* zNal;Kko7$3K+(uT(%s0^5y@KU)v%CSVPskev5F8z<^<&3G^!TGi&KaC1FJI&3DXFS z+ZRbms!P;#`XLvyxK$C$g(ruA?2k+12ir=c=FT{ru&Y}R#M^EFWow;Y01@8m+@9N6zHzhg{}EGSU9Xh3w_&-WgNsHrUiF5tz(90EJEwnw2-o zc6QA~!Z{E{obM4S1Y(6iC$g%-lCBDHiov^`eI9=27u}JCt44bCXeTdf9nQ*SYN1(F z?(BjgU_@o+1b{hm;HXSo(Z=@7`~tXJa^%f^cLZwLnMd|nDbAHT5&vVK#CZt=jol?2 z3Cw>{>*_r!{brw)D!jIErTRo>4~gwGj4{qJ+%e8+K%ld`Hd*3M*bM<8!X-R{LPIH( zL1%$LV?$>Z#ZuiQBlrRl27vCRMEJbxM~L*IdeM(o{aR&=I$ z1T<0q&Mt^15)u(Itn_inV5nN|Ni>!N(I8+14a>U(raFknp{PF+%#LME7r@;u&QHw| zhKt4(6j6R^jxn~20g?hQ3>M2hjEH<5ilxqkRE5|2R3L&-9rth$w;e$>{O*ys!1@%e zhMl`}*DeGsQ5dk2VkE~FAuzne)iCv1{MSK7R2$AwsG01m1~2t@GS(yo!VLd1e8mHM?vecAfBJE zPp+%#Bl4m?rTO}PR5G$evd{YQe0@Y|)TcCG|7fmHB>SwN$k#_8M}123^>60-M6%EN zxG8D<5%E!<(tQ2zxIU5WQJ+Uu%P-+rs?F@oMSfkimy!9Iop1YP$f^i(E{3oX&(VlX zoo@Kq`ExX83?4aqt!?`ERy%EEX?#WvHOvFfWOPe9j&3J*JfPeu)U8CNe8I@ZkasZ~ zu@xe-6s%o@$CQz6KvC{hBxdFw!a~JRNjzqyst_qK4Nx^Osu3|$4H5Wj46!4K$-}#5 z=83)3&@wR0;ct7?cyTW^{91;8uQj&rrA9#42)Gz9d&u~hYD`5tLbfvvm&RVUv7ir{ z=p08-Jo7aO?2h=ZJzJ4X2T4x~8$)7Bh>@kL?mSp8RbymR0OA7@UKxQ#Hc1rcfMQ!D z7Bn*HfH*r6bk0YoZxe=#a15j1)?m5EgL^DQ=Is%|O<{Gc$jF>R)I|o`}4A5|Xx)6}CHJPa*87gy4oEep})hEl0JwR;ipl4Mcjp1Pm7q zwNtQ84X$moQPgrRYPFqCoOaqhi1i%g-7^TmZ7yU`q|I<9O54st;j)8hTdYmw8 zhI2OHb}CU3!ktS*RP3UwfNVr7(|!k*vKzZ=8r)S+jbrm!r7?B7|wR<1;{(|k<7aaUDwVshxGO~Hr9%2vH zUO}F<*Oq(t(U!x+F*mEWEH$ztNWDt4zh8tiZig zkYj^r)s;SzlsW=8zuhD$#s!j;=shLv=EzzSxg^@$73<1?!Slk1(KGbty8R8F-Z~dU zKNT4@mLj9VQcn3LPm0mnZotrOZM3b`#neF{tcs)XAMrzAREnrntnF!9#2AQ3o#vr+ zp_)#o#zQ|bLgA(&-#*-)Jgqn?0|8r8^z*nmOTecjDuY3?r@I=Ya(|dn*9MNRS9<7%l>n>$@ zIAHg3WU-j;6ZJXE7|Rm4wvnZ%=3c>Q8oVy}*dSaEOyi5&+M>Rlaom}7d{Ew1D6%j= znY0}-tx!IuAXd7iU_ztlje>=VR$XDJ6;oTOH+UhTw4szn~xz z<>QAJtM-T=UO_&7;6^uy+C2koat9&jA!xai8$}2X8;x-_vF1CXLCZq5NJ_$Q4RJ3t zD&`nT7H=#uTCYSKas;G`j4XGFw6$extXlw|$D^XYy)NtG%Y#j^27<49)*c!PG%$9o8@UKnwfhbYmA z1s)=1Vfs`_wp#;^m@Q()pz@dp)_D1#k*)Lc5wwLJlPdHmr&%o3PtR&w3xu(tD*zq> z91v)GNaM(r6wYtEzW^|=H|>~2?A#3i>LdQ#jdbOZlDi36+;YLpZoL`#+%1G)?eda( zbe0r|1dIiY>yQ-m7fK3fNx`2WiQ1l?M*~P03velHQz(LVGOj~X5#aXWm}~wLipGip zg>pk$Zjq83DT;)qM0|6md98#4bZRBpIxib@(?Z$Bkz!*3<2q!QDA^@Sc1f^McCnUS zqGgvvivOc*>e}?FU`XwDI?FDNlxkdu>@a+~pfgLgxUd!%j+FifaWqyfz7ZgpV3slh z@^Bm1> zo7%gh#hZ~?g3*vG=j;uXrNy<8Sx?zGXE#xnmb^yh3(8`GX5s!$es8eta}di}ApqYr zf+J>*h62cFNEtm}*tF?@9IYd$29pU*Mm`I&8eP^tJXc#t);?TuLp35J=U^7YbC@D^ zaP!E>H$X=HNMz3*l*2IVAba*8#f`d_b^kqx+9^>wiPqa-+gu+i?vhK_D|1qT0jNa)@{gSF0gpA(&#i;rt5xlGR;!qlNd5rjjiD+Ge06-M#JCxTwXX z&H1ErJ22UGR8LLJ`{*!zN1hUq?HD2=Od)+H6cT4Ae`S~sdJduOP^geD!7bzvWM~tN zmUa$WXDfi_b*Hg5@CnmF$LfV(yzNe~MhLo)$P_4D2;#;!_gI?f`))*}_E)iDoWY)?RC9V$Q(&(m zG0SU97P7rftugSg!?_JdaC#)Ch>>U<p?Nr(-z9gup^K4g=5D+t5VkW8`wg4uOv@ z?k6PfpGI~P0KLMfgNUO5I=@2$PvUDwXx})9cG9z;n5$4O|#Zkk|JWRN?#NBTMa%{^5)O0hmfl4r0z=OL5)EqPO zMjoR!GD04D+T#+oW_zmMwZlY zpJX!9LU)D>?wX7=F|usrJQjw74QcrZ-?0SlV*E3lE~uxcwFMrZn+zcy`djehZN%J^ z0&JiN*fKbG4nZ_eTSHizu+s{#`{!woE5J@BY=mg11DkxsFuCsxi+jlMDT9|<^bEo> zN_{zY;8HusF6;fcuWOnyPW|T&zG9Opq@$C)F zt$PeiH6N}M$-~vS+?!l7`cIWhv^h%tH{@R7wb#fV4Gy#b;Vae?69C6|%9IsP$wZE@ zYOifyYW3UA98^C?2~0z^nMFNs*L70#**y#dos^9Z68pDx*r-5PVoSR66}l4t4qXZR ze_2=fjq)QM>;IeYOe6zQ(#bUY@|}c8=I4Kg$UqkTRJf=#vL}E~xzkAT2(}@}8A$gX z9pBsG!c>rt%U)FW3i2UW#m{obE67JveP37iTbP@F|3~>_cA)laOo559zBf|j)03ov zaX5E3$D_E-0RWCip_!uq@)Ykl6d+HLfWrau6a_dGAWxBj!vpfiQ=Ss!$%r{hT++cC z+e`LvU2ku*ZH4mNVe!^0VfuO__YYL2`>ic7HJ}qdSR0V0N=K!g(yQp`Ea&vMJ4xD9+K($Z{y=fy9q> zj4VfCzA@)sX8kw-t0DXJ%KOJ*4%?nTa9=l{y1&^0!AFlNVGW1Ck43ws*qJXgcQoNjPlM7h-Ho{9W>ATln@JZdH;XQ<&rrch$U-+; z93|;|f{27oBTHnw`{q0gnwI`3f*@#*KI5|IfQF9|SNBiITki8nolQuJ%&2r;@E~kR zIxiCN5|Wq?TX^VS+KY7H2fJZue~8p+L-$(&7k&W|j3@yj=)jdi?rR;`Ft8D;16_*k z0=q2;tou5s(x>X$gwgmd#Ny9LGz?b`#cU0{K>&P&MTUsEtqv^Myp0)An}oO^6ogve zM8eu&&d4=L44rneSwIpC4>A~R8x$z#pOGb0daACm6)dbaO5L|8c^io?dWVZBb+=LS zE*EjXDXWvc&A1PDG!h<9IPU?GNXC=%(ak3Vg>F8DF23BUbirH(D?E-TJ~3A7li7)( zQFTQr?LdJORapRBsKUq+6Aj^hL97(yybrla@FO3(Ui0k{^v=$VDaI)s za9cpUP3Hp;yB{KPK06I2=tNZg(TRhpoyv4Aw#lc1X>=x!_^rS>GK&P*i{ z&R_C+8Uj(2e_AbWI4wXz>7iN?ZoNX)Ytd{1g^FrnYzIcc@Zd;svI|`)e$9nL7__3d zX}REhQXszxH07W%&mo$0*u0IdAuJ<~q)=g=(}GSQG+m1jw~r!p9KIw)73xBU#~(LX z;=eO~C`jE;Nytufv;`sq|G}1zh9+=LbyGbIe0gny;_hqX$R#~%=PQ|*?vp+NClhhlCMt~FKhe0Tu(NdK2J0*-*^?ia zs3L-=@Sfq++;_;wajVAN$);5_U90p}S0`h&ehD>He_P^740)J00-nHfO1q#!6dT#E zSn02k4msb0z9HyzBTHB#OAre$QRPAXv_e-7ObM{A0j1$I%)y9fa0)$3;;rUUgCW0= z+Z0rIazwADwH2p#cFq1|nz%Q~>9 zw&SrBHB9lI60xTdt0zZ5qf1zUj=~`qc%*ElIi5NMDRmH#i9F)(P>0}sspFp#!xlKJ z)7+hG2VFY4VM-*B*Twc@4)85lDTku?H3`~P(Ab(|E?~c*s0Ah?MouN^BSuaS=>qZ^ zGfVzLGJa1F(MF6Q)0d63>C!%&wO7f-5HfWNN9Nh6fst}LU3|GYbU|c316Sow1+jS< z24qKUriwcLA~sWf4IwrY8x0{g6Eg+_U%xCE<*%|jPOE?%`d~eL|&N%M;4TA)op(NyJT&g;QP^Xe&Iu0C@Rq1Is zmGYqRhj1F6{TCN<4qT|E&fj(Yg7Nf0r}6X;5G?z(H`l>n_aKZX3~LXQv6q z@tOVe{LR)MLBNOQlSgPNRsrtZ%t=J+;JQ$)1=~a%ON zwRU#F)J{gNunZgAkxrQGMx6+x;ZO%=%a8;)o#vq;jG{D;iZY5)b-co%?v7aOD~1yT zKu;xY!&a=Ea>86n7=JKJoD^m$VFJM{F;bXiz$7Wwnc@JnzZ=?*b4od2oh~54UI67) z*JHcfi35qN&C5(D0jNkhr{BRFCi%JAIPmJ8_Xn?H$PP<(B3{2n1t7&eFOS(4;Z)>8 zNJTMS=wyV_(GmyloiDSZp;Dl_Vr6&mB6D}}vc>&AA*xBoP`o5HkPdRzM+HvGhAD9{ zqYF7zNO*=bna|*O$2ltpYzZbNmjo*ZJV$S-%nTb5pVJkzMPW0}nW%{P;>=@e*i7V6 z35A**HY@VD3XLlcOU;GF`U8`jjd;>~(WP?0YP<_G6s8bi!;=w@*jk3+$w+vp$zj8j zfphv=2J}OoG=((9B`i9)z}2ZNEDE^5;T5ifODFyGJ2{oZPu{g_S2(Xnh1dGL772}+ z3?)2mU5^hw#0dJ>PP#O&!8Dh8)hL^4i(qf}V4AayXCI zPc^&8q{9UZTkd&#g~v8;_6pr567Ko7XXK6n>T%zP+4F76557X-Ud#6)yuj>v;d!&G zdI$yo+3fk=>=3>evwQ9AFuUhmom%eMCm)(T?wwkm;QN(NV7elDAbz)YL%?WvaYL`X z;&$9{>o;$wnG>G*hT6|YZgUHePBp+D6>bk)Lh+*1!M1;Oalowsm>v{xYjN$Mb9w@7 z?A}H^18yCFKzX^_3s>GJa_f=vCngv9Z5-==aPz%;;eQ7B<75=`KQ6de{-c?Hkomg} zV403*+A)Jv7@pF$_6B->0bOw4dMr=gfIVpJi-ytxWTw)j(@Gn@Wab7iH5I>Oft^3q zv=m*DfgBOyMc8<9s$rJzwEKWTYZ8g&bFhL)B`1NX5Kr$2q%?7gh|`L=O962nPsd_B zVm$N;wf0rSi2~w0o{qzK#OO%7wVxucEFjL~>GX<6jQy!lD|YNiXUyR8I_L2Y<~1HM z_Si$Mcv?fmn4;u~^LPi70*@Ha=0dH56ft})Pn^d)HH5|d$r6|2-V6xm7t|XozI2g# zX(c_j)JocoT{9cd5u4$?UD+E=2Rlk3^~Q?b){ML}1WCGU=KFopS$0&qLy5}pCw*xX zj5AJYC$2WHHxygei}n{uFWu{nm{sU*5Bc)!f`)$)X_nZXA0BPd`X$fLC$@oKE%A%T ztGNpLN7_9#x$_uidk_BbRs&h>Gy`mnM3P4?y+(cjiqoa0&Ci!~ zq0vUsDd8SS2Er6H><{{btKH!MZ{g`Bz1ICXl2|YjOibae<}4aQb3o{%?1ovt@K>#l zS`Ljl?%N3Mlr0=JRaw9vUyWx$UZFp+I%;=76|1BEJY+_EUPUqjW{Mt2Rx%@g41@EU)IGWy!6kK221VSqvX-9RUsJ-JRaRcq)GaHtdF zP#}1(<`L*sM{$EIhwx%>J8aW(8_>3k2gM zfWvUbVOCWIFDt_(4hPCP0!c~KhcngZLN^BaVH?VcDd(p-M=bjIOeQ!UyeK>8=7 zNwq(L*6`2BUIa3>%Z12v*u}_VyTEER%~a7ICemf$Fg7*YK;_Itt5PLljBf@{hMe5) z;_1F_iouXt&*M|erCpy{sGja>*mGdBg`=i*s>(X62GF*jr>&`p3L1t-ZwsJ|GK11Y zDe9i+8J%hy*+qFOde12Yn-X5>H!81RJ8(MW!fO&tV`K?C?MJyAP6jLY zlmdR}qczk=tW>^_E+$dK5REBgI9sSo1{hg_9BiLa+%?J&FwyK3ty-FS)uMc6r~Mjgx4KY>4lqM2GGAb){S2WWrSVLb%&${6=s^w> zq)Nc6CFoyG4>#3--f6#1)$#*gaf?_x?ceXoj$Rr61K+zQLr)CP2%L=?sZ7O_oKWT} z-1BYT!RPINeypo@`|Xa6f1X_8Ve2KR%}(m~9Fq7^&{$0lNlnwAhTu8vXvn3X^KWSP zU!4rSfaBS@WnfaDy$q@4&V^~Dab}FG)0#fvvd8jCLlAqqD z4dFrbQj{3k%aQVzM(BG3srrChgu3(^ZKz(oXz4;?sw5b2--q@=#Oimbi*6=6VTazr z!&cH#9eT$0FQ$lA$nSQ6M>Jl$E#yzze)a7jJ<~}0?Sy*)*h8E;Be$P8`%Zf0R|weu z7sQv0rtOcQeI=meDF_IZQJ|5%3VF8@#9+g5^Jl~WKb(@=bj8aZ-~YI)Q|dPj*ou4)=-Mf#h0mJ#Bqas>BeSHM36&!nYTPXIX zP$S*Tzzc$VR&}nb{lupDB zI`s|bbt+`d?VYK*4s%AYy?EV0^+jR^yKRc5I@C8kcAmfp)r&v9(^SW3`~C-c6}!v( z_y4TCs@>)N>;HhfS$o_UD+>NJSASnBgCTH| zRdpN+qc~kbW8LcjmM|mx8oVF*P4)2vr%d0c8s*;jNd2fUj2wcNx>TzY^ICpFk-AplchU#uQ zG_Csk8Y16od^gx(oGZv%c@34l7PLHGGB09qsd7Hg#iPobhZ0|&>+T_I1u;iHfxL$Sjr@YO2*tY!9IC_$$pu{|1sNqqRr^Q|3i!+U}U?EvEy z>@U%P9;Ixpl=I&y%R1~Dv6jysz8)XwgKryjRzqMq9#Q?}?LnrCZIe5Vj;h$SP1DhP z26vQu1Jp(DP){m9FvKO`)t7kWp}Y~)1&r+q7t15O5rQQQZFZVj zOy-rNIKM=$Gv-!}xh+qF=+892&SP#z4y&AXxX>Pn!5@IZ{FU|}sYea^;wr1wPO8Q2 z>>VIIXDUX9nI*=m!4zXu-6pDQ>AIs)C-W;BCU=6gz*y{0x|JPu;oco`x$a|LU9OO4 z;I}Php|kJ^=`OG~EVi#N-alaY=D2qQm0#j`Q3A`c`!EP-L*_TQ@@K$kBa#5R-meSk znxME!lmzfy!~;0QZjqTKPp-Ks^tz0KJiiY%}vEfH=R~>mb0|ISd;dv*Cu6@;n#0E=qw$GmbCVsD@y=7plPxR7~~S+zyPU;N}sR^Kao(M378UIJVDU=|;Xp6xgCpdm4jmyU zb?8N9QpdoH%B&9g$b9gGEwLBGcI7_gMwy(dKAdV~iJ!@->cc~gEb%ru9oS-INrK7g zz?4CsMX<2b$=^q?)LSuK4Ek__!cxY2G3KZAb|v+8AF>4X^%Cejkj5vgsCtsK{DO<_ zNY=HSo>|+Pf||e-UiY%@d4L)~`^yi)?s+7&gPvqPREQ+)^T@q>2VT=e?69#3gYiHP z;XF*;nQ40pb+dm&(iq~rI~Zh~Q~ToRYJodY1Y_12Kgwv8yA-xm-OV%fY- zL_A+OS*eHp2I>Ip6=k;NHPYLCFhwf20i{NkQuj%)Ri95ZGTmZO{|`XqF#JG3sh%c; zGDlG%wGxwh;_lfOEf7PfU+7`G-RQI86Uvh&J*~B|;Y#NWa3^R)njX!jRVbX7;C|@u zSN%|eN9o)Te%%iheztw6ppNPjjo1$y@nn;kkjzw1D=`5#Xu{hxsO{nc%7FV6nia^) zn#{7yfIAw50ocwK=lO8np_6~n2QIWxo#MrUFUwtV&#{o!CmlyQ*3scLm_IvxuReHndjM?$N4qD0?$ zPsNJ-kr1O+B68mn2{nd+P=ee|V17#gpJOfJ&+{Z^Rjqs z9|Rf(yJ>{88M&AhrAIPlgrqMxsjnOo$apOD3-JU-i+6T84`z!N>w2@Dmw|R(;WFTe zNaJ2bHd4$l2fv1FI*5}YuOovGp+XKL^4D|IvXmBXx-7zC(Oe zs|R+o+-(XZI}I$c+;?&1Dt)_Jdt>Cj2ZDwUEzq%~MTb7nnGpDXyU8yFaA!vXyp=p< zFSyAbj*I}had6W-T>*~Xo8u2_;f=WWLE2flILG!x>jx;QkGmg|1~^vae1wei7fL>+ zg8OD{TK z5GLsS6&E^XKD`sxewnx%2E}d`wyrF>2by*lW>O9Af15BNMsb5>Hd?* zpvsG=#L998h?hJBXMou3AviP1Q_4A%xbX=gn+{^pITt)PK{&=&ko;W`EAS}6Zb;tW zu^@^8t8QX=VDuUYjVzJ#gKmB{4nCbu46099IMb*B9U@*~5p-V6!HytA-0&Yo5V`xE zYVPi=UhQDDidii+vV=>QK*QIm;`db119lKF43iF`!TaQ-7c4}C{IHWU*kz{+{{?~^ zH8Oc&=jAMxkhFm16QItq#DbqnVg}0{@(xv53h$wek$nrPp538~2{PRuH0c&1J+Q~l z*585)oH{|p>Gu-u9(mZwk> zr({QhlgaxSnUl%WpiiiEC(1Bu&vA_l4LX0L*Zqz7`UpYp5+q3qg2UCG&xpMK#2(uW zkC2D%Vn#}&D-6WBVVET3-T(=jMwBk5Ga>pzF{#{}0NLiZffptdSSJx7cnyi?d1Z+T zs42Ulmd{qy%V+m3%3M-VsMIl9aaJ~zBOo414L6vLz1rCyf^i^%@T$JO+V5H*^`BFR z08$)ChXdJnQOe&dBYWT#oDhaSX@=nYAff@+ZY(Mg0VC3PYR^JDhH*QT@3h0V^t~a1 zbeyHm>Uda9kS-vNTptt(rRapOjT|lA{J1g&aQJ+4sPRMfzWpo*+u8 zTfFrWtW4`OcHyGTCuAhGKGQCN8$G7>)OwR!AF|V7+iSh8yn%QP2TvFd{X<%sZV)xF z;M+kA*>#))VAhbmjO@UN{a`RARVWsLl^m_T(9iTPTxVXj9_J7^pF>=3qeOG0zYs;Q z%@WFwg!v5Fn@<0o4}$H1&{dr;ITkzsdAeXxSwt-xjW=G&<>3%GKvL?blY60JJ3wcW zu5O3Q zR2vIuNA6Bb&u3U7b&r{ugFH6gu0x>4Ru#f)kjk?&6#3I(zvm2oc>2;=25f0ngOrX(HC zf-?t6{Iss#M^)|x9X_gJ()Ux|;(VojOMO))QQ>{)gy+n5ne=!1LmQa>+0a|vO1!rQ z)gRj6Wv}-IXT0&z6|BrX{(wawN5LGYjA>xvLc@^!ipKDfxWd@lC-jKyz1xT^h!yXl zZrUF(=@~739*YO*<~;|gI{Q;B28~c-l+HJu16k++$f7`#AE+llX>VOh1$2OeK82MJ z5k)Bn)}#9Sz9HMlV4lxij7=Y-s=NF9x6D#SI@n z)ESl6$!!OZIqD?FwApxLV0w{hXf|Qc`Orc{o~C$rnhpd`t0_KMDrr7mpJ9bdf2RTa;Q4VIN|o9?Zt1f#^C8X7 zk6Swp07EPEHr4m~rK&-VQSyQDz{64nv9n|PRnQF~{5iSKk=mrA&3P}NKPQJT+U(8d zHKON1%I4z?{>w#b%EJ5jbnE^QZRDvXXMp&C5SYgq*=@+tvrjumWw>c`5gt1b$jd8w z?7#pmu98cP>_;fUjl6)uSnwBOQv%nSy$1zX(-fslfs?d(?sE#5&*9GxC(qI%@HQ~H zYEsu7OX4Z!odkQ*Pu0|ZPVYZpGNGDAFYd>23g;QPz7vMbG!@rSF)5GZHqJ%hJjZY@ zq{}qm^DQjUZQ2~3Pdui?(KmqA%$jcKX69XDzKZ6m#sadUnfYr0<~_#vDm!RsB$=7Y z4h)a2Mtn7ijAv%(&*wNdDSp%mW+p|nD=Eq)Fx?^C9{t67YZFv~h!kn`J7s8d%I8Sb z<$gsw@b}krJ38*+g?>l|`0tGJ%LTSq1Y+`-Pr$&97GgeSjXy@}#DM3&5}@Yf{AE+8 z9LRK6GcywH)RX)!K=Jb+HQndA$Jqa*x9QMr^e1!Wbpx#kNh>-ht$fU(;6~%uo3oF` zc*QI2QiS^fF^gI!iVmtuh$)#$hc%;bJ=}}Q0h%K>`jK|AoUCfCf&%jq zlNiK;zbiEi*KYdSU0*$XHNkybZ$yu^e@`qx`!sBntX9w8^6)sdFfr6aMlvd@-9^>> z`r!muJ4CNvp7AURx6oe+%wfaNYqu$WM1NuOi~B2~F}tNlM_rhv?NKPAjXj!%U8*er z8a`7@!gktsLoPoMt#79iek|HfwF;|-GT)FAxRKkLDOEHm=rM}h11;{Db*M)P9VL8b zq{#1#LIWGSWfpa=$AgKhq(=JPQP7M|Z#3cbM$F1Q1X_HfzX8_kpu-kkEd;V&ZcpU$ zM?3z+-4=pM1>MFVx}c7_<&?bTia~{Ed_d-~sm(^D*nJ{wIEHOV1n?bNDHqwJP2dgu zuf~7e;RIWjdHDJ6o+}}Ki5#KWmvk9T1yor@=Q386Dix^8V8?tPaRq%zjC$-Gh!5P5 zo~-e}A{^Ic0ijeZ&TD#FvyrO2vgcibMW4mx_=K~kW@@x$aooI9v*Q{RD21N+m$ z1V>!XKsx4dyffA&#ClxQ`yqeyyv*#gPHiQM_bwIUwJP9_Ia;j$rQpxf)g5}w*n?5F z0q{{UNZmnaxU+~DKiEhfd*dysAQ|chIgmc)LejCUrRNm*N{0}S;r|-^$I3#W1L!#y zAEqHXilqtspMd`v{KrC{)?&V2cOJhg90)@h)%H*kTx`-<4Cooby+4+Qyh?`#w=!D!Q2~!nQa= zZuZ$?2d5)g$|qv8uT%``wIUo62ZV_KjHX$2qeO3qr1*PM-K?b2Sa14sLDMS;A1!;L zIwYpn2yvcxx{m%@yr z%c?W_Q`%fVClwVZayklWsi+JP{j_qTyeCRDIg9Wo$l;Aqu`EQGcX}OemWtm4Q!3u( zw3k8o0ZemH$>F9g?uLdT@$ukUby2ad=iz2Z3<#1n=r3r5glkg%B<_)Muy#}&8zY{# za|&2P zxffAx0k@FY#6I~|Ew%2CDbnpm)^mCz|@)xr2{bDLjwEJNY^pvZ`n%cF-;vTP%3(&MX+R7^0Zo{Rbo!d z)BW%#+r!k}e?sR{Q5L!wW3#n{+Vy$QRq&1aI!b@&MVJerzb*dWh0{7p&rH)uUo({Q zkFz&!=JdHF`BfFXDY3gd^%Ng33C{2~)FM0Q2 zXkarzV{k5lC^z?`dNUBggOIS=ytn&YeA)9bhITPDTO7|4wsgO@dy6;|@6eDg{VEkS zmnrM}P`xuT_gn;D+QgJDPB4&!t-X#jN6NWk9Ye1J${~h6&d_>>7Ko=AT3t_Ni^Yo! z-N(>n;w^@LT}@?Ii1!%!BbQw*K4xe`G10`(IX>$I;U*Vmo}i z2-XcFqR$nd0Wx6E?{NEkL3{zoMA-_a{F{ajf`7~v{}d~jG6Cv7@_T}6%EUk6x258H zaXmw;07U_~nzdzO4dOxzpc`1ibGYO5kv|~z81Q>5 zrl8xn?ENt5`GZ);dbUEd7GX<3c`kl=Czq{+p72(A56klnqBjVO<$5j~$?Yqazm+ji zT>xmVD3g!Nh#1!W($a{ye(*A+7Z1J$>AxH5jEH!l=>em^Sdd-|%(B3*O8bjd$z`R@ zVp(0C(JWpuDXplc^qK^vhjyp5wuRE;`&0UxDoWoPLg}-yI>Q#@dabf-@y;Mhw^mVl zQFlrwJCuIJrSpp)0A;MW1nK>uJ4$VAfZdC94dee%xww6 zJkB)5-HF>fb%gnzF&Fe*56Vb_=x0DTTfARHG%upPwy0&fn_0?O=KKJ2`-(aIp@e7- zNIrtP6M8&>^sQ=2CFj$ecH#8KZhr*+NoX~`-Ct8@jBigtRzxg?ZKc?leijqh?e+u6 z8$&lE{{-lzc%RdfhSyQcS3x$pxSGGf}=V=vR>Y zQt4KtKkNN2(*B%|_Y?g=oL-66N%80U48zHqImufoz>Ob7p3Y%_#$KYopEcpnzZxW`me zy3(Sw5dUnmhnHevpK@>r2RFmhu1{Bn`-@w9*8y`z-`+^?j^6>fcj7696n}!vrMQyu zM>J7C-evdC(|p^j8Tl2VVMy;yQmY@ehjS^l`d9E$DV}a7%O5}VVBo*)HFh`pP4*E? ze>Bp?%x3~qz7rvCZ`qT9Uthfq@#f0Gl>VM=esr`MxrJ)SS3XQgOG@1rf~ck~yh&%rCCc#G4= z&AH%qr+qHcN1JIWM0Nmw^o|q{RIaij;uk!|U5vqqsPSz>9Qe_q^bw?(p_VN~txrlw z?!u+S>xL;$0&=4_k%x&l*j5w!!>m)k+1Ky20n0b(Tzwych-e##nSdE`=Sw3#>p42XfPs_qYCW8_E;ec7-SEBi?rda!9H>QC3uX^jRBWX;x4Zcq`Rvl+TNuzXM% zpz~Fk*zS*GOYP!3w9+uewHms8Xty#;Y|_v}gBr@PKE_>Dh^xiuigZ~({9QvyXciP# z^`x?uqQwpu2gSiyg@UqTs6)`1ST#^t|H0n{gJJN4nOWigTJr^=2hI;O0Pn9R@y8Lg6-#eAxvAVY^WDazNOHJ<$rAZUY3rwFnzvmxmZ zrwQ83&<1&YlA!x&LqjaV_U3VAanWrELu|8zSVfy4+SUni6GKY^r&e#pu7{1e8nu?} zk`PTAB1=?=TQx*&uM|%)v_yQ0X+#ePGk0?da7@`i{lg|&TN*VyZDoa4#ci(cM+fs8MLpKp)m|8t-Ff~ zJnW`6tdIBbRf|;`qJHlonhsR;wnk4c>mg3lP%e62S-p5qL#F}iEhf_=cu1%!X({U? ztPu(d0ZNJcG*lODDQgtnMpD^EL3ZgU)-tp~Q2+H4KQgpPJQ^qHF`D4QE-NBW0@|dZ zYP7GPsHUwX$h)qry{w-&ilGgHdb&wGtRd>#CUNb-Ov%03guk-jK}*V-M3aKVmcCb& z4G_x?Q9MKSHk6b$RXq6i$t^2D>1;mAp1 zx`qZ1>Jm9wv}G*?sHes zd18u&j&HcecfL49L$e#UnCFXm8VWaFhwPK_)P=T9X{b#GiMu9!y9 zO0lN$^vF{2TMf6%a#4Ei>wt5 z8XDIBrpS%r01d70w=VKaakPfcmG?(}B~I5+qTl0@J4CyNF7EqGp}N%PF9Oq*X4B*0=u_e*4NdCTGy079 zT0?Vt4~jl7-acMYw#q@#7etpC1T6_1(RcsoOQO4mruRJv&_oT5h#wc&ERNIAxcD$Y z=V|C-du;S&u~0*+>>~kP%Fsr6RB%%C6|t0|kLA7C0(ey{)6n${EoW$h=#57yuZmk4 zS|lFsLy(v$@Y^7|?nCo!_o|Tj`v?M@ne^bOYL~Val z9Hk&}CGM14#XTCD5*-$JTWn-#kvJDxzazG5XgsujM}$sNdY;{jpcF$&`a9x41wr1e z#yjE=4ULOW1m$T8VtL!ddm8#AS|Q#OwI>tLC1Of+qIh2nXK0aF)m@4Y#PJ#;c^`;& z4V{Yn^atW4RgdqYABYbW6!^wCEBb->OhY@28$%z69UA)BoEQBNUwvVDfiKMq097%x zQv5r*F#3_0qRPY=9Ap1joTj0%(W|2$i`zAHYh+kpyLd-KS7OHbnW#8bwc!_N(Pv^J zL&}1miyt*~A!a(Ciy5aeC2Re;n8y%FUlsjaJgv%D`j_Gr4L#w%EBdAQQA2}c_eZ}H z@6GPu^0oMzf&y~}Jr@01{7Xag2Hgdy;&h@^x_l#ChL(ulC4Y#1Bd$~s>+-F*PE+14 zrkLM~+ZiIwo{j!Z)Xiaetl5uZtcLEyQL!JzsT#T-(7(lE4Q+)bc8Y5>bRT9&yTr2^ zdLepObeEWXhT{2o1VK+;n};fdlwWFS7s?DtpK>D)*%he}rd+I{Cn8f!Oa5I$_X6_C zlg?6<&jYgMYZ`hqI>q$MgIrZM6i`4O$Iv2PlLY02v#D$m&j5pRnugZe61#%SG}MS$ zdQdLND9Q^f2>Mh*e`IK4D@$N|2IX-Ktqg3p-i-$3i5e>Q5p=qSe#vF?7*c%{l!1A~ z7y2R^l7G!Z|BM#PvU640X~kbeOXaN^n$Yu$XqkLZL(lXQv8e2J zo}zrNr-*ftlQcB5xg=I0GYqLw+)d8!1YM}0z&j;dMK`%rL*JDWbe)FIYO0ELlQ(MU z7o|M_{aQnlgDFt1*U-~Gg8rbPo5KXXsG$*Qg5K897hQ?VM;dy!E0uktq0J2K)KEz` zDl0ml+P5SykfCl0LO;|K7X^uzOZvyE<-r#aCCvwi#(Kz`7*g}W8o60RG#{*$P4kJ8 z=6nanYGsRtrUR;zqZ#^G4##S#ULLBU@eGY+Xi4C!!CO%_UPClC>*W*;odGM=%b6OQ z3a#tqYz<{9ZZ+!VTn#V;Z6sHOeCv zcr7|C)+mqF(DatWV*TWa3~dzS?1{1dGQ*JaiGgyyrhGa$BQ{X3Qjn-_J{izv4Q**Y zC)O+jIhG(MG`Gcu%83lAG1emguA$%8Nzo!tYa_}<;w<0dSc`00NYD~-X!8}Z{p16S z8RBttfP9o8H48dGzN^Xtq2`sb1LP+fx{#r-G<39`5(mid7+MrK-kxIOrIm}BXW#{Y zN*pKy3@r-0<)306C?mS;33%jiS*gpO3r{hJ%U-Gsx~z$fkmo2!EWq7qlx))w?Q4vZ zmuP5IReRYexmH1e*0MWd2g_R-S`=7Vb}yj2b=gPFlLDjVZ*|#M&A*L}mQU!i?*I`wpH zqC8tecXjJ-Oq6eE=mm!Mzm%je3A|bM5-1PW(Dt&|0iCO%33ay`$H-L-sWE+w{76GI zrjL;;E@Lh{Cpt#nr6JlcI7SX#s>+^hc{_HDT%3nKj7^f8HB`Rehp}U2#pQ}J3}~`E zPDAGp8{?lMH)|*|?6cTZ`L%|Q9rkVPIQgT7CZKG(?6ypCIeplU*a`Al4R!5RA!f+4 zuTW*L7Yz%{ly7V3x{}|(*tJ}b zEiq5_&qF>jPmW;deR%|CmFLKVHT3M@6rd{<6x=poKR_#V+4ud3a;+|_8AxTsAKyoS zgqI8t+9)qC`m6suUA9p!DT^+7q5)X=G`NB?mw&!)Zyy&jzg?VU6QB(Ovd1yh={^fXAs-S(Bk$`VCW)zifK~$^|DXC z%!g;vLm5&%wnpx+A?mR;^5B)k^L_5IHS#b8N$RmR@@QQ~J+?+pV@SzcBTvjjK9uEj zJ@SdQvRy+YVXgd1LBSORx*Kcdce;!utd%=;8A(_x1J|)G@^`(DD_<*rrXip6B+BTd z#yxRL$MvGLXIP~M&e!$FkvS7jQ3!J><4+3hp1&qW7?q9;(y6>HRfH+b?>Ct6lll{W zSQ+IBgJ+LLl%8u*syHh?26maHm|wkns%TWYyqWlH8bsdyNGYApJGC2~GQ75ePNck! zRElOF(QE`|=X{}V`^x`;HLPwR4h`HQb13Ccbx7h&*u)aW-HG$>As25SnS@tud9A7p z&rj}aEGvWcs>|@aWF@yT*_Y^>>N`?ptJ8-NhEhZK#rsLh{{<$qHHw7NmxsRSh&l=(vu(`?oXo>5YlKjxXF;nX0le&|IuZ>e( z(gAN~pcEDJqvron{!}ZG-P$8$PqHdT^j@uMfrhO8YaH75MonRUPfz$qCDAX(NHoON zJZdPfFr8CXw=jAXax28IhF5s;b5EM)u3o7jevMdx?`|{wGn}frnMTs*NseRVnEnm+ zK*D>R58ya?FI-3ps%79D3UPah<`+R{#7U%5sM4z$^AuwWTeqS& z`M~)JqEut;>on!p)={dWsEVIUn@AIr?=OYa6s{;IT) z8}T&6Z&JkhIE+~XCqyW}oM#;`^(D*_%sTcJ2QU*xA6eq1z6NMWt|1)ulUBrh348|! zHSQ<{Pt?NrLMhI|Fnu9q;oM_ie)ZpJ{46EVNy<{Tl1fz@m&bxQ$3XwWVyq0~{AL)Z z;KO3HtiTEK3cMv!DSG1H-Lf~ve{b;({_nuw{;=`?8~opaZ%+-t|G&y1_?qMp;D!Jf z6m+g4g4Boll&?jKGsQ^DaLRE2{-)VTPRDXOp3^Cu&g679r&lAzNjs$7al(@FEu7xW z=^r?K6KOB;jhu-&?E8}DuEk>bz-HtVO@tYaIjS_MZXcwO%lX+z$KWI-)xFGEgJ%`% z82=lj6U9t(0RC|7am?o=(F=bW=S{Ph^CaFec_R6u*luRA-!KnP(moOk#HH~az*G8- zd4Ho{?m*oNob3IfPfxi{%pTlF&I5-5axrt8Cyum7B2Ris>#OdE$}@mDS_Z8(wbSHt zXsIhNKzbh1i{v7t-(r0~kL_>szomg|LT)?FZ#0}L) z%Sx*y{AVfUDx3$Ca+~#`oGrIieky~KS~^>v(&KM(yE(q)-?9?c^Ba}2b!Z9F-usmp zwbmc{gVNZAwRO<=7W)@{tYdNdaiqMZsKMC5Qf?LvW?!RL(rJkC<}1O0#&)w$Y&bBZ z2hTEQ%P*@>Gx}R(he|oV#YNqp7hPbi6PL%YHejWel}3woVc#`Ie;FQfD@qsixt;Kh zcN-(E>zxOXzFzu(G1jUZ^q{c}5??Z|g_Yh1rnmn~V=ZHDWz1~(QU4F+Nb7x^{~T)_ zUlcR%;?ngf?Pt!G$Kj=^*|JZ!Vdh*b*nc>uhnTh2lYI|2gEH9LCoZtg#{OH-p!8bt zef)jnR!-L=?Pp#stE-PU7ojaL8JAh#$4@l3n?DS7!TH+8cJndr*$v#Y8@Nxmo6}*{ z$JjS!%d=shpnM}f#k|bAB7CBGwKZzULr5nLe%u@@Z)b9bm-c%#F!~Bc22Rd4~p}3E%Ihgv;9kqzq1Y3S?Aj4 zT36%Sr4OOK*Z7uN{oyTFS+zXw9c6ko^*OFx0mtoZn*2~r=cq#eMYgSN_?`>ymuam3&A6mbWX5FXO z1ty)idrk!Ve`^&(`b)+))|gO{Z-=-yT;}`6nt=Q|F)?1r=@?Nf>C_IJVlSlbCHgf9}hhr>1C0Ouh#geYBBO- zou$Zs=f4K&uBOGlh*3H8dS8nX?0@tB*WR~)$5mbD?sMiXjmDbs3)vPP#Ri*T%aY#) z+c4I{9~}H4I#dyExv&ykkA{Na1&bS#YsqT z15HW7ElER*Lr6iRABCGPj*0I!l=QY>j_J8%Xc;4Ntye*!&?Ot!#^FLaGUXGDDz&BsIzC1m3f3(t8S$e6RPQTGU(ySBu-<@68zNmwd=; z80@JQvxM^&E#^%)XVGFV!}*F9a}CZ_w3zFo#J5I?Z^!wG7PBAcCR)t&eB$FcClNP# zqyNP#QuW4-f#`#fcBbJzGj6=wr2N^&Hfdvjk_-Vh4)VPUoU?gDS57Fj_7dQbKAxRzGsae1eXF1ynUrFZZ5>WecbFu zyPh?!+qA)V(8D`Tar5?hG2a~M^Pn-uczELv6(vABe{kLoU)ggw+~->)ni&S3@GTYm zHsA++D+FIFaI?ToZm;=!zHS@uG{5NEDL5thyze#FA8z`X`!(3-zw%uxduw;1oS%aJ zN$fwq=1Q$-@xSK!PRoV0vFtloqztc$1zt-OZDSgdz%Dk%WTK}V-fu<4AiMJSk5-s}g zbbnht?t0ks&3TuqvbiI8sXAqT?rk^u%O+0_27hbbkzaH?RF&;7QRHe8%YWdf-S``S!1x61hUey}3M@qlk-%x#)o*x~A}{7v12fULTj|XlrIM?3{pJ6@ZcFF9=0=(50w0&yHaA<;=K9l4cSG3qnNUMRo9l*- zaKoMMFD{u6co!i1`a;nEv3+U7eUj_5Qf8a$SD=*5y+K;(&mrX|@7@I)8}4*{uxT^k zo{p}DnD_0`1Ylxqy5SO+e?z`ulk2+HQbWx3zQ9z&v*x-vzX3Shd`kn{eh1Qg;ca=q zcoX3#mJ+_hLwImwzTvdz&Sk%c8b93d2;k*ye*~DC{biK-dPk`t?pln};;tazCf958 zNcrh(;y3t+|26QkS)Bb;gW-DI^IQY$XJE_>yS}p)FPwC(#$Nt4@Q85c-j?%&>t1h2 zdO3E&(vJsm1~AYF%NF>knejdt@EK(fZCY61PO;dJ85`%tjIWBee-(4b579fzym{9_ z@6TqfZ9M3Gb>(G%kFJb0KH$3S;$4kpuUb0P_*EILVb>=v7(!jI3B0gnpDXOTR$xxx z+ZsOH7-|Z0>T4#wDL`eAG2} zgGW8;I<}E;)`rWxkGgK$c$s%f{rBcCHFjb|Jl@y>J^u>u@%fkeAH_&~8k8f^=RmpX zVw{0-e;gzFyYA26PQsMBxc#phr_`bOFE_@GolE|q@f76tGr(OdpnIM(tNg)}-s2l) z0lvCnHsHrL5r1XLg5Yh&>~%OfY23f!4={uL$@(S1Q?4J(TM78;Jb!RX?Z0#lQqI~q z3zRG2Cx?ygfi1zX@i(}?_f_-@R#yUtWLyl%xQH2?p<>4I0DNZS9)Zi}d4R88{z+Ju zuFme@)5d$}4F(^O-h5c#)5ZfU_XPvq6B{kW(p!F7N`6}U;%SVpdxGD=_~PfIU%8XsS9AH2lRbleC3@a9W*_@>nTkZsJ+b8CCY#qe5x zw6O^5cO9(dYp#E}=zH)vkHB6{sjnmDLD!scvZ=-R?krd*aA@FsFyT^xD+I0;Saw~t z;Ct#$*Ed&O5qMa=u;P79KLpP)V@P68dw=ZtU{erlk;9>&dR5&J@~fYy`#^aO6r4&| z4>X0;9OL&vi5X1OBQOq#oo=%n!V}BbVKG%7aJ;ETUecmWh&QtK)361ls4DJ(pp@M z{er+Rxq5&<=DG^-30FVhS6xGZPr3F1{+*=x3DQKcreUssLduAGUGRUA^goyM%FXm{ z_qzf8?i66qJqFn99tWJ`E&z_ZkAa7A4_iG2*p9RDJ%F=S^W1iv-EIL~qBa7;e+68l zMgT8Yp9SnvrvR^3e+oFL{sQn_LQesvR8gI1y%*0T_k^Ahct+q7xCGd>EmxONMOleQZEfUTQfb_)Aib;eDU_`xXP|K2av{>lU;L9s~Z3 z1u?;sz&9*Rd0FqY_jYxBUKtcfPbl|-@|W{Y3gr_*c> z1@8CXqt;w-3I|0tEIcF72uMnSF~AKAlLE^EPYV5%z%v4k21ze42Do!!tl_u8VG{Vi zEKCYs2L8~Za>Froxb@yfw&he4;fqa;fGR}T7Wx_Bm4e3vPljB^Z?z@`pBDNP0?!CV z&0;QN7IU=;j0r3YJSp&$z%v4kW=Sb9Ca^5td{LlU&NNYhPY8Tbpt?lp0#97+%nyWQ<|m` zGLpsz@C@*y#&+|N>xAom*K4j$ciHXnZ18OL40smfbw6vpTfN=h0q?uLAMrlu{hIe> z?`vL{@0-5YeLjE8e~bSa|Kh;1z=}X;U@TA!T-9)*;gb#DZ1`Toiw!?&nAJF^v90l< z#&E{Ae;fQ+&}<4dUECCFx~l0NO=C^Drr&J33p0v=yPSAx7yJAH z?D97NHp%Yb96Y-{AA5Qi;ECxLJVn0{&j&3+XfZ-75L$!KT0B#;3448;v17OeR=pd$ zg?-p1?8mO)HE3~r>*yS%{_)~0;2(BO0A^Q~06)C;M!;XpJqmdJg|`Aedf^8vaK|Md z0zQ86U4V;M3XBqVZ6LgCKH)q!;oAjn6?l5XJ)k7pPXgXI?^A#u_dZm?@0<5|;9l1k z0p0G$0l&HS%Yd)CzYf^!A^eo!XPU^*p;?55j%NT*hQ0-OZQyyp(;mY6XAyR9!}w(yUD8ykKM7+6Q??H4{5%_BZ*>1%+iFa2l0&n;4Om3mg-tIb~EdzP?9UBZCK z{G$t)>%I=cV}k##;9t6w(z{on&egFxh!S!FYw;g*M=p3fCbWrn`F((H=n}(? zi1PySotjO6mtgPN#QYux9iBRH3*LdD4gi{Xf5KegHvpRIMrfdcPg%_eeiQW0P}6`W zPVg-ReiYDD$Do6F@)r<36||Fw(iQ`MKlBpk3;<0$3%LaN2LVlWySfPY9e^g@rLYY6 zZvvWF+4J2H4+5I%GYY%4>a&2RdI(>H!d^e1i8nT^0{+KTR z#{o@sm2nvO)qpsYf&FVk?FBUPhKKh7zYfq;?>24(Oc*x-?#EjpOqDc_0gf2AAWaGo zcesuB1KwcV2Fi_qruq%zcHlPwnrhlO4p=rm1bEcA6Y!Yv+kiJ4cLCmF+zoiEaRTte z#yx-^F@6W|VdM7zKX04_{F3nrz&|wZhxQ#YwxG|Wu1f&l=DHMcscR+R#jaI=%W>;( zoq9K7*Qx!8U8hD6yH2GMyG|WI>;{!Z>;{!X>;}BJvpSfgf?jp($6W zeQE^n1vvygz7_8S`5kpXwCQW=FR`Au-1v(5ocS};=W2Cb?7Gc$r|SjR4_(df3*1BQ ztos4?=iEQV3)_c$2Yg3-$9%u#`?T)~-*di~eUJLD4%{4gDDZ{A3xOX7eja#xLubR^ zHMBHd+IUs)Q^CiB$C@&Dci$_@JFVpyZ*r+myHV2B)BYa!=Vtz$#GN&Mc^*0pTe1w6WjXB1C3vgH+tHJk zVs=`A-%9+r##n`42kZ`zlXjxo1elC>;w2cZ%&&(kl(Gi-eKOY23>a}%@U&-_(ksP zjThW^W2Si?anG9%+L7 z#`U!CZnf6`xcLSDv*thfzis{$ClH$gFPOdfr2^L*xxg#trvm>VabFKSZaxj#xA6OM zz~v&IY3RhY)Af;tyA{L#ts&{!WqjM*(fEQ%KAX{=dmCNuLeS+t6nsD(3VurcdGI?X zf47?d6Tj!>_vgWwdzayc)%D=##m|Qy{x+@e?C4yxzH9Zyp7ooyb*A=?(H#m*j8AlQs-8orvO8Hy?(bCbp4{ZPRY;Cx zEr$9FX{%tR>xn%FCy`jE7%EH+Bnw5W+say_s0W#@nY1Q(9nNJ+Q?XPjlg}Z<@<)1SU+fxPi7sc&jHGMS=25GZ=!1v~nPj%O6+CyYRl1zDs&6t|%1mUZ2J#uS z>j(%*yzcMFT40I9U@2M3q+*3aaw-m)4oyv1gPHeQTh^=1!xL$gIAk3u?PMpT&^4Q& zX!uRw!S2m{`SfJg0y0p@972Nl_(awkM{lFRe6HInB{N_}#di0^l&y!j?x8*^vde4H zzJflKCn1rxQps%Jz&16JER=X<{gVZ2b+;NQ=5wSo}S&Y?LBI5 zynASeEvVdRCTFz|$5mH8cOYLFPiDJWa*-q!*=H5UP~b4$Y^b*HRK3~c=VSO( zFRQ^cazj0c^u>3@`-b~eU+f)n9h@qbtnv1EzeXs9%rSI~#@MC?j*3M$h(B#p)>Dq{O8w0%+%Y45Di-l+~z=Mo8t zLnl}T(UqTm3RbaLOHAoFQ42dc2a>X!A*(W}d~Tp%9Y~Hy3Bu<|{;+l?fu8%^o9ilst+sy|0t zr}P-q1r-MJ#gb5C>9o|d%d*l|T6Dxl(L%J>4&-xUin_*+eAD!F$rzKY>NIS+-^b9 zGC+1)Ba^&Rz}xab*b9?zBnrt+$H z4=1?Wf`^r|RJ^!rGMnu$>>bOLticJAq~CMJQZk1?7sfQEL??)0ZAXB|9m(QYS3Yei znUMxDD_I!FmMT`T!LcOd(v>Wh(8W3q4ags|3J0?J!$J_pXcx0_g3F8wI$Yo^M9I zp;D8j{DA`+PjC=Y9N^ogq{fnkI!fA_D2?gJ!&b7OvEg{4H=9qEbSTdfN>e(}4?B@6 z4Hc5PA}8|h41A0tZK^gZ3KftIZA`joTVP2bp3+_zf$oe2LsJ_%Y*YJl;>@DE)A8J) z{PmXFX2EB$adeYCK%{@@9@d3rM#AvXu~Z^EnjW4eYWGRwlj2Ho%<3@pF`Gw!>tGTh z)EMf~NE)*){5Bm(6sa0$me$RRdkb5q;`I9SV#A=7@LVz9r^JI6t%u83CDjl^vxkO=B*v0OL8uWVlnCr8#`d&Px>cH- z7{m$)aU4oRnG*Asg9q^%P#`wbqE{9I;*b0__ES@48F_V^hUUs%Xbh<85@@ zP8%OAP1)>dtVC}}qg5+theg2E3^KtLpmT!Z zIznaTP)VPY8jwy9ER;uJ#cG8soDb7kp?y;_x1$^2bTG&cju$!0+Oxf&yBKB^ufuU_ zzp`D%VmB;p$`TS&*dAmpS==z4M~@tud3b)4;!cVeFR|jQR|<04DFpUZiM0xUxkK8Q z>Vi>$-4dd0vV>~~XRkSUbphz)ILztJiDtPYbZ2S_+MlVV^d&PnCrqAd!DyJb{Crtc|d1rRyB<68r7{XaVCMqv?{A;#gzs(8bm6Y z9OhZz)z)+QOYd}#CIQucekDjBqY|j-iA_mlMj;fd62G%LMOJ8-%A85kreWGmSzM%6 z(%6P^Zzf%;68B(1oPm9-q~fFqZ@d!L3!h5RE<{}P3XvwZo>Cv$VI8R@bS0ro#Y*l$ ztgW+M$%!h3)}j*4{;UgNsay%ivB1=>k}StG-P!KZ8y6{fK^2O2sIWjnhd8@Wn88!1 zU3Q`{(8LB|gd)Y@M1kI!;8fOPO_-Wk8zCG$pYHlTfi`cpL~5aLf2pwc4X3ND_5oW94TqPtx9q#=41;+rc-xzByBrAP(&uP z=S`)Z;7KrCS4g+^qWaK2t57Xl%S+P2bR>@m#+4~H4Jb5+G1${IEN(R-USx0f=dx2( znvlF36%;$M@t8az9k^ z$&4ZTq%mv)XhbZVM#nRH@vg80(G9r zv0UY3qql^>`#>IJh}%P4$Rb8AeaR`gN;h^jD4;f&NLA-J>1c+b2bMGODHdPUYez2X3J%VyF^LqC1Ict6 zZo9(%8&+zg&O~pIvv%7!*eUiV3pt{aTlRXcwq{cHVuimK+jkR8SnHPSK}V`cRev5w zyQwzL<=gc(K9sK@m?~|2aB`$5U)7O)2JMSiw#Zqsbp!*33w*W*JqE+fF2%liYK#gj z`($uwutugI0M|!MuHfkK!-B9&#~G`4&7@lnU}s_gdMN?fJ4H3mI?4#*0CO7s)HS#ch4oSAt%8jywp7f}-7o4H7nqrTRZZ7VXEE-jQrqe~N1jLMS zktCGrda9D3;zJ4r{)SZ$40rczj67C6FNxDC#-T3eN2V32+VK$;Mq~v~9I`z}NrL4S z?!-Bbu?KS{$Zo3ySh18{q1g9qY)MFY*th3iQZ(-q_aCu^S_!kCssZ84PMIm%NKTiODfUljCj$Q4h?P}|tX$yDrVtWEg$RMt znhqr4L|2U(U25DS(7v_oxK(A0TS}O&xO*#CF&KhrpP6x7^4MN8gWP!RAK{*KvHt+q zYO!qgtU}YEVG;tAdoY4Y+1v7Ya2Cf6UC~Mrkv&Jk)Qi2V2|629jH1x{GDZ4X98e@d zB^>mCO&Tj^6>belYWRTTQlcPKTi&^m0L+e!>Gc*?Q<-sYk8nq)vRhX*096v3FOsg3 zs?wi9gADbZ8)y4Z7l`3T@#PEE z+d5$12vg!lk^^)ftH8#3O~|nijybJ~Ldj?eZjK?7be={jCFvg>q)4&0*MVL6(%|I8 zM81F(QO}VSrY5^aMD%jYze9b{M7D7^b?6gTrjsq%X?msMrA;9gfTHD@sNO+9)Ou2h|>u-WtL@Sas_i65Vh6 zrj1RSc`F_Bm3@~NQ=^^6RysQ*39#8?2gSs5Jo84pN)+`quKN=?4+&j6-ViWu?a|+| zZ*42RNOMB@(iqB!bE4LF6A(DhDyb4Ld!|~m99qJ5bcIuWh{2vzv6rF}&{@4Lc2<-# z5!R%pYW48QLJh5YY@vn-BgVr&JPx3S^1~Cb8j3opTh4k%XqvFmz|qRE_WLVg)>H{l ziwjQ58XF-+V)Vf~6_x6O)dEUuX`{@Ey?KXfquQ5~IY{pEvVOX>P9R=q(j3g&Y`E6tCPWHz#o{Air~iI2-0Gu;_fE`7tX1mjFa)#2KXVoi==YizqrjQN5+F9N|vhxk&?&Zh0@Rf6OrMFr>Dtfx?rys$Ui53AgLBW}-- zsK=hrDknYKoik|IYujAwV>ol%R-6fe%3wm##h#<6nj&T-mXmg>Jw+dg&C+MRDo4HS zpo}?;E$u5gcd3wr?HirU#AHWCA88OZnatRlYSZfO;n+0HKGqm~g#08FH=oN_L(-|J zPHw)$yNgm})%R7gk)pjdic>a4XLGfv>|0lkFuOCjLyfa6xSJ&<$eqQa(uV@9^fnnD z5(5i?)uj%zNwr~pf7OnhaAZ)Ed8As7wwm@m{-U~G-}^5*3^}fjv(1Vz!235vXMMnX z&T05K7_L}Lu#H6shnU_B#TuXfZc*l+evA|6ENYG^36CZw(X5N4h0x$#?6dM1^P@}kTTHd@02?~S2j?E7rO2$#TItbo_r zI~ux=#H}l;ZE)?;S{fp08~M)w&5jjS0l&>#*CrCBu}l#b9+szw`MH1Fwn0m~PPx(8 z5k$>sw5>%*&a;g()}}?p1EUr4o=mYOgejH_H+D!etxtE>?ef%23A%;wuyu2)hYal6 zxj9lp97jsn;Tj4=RkV7XJ?@I?&{((cwnlMxqR?|hcKTr%E73J}1O5ZQ!90kgP9?ok z)%p^{u78eBr$e+SZ*CuGcTBTf*$j}u&HL5P-GIK#gib=21H#bv>vvdLNWG|b;%IGZ zN_!JLvRYK{xVo!b3@0=NYLK>ZSeb!jv8LyozRit}ejMdQPGe zS0Ex|O0;jyYAnz)Rib@F`dq{{Gl;xdQBTqXt)9jed_6^kT2G=J>M5{d6@oo~@3O$S zZaGG}9vhsYZB>vxT%|{fGr!bWfr{6Fc^!5GTFwr(6{G*a0TNJHJ;B-IvEviCZ^3jj z3^@k5`bkuVpUAfwLcDB1%Ft9<>wv957H>96TJA1dY3!Uhgt02Bdyvyg9D7QV0<#Fa zv5r>fN7(5qcQkc}OI|GUxksMC=`Y;9g(Xz+825)E37lI{1%0XXzO5qY1qy{1s0{93 z$*ECn*Xyg^t{mbiF{G&9-%;?yC*nDr7ov&PrqeOFxUqaFgDoV9f!kiOP?%2+PC^^2 z1oTlgz|p|rTu*^jVGZZ-^6aC*wOxN6htWPf^HvM7>(ZlgYx^7Ib{tJ=-5Vr(>zq;s zzh*%*xP6lnYB{b=x_RsBgmadgd$MBrvC!h_GL3V0S!2$D4jr<+1wFmmr0N|8P2jMp zO@N!AxGg8Hl}^x~b6m7KqK?#q1y(@^D{EsNWV-WjgYf0C$v0 zbnHsaR;*Nxa|BroCCs!Etehv74Al_(l-pB0dcw4^LwKBoHiZJvj{ym0agrB|IVKp1 zPJw;JP&)`v_rwitsrFR41eZ9GrG&%^Y78TOQe%2$fIANQ&^C5z3dmUPDy&MeQ^Dis zy!7E_5x0|Oy0GocAXZoqa#}&Ow}2hW3Z-A4qgL3>6PoS6vj|yX330~V9-&pe4Y;`l zoMwe_D@Y6`B-svR8L*T>b9zkzWNDW^rpn4{MA^+7a{FuPb#k($QFiiddb zL~cy(${)5pbr!`CYtZMtrKfGwX3P%hQ-qTAh@?6qI1T|wh*yz--XpiE_8vJxtYX}z z^6DHllQWu_r>!F@BM=Tba3;sz1|GJ^<3=!V&%pyfq6Q|5V>ZeZINgGN(5Fai$Y&i< z7Y@&+^6VkKAdGrDH|N5$hzV>`kL4W>@_2MectKy;*tjOtZq`wDc+Wzf*!%?VR|pzh`^`Q5YcTQQ7uT&ZeUMtVxy5?ZlZxbgnFG?X8DOVid@p z#A2dC(mQiAsZIei=_sHd$H5#&u~G^wWwBbOzP(+EbXb=g{}rlJMTOub6VJRtb&}On zYc^3G0paY?S((Jyu23E3D})IrFTbVK*sJm?hj+b3m6{s`mKXd0u9FC*K~3Y$2q~4s z`(}3nP9cO(e_d3>H7hYCP)7uhBS$Z=j2cyAC`TOM*v^6HsQ|!kqUels+I9sUqfKn|9$luZHT{b5iS88ExOh3ve zCmFPVYDOI1V2yU*C>9{b{*nYV15b@1yca*pj2ceKGF1r@VVVI@^6EXHra;R8&q13w zq6!Ed5l-KU5*XshR(;d}wjymylRd%F%8?Vr&uK-kl&ozVORJaiWk`#@@hrm|8;q;p zYMI+m3j2Xp<~$|7W&Zlm4suJ|b>7m3-zsPIa-=4`L8*gpwN$2~zGQ^cH!O3DGumit zICAQHI5xh3Yx>x+dvxxMyfN4C!wFTpVSnm#zEwuCR-vA zJ^C1?Eo@h6`j%?dNhCSD;t{ADl}ry^P68~R3dv&ro!D4XYxuUo zYS8v!Fp$=bp)rK;J75%s5$=)6d?(^!oI)Ep?J=|)Z)u`{C;)YN9IZGce6ve+YdP?u zHg!_Oq)ibONavHGvZ)8dF@^XEp=+Z^bAUTwl@8G163iHto5K{f&b}US3Z|55nN}Qn zYFwL0Z7gVV9ivKTf&-j9(L6;FX4g>_ilES3&b@*4yL?>StLrzC| zXfEj7R1HqlRuOVbsW?4e<%(`f)qHEZ=DiKFE>=`bHIf5L2Bz|KhIIiS#f*8V;Vd|E9N`=_Mokf z>kN0VMH{o;vs=?z-SJqag8R*WIxm;;9gruT^5uBpSqH{tFJ4u2BVJ_`MYwZD zc=e3%no1bo4Qs5Hq&&>8@M~JUEC>hq6CW-yQ^n~Y7M$x$Ku=wE@=BXg6bVgJ?CgUPivQ^o0#mv_@%}EzgEMW zEX@+IKiXFIh_%%tDPi}ZYSPl{6)jWSx7${<8&}SKtKLMbSHV}HZKpH}kP7it(85W` zwOyoCKO#7CorSP!t#U>SUVwfKpiVB?xrpdRsigNIoJ09Facxz5JAj(#UQ@$rQp|Pc zzERN0oor0t1L=5$f{Y&Rk*NSZG;*cpI(iX98}w`i4MDs;uf$mA%s!`G){6)yH=Rx= zKm9+Qn;wE{q;FJ0+vwj^XCp3MaOMSHETa#E#aN~~uQ)QO`kUmJeh#&ba?uu%!T!jt(HN{K%Ur&EFD?b+oFbVIWSmW-%{uRzNj^e@;_YB8r9W}^fT>^({t>7 zZI9^#Q_E9;dV7OhTp|C|rmhOrneWeELOMLlpzf<&++sb3xpqwUd(G|p~s9k*+!BlQ|z?Mse~YHPNkZuXj* zKK90nMdrCT#V*%bXiBPkVD(D2>`e#k*(_j9yWOF3u(5RQ3{qs(&d|#lazbaC*ZR(e z_-56L11i6vs<_&PVQZ)+j=QWENK~0xHBxQWd|Y5TD$5-^&7Zny7kH~Gg|h?0fveZ= zRF0_BMgu^cs#ndSci$*WJ!Bk*-r2X}fMRF1BTo$cvJBEVJ)otHDNt+&F+6jDSHI)M z*OK+9J#Yf?iZtwCII?y)m_W(SB&nxYHArrq#RDa+rxjw{ePJuAN<1^S=8R^hx?BOr zHx8j5XO*p&NtBkeD0QSjvk}GM!6OgyJKM0(VCjC;CP(Xvp5)0t^_d2ywtm$Xhr3Lp zRKP#(30GUF&5>F;vz#|fotVjm)_{6BR%@dy8Pdx_y|>A>JK92Sojs-^`!_tZS5*H@ zN)%?2LwF2j6H+SG(a8F;QUjMcY%j+#dlmO)>Abd4_c`@cbzP4JXVOqj4qN`&Ek$pm9Oe#LyolB0(hQYIl3;Ie;Y^rNMRfV}_8HJ>!f`;=0b6+bgW& z?6Iv|e0IHUSW=yP@v54bhq}cQ)qI9%X&jfHF_@xfb8*Y|Rd~YC+F0 zJ9|q&JAitxR_g)MtveS#w8R`|wYAqeVyY#E*xKy|r)-74m-emei~O*C*M~M=eK56k z%PHlG;;V;I!|;0m!gGC5w-NID{Un9FQPT)dnO@+L=~s}_^v;b;|H4@0j^ZW02ru%_ zjg(uA@bt?bBn_bq6`8(`d4r6x5Ocf%$fSuR;pL=Fxq^PvCy|l;ytWvXYnnW?hM4RT zBT|0cPF4Z|wMM2-g3!lnAgY8kTS<+tf!yT z+9s3C;`QH(@^ zl7=kLR^DbqwO**)4Mt?2527Fg9tE)_oA5yZf7ogbTahh(KgH|8UjSE-%g=~#5gEV> zrX%C{@AoJbDL*Q;j)x%V$S{~gVzbF-I?RLrR$qh7<8(PPeM@8x1dsm^co09Yf|$x7 zw--?ak9ax^d^wc-%?T(|rwsu!BjwlepWPP>n%HED=>PV0mM6mzD<*+V0>b3JkRk++V$0vG=&XWJ9BGXSsq5)_J z>%UOhY&_u8l|MiQyhgg`lyu~ii+s(I>4$6o`%$6&$0SGlDA;QtOr*LC!(%qaA?d>b z(D#wPsDUEZsNWVvlxfNV4iFY*dePg+l=SJ|2=THGCJC2L4r#<$qExSkW+6}H=y>Gl z!N}1`KtGhfELu%vevX|m2~d8V3U+}{(O!iu+NFcqE_r+y{eDOj5PEv_#>n(*V$e_z z`fHf^ZeTtOIT={w^_h`$q}1qhNi$yulzw=5fzJ>7gbv~Va@hXwXuOFI0PBc@QrL;6 z?`O_(7&YtEOi&KnL+*YwCR}c<5X!AkEYr`HA05}@5(sEPXdebCyBoc4n+HWz=J`| zag-RYO+I&PqF z#|9pE=*NYA+@?coboz3bbU>dOx=@)H;*IZ6=|$*X)F09{U~ost4NRBM4EWJ0mC1qz$$S0 zPegS5guvs?s7F#9hxWmo9~afvX(i#&Gt%Ll5m0VY#*t{`^y#2-Rr694FmN#fQ2%B$ zynG`W&?Xr;JQAPb(elLv>yk-$wkaC^YGbqE;zWf>$Rz*M+DyNO8X`wuM=*T!7bXkd zp(hNO22L1M`Q@k;PC|G&fz{;mv_`u9k?z*Wm60pGFr4GPW}iD!E~DSz((K2-0XF3pGqOL_(rjXiKNf%;rlUiM2(WE<8W<0yf%`+R zN%A%{8;lf}3k45Izff^dJOb5S%1~7fF}vOZeC&z7BYQ&|XUETIfWioY73doIwp@;qv`bN=z8m zamQ97fCx#5c;;f`kJ3t^vjyHF@M&Al`^?!QxH=I-O-u}Aj0`hKk8py*`7W-|DHEL+ zDfyATN31?I^w<^-1~_o~@~klSoG|9`KrYvW0_f%~krFbl^fk9ercdGbBz`9`2Z*tH z0n<4LOQd`ThWUYT`2`Mmns#(ikG{lN?lc@R42^4a8=KH~@XsOBEizPKBRC9Dq=URb z!ziOMD8hLL-lnO&%|_)F>&MOwMm;D9PUy4YV|{1_BzFegY7j*tKfF$pW?u}UOd%Xf z1Hr*8)GiXbe3M2@0BC0bKosZe!VHx?v@^zt3(J#lnl1AQ_)z$J#EYUW&hvmQFr zCm~csqrN*DeO}CVk!!H-2+jAoDiu}uK$-Mp?i z5ZMx<3i%_8f<6zXnbTNf__0pFP>Nx_U|%45KUji9J|GSGzW?H_+81wgul3`T zF#7{aU3~7P{LK5%%irpXcQqH7zuqpc8y_80(7va(0o;2f0D=aANx;vwxJh(FS>PiR z_z2Jh3nfWe;PXBo;u&$8l|iG7LS2}aN&mC0xsEr^uw1epFR z3falDPXXD-I-enU7NIN?JqP3(%>`XeN<|D3^F9xrLLM)y$;~#Oz*yFcrgstY;TK-Y zgpV;=Pc97pnG@W{rAhe|ddoz|=xGJrfw_QofY3zcn0-Udp=K_;KqQ1SELLdxA@~v) z{0}dJcYy07TsHyJD>5blO?ee{u63EsL_sl0K^K5R6qFz-L7@-@1C zx#fvsIuJh)7Y3$3?UkOFOSpWUbZa?@z5^XIIGuft4M6F5xK>yj?*Iu(YOlp)1?z`- zcSUw;y^QQftoBo=n{dM6UC|FhIkG*&DSw^{M20HrrA;r!7>p2nJDJ?3Z_yLkE$~1D zD`((_!2d(9l7|0~3d%YW*$0l``_gM6!!I;KTO-3#={{*;`8M`3JTXXuKAeQo5=uwX zNR9<0hF7Hgq#F!mXQ43@7{qDakP_4qjse0lqS6=)2u?Jc8c9d6d7vWc5M0=rOr&i= zMFtEdAZK8*wFQW5hsnm6^uisw7wpT;@KMo|Aq-g9KkS}x(!L`^XN#Sx)s}t;^qezQ zQxxv$N-h&39KMZF7h=(7#A#8ij6^Y~t*pqNF(QwB4cv{>Ga}4?WQz-* zB*u@rYXzEC)abpd{>c z0o^B2FCdZW1~E%onqZ4WoFIBlV7cZ1o)v;NyaRa_`3-zxlYbW)IDIu_&f`lP@q+Ej z3zP6s2YhkHKswHMN<|Gd3(u&?)6({be@JE|CqJCrG1P+gT|GmU7uc@YqhCO~<um4fKcyP*-B1ZAHONmt z4w`|=i#QONRSD?F{fwcI4Z5=l-gfT4kuW&&eVF)+GK%S(>w$ehTwj z&6qvEL350xyiWK(1M4&F!3Cl}!KS)*LOk>I&MojOlzQSy9LHn-$k$wfx#c~mYObMz z!|_#kz*fKMZV3|LVF5#p)xMXe?qSmv(b}l$2VGV~9WO+@h4zjWQTu&~TXNPUUUQjU z5gnMsdjL~-U~~xIEXr-k@eQ%$>z7!sgUtxr0D??A2lybq{WtcR!H+4UZ-73~t@u5* z&rpwD&b0cE*lhfk;kON6!QHmG8pjmaV5s}sJ=i@s|Bo+!_g`P-kN^IYhaXw@^~CQo z$0|On5$#{v(D%*ux zm9t7~H_lAaK9L?#gF9lY*R5AJBU9}*BW&zr$Bz_l|Dz9n?Bk!k`EPl!gxehd|L;Gs z1Psx!3$O`Q&!pC9_|9k1nQjMu@7QmspKH&bB;acS_ozWUj)ubPMzy}ZP?K-Afs@#A)>!#1O z=p&x`EFa_Xjd}OA;1x3!&cE>V8&6c7UD8HL(}9EW`rlfdaDfcem5`DlXWV#Lmvu~` zMfM?K#J}<8A?3yVPJKKc%1437NA)2oa`|TEbYMwVEr*Xu=!dGfb;-X@oMP*!{8;ZC zq^G3x**%`r%GPlH#`U%1>Tb2(#~qVTJHLcARmF?*~VW-?j4vp4EtQGlYgevsxnjf+BW6u90ngp@9PH` N&Yy?!{(tN5e*@Ll(9{3` literal 82432 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 T;}qmZKY;O4`8dum=kI?5sxQyZ diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index d1c4139..503d33d 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,7 +6,7 @@ { "MAJOR":0, "MINOR":2, - "PATCH":5, + "PATCH":6, "BUILD":0 }, "KSP_VERSION": diff --git a/README.md b/README.md index 5e6663a..febd796 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.5 +# Conformal Decals v0.2.6 [![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/MaterialProperties/MaterialTextureProperty.cs b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs index cfd018b..9f578c4 100644 --- a/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs +++ b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs @@ -41,7 +41,14 @@ namespace ConformalDecals.MaterialProperties { public Vector2 Dimensions => new Vector2(_texture.width, _texture.height); public Vector2 MaskedDimensions => _hasTile ? _tileRect.size : Dimensions; - public float AspectRatio => MaskedHeight / (float) MaskedWidth; + public float AspectRatio { + get { + if (_texture == null) return 1; + if (_textureUrl?.Contains("Squad/Flags") == true) return 0.625f; + if (_hasTile) return MaskedHeight / (float) MaskedWidth; + return _texture.height / _texture.width; + } + } public override void ParseNode(ConfigNode node) { base.ParseNode(node); diff --git a/Source/ConformalDecals/Properties/AssemblyInfo.cs b/Source/ConformalDecals/Properties/AssemblyInfo.cs index 0d9584a..f2a1459 100644 --- a/Source/ConformalDecals/Properties/AssemblyInfo.cs +++ b/Source/ConformalDecals/Properties/AssemblyInfo.cs @@ -1,5 +1 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: KSPAssembly("ConformalDecals", 0, 1, 0)] +[assembly: KSPAssembly("ConformalDecals", 0, 2, 6)] \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index 9e062d3..dbaba71 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,9 @@ +v0.2.6 +------ +- Fixes: + - Fixed stock flags appearing stretched by forcing their aspect ratio to be correct. + - Another attempted fix for the planet text glitch. + v0.2.5 ------ - Fixes: From dda988db17b754d77d111b2ef255f451baed90b2 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 29 Nov 2020 16:31:41 -0800 Subject: [PATCH 32/32] Quick bugfix --- .../Plugins/ConformalDecals.dll | Bin 82432 -> 82432 bytes .../Versioning/ConformalDecals.version | 2 +- .../MaterialTextureProperty.cs | 3 +-- .../ConformalDecals/ModuleConformalDecal.cs | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index d5b67899afec1638443de3402576f5733c746290..f519f6acf5a1ee2f3390261e5efcc6fc08f67a2a 100644 GIT binary patch delta 5858 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 delta 5857 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 diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 503d33d..4dfbdd5 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -7,7 +7,7 @@ "MAJOR":0, "MINOR":2, "PATCH":6, - "BUILD":0 + "BUILD":1 }, "KSP_VERSION": { diff --git a/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs index 9f578c4..9a096aa 100644 --- a/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs +++ b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs @@ -45,8 +45,7 @@ namespace ConformalDecals.MaterialProperties { get { if (_texture == null) return 1; if (_textureUrl?.Contains("Squad/Flags") == true) return 0.625f; - if (_hasTile) return MaskedHeight / (float) MaskedWidth; - return _texture.height / _texture.width; + return MaskedHeight / (float) MaskedWidth; } } diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 8181a87..64bc2a8 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -400,7 +400,7 @@ namespace ConformalDecals { protected void UpdateScale() { scale = Mathf.Max(0.01f, scale); depth = Mathf.Max(0.01f, depth); - var aspectRatio = materialProperties.AspectRatio; + var aspectRatio = Mathf.Max(0.01f, materialProperties.AspectRatio); Vector2 size; switch (scaleMode) {