From 7006e233e5714ac452491d3f1aafd9c8b22a90b3 Mon Sep 17 00:00:00 2001 From: Eric Heine <erheine@nps.edu> Date: Mon, 12 Aug 2019 11:08:10 -0700 Subject: [PATCH] Made the variable labels able to have their output strings formatted as desired. --- .../BooleanVariableLabel.cs | 6 +++--- .../FloatVariableLabel.cs | 6 +++--- .../Scriptable Variables/IntVariableLabel.cs | 6 +++--- .../ReferenceBooleanVariableLabel.cs | 6 +++--- .../ReferenceFloatVariableLabel.cs | 6 +++--- .../ReferenceIntVariableLabel.cs | 6 +++--- .../ReferenceStringVariableLabel.cs | 6 +++--- .../ScriptableVariableLabel.cs | 20 ++++++++++++++++--- .../StringVariableLabel.cs | 8 +++++--- package.json | 2 +- 10 files changed, 44 insertions(+), 28 deletions(-) diff --git a/Sane Eric's UI/Scriptable Variables/BooleanVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/BooleanVariableLabel.cs index a40064a..a70afcf 100644 --- a/Sane Eric's UI/Scriptable Variables/BooleanVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/BooleanVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a BooleanVariable // Depends on ScriptableVariable package - public class BooleanVariableLabel : ScriptableVariableLabel { + public class BooleanVariableLabel : ScriptableVariableLabel<bool> { [Tooltip("The variable whose value we are displaying")] public BooleanVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override bool GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/FloatVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/FloatVariableLabel.cs index a6c8d99..dad2d7c 100644 --- a/Sane Eric's UI/Scriptable Variables/FloatVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/FloatVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a FloatVariable // Depends on ScriptableVariable package - public class FloatVariableLabel : ScriptableVariableLabel { + public class FloatVariableLabel : ScriptableVariableLabel<float> { [Tooltip("The variable whose value we are displaying")] public FloatVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override float GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/IntVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/IntVariableLabel.cs index ba7e80a..a5d1e91 100644 --- a/Sane Eric's UI/Scriptable Variables/IntVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/IntVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for an IntVariable // Depends on ScriptableVariable package - public class IntVariableLabel : ScriptableVariableLabel { + public class IntVariableLabel : ScriptableVariableLabel<int> { [Tooltip("The variable whose value we are displaying")] public IntVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override int GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/ReferenceBooleanVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/ReferenceBooleanVariableLabel.cs index a516a7a..f9a6aef 100644 --- a/Sane Eric's UI/Scriptable Variables/ReferenceBooleanVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/ReferenceBooleanVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a ReferenceBooleanVariable // Depends on ScriptableVariable package - public class ReferenceBooleanVariableLabel : ScriptableVariableLabel { + public class ReferenceBooleanVariableLabel : ScriptableVariableLabel<bool> { [Tooltip("The variable whose value we are displaying")] public ReferenceBooleanVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override bool GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/ReferenceFloatVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/ReferenceFloatVariableLabel.cs index 267b991..14c200a 100644 --- a/Sane Eric's UI/Scriptable Variables/ReferenceFloatVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/ReferenceFloatVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a ReferenceFloatVariable // Depends on ScriptableVariable package - public class ReferenceFloatVariableLabel : ScriptableVariableLabel { + public class ReferenceFloatVariableLabel : ScriptableVariableLabel<float> { [Tooltip("The variable whose value we are displaying")] public ReferenceFloatVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override float GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/ReferenceIntVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/ReferenceIntVariableLabel.cs index 8286fbd..61baf5d 100644 --- a/Sane Eric's UI/Scriptable Variables/ReferenceIntVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/ReferenceIntVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a ReferenceIntVariable // Depends on ScriptableVariable package - public class ReferenceIntVariableLabel : ScriptableVariableLabel { + public class ReferenceIntVariableLabel : ScriptableVariableLabel<int> { [Tooltip("The variable whose value we are displaying")] public ReferenceIntVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override int GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/ReferenceStringVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/ReferenceStringVariableLabel.cs index bfff1e8..fa52bcc 100644 --- a/Sane Eric's UI/Scriptable Variables/ReferenceStringVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/ReferenceStringVariableLabel.cs @@ -4,7 +4,7 @@ using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a ReferenceStringVariable // Depends on ScriptableVariable package - public class ReferenceStringVariableLabel : ScriptableVariableLabel { + public class ReferenceStringVariableLabel : ScriptableVariableLabel<string> { [Tooltip("The variable whose value we are displaying")] public ReferenceStringVariable value; @@ -14,8 +14,8 @@ namespace Shared.SEUI { } //--------------------------------------------------------------------------- - protected override string GetValueString() { - return value.Value.ToString(); + protected override string GetValue() { + return value.Value; } } } diff --git a/Sane Eric's UI/Scriptable Variables/ScriptableVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/ScriptableVariableLabel.cs index d480a0f..0369a46 100644 --- a/Sane Eric's UI/Scriptable Variables/ScriptableVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/ScriptableVariableLabel.cs @@ -1,15 +1,19 @@ -using UnityEngine; +using System; +using UnityEngine; using UnityEngine.UI; namespace Shared.SEUI { // Base class for read only UI for a ScriptableVariable - public abstract class ScriptableVariableLabel : MonoBehaviour { + public abstract class ScriptableVariableLabel<T> : MonoBehaviour { [Tooltip("The optional Text where we are putting the variable's name")] public Text nameLabel; [Tooltip("The optional Text where we are putting the variable's value")] public Text valueLabel; + [Tooltip("The C# String.Format() string for displaying the value")] + public string format; + //--------------------------------------------------------------------------- void Start() { if (nameLabel != null) { @@ -37,6 +41,16 @@ namespace Shared.SEUI { //--------------------------------------------------------------------------- // Implement with how to get the ScriptableVariable's value - protected abstract string GetValueString(); + protected abstract T GetValue(); + + //--------------------------------------------------------------------------- + // Format the current value into a string + private string GetValueString() { + var value = GetValue(); + if (String.IsNullOrEmpty(format)) { + return value.ToString(); + } + return String.Format(format, value); + } } } diff --git a/Sane Eric's UI/Scriptable Variables/StringVariableLabel.cs b/Sane Eric's UI/Scriptable Variables/StringVariableLabel.cs index ae12922..39e3e4b 100644 --- a/Sane Eric's UI/Scriptable Variables/StringVariableLabel.cs +++ b/Sane Eric's UI/Scriptable Variables/StringVariableLabel.cs @@ -1,10 +1,11 @@ -using UnityEngine; +using System; +using UnityEngine; using Shared.ScriptableVariables; namespace Shared.SEUI { // Read only UI for a StringVariable // Depends on ScriptableVariable package - public class StringVariableLabel : ScriptableVariableLabel { + public class StringVariableLabel : ScriptableVariableLabel<string> { [Tooltip("The variable whose value we are displaying")] public StringVariable value; @@ -13,8 +14,9 @@ namespace Shared.SEUI { return value.name; } + //--------------------------------------------------------------------------- - protected override string GetValueString() { + protected override string GetValue() { return value.Value; } } diff --git a/package.json b/package.json index b9f68dd..b6ab928 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "com.futuretech.shared", "displayName": "FutureTech Shared", "description": "Contains shared items such as the Scriptable Variables.", - "version": "0.1.15", + "version": "0.1.16", "unity": "2018.3", "license": "MIT", "repository": { -- GitLab