diff options
Diffstat (limited to 'Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs')
| -rw-r--r-- | Thronefall_1_57/Decompile/NGS.MeshFusionPro/LODGroupSettings.cs | 63 |
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; + } +} |
