diff --git a/ArrayEditing/ArrayEditing.csproj b/ArrayEditing/ArrayEditing.csproj index 641798d..61d228a 100644 --- a/ArrayEditing/ArrayEditing.csproj +++ b/ArrayEditing/ArrayEditing.csproj @@ -9,7 +9,7 @@ ArrayEditing Array Editing Banane9, Nytra - 1.0.1 + 1.1.0 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,16 +36,16 @@ - + 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 329e89b..dc909d0 100644 --- a/ArrayEditing/ArrayEditor.cs +++ b/ArrayEditing/ArrayEditor.cs @@ -1,16 +1,16 @@ using Elements.Core; -using FrooxEngine.UIX; +using EnumerableToolkit; using FrooxEngine; +using FrooxEngine.UIX; using HarmonyLib; using MonkeyLoader.Patching; +using MonkeyLoader.Resonite; +using MonkeyLoader.Resonite.UI.Inspectors; using System; -using System.Diagnostics.CodeAnalysis; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; -using EnumerableToolkit; -using MonkeyLoader.Resonite; -using MonkeyLoader.Resonite.UI.Inspectors; namespace ArrayEditing { @@ -403,6 +403,23 @@ private static bool BuildArray(ISyncArray array, string name, FieldInfo fieldInf SyncMemberEditorBuilder.BuildList(list, name, listField, ui); var listSlot = ui.Current; listSlot.DestroyWhenLocalUserLeaves(); + + ClearRefs(listSlot); + list.Changed += (IChangeable change) => + { + ClearRefs(listSlot); + }; + void ClearRefs(Slot listSlot) + { + listSlot.FilterWorldElement()?.World.RunInUpdates(3, () => + { + if (listSlot.FilterWorldElement() is null) return; + foreach (var refProxySource in listSlot.GetComponentsInChildren()) + { + refProxySource.Reference.Target = null; + } + }); + } void ArrayDriveCheck(IChangeable changeable) { if (((ISyncArray)changeable).IsDriven) diff --git a/Directory.Build.props b/Directory.Build.props index 57fe131..e888163 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,7 +1,7 @@ Library - netstandard2.0 + net9.0 $(AssemblyTitle).dll 12.0 enable @@ -38,6 +38,6 @@ C:\Program Files (x86)\Steam\steamapps\common\Resonite $(HOME)/.steam/steam/steamapps/common/Resonite D:/Files/Games/Resonite/app - G:\SteamLibrary\steamapps\common\Resonite + G:\SteamLibrary\steamapps\common\Resonite