mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-23 10:05:14 +00:00
prep auto-population of property menu
This commit is contained in:
parent
b19afcd2e2
commit
b84dc9a2de
23 changed files with 552 additions and 25 deletions
|
@ -28048,7 +28048,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 137.66667, y: -20}
|
m_AnchoredPosition: {x: 137.66669, y: -20}
|
||||||
m_SizeDelta: {x: 70, y: 40}
|
m_SizeDelta: {x: 70, y: 40}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1107362316
|
--- !u!114 &1107362316
|
||||||
|
@ -29701,7 +29701,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: 129.89537}
|
m_AnchoredPosition: {x: 0, y: 189.92252}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!114 &1154875944
|
--- !u!114 &1154875944
|
||||||
|
@ -30145,7 +30145,6 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
propertyHolder: {fileID: 1496522766}
|
propertyHolder: {fileID: 1496522766}
|
||||||
propertyNames: []
|
|
||||||
IntegerP: {fileID: 797336683}
|
IntegerP: {fileID: 797336683}
|
||||||
FloatP: {fileID: 797336683}
|
FloatP: {fileID: 797336683}
|
||||||
BooleanP: {fileID: 2083473857}
|
BooleanP: {fileID: 2083473857}
|
||||||
|
@ -35214,6 +35213,21 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
dialog: {fileID: 1336470761}
|
dialog: {fileID: 1336470761}
|
||||||
|
infoTags:
|
||||||
|
- remixtitle
|
||||||
|
infoLabels:
|
||||||
|
- Remix Title
|
||||||
|
flavourTags: []
|
||||||
|
flavourLabels: []
|
||||||
|
infoContainer: {fileID: 1177777399}
|
||||||
|
chart:
|
||||||
|
bpm: 0
|
||||||
|
musicVolume: 0
|
||||||
|
entities: []
|
||||||
|
tempoChanges: []
|
||||||
|
volumeChanges: []
|
||||||
|
beatmapSections: []
|
||||||
|
firstBeatOffset: 0
|
||||||
--- !u!1 &1337141464
|
--- !u!1 &1337141464
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -45262,7 +45276,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: -84.99002}
|
m_AnchoredPosition: {x: 0, y: -84.990036}
|
||||||
m_SizeDelta: {x: 320, y: -113.92}
|
m_SizeDelta: {x: 320, y: -113.92}
|
||||||
m_Pivot: {x: 0, y: 1}
|
m_Pivot: {x: 0, y: 1}
|
||||||
--- !u!1 &1852819572
|
--- !u!1 &1852819572
|
||||||
|
|
15
Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs
Normal file
15
Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using HeavenStudio.Editor.Track;
|
||||||
|
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public abstract class TabsContent : MonoBehaviour
|
||||||
|
{
|
||||||
|
public abstract void OnOpenTab();
|
||||||
|
public abstract void OnCloseTab();
|
||||||
|
}
|
||||||
|
}
|
11
Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta
Normal file
11
Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c95e3e333c0372d498ab6cdad5a6ac1d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 28745dfd251ff86468a98978665f553b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eccea73a04818a844bc25e6308bc1d05
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using HeavenStudio.Editor;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class BoolChartPropertyPrefab : RemixPropertyPrefab
|
||||||
|
{
|
||||||
|
[Header("Boolean")]
|
||||||
|
[Space(10)]
|
||||||
|
public Toggle toggle;
|
||||||
|
|
||||||
|
new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption)
|
||||||
|
{
|
||||||
|
InitProperties(diag, propertyName, caption);
|
||||||
|
|
||||||
|
// ' (bool)type ' always results in false
|
||||||
|
toggle.isOn = Convert.ToBoolean(parameterManager.chart[propertyName]);
|
||||||
|
|
||||||
|
toggle.onValueChanged.AddListener(
|
||||||
|
_ => parameterManager.chart[propertyName] = toggle.isOn
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5765785c18f751f4196e09d11dd30ff3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,61 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using HeavenStudio.Editor;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class ColorChartPropertyPrefab : RemixPropertyPrefab
|
||||||
|
{
|
||||||
|
[Header("Color")]
|
||||||
|
[Space(10)]
|
||||||
|
public Button ColorBTN;
|
||||||
|
public RectTransform ColorTable;
|
||||||
|
public bool colorTableActive;
|
||||||
|
public ColorPreview colorPreview;
|
||||||
|
|
||||||
|
new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption)
|
||||||
|
{
|
||||||
|
InitProperties(diag, propertyName, caption);
|
||||||
|
|
||||||
|
colorPreview.colorPicker.onColorChanged += _ =>
|
||||||
|
parameterManager.chart[propertyName] = colorPreview.colorPicker.color;
|
||||||
|
|
||||||
|
Color paramCol = parameterManager.chart[propertyName];
|
||||||
|
|
||||||
|
ColorBTN.onClick.AddListener(
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
ColorTable.gameObject.SetActive(true);
|
||||||
|
colorTableActive = true;
|
||||||
|
colorPreview.ChangeColor(paramCol);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
colorPreview.ChangeColor(paramCol);
|
||||||
|
ColorTable.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (colorTableActive)
|
||||||
|
{
|
||||||
|
if (!Editor.MouseInRectTransform(ColorTable))
|
||||||
|
{
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
ColorTable.gameObject.SetActive(false);
|
||||||
|
colorTableActive = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 83f718678c662f9448813df185f1283f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,49 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using HeavenStudio.Editor;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class EnumChartPropertyPrefab : RemixPropertyPrefab
|
||||||
|
{
|
||||||
|
[Header("Dropdown")]
|
||||||
|
[Space(10)]
|
||||||
|
public TMP_Dropdown dropdown;
|
||||||
|
|
||||||
|
new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption)
|
||||||
|
{
|
||||||
|
InitProperties(diag, propertyName, caption);
|
||||||
|
|
||||||
|
var enumType = type.GetType();
|
||||||
|
var enumVals = Enum.GetValues(enumType);
|
||||||
|
var enumNames = Enum.GetNames(enumType).ToList();
|
||||||
|
|
||||||
|
// Can we assume non-holey enum?
|
||||||
|
// If we can we can simplify to dropdown.value = (int) parameterManager.chart[propertyName]
|
||||||
|
var currentlySelected = (int) parameterManager.chart[propertyName];
|
||||||
|
var selected = enumVals
|
||||||
|
.Cast<object>()
|
||||||
|
.ToList()
|
||||||
|
.FindIndex(val => (int) val == currentlySelected);
|
||||||
|
|
||||||
|
dropdown.AddOptions(enumNames);
|
||||||
|
dropdown.value = selected;
|
||||||
|
|
||||||
|
dropdown.onValueChanged.AddListener(_ =>
|
||||||
|
parameterManager.chart[propertyName] = (int) enumVals.GetValue(dropdown.value)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bddf1f894c08d91429a4a36f21a3c10e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,101 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using HeavenStudio.Editor;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class NumberChartPropertyPrefab : RemixPropertyPrefab
|
||||||
|
{
|
||||||
|
[Header("Integer and Float")]
|
||||||
|
[Space(10)]
|
||||||
|
public Slider slider;
|
||||||
|
public TMP_InputField inputField;
|
||||||
|
|
||||||
|
new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption)
|
||||||
|
{
|
||||||
|
InitProperties(diag, propertyName, caption);
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case EntityTypes.Integer integer:
|
||||||
|
slider.minValue = integer.min;
|
||||||
|
slider.maxValue = integer.max;
|
||||||
|
|
||||||
|
slider.wholeNumbers = true;
|
||||||
|
slider.value = Convert.ToSingle(parameterManager.chart[propertyName]);
|
||||||
|
inputField.text = slider.value.ToString();
|
||||||
|
|
||||||
|
slider.onValueChanged.AddListener(
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
inputField.text = slider.value.ToString();
|
||||||
|
parameterManager.chart[propertyName] = (int) slider.value;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
inputField.onSelect.AddListener(
|
||||||
|
_ =>
|
||||||
|
Editor.instance.editingInputField = true
|
||||||
|
);
|
||||||
|
|
||||||
|
inputField.onEndEdit.AddListener(
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
slider.value = Convert.ToSingle(inputField.text);
|
||||||
|
parameterManager.chart[propertyName] = (int) slider.value;
|
||||||
|
Editor.instance.editingInputField = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EntityTypes.Float fl:
|
||||||
|
slider.minValue = fl.min;
|
||||||
|
slider.maxValue = fl.max;
|
||||||
|
|
||||||
|
slider.value = Convert.ToSingle(parameterManager.chart[propertyName]);
|
||||||
|
inputField.text = slider.value.ToString("G");
|
||||||
|
|
||||||
|
slider.onValueChanged.AddListener(
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
var newValue = (float) Math.Round(slider.value, 4);
|
||||||
|
inputField.text = newValue.ToString("G");
|
||||||
|
parameterManager.chart[propertyName] = newValue;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
inputField.onSelect.AddListener(
|
||||||
|
_ =>
|
||||||
|
Editor.instance.editingInputField = true
|
||||||
|
);
|
||||||
|
|
||||||
|
inputField.onEndEdit.AddListener(
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4);
|
||||||
|
parameterManager.chart[propertyName] = slider.value;
|
||||||
|
Editor.instance.editingInputField = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException(
|
||||||
|
nameof(type), type, "I don't know how to make a property of this type!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3541b2824368eef4b94655619c05c3bc
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,44 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using HeavenStudio.Editor;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class StringChartPropertyPrefab : RemixPropertyPrefab
|
||||||
|
{
|
||||||
|
[Header("String")] //why wasn't this a thing before
|
||||||
|
[Space(10)]
|
||||||
|
public TMP_InputField inputFieldString;
|
||||||
|
|
||||||
|
new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption)
|
||||||
|
{
|
||||||
|
InitProperties(diag, propertyName, caption);
|
||||||
|
|
||||||
|
inputFieldString.text = (string) parameterManager.chart[propertyName];
|
||||||
|
|
||||||
|
inputFieldString.onSelect.AddListener(
|
||||||
|
_ =>
|
||||||
|
Editor.instance.editingInputField = true
|
||||||
|
);
|
||||||
|
inputFieldString.onEndEdit.AddListener(
|
||||||
|
_ =>
|
||||||
|
{;
|
||||||
|
parameterManager.chart[propertyName] = inputFieldString.text;
|
||||||
|
Editor.instance.editingInputField = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1d094b0b57b4a1945a8ca587d9478b75
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -9,6 +9,18 @@ namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class RemixPropertiesDialog : Dialog
|
public class RemixPropertiesDialog : Dialog
|
||||||
{
|
{
|
||||||
|
[Header("Editable Properties")]
|
||||||
|
[SerializeField] string[] infoTags;
|
||||||
|
[SerializeField] string[] infoLabels;
|
||||||
|
[SerializeField] string[] flavourTags;
|
||||||
|
[SerializeField] string[] flavourLabels;
|
||||||
|
|
||||||
|
[Header("Containers")]
|
||||||
|
[SerializeField] ChartInfoProperties infoContainer;
|
||||||
|
// [SerializeField] ChartFlavourProperties flavourContainer;
|
||||||
|
|
||||||
|
public DynamicBeatmap chart;
|
||||||
|
|
||||||
private void Start() {}
|
private void Start() {}
|
||||||
|
|
||||||
public void SwitchPropertiesDialog()
|
public void SwitchPropertiesDialog()
|
||||||
|
@ -17,11 +29,46 @@ namespace HeavenStudio.Editor
|
||||||
Editor.instance.canSelect = true;
|
Editor.instance.canSelect = true;
|
||||||
Editor.instance.inAuthorativeMenu = false;
|
Editor.instance.inAuthorativeMenu = false;
|
||||||
dialog.SetActive(false);
|
dialog.SetActive(false);
|
||||||
|
|
||||||
|
CleanDialog();
|
||||||
} else {
|
} else {
|
||||||
ResetAllDialogs();
|
ResetAllDialogs();
|
||||||
Editor.instance.canSelect = false;
|
Editor.instance.canSelect = false;
|
||||||
Editor.instance.inAuthorativeMenu = true;
|
Editor.instance.inAuthorativeMenu = true;
|
||||||
dialog.SetActive(true);
|
dialog.SetActive(true);
|
||||||
|
|
||||||
|
SetupDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupDialog() {
|
||||||
|
chart = GameManager.instance.Beatmap;
|
||||||
|
string[] tags = infoTags;
|
||||||
|
string[] labels = infoLabels;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
foreach (string property in tags) {
|
||||||
|
if (chart.properties.ContainsKey(property)) {
|
||||||
|
infoContainer.AddParam(this, property, chart.properties[property], labels[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (property == "divider")
|
||||||
|
{
|
||||||
|
//TODO: prefab that's just a dividing line
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Property Menu generation Warning: Property " + property + " not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CleanDialog() {
|
||||||
|
foreach (Transform child in dialog.transform) {
|
||||||
|
Destroy(child.gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using TMPro;
|
||||||
|
using Starpelly;
|
||||||
|
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor
|
||||||
|
{
|
||||||
|
public class RemixPropertyPrefab : MonoBehaviour
|
||||||
|
{
|
||||||
|
public TMP_Text caption;
|
||||||
|
public RemixPropertiesDialog parameterManager;
|
||||||
|
public string propertyName;
|
||||||
|
|
||||||
|
public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) {}
|
||||||
|
|
||||||
|
public void InitProperties(RemixPropertiesDialog diag, string propertyName, string caption)
|
||||||
|
{
|
||||||
|
this.parameterManager = diag;
|
||||||
|
this.propertyName = propertyName;
|
||||||
|
this.caption.text = caption;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2483aa618d773c143857f608a2d2d32a
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -4,14 +4,11 @@ using TMPro;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor
|
namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class ChartInfoProperties : MonoBehaviour
|
public class ChartInfoProperties : TabsContent
|
||||||
{
|
{
|
||||||
[Header("General References")]
|
[Header("General References")]
|
||||||
[SerializeField] private GameObject propertyHolder;
|
[SerializeField] private GameObject propertyHolder;
|
||||||
|
|
||||||
[Header("Editable Properties")]
|
|
||||||
[SerializeField] private string[] propertyNames;
|
|
||||||
|
|
||||||
[Header("Property Prefabs")]
|
[Header("Property Prefabs")]
|
||||||
[SerializeField] private GameObject IntegerP;
|
[SerializeField] private GameObject IntegerP;
|
||||||
[SerializeField] private GameObject FloatP;
|
[SerializeField] private GameObject FloatP;
|
||||||
|
@ -20,7 +17,7 @@ namespace HeavenStudio.Editor
|
||||||
[SerializeField] private GameObject ColorP;
|
[SerializeField] private GameObject ColorP;
|
||||||
[SerializeField] private GameObject StringP;
|
[SerializeField] private GameObject StringP;
|
||||||
|
|
||||||
private void AddParam(string propertyName, object type, string caption, string tooltip = "")
|
public void AddParam(RemixPropertiesDialog diag, string propertyName, object type, string caption, string tooltip = "")
|
||||||
{
|
{
|
||||||
GameObject prefab = IntegerP;
|
GameObject prefab = IntegerP;
|
||||||
GameObject input;
|
GameObject input;
|
||||||
|
@ -31,43 +28,43 @@ namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
prefab = IntegerP;
|
prefab = IntegerP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<NumberPropertyPrefab>();
|
var property = input.GetComponent<NumberChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else if (objType == typeof(EntityTypes.Float))
|
else if (objType == typeof(EntityTypes.Float))
|
||||||
{
|
{
|
||||||
prefab = FloatP;
|
prefab = FloatP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<NumberPropertyPrefab>();
|
var property = input.GetComponent<NumberChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else if (type is bool)
|
else if (type is bool)
|
||||||
{
|
{
|
||||||
prefab = BooleanP;
|
prefab = BooleanP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<BoolPropertyPrefab>();
|
var property = input.GetComponent<BoolChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else if (objType.IsEnum)
|
else if (objType.IsEnum)
|
||||||
{
|
{
|
||||||
prefab = DropdownP;
|
prefab = DropdownP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<EnumPropertyPrefab>();
|
var property = input.GetComponent<EnumChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else if (objType == typeof(Color))
|
else if (objType == typeof(Color))
|
||||||
{
|
{
|
||||||
prefab = ColorP;
|
prefab = ColorP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<ColorPropertyPrefab>();
|
var property = input.GetComponent<ColorChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else if (objType == typeof(string))
|
else if (objType == typeof(string))
|
||||||
{
|
{
|
||||||
prefab = StringP;
|
prefab = StringP;
|
||||||
input = InitPrefab(prefab, tooltip);
|
input = InitPrefab(prefab, tooltip);
|
||||||
var property = input.GetComponent<StringPropertyPrefab>();
|
var property = input.GetComponent<StringChartPropertyPrefab>();
|
||||||
property.SetProperties(propertyName, type, caption);
|
property.SetProperties(diag, propertyName, type, caption);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -88,5 +85,13 @@ namespace HeavenStudio.Editor
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnOpenTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCloseTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@ using static JSL;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor
|
namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class ControllerSettings : MonoBehaviour
|
public class ControllerSettings : TabsContent
|
||||||
{
|
{
|
||||||
[SerializeField] private TMP_Text numConnectedLabel;
|
[SerializeField] private TMP_Text numConnectedLabel;
|
||||||
[SerializeField] private TMP_Text currentControllerLabel;
|
[SerializeField] private TMP_Text currentControllerLabel;
|
||||||
|
@ -245,5 +245,13 @@ namespace HeavenStudio.Editor
|
||||||
yield return new WaitForSeconds(0.25f);
|
yield return new WaitForSeconds(0.25f);
|
||||||
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnOpenTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCloseTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ using TMPro;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor
|
namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class CreditsLegalSettings : MonoBehaviour
|
public class CreditsLegalSettings : TabsContent
|
||||||
{
|
{
|
||||||
private int SecretCounter = 0;
|
private int SecretCounter = 0;
|
||||||
private bool SecretActive = false;
|
private bool SecretActive = false;
|
||||||
|
@ -50,5 +50,13 @@ namespace HeavenStudio.Editor
|
||||||
SecretActive = false;
|
SecretActive = false;
|
||||||
secretContent.CloseDanceWindow();
|
secretContent.CloseDanceWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnOpenTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCloseTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,7 +6,7 @@ using TMPro;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor
|
namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class DispAudioSettings : MonoBehaviour
|
public class DispAudioSettings : TabsContent
|
||||||
{
|
{
|
||||||
public TMP_Dropdown resolutionsDropdown;
|
public TMP_Dropdown resolutionsDropdown;
|
||||||
public GameObject customSetter;
|
public GameObject customSetter;
|
||||||
|
@ -71,5 +71,13 @@ namespace HeavenStudio.Editor
|
||||||
volSlider.value = (float)System.Math.Round(System.Convert.ToSingle(volLabel.text) / 100f, 2);
|
volSlider.value = (float)System.Math.Round(System.Convert.ToSingle(volLabel.text) / 100f, 2);
|
||||||
GlobalGameManager.ChangeMasterVolume(volSlider.value);
|
GlobalGameManager.ChangeMasterVolume(volSlider.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnOpenTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCloseTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@ using TMPro;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor
|
namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
public class EditorSettings : MonoBehaviour
|
public class EditorSettings : TabsContent
|
||||||
{
|
{
|
||||||
public Toggle cursorCheckbox;
|
public Toggle cursorCheckbox;
|
||||||
|
|
||||||
|
@ -16,5 +16,13 @@ namespace HeavenStudio.Editor
|
||||||
GameManager.instance.CursorCam.enabled = Editor.instance.isCursorEnabled;
|
GameManager.instance.CursorCam.enabled = Editor.instance.isCursorEnabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnOpenTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCloseTab()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue