From d46319a8135edbabe02dc733f153240e4a24f84e Mon Sep 17 00:00:00 2001 From: ThatZeoMan <67521686+ThatZeoMan@users.noreply.github.com> Date: Thu, 18 Aug 2022 19:48:55 -0500 Subject: [PATCH] i'm so close i swear --- .../LevelEditor/Properties/PropController.cs | 2 + .../LevelEditor/Properties/PropertyDefn.cs | 8 +-- .../Properties/RemixParameterManager.cs | 60 +++++++++++++++++++ .../Properties/RemixParameterManager.cs.meta | 11 ++++ 4 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs create mode 100644 Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs.meta diff --git a/Assets/Scripts/LevelEditor/Properties/PropController.cs b/Assets/Scripts/LevelEditor/Properties/PropController.cs index 332550c60..0e10964ba 100644 --- a/Assets/Scripts/LevelEditor/Properties/PropController.cs +++ b/Assets/Scripts/LevelEditor/Properties/PropController.cs @@ -14,6 +14,8 @@ namespace HeavenStudio.Properties public class EditInput { + public static EditInput instance { get; private set; } = new EditInput(); + [Header("Properties")] public bool editingInputField = false; } diff --git a/Assets/Scripts/LevelEditor/Properties/PropertyDefn.cs b/Assets/Scripts/LevelEditor/Properties/PropertyDefn.cs index 3514cac30..6005dea5b 100644 --- a/Assets/Scripts/LevelEditor/Properties/PropertyDefn.cs +++ b/Assets/Scripts/LevelEditor/Properties/PropertyDefn.cs @@ -61,14 +61,14 @@ namespace HeavenStudio.Properties inputField.onSelect.AddListener(delegate { - EditInput.editingInputField = true; + EditInput.instance.editingInputField = true; }); inputField.onEndEdit.AddListener(delegate { slider.value = Mathf.RoundToInt(System.Convert.ToSingle(System.Convert.ToSingle(inputField.text))); PropController.instance.properties[propertyName] = (int)slider.value; - EditInput.editingInputField = false; + EditInput.instance.editingInputField = false; }); } else if (type is bool) @@ -113,14 +113,14 @@ namespace HeavenStudio.Properties inputFieldString.onSelect.AddListener(delegate { - EditInput.editingInputField = true; + EditInput.instance.editingInputField = true; }); inputFieldString.onEndEdit.AddListener(delegate { // Debug.Log("setting " + propertyName + " to: " + inputFieldString.text); PropController.instance.properties[propertyName] = inputFieldString.text; - EditInput.editingInputField = false; + EditInput.instance.editingInputField = false; }); } } diff --git a/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs b/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs new file mode 100644 index 000000000..4b38e5560 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs @@ -0,0 +1,60 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using HeavenStudio.Editor.Track; + +namespace HeavenStudio.Properties +{ + public class EventParameterManager : MonoBehaviour + { + [Header("Property Prefabs")] + [SerializeField] private GameObject IntegerP; + [SerializeField] private GameObject FloatP; + [SerializeField] private GameObject BooleanP; + [SerializeField] private GameObject DropdownP; + [SerializeField] private GameObject ColorP; + [SerializeField] private GameObject StringP; + + + private void AddParam(string propertyName, object type, string caption) + { + GameObject prefab = IntegerP; + + var objType = type.GetType(); + + if (objType == typeof(EntityTypes.Integer)) + { + prefab = IntegerP; + } + else if (objType == typeof(EntityTypes.Float)) + { + prefab = FloatP; + } + else if(type is bool) + { + prefab = BooleanP; + } + else if (objType.IsEnum) + { + prefab = DropdownP; + } + else if (objType == typeof(Color)) + { + prefab = ColorP; + } + else if(objType == typeof(string)) + { + prefab = StringP; + } + + GameObject input = Instantiate(prefab); + input.transform.SetParent(this.gameObject.transform); + input.SetActive(true); + input.transform.localScale = Vector2.one; + + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs.meta b/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs.meta new file mode 100644 index 000000000..43cd05a40 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Properties/RemixParameterManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cc967f6517b28a4ab115f44592f0784 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: