diff --git a/ArrayEditing/ArrayEditing.csproj b/ArrayEditing/ArrayEditing.csproj
index 737d5dc..2cedb9d 100644
--- a/ArrayEditing/ArrayEditing.csproj
+++ b/ArrayEditing/ArrayEditing.csproj
@@ -9,7 +9,7 @@
ArrayEditing
Array Editing
Banane9, Nytra
- 1.0.0
+ 1.0.1
Adds proxy list UI for editing arrays in inspectors. Also improves the look of list UI a bit.
LGPL-3.0-or-later
https://github.com/ResoniteModdingGroup/ArrayEditing
@@ -36,18 +36,18 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/ArrayEditing/ArrayEditor.cs b/ArrayEditing/ArrayEditor.cs
index a424623..329e89b 100644
--- a/ArrayEditing/ArrayEditor.cs
+++ b/ArrayEditing/ArrayEditor.cs
@@ -21,7 +21,6 @@ internal sealed class ArrayEditor : ResoniteCancelableEventHandlerMonkey(SyncArray array, SyncElementList<
};
}
- private static void AddParticleBurstListProxying(SyncArray> array, SyncElementList.Point> list)
- {
- foreach (var burst in array)
- {
- var point = list.Add();
- point.Position.Value = burst.time;
- point.Value.Value = new int2(burst.value.minCount, burst.value.maxCount);
- }
-
- AddUpdateProxies(array, list, list.Elements);
-
- list.ElementsAdded += (list, startIndex, count) =>
- {
- var addedElements = list.Elements.Skip(startIndex).Take(count).ToArray();
- var buffer = addedElements.Select(point => new LinearKey(point.Position, new ParticleBurst() { minCount = point.Value.Value.x, maxCount = point.Value.Value.y })).ToArray();
-
- if (!_skipListChanges)
- {
- array.Changed -= ArrayChanged;
- array.Insert(buffer, startIndex);
- array.Changed += ArrayChanged;
- }
- AddUpdateProxies(array, list, addedElements);
- };
-
- list.ElementsRemoved += (list, startIndex, count) =>
- {
- if (_skipListChanges) return;
- if (array.Count < startIndex + count) return;
- array.Changed -= ArrayChanged;
- array.Remove(startIndex, count);
- array.Changed += ArrayChanged;
- };
- }
-
private static void AddTubePointProxying(SyncArray array, SyncElementList.Point> list)
{
foreach (var tubePoint in array)
@@ -271,23 +235,6 @@ private static void AddUpdateProxies(SyncArray> array,
}
}
- private static void AddUpdateProxies(SyncArray> array,
- SyncElementList.Point> list, IEnumerable.Point> elements)
- {
- foreach (var point in elements)
- {
- point.Changed += field =>
- {
- if (_skipListChanges) return;
- var index = list.IndexOfElement(point);
- var key = new LinearKey(point.Position, new ParticleBurst() { minCount = point.Value.Value.x, maxCount = point.Value.Value.y });
- array.Changed -= ArrayChanged;
- array[index] = key;
- array.Changed += ArrayChanged;
- };
- }
- }
-
private static void AddUpdateProxies(SyncArray array, SyncElementList> list, IEnumerable> elements)
where T : IEquatable
{
@@ -366,11 +313,6 @@ private static bool BuildArray(ISyncArray array, string name, FieldInfo fieldInf
var syncLinearType = syncLinearGenericParameters?.First();
var syncCurveType = syncCurveGenericParameters?.First();
- var isParticleBurst = syncLinearType == _particleBurstType;
-
- if (isSyncLinear && isParticleBurst)
- syncLinearType = typeof(int2);
-
var proxySlotName = $"{name}-{array.ReferenceID}-Proxy";
var proxiesSlot = ui.World.AssetsSlot;
var newProxy = false;
@@ -395,10 +337,7 @@ private static bool BuildArray(ISyncArray array, string name, FieldInfo fieldInf
if (attachedNew)
{
- if (isParticleBurst)
- AddParticleBurstListProxying((SyncArray>)array, (SyncElementList.Point>)list);
- else
- _addLinearValueProxying.MakeGenericMethod(syncLinearType).Invoke(null, [array, list]);
+ _addLinearValueProxying.MakeGenericMethod(syncLinearType).Invoke(null, [array, list]);
}
}
else if (isSyncCurve && SupportsLerp(syncCurveType!))
@@ -494,13 +433,6 @@ void ArrayDriveCheck(IChangeable changeable)
return true;
}
- // doesn't work?
- static void SetParticlePoint(ValueGradientDriver.Point point, LinearKey arrayElem)
- {
- point.Position.Value = arrayElem.time;
- point.Value.Value = new int2(arrayElem.value.minCount, arrayElem.value.maxCount);
- }
-
static void SetLinearPoint(ValueGradientDriver.Point point, LinearKey arrayElem) where T : IEquatable
{
point.Position.Value = arrayElem.time;
@@ -569,7 +501,6 @@ static void ArrayChanged(IChangeable changeable)
var isSyncCurve = TryGetGenericParameters(typeof(SyncCurve<>), array.GetType(), out var syncCurveGenericParameters);
var syncLinearType = syncLinearGenericParameters?.First();
var syncCurveType = syncCurveGenericParameters?.First();
- var isParticleBurst = syncLinearType == _particleBurstType;
if (!TryGetGenericParameters(typeof(SyncArray<>), array.GetType(), out var genericParameters))
return;
@@ -582,10 +513,7 @@ static void ArrayChanged(IChangeable changeable)
if (isSyncLinear && SupportsLerp(syncLinearType!))
{
- if (isParticleBurst)
- SetParticlePoint((ValueGradientDriver.Point)elem!, (LinearKey)array.GetElement(i));
- else
- _setLinearPoint.MakeGenericMethod(syncLinearType).Invoke(null, [elem, array.GetElement(i)]);
+ _setLinearPoint.MakeGenericMethod(syncLinearType).Invoke(null, [elem, array.GetElement(i)]);
}
else if (isSyncCurve && SupportsLerp(syncCurveType!))
{