From c03350b4944b97585bb63b69ec8e887b205e5654 Mon Sep 17 00:00:00 2001 From: Nytra <14206961+Nytra@users.noreply.github.com> Date: Sat, 23 Aug 2025 16:46:32 +0100 Subject: [PATCH 1/3] net9 and clear proxy list refs --- ArrayEditing/ArrayEditing.csproj | 12 ++++++------ ArrayEditing/ArrayEditor.cs | 28 +++++++++++++++++++++++----- Directory.Build.props | 4 ++-- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/ArrayEditing/ArrayEditing.csproj b/ArrayEditing/ArrayEditing.csproj index 2cedb9d..60ba4da 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,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 329e89b..771c1b1 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,24 @@ 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) + { + if (listSlot == null || listSlot.IsRemoved) return; + listSlot.World.RunInUpdates(3, () => + { + if (listSlot == null || listSlot.IsRemoved) 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 From 4d17c636d33764bd85a76231610832d30add83c2 Mon Sep 17 00:00:00 2001 From: Nytra <14206961+Nytra@users.noreply.github.com> Date: Sat, 23 Aug 2025 20:53:34 +0100 Subject: [PATCH 2/3] Use FilterWorldElement --- ArrayEditing/ArrayEditor.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ArrayEditing/ArrayEditor.cs b/ArrayEditing/ArrayEditor.cs index 771c1b1..dc909d0 100644 --- a/ArrayEditing/ArrayEditor.cs +++ b/ArrayEditing/ArrayEditor.cs @@ -411,10 +411,9 @@ private static bool BuildArray(ISyncArray array, string name, FieldInfo fieldInf }; void ClearRefs(Slot listSlot) { - if (listSlot == null || listSlot.IsRemoved) return; - listSlot.World.RunInUpdates(3, () => + listSlot.FilterWorldElement()?.World.RunInUpdates(3, () => { - if (listSlot == null || listSlot.IsRemoved) return; + if (listSlot.FilterWorldElement() is null) return; foreach (var refProxySource in listSlot.GetComponentsInChildren()) { refProxySource.Reference.Target = null; From 59abfbcfd2836402c0b3ca72b6ec9e6d2c91b7c3 Mon Sep 17 00:00:00 2001 From: Nytra <14206961+Nytra@users.noreply.github.com> Date: Sat, 23 Aug 2025 20:57:53 +0100 Subject: [PATCH 3/3] Update reso packages --- ArrayEditing/ArrayEditing.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ArrayEditing/ArrayEditing.csproj b/ArrayEditing/ArrayEditing.csproj index 0660df0..61d228a 100644 --- a/ArrayEditing/ArrayEditing.csproj +++ b/ArrayEditing/ArrayEditing.csproj @@ -45,7 +45,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + +