using System; using Cpp2IlInjected; using UnityEngine; namespace ClusterLOD { // Token: 0x02001340 RID: 4928 [Token(Token = "0x2001340")] [CreateAssetMenu] public class ClusterLODConfig : ScriptableObject { // Token: 0x06006E8D RID: 28301 RVA: 0x001841AC File Offset: 0x001823AC [Token(Token = "0x6006E8D")] [Address(RVA = "0x1F3CC80", Offset = "0x1F3BC80", VA = "0x181F3CC80")] public ClusterLODConfig.LODSettings GetSettings(NPBPPKDLKDN lod) { if (lod != NPBPPKDLKDN.Near) { return this.far; } return this.near; } // Token: 0x06006E8E RID: 28302 RVA: 0x001841CC File Offset: 0x001823CC [Token(Token = "0x6006E8E")] [Address(RVA = "0x1F3CC60", Offset = "0x1F3BC60", VA = "0x181F3CC60")] public int GetMaxNumActiveLOD0Verts() { return this.maxDynamicNearVerts; } // Token: 0x06006E8F RID: 28303 RVA: 0x001841E0 File Offset: 0x001823E0 [Token(Token = "0x6006E8F")] [Address(RVA = "0x1F3CC90", Offset = "0x1F3BC90", VA = "0x181F3CC90")] public ClusterLODConfig() { } // Token: 0x040048F2 RID: 18674 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40048F2")] [Header("Layer Settings")] public float maxRadiusForDetailObjects = 1f; // Token: 0x040048F3 RID: 18675 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x40048F3")] public int maxWorldLODVerts = (int)((ulong)80000L); // Token: 0x040048F4 RID: 18676 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40048F4")] public int maxWorldNearVerts = (int)((ulong)30000L); // Token: 0x040048F5 RID: 18677 [FieldOffset(Offset = "0x24")] [Token(Token = "0x40048F5")] public int maxDetailNearVerts = (int)((ulong)30000L); // Token: 0x040048F6 RID: 18678 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40048F6")] public int maxDetailFarVerts = (int)((ulong)50000L); // Token: 0x040048F7 RID: 18679 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x40048F7")] public int maxDynamicNearVerts = (int)((ulong)30000L); // Token: 0x040048F8 RID: 18680 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40048F8")] public int maxDynamicFarVerts = (int)((ulong)50000L); // Token: 0x040048F9 RID: 18681 [FieldOffset(Offset = "0x34")] [Token(Token = "0x40048F9")] [Header("Creation Settings")] public int minNumObjectPerCluster = (int)((ulong)5L); // Token: 0x040048FA RID: 18682 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40048FA")] public float distributeVSminimize = 0.5f; // Token: 0x040048FB RID: 18683 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40048FB")] [Header("Near Settings")] public ClusterLODConfig.LODSettings near; // Token: 0x040048FC RID: 18684 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40048FC")] [Header("Far Settings")] public ClusterLODConfig.LODSettings far; // Token: 0x040048FD RID: 18685 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40048FD")] public float backfaceCullingThreshold = 0.1f; // Token: 0x040048FE RID: 18686 [FieldOffset(Offset = "0x54")] [Token(Token = "0x40048FE")] public float triangleCullingDistFactor = 150f; // Token: 0x040048FF RID: 18687 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40048FF")] public float LOD0VertCacheFrac = 2f; // Token: 0x02001341 RID: 4929 [Token(Token = "0x2001341")] [Serializable] public class LODSettings { // Token: 0x170011CD RID: 4557 // (get) Token: 0x06006E90 RID: 28304 RVA: 0x00184284 File Offset: 0x00182484 [Token(Token = "0x170011CD")] public bool ShouldSubDivide { [Token(Token = "0x6006E90")] [Address(RVA = "0x1F492A0", Offset = "0x1F482A0", VA = "0x181F492A0")] get { /* An exception occurred when decompiling this method (06006E90) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean ClusterLOD.ClusterLODConfig/LODSettings::get_ShouldSubDivide() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_0F: stloc:float32(var_3_15, ldfld:float32(LODSettings::maxSubDivideDistance, ldloc:LODSettings(this))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } } // Token: 0x170011CE RID: 4558 // (get) Token: 0x06006E91 RID: 28305 RVA: 0x001842A8 File Offset: 0x001824A8 [Token(Token = "0x170011CE")] public bool UseTangents { [Token(Token = "0x6006E91")] [Address(RVA = "0x9C40B0", Offset = "0x9C30B0", VA = "0x1809C40B0")] get { return this.useMaterials; } } // Token: 0x06006E92 RID: 28306 RVA: 0x001842BC File Offset: 0x001824BC [Token(Token = "0x6006E92")] [Address(RVA = "0x1F49260", Offset = "0x1F48260", VA = "0x181F49260")] public LODSettings() { } // Token: 0x04004900 RID: 18688 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4004900")] public float maxRadiusOfCluster = 5f; // Token: 0x04004901 RID: 18689 [FieldOffset(Offset = "0x14")] [Token(Token = "0x4004901")] public int minNumVertsInCluster = (int)((ulong)2000L); // Token: 0x04004902 RID: 18690 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4004902")] public int maxNumVertsInCluster = (int)((ulong)20000L); // Token: 0x04004903 RID: 18691 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4004903")] public float useLowestDetailAtSmallerRadius = 0.2f; // Token: 0x04004904 RID: 18692 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4004904")] public float useHighestDetailAtGreaterRadius = 0.8f; // Token: 0x04004905 RID: 18693 [FieldOffset(Offset = "0x24")] [Token(Token = "0x4004905")] public float maxVertSnapDist = 0.01f; // Token: 0x04004906 RID: 18694 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4004906")] public float vertexNormalCombineThresh = 0.8f; // Token: 0x04004907 RID: 18695 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x4004907")] public float maxSubDivideEdgeSize; // Token: 0x04004908 RID: 18696 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4004908")] public float maxSubDivideDistance; // Token: 0x04004909 RID: 18697 [FieldOffset(Offset = "0x34")] [Token(Token = "0x4004909")] public bool cullEncapsulated = true; // Token: 0x0400490A RID: 18698 [FieldOffset(Offset = "0x35")] [Token(Token = "0x400490A")] public bool useMaterials; } } }