From a7851a4e941105cafc8e6832bb26ac9169f31c21 Mon Sep 17 00:00:00 2001 From: Arne Kiesewetter Date: Fri, 11 Sep 2026 19:24:18 +0200 Subject: [PATCH] Add Re-Upgrade Dash Monkey and add German names for Monkeys --- .../CommunityBugFixCollection.csproj | 2 +- CommunityBugFixCollection/Locale/de.json | 103 ++++++++++++++++-- CommunityBugFixCollection/Locale/en.json | 3 + CommunityBugFixCollection/ReUpgradeDash.cs | 26 +++++ README.md | 1 + 5 files changed, 124 insertions(+), 11 deletions(-) create mode 100644 CommunityBugFixCollection/ReUpgradeDash.cs diff --git a/CommunityBugFixCollection/CommunityBugFixCollection.csproj b/CommunityBugFixCollection/CommunityBugFixCollection.csproj index d9d1b8f..84d0db7 100644 --- a/CommunityBugFixCollection/CommunityBugFixCollection.csproj +++ b/CommunityBugFixCollection/CommunityBugFixCollection.csproj @@ -3,7 +3,7 @@ CommunityBugFixCollection Community Bug-Fix Collection Banane9; Nytra; art0007i; LeCloutPanda; goat; __Choco__; LJ; 989onan - 0.10.2-beta + 0.11.0-beta This MonkeyLoader mod for Resonite that fixes various small Resonite-issues that are still open. README.md LGPL-3.0-or-later diff --git a/CommunityBugFixCollection/Locale/de.json b/CommunityBugFixCollection/Locale/de.json index 4dca68a..e122603 100644 --- a/CommunityBugFixCollection/Locale/de.json +++ b/CommunityBugFixCollection/Locale/de.json @@ -5,52 +5,133 @@ "CommunityBugFixCollection.Name": "Community Bug-Fix Sammlung", "CommunityBugFixCollection.Description": "Diese Mod enthällt Fixes für verschiedene kleine Resonite Issues die noch offen sind.", - "CommunityBugFixCollection.CopyToClipboard": "In Zwischenablage kopieren", - + "CommunityBugFixCollection.AnyProtocolHyperlinks.Name": "Hyperlinks mit beliebigem Protokoll", "CommunityBugFixCollection.AnyProtocolHyperlinks.Description": "Erlaubt es Hyperlink-Komponenten URLs mit beliebigen Schemata zu öffnen, statt nur http(s).", + + "CommunityBugFixCollection.BetterGridWorldPreset.Name": "Bessered Grid Welt Preset", "CommunityBugFixCollection.BetterGridWorldPreset.Description": "Verbessert das Grid Welt Preset indem das zittern des Bodens verhindert und das Grid zentriert wird.", + + "CommunityBugFixCollection.BetterListEditor.Name": "Bessere Listeneditoren", "CommunityBugFixCollection.BetterListEditor.Description": "Verbessert Listeneditoren in Inspektoren, wodurch eine Exception beim Hinzufügen von Elementen verhindert wird und deren Namen beim Verschieben entsprechend angepasst werden.", + + "CommunityBugFixCollection.BreakDragAndDropCopiedComponentDrives.Name": "Drives von Drag'n'Drop-Kopierten Komponenten trennen", "CommunityBugFixCollection.BreakDragAndDropCopiedComponentDrives.Description": "Sorgt dafür, dass Drives beim Kopieren von Komponenten mittels Drag-und-Drop nicht kaputt gehen.", + + "CommunityBugFixCollection.CaseInsensitiveCustomGenerics.Name": "Von Groß- und Kleinschreibung unabhängige Typparameter", "CommunityBugFixCollection.CaseInsensitiveCustomGenerics.Description": "Macht das Auswählen von eigenen generischen Typparametern unabhängig von Groß- und Kleinschreibung.", + + "CommunityBugFixCollection.CenteredNotifications.Name": "Zentrierte Benachrichtigungen", "CommunityBugFixCollection.CenteredNotifications.Description": "Zentriert den Inhalt von Benachrichtigungen.", - "CommunityBugFixCollection.CheckSelfForDuplicateSlot.Description": "Verhindert einen Crash wenn der OverrideParent bei der Duplicate Slot ProtoFlux Node gleich dem Template ist.", + + "CommunityBugFixCollection.ColorDisplayValueProxy.Name": "Werte aus Color-Displays greifen", "CommunityBugFixCollection.ColorDisplayValueProxy.Description": "Sorgt dafür, dass ValueDisplay Nodes eine ValueProxySource-Komponente haben.", + + "CommunityBugFixCollection.ColorXNodeNamesSpacing.Name": "Leerzeichen bei ColorX Node-Namen", "CommunityBugFixCollection.ColorXNodeNamesSpacing.Description": "Korrigiert die Schreibweise der Namen von ProtoFlux Nodes die ColorX enthalten.", + + "CommunityBugFixCollection.ConsistentContextMenuAngularSize.Name": "Einheitliche Kontextmenügröße", "CommunityBugFixCollection.ConsistentContextMenuAngularSize.Description": "Sorgt dafür, dass das Kontextmenü im Desktopmodus immer die gleiche Größe auf dem Bildschirm hat, unabhängig vom Sichtfeld (FOV).", + "CommunityBugFixCollection.ConstantNodeNameAdjustments.Name": "(Alt) Constant Nodenamen Anpassungen", "CommunityBugFixCollection.ConstantNodeNameAdjustments.Description": "(Alt) Ändert die Namen der ProtoFlux Nodes in Strings > Constants darauf, wie sie im ursprünglichen Fix waren.", + + "CommunityBugFixCollection.CopySyncMemberToClipboardAction.Name": "In die Zwischenablage kopieren Aktion", "CommunityBugFixCollection.CopySyncMemberToClipboardAction.Description": "Fügt eine Kopieren Aktion zu Feldern in Inspektoren hinzu, die keine Referenzen sind.", + + "CommunityBugFixCollection.CorrectMaterialGizmoScaling.Name": "Korrekte Skalierung des Material Gizmos", "CommunityBugFixCollection.CorrectMaterialGizmoScaling.Description": "Verhindert, dass das MaterialGizmo zweimal skaliert wird, wenn man Editieren auf dem Materialwerzeug nutzt.", + + "CommunityBugFixCollection.CorrectOverriddenSpelling.Name": "Korrekte Schreibweise von Overridden", "CommunityBugFixCollection.CorrectOverriddenSpelling.Description": "Korrigiert die Schreibweise von Overridden auf ProtoFlux Nodes.", + + "CommunityBugFixCollection.DuplicateAndMoveMultipleGrabbedItems.Name": "Duplizieren und Bewegen von mehreren Objekten", "CommunityBugFixCollection.DuplicateAndMoveMultipleGrabbedItems.Description": "Verhindert, dass Referenzen zwischen mehreren duplizierten oder zwischen Welten transferierten Objekten gebrochen werden.", + + "CommunityBugFixCollection.FadeContextMenuLabelOutlines.Name": "Verblassen von Umrandungen des Kontextmenüs", "CommunityBugFixCollection.FadeContextMenuLabelOutlines.Description": "Sorgt dafür, dass die Umrandungen der Beschriftungen im Kontextmenü genauso verblassen wie der Rest davon.", - "CommunityBugFixCollection.FireBrushToolDequipEvents.Description": "Sorgt dafür, dass von BrushTool abgeleitete Werkzeuge OnDequipped Events abschicken.", + + "CommunityBugFixCollection.FixMigratedItemMessages.Name": "Migrierte Objekt-Nachrichten reparieren", "CommunityBugFixCollection.FixMigratedItemMessages.Description": "Sorgt dafür, dass migrierte Objekte aus Nachrichten gespawnt werden können, obwohl sie noch auf die alte Platform verweisen.", - "CommunityBugFixCollection.GammaCorrectedColorXLuminance.Description": "Korrigiert die Berechnung der Luminanz bei nicht-linearen ColorX Farbprofilen.", + + "CommunityBugFixCollection.FlipAtUserView.Name": "Flip at User Sicht", + "CommunityBugFixCollection.FlipAtUserView.Description": "Korriegiert die FlipAtUser-Komponente, indem der Sichtpunkt, statt dem Head-Slot, als Referenz für die Position genutzt wird.", + + "CommunityBugFixCollection.GammaCorrectedColorXLuminance.Name": "Gamma-korrigierte ColorX Leuchtdichte", + "CommunityBugFixCollection.GammaCorrectedColorXLuminance.Description": "Korrigiert die Berechnung der Leuchtdichte bei nicht-linearen ColorX Farbprofilen.", + + "CommunityBugFixCollection.GroupCloudHomeTemplate.Name": "Gruppen Cloud Home Template", "CommunityBugFixCollection.GroupCloudHomeTemplate.Description": "Verwendet das Benutzertemplate des Cloud Homes statt des fehlenden Gruppentemplates.", + + "CommunityBugFixCollection.HighlightHomeWorldInInventory.Name": "Heimatwelt im Inventar hervorheben", "CommunityBugFixCollection.HighlightHomeWorldInInventory.Description": "Sorgt dafür, dass die ausgewählte Heimatwelt im Inventar korrekt hervorgehoben wird.", + + "CommunityBugFixCollection.ImportMultipleAudioFiles.Name": "Mehrere Audiodateien importieren", "CommunityBugFixCollection.ImportMultipleAudioFiles.Description": "Macht es möglich mehrere Audiodateien auf einmal zu importieren.", - "CommunityBugFixCollection.ImportWebFilesAsUrls.Description": "Sorgt dafür, dass URLs zu Textdateien oder Resonite Packages nicht importiert werden, statt als Hyperlink aufzutauchen.", + + "CommunityBugFixCollection.ImportWebFilesAsUrls.Name": "Webdateien als URL importieren", + "CommunityBugFixCollection.ImportWebFilesAsUrls.Description": "Sorgt dafür, dass URLs zu Textdateien oder Resonite Packages als Hyperlink auftauchen, statt unerfolgreich importiert zu werden.", + + "CommunityBugFixCollection.LocalizedByteFormatting.Name": "Lokalisierte Speichereinheiten", "CommunityBugFixCollection.LocalizedByteFormatting.Description": "Lokalisiert die Speichereinheiten (MiB, GiB, etc.), inbsesondere bei der StorageUsageStatus-Komponente. Es gibt eine Einstellung dafür, die Bytes nach IEC (Faktor 1024) statt dezimal (Faktor 1000) zu formatieren.", + + "CommunityBugFixCollection.LongerWorldLoadingFailIndication.Name": "Verlängertes Anzeigen des Welt-Ladefortschritts-Indikator bei Fehlern", "CommunityBugFixCollection.LongerWorldLoadingFailIndication.Description": "Lässt den Welt-Ladefortschritts-Indikator frühestens nach 20s verschwinden, falls der Vorgang fehlgeschlagen ist.", + + "CommunityBugFixCollection.MemberEditorUpdateOrder.Name": "Member Editor Update Order", "CommunityBugFixCollection.MemberEditorUpdateOrder.Description": "Sets die Update Order von MemberEditor-Komponenten in Inspektoren auf den höchsten Wert, um (meistens) einen Frame Verzögerung beim angezeigten Wert zu verhindern.", + + "CommunityBugFixCollection.NaNtEqual.Name": "Keine gleiche Zahl", "CommunityBugFixCollection.NaNtEqual.Description": "Sorgt dafür, dass NaN float / double Werte sich bei den == und != ProtoFlux Nodes sowie bei der ValueEqualityDriver-Komponente niemals gleichen.", + + "CommunityBugFixCollection.NoAudioOutputCrash.Name": "Kein AudioOutput Crash", "CommunityBugFixCollection.NoAudioOutputCrash.Description": "Verhindert, dass die AudioOutput-Komponente ihre Listener aktualisiert nachdem sie entfernt wurde und damit die Session crasht.", + + "CommunityBugFixCollection.NoLossOfColorProfile.Name": "Kein Verlust des Farbprofils", "CommunityBugFixCollection.NoLossOfColorProfile.Description": "Verhindert, dass Farbprofile nicht bei allen Berechnungen erhalten bleiben.", - "CommunityBugFixCollection.NoZeroScaleToolRaycast.Description": "Verhinder einen Crash wenn (Multi-)Werkzeuge auf null skaliert werden.", + + "CommunityBugFixCollection.NodeNameAdjustments.Name": "Remap Namensanpassungen", "CommunityBugFixCollection.NodeNameAdjustments.Description": "Verbessert die verwirrenden Namen der Remap [-1; 1] zu [0; 1] ProtoFlux Nodes.", + + "CommunityBugFixCollection.NoFunForCorporate.Name": "Kein Spaß für Firmen", "CommunityBugFixCollection.NoFunForCorporate.Description": "Verhindert, dass Aprilscherz-Inhalte ausgelöst werden, wenn der Nutzer in einem Universe ist.
Dies wird durch die Erzwinge Aprilscherze Einstellung überschrieben, welche erzwingt, dass diese Inhalte aktiv sind.", + + "CommunityBugFixCollection.NonHDRColorClamping.Name": "Limitierung bei nicht-HDR Farben", "CommunityBugFixCollection.NonHDRColorClamping.Description": "Korrigiert, dass die nicht-HDR Varianten der Color(X) Kanal-Additionen die Werte nicht limitieren.", + + "CommunityBugFixCollection.NonLinearColorXFromHexCode.Name": "Nicht-lineares colorX von Hexadezimal", "CommunityBugFixCollection.NonLinearColorXFromHexCode.Description": "Zwingt colorX From HexCode das sRGB statt dem Linearen Farbprofil zu nutzen.", + + "CommunityBugFixCollection.NoParentUnderSelfAudioClipPlayer.Name": "Kein ParentUnder Self AudioClipPlayer", "CommunityBugFixCollection.NoParentUnderSelfAudioClipPlayer.Description": "Verhindert, dass die ChildParentAudioClipPlayer-Komponente das Spiel crasht, wenn ihr ParentUnder-Feld auf den Slot, auf dem sie ist, gesetzt ist. Fügt außerdem eine Erklärung des Problems im Header hinzu.", + + "CommunityBugFixCollection.PauseAnimatorUpdates.Name": "Animator-Updates pausieren", "CommunityBugFixCollection.PauseAnimatorUpdates.Description": "Verhindert, dass Animatoren jeden Frame in alle assoziierten Felder schreiben, obwohl sie nicht am animieren sind.", + + "CommunityBugFixCollection.ReallyNoDestroyUndo.Name": "Wirklich NoDestroyUndo", "CommunityBugFixCollection.ReallyNoDestroyUndo.Description": "Sorgt dafür, dass die NoDestroyUndo-Komponente tatsächlich verhindert, dass das Zerstören eines Objekts rückgängig gemacht werden kann.", + + "CommunityBugFixCollection.TriggerDashScreenCleanup.Name": "DashScreen Cleanup auslösen", + "CommunityBugFixCollection.TriggerDashScreenCleanup.Description": "Führt die CleanupOldComponents-Methode der RadiantDashScreen-Komponenten im Userspace erneut aus.", + + "CommunityBugFixCollection.SmoothDraggables.Name": "Glatte Draggables", "CommunityBugFixCollection.SmoothDraggables.Description": "Umgeht, dass Slider und Joints in Headless-Sessions verrutschen.", + + "CommunityBugFixCollection.StationaryGrabWorldActivation.Name": "Stationäre Welt-Greifen Aktivierung", + "CommunityBugFixCollection.StationaryGrabWorldActivation.Description": "Verhindert, dass die Welt-Greifen Fortbewegung den Spieler bei jeder Aktivierung bewegt.", + + "CommunityBugFixCollection.SteamVRFocusResolutionScale.Name": "Steam VR Fokus Auflösungsskalierung", + "CommunityBugFixCollection.SteamVRFocusResolutionScale.Description": "Verhindert, dass das SteamVR Unity Plugin die Renderauflösung dauerhaft verringert, wenn ein Fokusevent verpasst wird.", + + "CommunityBugFixCollection.StopTrackedDeviceSpam.Name": "TrackedDevicePositioner Spam stoppen", "CommunityBugFixCollection.StopTrackedDeviceSpam.Description": "Fügt null-Checks in der UpdateBodyNode-Methode der TrackedDevicePositioner-Komponente hinzu, um Logspam zu verhindern.", + + "CommunityBugFixCollection.TiltedUIAlignment.Name": "Schräges UI-Alignment", "CommunityBugFixCollection.TiltedUIAlignment.Description": "Kippt die UI-fokussierte Kamera, um UIX-Renderprobleme zum umgehen.", - "CommunityBugFixCollection.SteamVRFocusResolutionScale.Description": "Verhindert, dass das SteamVR Unity Plugin die Renderauflösung dauerhaft verringert, wenn ein Fokusevent verpasst wird.", - "CommunityBugFixCollection.StationaryGrabWorldActivation.Description": "Verhindert, dass die Welt-Greifen Fortbewegung den Spieler bei jeder Aktivierung bewegt.", - "CommunityBugFixCollection.ValidQuaternionInputs.Description": "Lässt das ProtoFlux-Tool valide float und double Quaternions spawnen.", + + "CommunityBugFixCollection.ValidQuaternionInputs.Name": "Gültige Quaternion-Werte", + "CommunityBugFixCollection.ValidQuaternionInputs.Description": "Lässt das ProtoFlux-Tool valide float und double Quaternion-Werte spawnen.", + + "CommunityBugFixCollection.ValueModDecimal.Name": "Kein Decimal Modulo Crash", "CommunityBugFixCollection.ValueModDecimal.Description": "Fügt eine Nullprüfung bei der Decimal ValueMod ProtoFlux Node hinzu, um einen Crash bei der Teilung durch Null zu verhindern.", "CommunityBugFixCollection.Config.Options.Name": "Optionen", @@ -60,6 +141,8 @@ "CommunityBugFixCollection.Config.Options.UseIecByteFormat.Name": "IEC Byte-Format Benutzen", "CommunityBugFixCollection.Config.Options.UseIecByteFormat.Description": "Ob Bytes nach IEC (Faktor 1024) statt dezimal (Faktor 1000) formatiert werden sollen, wenn LocalizedByteFormatting aktiviert ist.", + "CommunityBugFixCollection.CopyToClipboard": "In Zwischenablage kopieren", + "CommunityBugFixCollection.ChildParentAudioClipPlayer.Header": "Das ParentUnder-Feld dieser AudioClipPlayer-Komponente darf niemals auf den Slot, auf dem sie ist, gesetzt werden. Andernfalls crasht das Spiel wenn ein Clip ausgelöst wird." } } \ No newline at end of file diff --git a/CommunityBugFixCollection/Locale/en.json b/CommunityBugFixCollection/Locale/en.json index 09179d2..abc2fa7 100644 --- a/CommunityBugFixCollection/Locale/en.json +++ b/CommunityBugFixCollection/Locale/en.json @@ -115,6 +115,9 @@ "CommunityBugFixCollection.ReallyNoDestroyUndo.Name": "Really NoDestroyUndo", "CommunityBugFixCollection.ReallyNoDestroyUndo.Description": "Makes the NoDestroyUndo component actually prevent undoing destroying something.", + "CommunityBugFixCollection.TriggerDashScreenCleanup.Name": "Trigger DashScreen Cleanup", + "CommunityBugFixCollection.TriggerDashScreenCleanup.Description": "Re-runs the CleanupOldComponents method of the RadiantDashScreen components in Userspace.", + "CommunityBugFixCollection.SmoothDraggables.Name": "Smooth Draggables", "CommunityBugFixCollection.SmoothDraggables.Description": "Workaround for Sliders and Joints snapping in sessions hosted by a headless.", diff --git a/CommunityBugFixCollection/ReUpgradeDash.cs b/CommunityBugFixCollection/ReUpgradeDash.cs new file mode 100644 index 0000000..aaa34ce --- /dev/null +++ b/CommunityBugFixCollection/ReUpgradeDash.cs @@ -0,0 +1,26 @@ +using FrooxEngine; + +namespace CommunityBugFixCollection +{ + internal sealed class ReUpgradeDash : ResoniteBugFixMonkey + { + public override IEnumerable Authors => Contributors.Banane9; + + protected override bool OnComputeDefaultEnabledState() + => false; + + protected override void OnEnabled() + { + base.OnEnabled(); + + var userspaceDash = Userspace.Current.World + .GetGloballyRegisteredComponent(); + + userspaceDash.Slot.ForeachComponentInChildren( + dashScreen => dashScreen.CleanupOldComponents(RadiantDashScreen.DASH_SCREENS_CLEANUP_VERSION), + cacheItems: true); + + Enabled = false; + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index efbb53f..49f0c20 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ just disable them in the settings in the meantime. * _Copy to Clipboard_ action on any non-reference member fields in Inspectors (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/810) * Force April Fools content to be active +* Allow re-running the CleanupOldComponents method of the RadiantDashScreen components in Userspace ([requested by ProbablePrime himself](https://discord.com/channels/901126079857692714/1542746876091174962/1542746876091174962)) ## Closed Issues