From 8b7ed002fd5b4c62ced83c1b0dbef2466e6d04ce Mon Sep 17 00:00:00 2001 From: Falki-git <72734856+Falki-git@users.noreply.github.com> Date: Mon, 5 Jun 2023 01:08:35 +0200 Subject: [PATCH 01/88] Initial commit - Create BaseEntryControl (Unity Editor control) - Create first draft of PoppedOutWindow as a POC --- .../MicroEngineer/Entries/BaseEntry.cs | 17 +- .../MicroEngineer/Managers/UI.cs | 14 +- .../MicroEngineer/Managers/UIController.cs | 146 ++++++++ .../MicroEngineer/MicroEngineerMod.cs | 3 +- .../MicroEngineer/UI/BaseEntryControl.cs | 345 ++++++++++++++++++ .../MicroEngineer/Utilities/Styles.cs | 25 ++ .../Other/settings-normal-30.png | Bin 0 -> 527 bytes .../Other/settings-normal-30.psd | Bin 0 -> 24492 bytes .../{settings-30.psd => settings-wide-30.psd} | Bin .../assets/bundles/microengineer.bundle | Bin 0 -> 7163 bytes UnityProject/Controls.meta | 8 + UnityProject/Controls/BaseEntryControl.cs | 345 ++++++++++++++++++ .../Controls/BaseEntryControl.cs.meta | 11 + .../MicroEngineer UITK 2023-06-04.png | Bin 0 -> 66792 bytes UnityProject/MicroEngineer.uss | 142 +++++++ UnityProject/MicroEngineer.uss.meta | 11 + UnityProject/PoppedOutWindow.uxml | 17 + UnityProject/PoppedOutWindow.uxml.meta | 10 + 18 files changed, 1090 insertions(+), 4 deletions(-) create mode 100644 MicroEngineerProject/MicroEngineer/Managers/UIController.cs create mode 100644 MicroEngineerProject/MicroEngineer/UI/BaseEntryControl.cs create mode 100644 MicroEngineerProject/Other/settings-normal-30.png create mode 100644 MicroEngineerProject/Other/settings-normal-30.psd rename MicroEngineerProject/Other/{settings-30.psd => settings-wide-30.psd} (100%) create mode 100644 Staging/BepInEx/plugins/micro_engineer/assets/bundles/microengineer.bundle create mode 100644 UnityProject/Controls.meta create mode 100644 UnityProject/Controls/BaseEntryControl.cs create mode 100644 UnityProject/Controls/BaseEntryControl.cs.meta create mode 100644 UnityProject/MicroEngineer UITK 2023-06-04.png create mode 100644 UnityProject/MicroEngineer.uss create mode 100644 UnityProject/MicroEngineer.uss.meta create mode 100644 UnityProject/PoppedOutWindow.uxml create mode 100644 UnityProject/PoppedOutWindow.uxml.meta diff --git a/MicroEngineerProject/MicroEngineer/Entries/BaseEntry.cs b/MicroEngineerProject/MicroEngineer/Entries/BaseEntry.cs index 2ebc799..8cd8b60 100644 --- a/MicroEngineerProject/MicroEngineer/Entries/BaseEntry.cs +++ b/MicroEngineerProject/MicroEngineer/Entries/BaseEntry.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using UnityEngine; namespace MicroMod { @@ -38,7 +39,21 @@ public string Formatting set => _formatting = value; } - public virtual object EntryValue { get; set; } + private object entryValue; + public virtual object EntryValue + { + get => entryValue; + + set + { + if (entryValue != value) + OnEntryValueChanged?.Invoke(ValueDisplay); + entryValue = value; + } + } + + public delegate void EntryValueChanged(string value); + public event EntryValueChanged OnEntryValueChanged; /// /// Controls how the value should be displayed. Should be overriden in a inheritet class for a concrete implementation. diff --git a/MicroEngineerProject/MicroEngineer/Managers/UI.cs b/MicroEngineerProject/MicroEngineer/Managers/UI.cs index f5dc88c..9facfa6 100644 --- a/MicroEngineerProject/MicroEngineer/Managers/UI.cs +++ b/MicroEngineerProject/MicroEngineer/Managers/UI.cs @@ -168,7 +168,19 @@ private void DrawSettingsFlightWindow(int id) { _showEditWindow = !_showEditWindow; Manager.Instance.PupulateTextFieldNames(GetEditableWindows()[_selectedWindowId].Entries); - } + } + + // TEMP for UITK rewrite + GUILayout.BeginHorizontal(); + if (GUILayout.Button("uitk", Styles.NormalBtnStyle)) + { + if (UitkControllerTest.Instance.IsInitialized) + UitkControllerTest.Instance.Toggle(); + else + UitkControllerTest.Instance.Initialize(); + } + GUILayout.EndHorizontal(); + // END OF TEMP GUILayout.Space(10); GUILayout.Label("Layout control"); diff --git a/MicroEngineerProject/MicroEngineer/Managers/UIController.cs b/MicroEngineerProject/MicroEngineer/Managers/UIController.cs new file mode 100644 index 0000000..526c75b --- /dev/null +++ b/MicroEngineerProject/MicroEngineer/Managers/UIController.cs @@ -0,0 +1,146 @@ +using System.ComponentModel; +using UitkForKsp2.API; +using UnityEngine; +using UnityEngine.UIElements; +using UnityEditor; +using UnityEditor.Experimental; +using UnityEditor.UIElements; + +namespace MicroMod +{ + public class UitkControllerTest + { + private static UitkControllerTest _instance; + private UIDocument _window; + + public bool IsInitialized; + public bool ShowWindow; + + public Label EntryValue; + + private UitkControllerTest() + { } + + public static UitkControllerTest Instance + { + get + { + if (_instance == null) + _instance = new UitkControllerTest(); + + return _instance; + } + } + + public void Initialize() + { + _window = Window.CreateFromUxml(Styles.uxml, null, null, true); + IsInitialized = true; + ShowWindow = true; + + //var x = Styles.uxml.visualElementAssets.FirstOrDefault(); + var root = _window.rootVisualElement; + + root.transform.position = new Vector3(1000, 200, 0); + + //EntryValue = root.Q("sample-_name"); + + EntryWindow surfaceWindow = Manager.Instance.Windows.Find(w => w is EntryWindow && ((EntryWindow)w).Name == "Surface") as EntryWindow; + //((AltitudeAgl)surfaceWindow.Entries[0])._name = EntryValue; + + var body = root.Q("body"); + + /* SUCCESSFUL TEST + var entry = ((AltitudeAgl)surfaceWindow.Entries[0]); + var entryControl = new BaseEntryControl(); + entryControl.Name = entry.Name; + entry.OnEntryValueChanged += entryControl.HandleValueDisplayChanged; + entryControl.Unit = entry.UnitDisplay; + body.Add(entryControl); + */ + + + while (body.childCount > 0) + body.RemoveAt(0); + + + /* + foreach (var child in body.Children()) + { + child.RemoveFromHierarchy(); + } + */ + + + foreach (var entry in surfaceWindow.Entries) + { + var control = new BaseEntryControl(entry.Name, entry.ValueDisplay, entry.UnitDisplay); + entry.OnEntryValueChanged += control.HandleValueDisplayChanged; + body.Add(control); + } + + + + + + + + /* + var entryName = root.Q("entry-name"); + EntryValue = root.Q("entry-_value"); + var entryUnit = root.Q("entry-_unit"); + + entryName.text = entry.Name; + EntryValue.text = entry.ValueDisplay; + entryUnit.text = entry.UnitDisplay; + */ + + + + //EntryValue.text = surfaceWindow.Entries[0].ValueDisplay; + + var firstVisualElement = root[0]; + /* + var newLabel = new Name() { name = "new _name", text = "text for new _name" }; + newLabel.visible = true; + newLabel.enabledSelf = true; + firstVisualElement.Add(newLabel); + */ + } + + // Listener method to handle the updated _value + private void HandleValueDisplayChanged(string value) + { + // Use the updated _value to bind it to the control or perform other actions + EntryValue.text = value; + //Manager._logger.LogInfo("BaseEntry HandleValueDisplayChanged triggered"); + } + + + + public void Toggle() + { + if (ShowWindow) + { + _window.rootVisualElement.style.display = DisplayStyle.None; + } + else + { + _window.rootVisualElement.style.display = DisplayStyle.Flex; + } + ShowWindow = !ShowWindow; + + //_window.enabled = !_window.enabled; + } + } + + public class Test + { + public void HandleValueDisplayChanged(string value) + { + // Use the updated _value to bind it to the control or perform other actions + //EntryValue.text = _value; + //Manager._logger.LogInfo("HandleValueDisplayChanged triggered"); + } + } +} diff --git a/MicroEngineerProject/MicroEngineer/MicroEngineerMod.cs b/MicroEngineerProject/MicroEngineer/MicroEngineerMod.cs index 92c080f..8726196 100644 --- a/MicroEngineerProject/MicroEngineer/MicroEngineerMod.cs +++ b/MicroEngineerProject/MicroEngineer/MicroEngineerMod.cs @@ -8,7 +8,6 @@ namespace MicroMod { - //[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)] [BepInPlugin("com.micrologist.microengineer", "MicroEngineer", "1.1.0")] [BepInDependency(SpaceWarpPlugin.ModGuid, SpaceWarpPlugin.ModVer)] public class MicroEngineerMod : BaseSpaceWarpPlugin @@ -21,7 +20,7 @@ public override void OnInitialized() Instance = this; GUID = Info.Metadata.GUID; - + BackwardCompatibilityInitializations(); Styles.Initialize(); diff --git a/MicroEngineerProject/MicroEngineer/UI/BaseEntryControl.cs b/MicroEngineerProject/MicroEngineer/UI/BaseEntryControl.cs new file mode 100644 index 0000000..e24c1b6 --- /dev/null +++ b/MicroEngineerProject/MicroEngineer/UI/BaseEntryControl.cs @@ -0,0 +1,345 @@ +using System; +using UnityEngine; +using UnityEngine.UIElements; + +namespace MicroMod +{ + internal class BaseEntryControl : VisualElement + { + //These are the classes that you reference on your .uss file. + public static string UssClassName = "entry"; + public static string UssLabelClassName = UssClassName + "__name"; + public static string UssValueClassName = UssClassName + "__value"; + public static string UssUnitClassName = UssClassName + "__unit"; + + /* TODO delete. Units are set by the BaseEntry model class + public const string UNIT_FORCE = "N"; + public const string UNIT_SPEED = "m/s"; + public const string UNIT_ACCELERATION = "m/s2"; + public const string UNIT_DEGREE = "º"; + public const string UNIT_GEE = "g"; + */ + + public Label NameLabel; + public Label ValueLabel; + public Label UnitLabel; + + public string EntryName + { + get => NameLabel.text; + set + { + if (EntryName != value) + NameLabel.text = value; + } + } + + public string Value + { + get => ValueLabel.text; + set => ValueLabel.text = value; + } + + public string Unit + { + get => UnitLabel.text; + set => UnitLabel.text = value; + } + + public BaseEntryControl(string name, string value) : this() + { + this.EntryName = name; + this.Value = value; + this.Unit = string.Empty; + } + public BaseEntryControl(string name, string value, string unit) : this() + { + this.EntryName = name; + this.Value = value; + this.Unit = unit; + } + + public BaseEntryControl() + { + //You need to do this to every VisualElement that you want to have said class + AddToClassList(UssClassName); + //style.flexDirection = FlexDirection.Row; + + NameLabel = new Label() + { + //Name that you access with Q(NameHere) + name = "entry-name", + text = String.Empty + }; + //NameLabel.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); + //Setting it so it will ALWAYS occupy 50% of its parent's width + NameLabel.AddToClassList(UssLabelClassName); + hierarchy.Add(NameLabel);//Adding this to the BaseEntry, if you dont do this the element will be lost + + UnitLabel = new Label() + { + name = "entry-unit", + text = String.Empty + }; + //UnitLabel.style.width = new StyleLength(new Length(20, LengthUnit.Pixel)); + //Setting it so it will ALWAYS occupy 20px of width + UnitLabel.AddToClassList(UssUnitClassName); + + ValueLabel = new Label() + { + name = "entry-value", + text = String.Empty + }; + //ValueLabel.style.flexGrow = 1; + //Name occupies 50%, _unit Occupies 20px, this will tell the _value to occupy whats remaining! + ValueLabel.AddToClassList(UssValueClassName); + + //Be sure to add the elements in the correct order + hierarchy.Add(ValueLabel); + hierarchy.Add(UnitLabel); + } + + public new class UxmlFactory : UxmlFactory { } + public new class UxmlTraits : VisualElement.UxmlTraits + { + UxmlStringAttributeDescription _entry = new UxmlStringAttributeDescription() { name = "entry", defaultValue = "Entry" }; + UxmlStringAttributeDescription _value = new UxmlStringAttributeDescription() { name = "value", defaultValue = "value" }; + UxmlStringAttributeDescription _unit = new UxmlStringAttributeDescription() { name = "unit", defaultValue = "unit" }; + + public override void Init(VisualElement ve, IUxmlAttributes bag, CreationContext cc) + { + base.Init(ve, bag, cc); + + if (ve is BaseEntryControl entry) + { + entry.EntryName = _entry.GetValueFromBag(bag, cc); + entry.Value = _value.GetValueFromBag(bag, cc); + entry.Unit = _unit.GetValueFromBag(bag, cc); + } + } + } + + public void HandleValueDisplayChanged(string value) + { + this.Value = value; + } + } + internal class TimeEntryControl : VisualElement + { + //These are the classes that you reference on your .uss file. + public static string UssClassName = "entry"; + public static string UssLabelClassName = UssClassName + "__name"; + public static string UssInnerValueClassName = UssClassName + "__inner-value"; + public static string UssValueClassName = UssClassName + "__value"; + public static string UssInnerUnitClassName = UssClassName + "__inner-unit"; + public static string UssUnitClassName = UssClassName + "__unit"; + + public const string UNIT_YEAR = "y"; + public const string UNIT_MONTH = "m"; + public const string UNIT_DAY = "d"; + public const string UNIT_HOUR = "h"; + public const string UNIT_MINUTE = "m"; + public const string UNIT_SECOND = "s"; + public const string UNIT_MILLISECOND = "ms"; + + public Label NameLabel; + public VisualElement ValueContainer; + public string EntryName + { + get => NameLabel.text; + set => NameLabel.text = value; + } + + public Label DaysValueLabel; + public Label DaysUnitLabel; + public string Days + { + get => DaysValueLabel.text; + set => DaysValueLabel.text = value; + } + + public Label HoursValueLabel; + public Label HoursUnitLabel; + public string Hours + { + get => HoursValueLabel.text; + set => HoursValueLabel.text = value; + } + + public Label MinutesValueLabel; + public Label MinutesUnitLabel; + public string Minutes + { + get => MinutesValueLabel.text; + set => MinutesValueLabel.text = value; + } + + public Label SecondsValueLabel; + public Label SecondsUnitLabel; + public string Seconds + { + get => SecondsValueLabel.text; + set => SecondsValueLabel.text = value; + } + + public void SetValue(int days, int hours, int minutes, int seconds) + { + + days = Mathf.Clamp(days, -9999, 9999); + hours = Mathf.Clamp(hours, 0, 23); + minutes = Mathf.Clamp(minutes, 0, 59); + seconds = Mathf.Clamp(seconds, 0, 59); + + Days = days.ToString("0"); + DisplayStyle showDays = days != 0 ? DisplayStyle.Flex : DisplayStyle.None; + DaysValueLabel.style.display = showDays; + DaysUnitLabel.style.display = showDays; + + Hours = days == 0 ? hours.ToString("0") : hours.ToString("00"); + DisplayStyle showHours = (days != 0 || hours != 0) ? DisplayStyle.Flex : DisplayStyle.None; + HoursValueLabel.style.display = showHours; + HoursUnitLabel.style.display = showHours; + + Minutes = (hours == 0 && days == 0) ? minutes.ToString("0") : minutes.ToString("00"); + DisplayStyle showMinutes = (days != 0 || hours != 0 || minutes != 0) ? DisplayStyle.Flex : DisplayStyle.None; + MinutesValueLabel.style.display = showMinutes; + MinutesUnitLabel.style.display = showMinutes; + + Seconds = (minutes == 0 && hours == 0 && days == 0) ? seconds.ToString("0") : seconds.ToString("00"); + } + + public TimeEntryControl(string entry, int days, int hours, int minutes, int seconds) : this() + { + SetValue(days, hours, minutes, seconds); + + /* + this.EntryName = entry; + this.Days = days.ToString(); + this.Hours = hours.ToString(); + this.Minutes = minutes.ToString(); + this.Seconds = seconds.ToString(); + */ + } + + public TimeEntryControl() + { + //You need to do this to every VisualElement that you want to have said class + AddToClassList(UssClassName); + style.flexDirection = FlexDirection.Row; + + NameLabel = new Label() + { + //Name that you access with Q(NameHere) + name = "entry-name", + text = "placeholder" + }; + //NameLabel.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); + //Setting it so it will ALWAYS occupy 50% of its parent's width + NameLabel.AddToClassList(UssLabelClassName); + hierarchy.Add(NameLabel);//Adding this to the BaseEntry, if you dont do this the element will be lost + + ValueContainer = new VisualElement(); + ValueContainer.style.flexGrow = 1; + ValueContainer.style.flexDirection = FlexDirection.Row; + ValueContainer.style.justifyContent = Justify.FlexEnd; + hierarchy.Add(ValueContainer); + + { + DaysValueLabel = new Label() + { + name = "days-value" + }; + DaysValueLabel.AddToClassList(UssValueClassName); + DaysValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(DaysValueLabel); + DaysUnitLabel = new Label() + { + name = "days-unit", + text = UNIT_DAY + }; + DaysUnitLabel.AddToClassList(UssUnitClassName); + DaysUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(DaysUnitLabel); + }//days + + { + HoursValueLabel = new Label() + { + name = "hours-value" + }; + HoursValueLabel.AddToClassList(UssValueClassName); + HoursValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(HoursValueLabel); + HoursUnitLabel = new Label() + { + name = "hours-unit", + text = UNIT_HOUR + }; + HoursUnitLabel.AddToClassList(UssUnitClassName); + HoursUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(HoursUnitLabel); + }//hours + + { + MinutesValueLabel = new Label() + { + name = "minutes-value" + }; + MinutesValueLabel.AddToClassList(UssValueClassName); + MinutesValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(MinutesValueLabel); + MinutesUnitLabel = new Label() + { + name = "minutes-unit", + text = UNIT_MINUTE + }; + MinutesUnitLabel.AddToClassList(UssUnitClassName); + MinutesUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(MinutesUnitLabel); + + }//minutes + + { + SecondsValueLabel = new Label() + { + name = "seconds-value" + }; + SecondsValueLabel.AddToClassList(UssValueClassName); + ValueContainer.Add(SecondsValueLabel); + SecondsUnitLabel = new Label() + { + name = "seconds-unit", + text = UNIT_SECOND + }; + SecondsUnitLabel.AddToClassList(UssUnitClassName); + ValueContainer.Add(SecondsUnitLabel); + }//seconds + } + + public new class UxmlFactory : UxmlFactory { } + public new class UxmlTraits : VisualElement.UxmlTraits + { + UxmlStringAttributeDescription _entry = new UxmlStringAttributeDescription() { name = "Entry", defaultValue = "Name" }; + UxmlIntAttributeDescription _days = new UxmlIntAttributeDescription() { name = "days", defaultValue = 12 }; + UxmlIntAttributeDescription _hours = new UxmlIntAttributeDescription() { name = "hours", defaultValue = 34 }; + UxmlIntAttributeDescription _minutes = new UxmlIntAttributeDescription() { name = "minutes", defaultValue = 56 }; + UxmlIntAttributeDescription _seconds = new UxmlIntAttributeDescription() { name = "seconds", defaultValue = 60 }; + + public override void Init(VisualElement ve, IUxmlAttributes bag, CreationContext cc) + { + base.Init(ve, bag, cc); + + if (ve is TimeEntryControl entry) + { + entry.EntryName = _entry.GetValueFromBag(bag, cc); + entry.SetValue( + _days.GetValueFromBag(bag, cc), + _hours.GetValueFromBag(bag, cc), + _minutes.GetValueFromBag(bag, cc), + _seconds.GetValueFromBag(bag, cc) + ); + } + } + } + } +} \ No newline at end of file diff --git a/MicroEngineerProject/MicroEngineer/Utilities/Styles.cs b/MicroEngineerProject/MicroEngineer/Utilities/Styles.cs index 798054b..135de28 100644 --- a/MicroEngineerProject/MicroEngineer/Utilities/Styles.cs +++ b/MicroEngineerProject/MicroEngineer/Utilities/Styles.cs @@ -2,6 +2,7 @@ using SpaceWarp.API.Assets; using SpaceWarp.API.UI; using UnityEngine; +using UnityEngine.UIElements; namespace MicroMod { @@ -361,8 +362,32 @@ private static void InitializeStyles() EntryBackground_BlackTheme_Middle.normal.background = EntryBackgroundTexture_BlackTheme_Middle; EntryBackground_BlackTheme_Last = new GUIStyle { name = "BlackLast" }; EntryBackground_BlackTheme_Last.normal.background = EntryBackgroundTexture_BlackTheme_Last; + + + + // TEMP for UITK rewrite + try + { + uxml = AssetManager.GetAsset($"{MicroEngineerMod.Instance.GUID}/microengineer/PoppedOutWindow.uxml"); + } + catch (Exception ex) { _logger.LogError(ex); } + try + { + uiDocument = AssetManager.GetAsset($"{MicroEngineerMod.Instance.GUID}/microengineer/UIDocument.prefab"); + } + catch (Exception ex) { _logger.LogError(ex); } + try + { + styleSheet = AssetManager.GetAsset($"{MicroEngineerMod.Instance.GUID}/microengineer/MicroEngineer.uss"); + } + catch (Exception ex) { _logger.LogError(ex); } + // END OF TEMP } + public static VisualTreeAsset uxml; + public static GameObject uiDocument; + public static StyleSheet styleSheet; + private static void InitializeTextures() { // Icons from https://icons8.com diff --git a/MicroEngineerProject/Other/settings-normal-30.png b/MicroEngineerProject/Other/settings-normal-30.png new file mode 100644 index 0000000000000000000000000000000000000000..23fa1c06edd3a83ad64d176aac01fe2659877d3c GIT binary patch literal 527 zcmV+q0`UEbP)s-M#kt5Kv@OzzR?WCW_)4RXi$^S|weSG+Gp$ zBAk}g9{HCfjZ3;O>2id(NqSb79hF-G-U0i-HgFGk4(tMDpas|io&e*(7VyJ4rHm&g zd<^{Z{5J3j_y7z$r5 zchWBROZp<|xBV-UYLXtznya*Uquzn06Sg_elPG1 zSOR7PmmKgNxSEhzP4umrkbm7AJ3;c1i!CS4WWzBSIjq^=qrg51ym#3_^39y&nW&Q2 zR@7qumL)HmV=^!2jU_eM?*VGSf~{sOy9lem%a|iiIO3a9O7t^zZ1!^p{~y9`S1@vl zgFWn=?iArPaNzlu~@8 literal 0 HcmV?d00001 diff --git a/MicroEngineerProject/Other/settings-normal-30.psd b/MicroEngineerProject/Other/settings-normal-30.psd new file mode 100644 index 0000000000000000000000000000000000000000..db4885c5a475c44f6ad6893a9b795e4761177120 GIT binary patch literal 24492 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 x^1pq+{RJr_lb#Jb NameLabel.text; + set + { + if (EntryName != value) + NameLabel.text = value; + } + } + + public string Value + { + get => ValueLabel.text; + set => ValueLabel.text = value; + } + + public string Unit + { + get => UnitLabel.text; + set => UnitLabel.text = value; + } + + public BaseEntryControl(string name, string value) : this() + { + this.EntryName = name; + this.Value = value; + this.Unit = string.Empty; + } + public BaseEntryControl(string name, string value, string unit) : this() + { + this.EntryName = name; + this.Value = value; + this.Unit = unit; + } + + public BaseEntryControl() + { + //You need to do this to every VisualElement that you want to have said class + AddToClassList(UssClassName); + //style.flexDirection = FlexDirection.Row; + + NameLabel = new Label() + { + //Name that you access with Q(NameHere) + name = "entry-name", + text = String.Empty + }; + //NameLabel.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); + //Setting it so it will ALWAYS occupy 50% of its parent's width + NameLabel.AddToClassList(UssLabelClassName); + hierarchy.Add(NameLabel);//Adding this to the BaseEntry, if you dont do this the element will be lost + + UnitLabel = new Label() + { + name = "entry-unit", + text = String.Empty + }; + //UnitLabel.style.width = new StyleLength(new Length(20, LengthUnit.Pixel)); + //Setting it so it will ALWAYS occupy 20px of width + UnitLabel.AddToClassList(UssUnitClassName); + + ValueLabel = new Label() + { + name = "entry-value", + text = String.Empty + }; + //ValueLabel.style.flexGrow = 1; + //Name occupies 50%, _unit Occupies 20px, this will tell the _value to occupy whats remaining! + ValueLabel.AddToClassList(UssValueClassName); + + //Be sure to add the elements in the correct order + hierarchy.Add(ValueLabel); + hierarchy.Add(UnitLabel); + } + + public new class UxmlFactory : UxmlFactory { } + public new class UxmlTraits : VisualElement.UxmlTraits + { + UxmlStringAttributeDescription _entry = new UxmlStringAttributeDescription() { name = "entry", defaultValue = "Entry" }; + UxmlStringAttributeDescription _value = new UxmlStringAttributeDescription() { name = "value", defaultValue = "value" }; + UxmlStringAttributeDescription _unit = new UxmlStringAttributeDescription() { name = "unit", defaultValue = "unit" }; + + public override void Init(VisualElement ve, IUxmlAttributes bag, CreationContext cc) + { + base.Init(ve, bag, cc); + + if (ve is BaseEntryControl entry) + { + entry.EntryName = _entry.GetValueFromBag(bag, cc); + entry.Value = _value.GetValueFromBag(bag, cc); + entry.Unit = _unit.GetValueFromBag(bag, cc); + } + } + } + + public void HandleValueDisplayChanged(string value) + { + this.Value = value; + } + } + internal class TimeEntryControl : VisualElement + { + //These are the classes that you reference on your .uss file. + public static string UssClassName = "entry"; + public static string UssLabelClassName = UssClassName + "__name"; + public static string UssInnerValueClassName = UssClassName + "__inner-value"; + public static string UssValueClassName = UssClassName + "__value"; + public static string UssInnerUnitClassName = UssClassName + "__inner-unit"; + public static string UssUnitClassName = UssClassName + "__unit"; + + public const string UNIT_YEAR = "y"; + public const string UNIT_MONTH = "m"; + public const string UNIT_DAY = "d"; + public const string UNIT_HOUR = "h"; + public const string UNIT_MINUTE = "m"; + public const string UNIT_SECOND = "s"; + public const string UNIT_MILLISECOND = "ms"; + + public Label NameLabel; + public VisualElement ValueContainer; + public string EntryName + { + get => NameLabel.text; + set => NameLabel.text = value; + } + + public Label DaysValueLabel; + public Label DaysUnitLabel; + public string Days + { + get => DaysValueLabel.text; + set => DaysValueLabel.text = value; + } + + public Label HoursValueLabel; + public Label HoursUnitLabel; + public string Hours + { + get => HoursValueLabel.text; + set => HoursValueLabel.text = value; + } + + public Label MinutesValueLabel; + public Label MinutesUnitLabel; + public string Minutes + { + get => MinutesValueLabel.text; + set => MinutesValueLabel.text = value; + } + + public Label SecondsValueLabel; + public Label SecondsUnitLabel; + public string Seconds + { + get => SecondsValueLabel.text; + set => SecondsValueLabel.text = value; + } + + public void SetValue(int days, int hours, int minutes, int seconds) + { + + days = Mathf.Clamp(days, -9999, 9999); + hours = Mathf.Clamp(hours, 0, 23); + minutes = Mathf.Clamp(minutes, 0, 59); + seconds = Mathf.Clamp(seconds, 0, 59); + + Days = days.ToString("0"); + DisplayStyle showDays = days != 0 ? DisplayStyle.Flex : DisplayStyle.None; + DaysValueLabel.style.display = showDays; + DaysUnitLabel.style.display = showDays; + + Hours = days == 0 ? hours.ToString("0") : hours.ToString("00"); + DisplayStyle showHours = (days != 0 || hours != 0) ? DisplayStyle.Flex : DisplayStyle.None; + HoursValueLabel.style.display = showHours; + HoursUnitLabel.style.display = showHours; + + Minutes = (hours == 0 && days == 0) ? minutes.ToString("0") : minutes.ToString("00"); + DisplayStyle showMinutes = (days != 0 || hours != 0 || minutes != 0) ? DisplayStyle.Flex : DisplayStyle.None; + MinutesValueLabel.style.display = showMinutes; + MinutesUnitLabel.style.display = showMinutes; + + Seconds = (minutes == 0 && hours == 0 && days == 0) ? seconds.ToString("0") : seconds.ToString("00"); + } + + public TimeEntryControl(string entry, int days, int hours, int minutes, int seconds) : this() + { + SetValue(days, hours, minutes, seconds); + + /* + this.EntryName = entry; + this.Days = days.ToString(); + this.Hours = hours.ToString(); + this.Minutes = minutes.ToString(); + this.Seconds = seconds.ToString(); + */ + } + + public TimeEntryControl() + { + //You need to do this to every VisualElement that you want to have said class + AddToClassList(UssClassName); + style.flexDirection = FlexDirection.Row; + + NameLabel = new Label() + { + //Name that you access with Q(NameHere) + name = "entry-name", + text = "placeholder" + }; + //NameLabel.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); + //Setting it so it will ALWAYS occupy 50% of its parent's width + NameLabel.AddToClassList(UssLabelClassName); + hierarchy.Add(NameLabel);//Adding this to the BaseEntry, if you dont do this the element will be lost + + ValueContainer = new VisualElement(); + ValueContainer.style.flexGrow = 1; + ValueContainer.style.flexDirection = FlexDirection.Row; + ValueContainer.style.justifyContent = Justify.FlexEnd; + hierarchy.Add(ValueContainer); + + { + DaysValueLabel = new Label() + { + name = "days-value" + }; + DaysValueLabel.AddToClassList(UssValueClassName); + DaysValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(DaysValueLabel); + DaysUnitLabel = new Label() + { + name = "days-unit", + text = UNIT_DAY + }; + DaysUnitLabel.AddToClassList(UssUnitClassName); + DaysUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(DaysUnitLabel); + }//days + + { + HoursValueLabel = new Label() + { + name = "hours-value" + }; + HoursValueLabel.AddToClassList(UssValueClassName); + HoursValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(HoursValueLabel); + HoursUnitLabel = new Label() + { + name = "hours-unit", + text = UNIT_HOUR + }; + HoursUnitLabel.AddToClassList(UssUnitClassName); + HoursUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(HoursUnitLabel); + }//hours + + { + MinutesValueLabel = new Label() + { + name = "minutes-value" + }; + MinutesValueLabel.AddToClassList(UssValueClassName); + MinutesValueLabel.AddToClassList(UssInnerValueClassName); + ValueContainer.Add(MinutesValueLabel); + MinutesUnitLabel = new Label() + { + name = "minutes-unit", + text = UNIT_MINUTE + }; + MinutesUnitLabel.AddToClassList(UssUnitClassName); + MinutesUnitLabel.AddToClassList(UssInnerUnitClassName); + ValueContainer.Add(MinutesUnitLabel); + + }//minutes + + { + SecondsValueLabel = new Label() + { + name = "seconds-value" + }; + SecondsValueLabel.AddToClassList(UssValueClassName); + ValueContainer.Add(SecondsValueLabel); + SecondsUnitLabel = new Label() + { + name = "seconds-unit", + text = UNIT_SECOND + }; + SecondsUnitLabel.AddToClassList(UssUnitClassName); + ValueContainer.Add(SecondsUnitLabel); + }//seconds + } + + public new class UxmlFactory : UxmlFactory { } + public new class UxmlTraits : VisualElement.UxmlTraits + { + UxmlStringAttributeDescription _entry = new UxmlStringAttributeDescription() { name = "Entry", defaultValue = "Name" }; + UxmlIntAttributeDescription _days = new UxmlIntAttributeDescription() { name = "days", defaultValue = 12 }; + UxmlIntAttributeDescription _hours = new UxmlIntAttributeDescription() { name = "hours", defaultValue = 34 }; + UxmlIntAttributeDescription _minutes = new UxmlIntAttributeDescription() { name = "minutes", defaultValue = 56 }; + UxmlIntAttributeDescription _seconds = new UxmlIntAttributeDescription() { name = "seconds", defaultValue = 60 }; + + public override void Init(VisualElement ve, IUxmlAttributes bag, CreationContext cc) + { + base.Init(ve, bag, cc); + + if (ve is TimeEntryControl entry) + { + entry.EntryName = _entry.GetValueFromBag(bag, cc); + entry.SetValue( + _days.GetValueFromBag(bag, cc), + _hours.GetValueFromBag(bag, cc), + _minutes.GetValueFromBag(bag, cc), + _seconds.GetValueFromBag(bag, cc) + ); + } + } + } + } +} \ No newline at end of file diff --git a/UnityProject/Controls/BaseEntryControl.cs.meta b/UnityProject/Controls/BaseEntryControl.cs.meta new file mode 100644 index 0000000..ae9493d --- /dev/null +++ b/UnityProject/Controls/BaseEntryControl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc921157cdc08514ba5f214135e5d8cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/MicroEngineer UITK 2023-06-04.png b/UnityProject/MicroEngineer UITK 2023-06-04.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8e0c4f5389bf36d0c8e85a6c4151508ca57ea0 GIT binary patch literal 66792 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 +