summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs')
-rw-r--r--Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs
new file mode 100644
index 0000000..b0d123f
--- /dev/null
+++ b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs
@@ -0,0 +1,63 @@
+using UnityEngine;
+
+namespace NGS.MeshFusionPro;
+
+public struct LODGroupSettings
+{
+ public float size;
+
+ public int lodCount;
+
+ public LODFadeMode fadeMode;
+
+ public bool animateCrossFading;
+
+ public float[] screenTransitionsHeight;
+
+ public float[] fadeTransitionsWidth;
+
+ public LODGroupSettings(LODGroup group)
+ {
+ size = group.size;
+ lodCount = group.lodCount;
+ fadeMode = group.fadeMode;
+ animateCrossFading = group.animateCrossFading;
+ screenTransitionsHeight = new float[lodCount];
+ fadeTransitionsWidth = new float[lodCount];
+ LOD[] lODs = group.GetLODs();
+ for (int i = 0; i < lodCount; i++)
+ {
+ LOD lOD = lODs[i];
+ screenTransitionsHeight[i] = lOD.screenRelativeTransitionHeight;
+ fadeTransitionsWidth[i] = lOD.fadeTransitionWidth;
+ }
+ }
+
+ public bool IsEqual(LODGroupSettings settings, float screenHeightThreshold = 0.0001f, float fadeWidthThreshold = 0.0001f)
+ {
+ if (lodCount != settings.lodCount)
+ {
+ return false;
+ }
+ if (fadeMode != settings.fadeMode)
+ {
+ return false;
+ }
+ if (animateCrossFading != settings.animateCrossFading)
+ {
+ return false;
+ }
+ for (int i = 0; i < lodCount; i++)
+ {
+ if (Mathf.Abs(screenTransitionsHeight[i] - settings.screenTransitionsHeight[i]) > screenHeightThreshold)
+ {
+ return false;
+ }
+ if (Mathf.Abs(fadeTransitionsWidth[i] - settings.fadeTransitionsWidth[i]) > fadeWidthThreshold)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+}