This commit is contained in:
SoulliesOfficial
2025-04-19 13:51:47 -04:00
parent bb88c2a77c
commit 87e4a0aa98
17 changed files with 4800 additions and 7 deletions

View File

@@ -0,0 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
namespace Ichni.Editor
{
public class DynamicUIGradientAlphaKeyUnit : DynamicUICompositeUnit
{
public TMP_InputField colorAInputField;
public TMP_InputField percentInputField;
public override void SetUnit(CompositeParameterWindow window, object itemContent)
{
compositeParameterWindow = window;
GradientAlphaKey alphaKey = (GradientAlphaKey)itemContent;
colorAInputField.text = alphaKey.alpha.ToString();
percentInputField.text = alphaKey.time.ToString();
colorAInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
percentInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
removeButton.onClick.AddListener(() =>
{
compositeParameterWindow.RemoveUnit(this);
compositeParameterWindow.ApplyParameters();
});
}
public GradientAlphaKey GetValue()
{
return new GradientAlphaKey(float.Parse(colorAInputField.text), float.Parse(percentInputField.text));
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 13b978e1f66386b44a08579679b8d1ff
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,44 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
namespace Ichni.Editor
{
public class DynamicUIGradientColorKeyUnit : DynamicUICompositeUnit
{
public TMP_InputField colorRInputField;
public TMP_InputField colorGInputField;
public TMP_InputField colorBInputField;
public TMP_InputField percentInputField;
public override void SetUnit(CompositeParameterWindow window, object itemContent)
{
compositeParameterWindow = window;
GradientColorKey colorKey = (GradientColorKey)itemContent;
colorRInputField.text = colorKey.color.r.ToString();
colorGInputField.text = colorKey.color.g.ToString();
colorBInputField.text = colorKey.color.b.ToString();
percentInputField.text = colorKey.time.ToString();
colorRInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
colorGInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
colorBInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
percentInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
removeButton.onClick.AddListener(() =>
{
compositeParameterWindow.RemoveUnit(this);
compositeParameterWindow.ApplyParameters();
});
}
public GradientColorKey GetValue()
{
return new GradientColorKey(
new Color(float.Parse(colorRInputField.text), float.Parse(colorGInputField.text), float.Parse(colorBInputField.text)),
float.Parse(percentInputField.text));
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b22dbb74eb94afc47b5d75973eb2ac02
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -272,6 +272,80 @@ namespace Ichni.Editor
return this;
}
public CompositeParameterWindow SetAsGradientColorKeys()
{
void GenerateUnit(GradientColorKey content)
{
DynamicUIGradientColorKeyUnit unit = Instantiate(unitPrefab, windowRect).GetComponent<DynamicUIGradientColorKeyUnit>();
unitList.Add(unit);
unit.SetUnit(this, content);
}
unitPrefab = EditorManager.instance.basePrefabs.gradientColorKeyUnit;
Gradient gradient = connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement) as Gradient;
List<GradientColorKey> colorKeys = gradient.colorKeys.ToList();
foreach (GradientColorKey colorKey in colorKeys)
{
GenerateUnit(colorKey);
}
addNewUnitButton.GetComponent<RectTransform>().SetAsLastSibling();
addNewUnitButton.onClick.AddListener(() =>
{
GenerateUnit(new GradientColorKey(Color.white, 1));
addNewUnitButton.GetComponent<RectTransform>().SetAsLastSibling();
});
ApplyParameters = () =>
{
List<GradientColorKey> newColorKeys = new List<GradientColorKey>();
foreach (var unit in unitList)
{
newColorKeys.Add((unit as DynamicUIGradientColorKeyUnit).GetValue());
}
(connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement) as Gradient).colorKeys = newColorKeys.ToArray();
};
return this;
}
public CompositeParameterWindow SetAsGradientAlphaKeys()
{
void GenerateUnit(GradientAlphaKey content)
{
DynamicUIGradientAlphaKeyUnit unit = Instantiate(unitPrefab, windowRect).GetComponent<DynamicUIGradientAlphaKeyUnit>();
unitList.Add(unit);
unit.SetUnit(this, content);
}
unitPrefab = EditorManager.instance.basePrefabs.gradientAlphaKeyUnit;
Gradient gradient = connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement) as Gradient;
List<GradientAlphaKey> alphaKeys = gradient.alphaKeys.ToList();
foreach (GradientAlphaKey alphaKey in alphaKeys)
{
GenerateUnit(alphaKey);
}
addNewUnitButton.GetComponent<RectTransform>().SetAsLastSibling();
addNewUnitButton.onClick.AddListener(() =>
{
GenerateUnit(new GradientAlphaKey(1, 1));
addNewUnitButton.GetComponent<RectTransform>().SetAsLastSibling();
});
ApplyParameters = () =>
{
List<GradientAlphaKey> newAlphaKeys = new List<GradientAlphaKey>();
foreach (var unit in unitList)
{
newAlphaKeys.Add((unit as DynamicUIGradientAlphaKeyUnit).GetValue());
}
(connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement) as Gradient).alphaKeys = newAlphaKeys.ToArray();
};
return this;
}
public CompositeParameterWindow SetAsStringIntDictionary()
{