From c9853049c50fe225d5cd119068bb2ac1a62c4b11 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Mon, 16 Nov 2020 14:01:10 -0800 Subject: [PATCH 1/6] 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 2/6] 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 3/6] 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 4/6] 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 5/6] 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 6/6] 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.