Skip to content

Commit b2c8898

Browse files
committed
Make the ProtoFlux Tool spawn valid float and double quaternion inputs
Adds a workaround for Yellow-Dog-Man/Resonite-Issues#2979
1 parent 3681a57 commit b2c8898

File tree

4 files changed

+46
-0
lines changed

4 files changed

+46
-0
lines changed

CommunityBugFixCollection/Locale/de.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"CommunityBugFixCollection.SmoothDraggables.Description": "Umgeht, dass Slider und Joints in Headless-Sessions verrutschen.",
4343
"CommunityBugFixCollection.TiltedUIAlignment.Description": "Kippt die UI-fokussierte Kamera, um UIX-Renderprobleme zum umgehen.",
4444
"CommunityBugFixCollection.StationaryGrabWorldActivation.Description": "Verhindert, dass die Welt-Greifen Fortbewegung den Spieler bei jeder Aktivierung bewegt.",
45+
"CommunityBugFixCollection.ValidQuaternionInputs.Description": "Lässt das ProtoFlux-Tool valide float und double Quaternions spawnen.",
4546
"CommunityBugFixCollection.UserInspectorAsNonHost.Description": "Sorgt dafür, dass Benutzer-Inspektoren bereits präsente Benutzer auch in Sessions anzeigen, in denen man nicht der Host ist."
4647
}
4748
}

CommunityBugFixCollection/Locale/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"CommunityBugFixCollection.StationaryGrabWorldActivation.Description": "Stops the Grab World Locomotion from moving the player with each activiation.",
4444
"CommunityBugFixCollection.TiltedUIAlignment.Description": "Tilts the UI-Focus camera to work around UIX rendering issues.",
4545
"CommunityBugFixCollection.UserInspectorAsNonHost.Description": "Fixes UserInspectors not listing existing users in the session for non-host users.",
46+
"CommunityBugFixCollection.ValidQuaternionInputs.Description": "Makes the ProtoFlux Tool spawn valid float and double quaternion inputs.",
4647
"CommunityBugFixCollection.ValueModDecimal.Description": "Adds a zero check to the Decimal ValueMod ProtoFlux node to prevent DIV/0 crashes"
4748
}
4849
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using Elements.Core;
2+
using FrooxEngine.ProtoFlux;
3+
using FrooxEngine.ProtoFlux.Runtimes.Execution.Nodes;
4+
using HarmonyLib;
5+
using MonkeyLoader;
6+
using MonkeyLoader.Resonite;
7+
using System;
8+
using System.Collections.Generic;
9+
using System.Text;
10+
11+
namespace CommunityBugFixCollection
12+
{
13+
[HarmonyPatchCategory(nameof(ValidQuaternionInputs))]
14+
[HarmonyPatch(typeof(ProtoFluxTool), nameof(ProtoFluxTool.SpawnNode), [typeof(Type), typeof(Action<ProtoFluxNode>)])]
15+
internal sealed class ValidQuaternionInputs : ResoniteMonkey<ValidQuaternionInputs>
16+
{
17+
public override IEnumerable<string> Authors => Contributors.Banane9;
18+
19+
public override bool CanBeDisabled => true;
20+
21+
private static void Postfix(ProtoFluxNode __result)
22+
{
23+
if (!Enabled)
24+
return;
25+
26+
Logger.Info(() => $"__result is: {__result.GetType().CompactDescription()}");
27+
28+
__result.RunInUpdates(0, () =>
29+
{
30+
if (__result is ValueInput<floatQ> floatQInput)
31+
{
32+
floatQInput.Value.Value = floatQ.Identity;
33+
return;
34+
}
35+
36+
if (__result is ValueInput<doubleQ> doubleQInput)
37+
doubleQInput.Value.Value = doubleQ.Identity;
38+
});
39+
}
40+
}
41+
}

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ just disable them in the settings in the meantime.
7171

7272
* Sliders and Joints snapping in sessions hosted by a headless (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/399)
7373
* Missing Cloud Home template for Groups (fallback to User Cloud Home) (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1144)
74+
* ProtoFlux inputs for float and double quaternions being spawned with invalid values
75+
* https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1158
76+
* https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2979
7477
* UIX Rendering issues in UI-Focus mode (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1292)
7578

7679

0 commit comments

Comments
 (0)