Decompiled source of Quads Hub Raceway v0.1.0
plugins/HubRaceway/HubRaceway.dll
Decompiled a day ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Microsoft.CodeAnalysis; using Pigeon.Movement; using TMPro; using Unity.Collections; using Unity.Netcode; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyMetadata("AI_Assisted_Creation", "This assembly was partially or fully created with the assistance of Generative AI.")] [assembly: AssemblyMetadata("AI_Model_Vendor", "Anthropic")] [assembly: AssemblyCompany("HubRaceway")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+a4c9c15fccc4380af4b955fe041d400d05963ee9")] [assembly: AssemblyProduct("HubRaceway")] [assembly: AssemblyTitle("HubRaceway")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace HubRaceway { internal sealed class Builder { public sealed class PadParts { public Material Edge; public Color Color; public Transform Holo; } public sealed class PortalParts { public Transform Root; public Transform RingA; public Transform RingB; public Material Surface; public TextMeshPro Status; public TextMeshPro StatusBack; } public sealed class MeshData { private readonly List<Vector3> verts = new List<Vector3>(); private readonly List<Vector2> uvs = new List<Vector2>(); private readonly List<int> tris = new List<int>(); public bool Empty => tris.Count == 0; public void Strip(Track track, Vector2 a, Vector2 b, float u0, float u1, float vPerMetre, int from, int to, bool when = true) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) if (when && to > from) { int count = verts.Count; for (int i = from; i <= to; i++) { float num = (float)i * track.Step * vPerMetre; verts.Add(track.At(i, a.x, a.y)); uvs.Add(new Vector2(u0, num)); verts.Add(track.At(i, b.x, b.y)); uvs.Add(new Vector2(u1, num)); } for (int j = 0; j < to - from; j++) { int num2 = count + j * 2; tris.AddRange(new int[6] { num2, num2 + 2, num2 + 3, num2, num2 + 3, num2 + 1 }); } } } public void Sweep(Track track, List<Vector2>[] outlines, int ka, int kb, int from, float u0, float u1, float vPerMetre) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) int count = verts.Count; for (int i = 0; i < outlines.Length; i++) { Vector2 val = outlines[i][ka]; Vector2 val2 = outlines[i][kb]; float num = (float)(from + i) * track.Step * vPerMetre; verts.Add(track.At(from + i, val.x, val.y)); uvs.Add(new Vector2(u0, num)); verts.Add(track.At(from + i, val2.x, val2.y)); uvs.Add(new Vector2(u1, num)); } for (int j = 0; j < outlines.Length - 1; j++) { int num2 = count + j * 2; tris.AddRange(new int[6] { num2, num2 + 2, num2 + 3, num2, num2 + 3, num2 + 1 }); } } public void Quad(Vector3 bl, Vector3 tl, Vector3 tr, Vector3 br) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) int count = verts.Count; verts.Add(bl); verts.Add(tl); verts.Add(tr); verts.Add(br); uvs.Add(new Vector2(0f, 0f)); uvs.Add(new Vector2(0f, 1f)); uvs.Add(new Vector2(1f, 1f)); uvs.Add(new Vector2(1f, 0f)); tris.AddRange(new int[6] { count, count + 1, count + 2, count, count + 2, count + 3 }); } public void Quad(Vector3 center, Vector3 right, Vector3 up, float width, float height, bool flipU) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((Vector3)(ref right)).normalized * (width / 2f); Vector3 val2 = ((Vector3)(ref up)).normalized * (height / 2f); int count = verts.Count; verts.Add(center - val - val2); verts.Add(center - val + val2); verts.Add(center + val + val2); verts.Add(center + val - val2); float num = (flipU ? 1f : 0f); float num2 = (flipU ? 0f : 1f); uvs.Add(new Vector2(num, 0f)); uvs.Add(new Vector2(num, 1f)); uvs.Add(new Vector2(num2, 1f)); uvs.Add(new Vector2(num2, 0f)); tris.AddRange(new int[6] { count, count + 1, count + 2, count, count + 2, count + 3 }); } public void Box(Vector3 center, Quaternion rotation, Vector3 size) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) Vector3 val = rotation * Vector3.right * (size.x / 2f); Vector3 val2 = rotation * Vector3.up * (size.y / 2f); Vector3 val3 = rotation * Vector3.forward * (size.z / 2f); Quad(center - val3 - val - val2, center - val3 - val + val2, center - val3 + val + val2, center - val3 + val - val2); Quad(center + val3 + val - val2, center + val3 + val + val2, center + val3 - val + val2, center + val3 - val - val2); Quad(center - val + val3 - val2, center - val + val3 + val2, center - val - val3 + val2, center - val - val3 - val2); Quad(center + val - val3 - val2, center + val - val3 + val2, center + val + val3 + val2, center + val + val3 - val2); Quad(center + val2 - val3 - val, center + val2 + val3 - val, center + val2 + val3 + val, center + val2 - val3 + val); Quad(center - val2 + val3 - val, center - val2 - val3 - val, center - val2 - val3 + val, center - val2 + val3 + val); } public Mesh ToMesh(string name) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown Mesh val = new Mesh { name = name, indexFormat = (IndexFormat)1 }; val.SetVertices(verts); val.SetUVs(0, uvs); val.SetTriangles(tris, 0); val.RecalculateNormals(); val.RecalculateBounds(); return val; } } public const float WallHeight = 1.6f; public const float WallThickness = 0.8f; public const float SlabDepth = 1.5f; public const float FenceHeight = 6f; public const float PaddockDepth = 44f; public const int GridSlots = 8; public static readonly Color Orange = new Color(1f, 0.36f, 0.12f); public static readonly Color Cyan = new Color(0.15f, 0.85f, 1f); public static readonly Color Magenta = new Color(1f, 0.2f, 0.75f); public readonly List<Object> Owned = new List<Object>(); private readonly Transform root; private readonly Track track; private Shader shader; public Material Road; public Material Concrete; public Material WallFace; public Material Dark; public Material Metal; public Material Glow; public Material EdgeGlow; public Material Lamp; public Material Checker; public Material Paint; public Material Chevron; public Material BoostPad; public Material ItemBox; public Material Oil; public Material Pipe; public Material Rust; public Material Tiles; public Material HubGlow; public readonly Material[] Chase = (Material[])(object)new Material[3]; public readonly Material[] StartLights = (Material[])(object)new Material[4]; public int PaddockFrom; public int PaddockTo; private float roadTile; public Vector3 PaddockCenter; public Vector3 PaddockAcross; public Vector3 PaddockForward; private readonly Dictionary<Material, MeshData> batches = new Dictionary<Material, MeshData>(); private readonly Dictionary<Material, MeshData> solidBatches = new Dictionary<Material, MeshData>(); private readonly Dictionary<PrimitiveType, GameObject> primitives = new Dictionary<PrimitiveType, GameObject>(); public const float DaisHeight = 0.4f; private float paddockLength; public TMP_FontAsset Font { get; private set; } public int TunnelFrom => track.TunnelFrom; public int TunnelTo => track.TunnelTo; public Vector3 Arrival => PaddockCenter - PaddockAcross * 9f; public Vector3 BoardSpot => PaddockCenter + PaddockAcross * 1f + PaddockForward * (paddockLength / 2f - 2.5f); public Builder(Transform root, Track track) { this.root = root; this.track = track; PaddockTo = track.Count - 10; PaddockFrom = PaddockTo - Mathf.RoundToInt(80f / track.Step); } public bool InTunnel(int i) { return track.InTunnel(i); } public void MakeMaterials() { //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) shader = Shader.Find("Universal Render Pipeline/Lit"); if ((Object)(object)shader == (Object)null) { MeshRenderer val = Object.FindFirstObjectByType<MeshRenderer>(); if ((Object)(object)val != (Object)null && (Object)(object)((Renderer)val).sharedMaterial != (Object)null) { shader = ((Renderer)val).sharedMaterial.shader; } } TMP_Text[] array = Object.FindObjectsByType<TMP_Text>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (TMP_Text val2 in array) { if ((Object)(object)val2.font != (Object)null) { Font = val2.font; break; } } Road = MakeMaterial(Color.white, RoadTexture(), 0.35f); Concrete = MakeMaterial(new Color(0.8f, 0.8f, 0.78f), null, 0.15f); WallFace = MakeMaterial(Color.white, WallTexture(), 0.2f); Dark = MakeMaterial(new Color(0.12f, 0.11f, 0.13f), null, 0.2f); Metal = MakeMaterial(new Color(0.32f, 0.33f, 0.36f), null, 0.55f); Glow = MakeMaterial(Orange, null, 0.5f, Orange * 1.1f); EdgeGlow = MakeMaterial(Cyan, null, 0.5f, Cyan * 1.3f); Lamp = MakeMaterial(new Color(1f, 0.92f, 0.75f), null, 0.5f, new Color(1f, 0.85f, 0.6f) * 1.6f); Checker = MakeMaterial(Color.white, CheckerTexture(), 0.2f); Paint = MakeMaterial(new Color(0.95f, 0.95f, 0.95f), (Texture2D)null, 0.2f, (Color?)new Color(0.5f, 0.5f, 0.5f), emissionMap: false); Chevron = MakeMaterial(Color.white, ChevronTexture(), 0.3f, Color.white * 0.9f, emissionMap: true); BoostPad = MakeMaterial(Color.white, BoostTexture(), 0.4f, Color.white * 1.4f, emissionMap: true); ItemBox = MakeMaterial(Magenta, null, 0.8f, Magenta); Color[] array2 = (Color[])(object)new Color[3] { Cyan, Magenta, Orange }; for (int j = 0; j < 3; j++) { Chase[j] = MakeMaterial(array2[j], null, 0.5f, array2[j]); } for (int k = 0; k < 4; k++) { StartLights[k] = MakeMaterial(new Color(0.08f, 0.08f, 0.08f), null, 0.7f, Color.black); } Oil = MakeMaterial(new Color(0.05f, 0.03f, 0.09f), null, 0.95f); Dictionary<string, Material> hub = new Dictionary<string, Material>(); MeshRenderer[] array3 = Object.FindObjectsByType<MeshRenderer>((FindObjectsSortMode)0); for (int i = 0; i < array3.Length; i++) { Material[] sharedMaterials = ((Renderer)array3[i]).sharedMaterials; foreach (Material val3 in sharedMaterials) { if ((Object)(object)val3 != (Object)null && !hub.ContainsKey(((Object)val3).name)) { hub[((Object)val3).name] = val3; } } } Pipe = Hub("HubPipeRed", MakeMaterial(new Color(0.7f, 0.15f, 0.12f), null, 0.3f)); Rust = Hub("HubPipeRusty", Metal); Tiles = Hub("ReactorTile2 Mat", Concrete); HubGlow = Hub("HubLight", Glow); WallFace = Hub("HubPanel", WallFace); Concrete = Hub("HubPanel Dark", Concrete); Dark = Hub("HubPanel Darker", Dark); Plugin.Log.LogInfo((object)("Hub Raceway: dressed in the hub's materials: " + (hub.ContainsKey("HubPanel") ? "yes" : "no (our own)"))); Material Hub(string name, Material fallback) { if (!hub.TryGetValue(name, out var value)) { return fallback; } return value; } } public Material MakeMaterial(Color color, Texture2D texture, float smoothness, Color? emission = null, bool emissionMap = false) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) Material val = new Material(shader); val.SetColor("_BaseColor", color); val.SetColor("_Color", color); if ((Object)(object)texture != (Object)null) { val.SetTexture("_BaseMap", (Texture)(object)texture); val.SetTexture("_MainTex", (Texture)(object)texture); } val.SetFloat("_Smoothness", smoothness); val.SetFloat("_Metallic", 0f); if (emission.HasValue) { val.EnableKeyword("_EMISSION"); val.SetColor("_EmissionColor", emission.Value); if (emissionMap && (Object)(object)texture != (Object)null) { val.SetTexture("_EmissionMap", (Texture)(object)texture); } val.globalIlluminationFlags = (MaterialGlobalIlluminationFlags)0; } Owned.Add((Object)(object)val); return val; } public static void SetEmission(Material m, Color c) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) m.SetColor("_EmissionColor", c); } private Texture2D NewTexture(int w, int h, bool mips) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Expected O, but got Unknown Texture2D val = new Texture2D(w, h, (TextureFormat)4, mips); ((Texture)val).wrapMode = (TextureWrapMode)0; ((Texture)val).anisoLevel = 8; Owned.Add((Object)(object)val); return val; } private Texture2D RoadTexture() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) Texture2D val = NewTexture(128, 256, mips: true); Color32[] array = (Color32[])(object)new Color32[32768]; Random random = new Random(7); Color val2 = default(Color); for (int i = 0; i < 256; i++) { for (int j = 0; j < 128; array[i * 128 + j] = Color32.op_Implicit(val2), j++) { if (j < 5 || j >= 123) { val2 = ((i / 32 % 2 == 0) ? new Color(0.85f, 0.12f, 0.1f) : new Color(0.92f, 0.92f, 0.9f)); continue; } switch (j) { case 6: case 121: ((Color)(ref val2))..ctor(0.9f, 0.9f, 0.88f); continue; case 63: case 64: if (i % 64 < 32) { ((Color)(ref val2))..ctor(0.95f, 0.8f, 0.3f); continue; } break; } if ((j == 32 || j == 96) && i % 64 < 16) { ((Color)(ref val2))..ctor(0.55f, 0.55f, 0.55f); continue; } float num = 0.15f + (float)random.NextDouble() * 0.05f; if ((float)j > 38.4f && (float)j < 89.6f) { num -= 0.02f; } ((Color)(ref val2))..ctor(num, num, num * 1.05f); } } val.SetPixels32(array); val.Apply(true); return val; } private Texture2D WallTexture() { //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) Texture2D val = NewTexture(32, 64, mips: true); Color32[] array = (Color32[])(object)new Color32[2048]; Color val2 = default(Color); for (int i = 0; i < 64; i++) { for (int j = 0; j < 32; j++) { ((Color)(ref val2))..ctor(0.86f, 0.86f, 0.84f); if (j < 10) { ((Color)(ref val2))..ctor(0.78f, 0.13f, 0.1f); } if (j == 10 || j == 30) { ((Color)(ref val2))..ctor(0.25f, 0.25f, 0.27f); } if (i == 0 || i == 63) { ((Color)(ref val2))..ctor(0.35f, 0.35f, 0.37f); } array[i * 32 + j] = Color32.op_Implicit(val2); } } val.SetPixels32(array); val.Apply(true); return val; } private Texture2D CheckerTexture() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) Texture2D val = NewTexture(2, 2, mips: false); val.SetPixels32((Color32[])(object)new Color32[4] { new Color32((byte)20, (byte)20, (byte)20, byte.MaxValue), new Color32((byte)240, (byte)240, (byte)240, byte.MaxValue), new Color32((byte)240, (byte)240, (byte)240, byte.MaxValue), new Color32((byte)20, (byte)20, (byte)20, byte.MaxValue) }); ((Texture)val).filterMode = (FilterMode)0; val.Apply(false); return val; } private Texture2D ChevronTexture() { //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) Texture2D val = NewTexture(64, 32, mips: true); ((Texture)val).wrapMode = (TextureWrapMode)1; Color32[] array = (Color32[])(object)new Color32[2048]; for (int i = 0; i < 32; i++) { for (int j = 0; j < 64; j++) { float num = Mathf.Abs((float)i - 16f + 0.5f); bool flag = Mathf.Repeat((float)j - num, 21.3f) < 8f && i > 3 && i < 28; bool flag2 = i < 2 || i >= 30; array[i * 64 + j] = (Color32)(flag ? Color32.op_Implicit(Orange) : (flag2 ? new Color32((byte)230, (byte)230, (byte)230, byte.MaxValue) : new Color32((byte)12, (byte)12, (byte)14, byte.MaxValue))); } } val.SetPixels32(array); val.Apply(true); return val; } private Texture2D BoostTexture() { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) Texture2D val = NewTexture(64, 64, mips: true); Color32[] array = (Color32[])(object)new Color32[4096]; for (int i = 0; i < 64; i++) { for (int j = 0; j < 64; j++) { float num = Mathf.Abs((float)j - 32f + 0.5f); bool flag = Mathf.Repeat((float)i + num * 0.9f, 32f) < 11f && num < 26f; array[i * 64 + j] = (flag ? new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue) : new Color32((byte)10, (byte)120, (byte)170, byte.MaxValue)); } } val.SetPixels32(array); val.Apply(true); return val; } public void BuildTrack() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) float num = 14f; float num2 = 0.8f; float num3 = 1.6f; float num4 = 1.5f; _ = track.Count; roadTile = track.Length / Mathf.Round(track.Length / 16f); MeshData meshData = new MeshData(); MeshData meshData2 = new MeshData(); MeshData meshData3 = Batch(EdgeGlow); foreach (var (num5, to) in OutsideTube()) { meshData.Strip(track, new Vector2(0f - num, 0f), new Vector2(num, 0f), 0f, 1f, 1f / roadTile, num5, to); meshData2.Strip(track, new Vector2(num + num2, 0f - num4), new Vector2(0f - num - num2, 0f - num4), 0f, 1f, 0.1f, num5, to); meshData3.Strip(track, new Vector2(0f - num + 0.6f, 0.025f), new Vector2(0f - num + 0.9f, 0.025f), 0f, 1f, 0.1f, num5, to); meshData3.Strip(track, new Vector2(num - 0.9f, 0.025f), new Vector2(num - 0.6f, 0.025f), 0f, 1f, 0.1f, num5, to); } Spawn("Road", meshData, Road, collide: true, (SurfaceMaterial)1); meshData2.Strip(track, new Vector2(num, 0f), new Vector2(num, 0f - num4), 0f, 1f, 0.1f, PaddockFrom, PaddockTo, when: false); meshData2.Strip(track, new Vector2(0f - num, 0f - num4), new Vector2(0f - num, 0f), 0f, 1f, 0.1f, PaddockFrom, PaddockTo); Spawn("Underside", meshData2, Dark, collide: true, (SurfaceMaterial)2); MeshData meshData4 = new MeshData(); MeshData meshData5 = new MeshData(); MeshData meshData6 = Batch(HubGlow); MeshData meshData7 = new MeshData(); int[] array = new int[2] { -1, 1 }; foreach (int num6 in array) { foreach (var item3 in WallRuns(num6)) { int item = item3.Item1; int item2 = item3.Item2; float num7 = num6; if (num6 < 0) { meshData4.Strip(track, new Vector2(0f - num, num3), new Vector2(0f - num, 0f), 1f, 0f, 1f / 6f, item, item2); } else { meshData4.Strip(track, new Vector2(num, 0f), new Vector2(num, num3), 0f, 1f, 1f / 6f, item, item2); } meshData5.Strip(track, new Vector2(num7 * ((num6 < 0) ? (num + num2) : num), num3), new Vector2(num7 * ((num6 < 0) ? num : (num + num2)), num3), 0f, 1f, 0.1f, item, item2); meshData5.Strip(track, new Vector2(num7 * (num + num2), (num6 < 0) ? (0f - num4) : num3), new Vector2(num7 * (num + num2), (num6 < 0) ? num3 : (0f - num4)), 0f, 1f, 0.1f, item, item2); float num8 = num7 * (num + num2 * 0.5f - 0.18f); float num9 = num7 * (num + num2 * 0.5f + 0.18f); meshData6.Strip(track, new Vector2(Mathf.Min(num8, num9), num3 + 0.04f), new Vector2(Mathf.Max(num8, num9), num3 + 0.04f), 0f, 1f, 0.1f, item, item2); meshData7.Strip(track, new Vector2(num7 * num, num3), new Vector2(num7 * num, num3 + 6f), 0f, 1f, 0.1f, item, item2); meshData7.Strip(track, new Vector2(num7 * num, num3 + 6f), new Vector2(num7 * num, num3), 0f, 1f, 0.1f, item, item2); } } Spawn("WallFaces", meshData4, WallFace, collide: true, (SurfaceMaterial)2); Spawn("Walls", meshData5, Concrete, collide: true, (SurfaceMaterial)2); Spawn("Fence", meshData7, null, collide: true, (SurfaceMaterial)2); MeshData meshData8 = new MeshData(); int to2 = Mathf.Max(1, Mathf.RoundToInt(4f / track.Step)); meshData8.Strip(track, new Vector2(0f - num, 0.03f), new Vector2(num, 0.03f), 0f, num, 0.5f, 0, to2); Spawn("StartLine", meshData8, Checker, collide: false, (SurfaceMaterial)1); BuildTunnel(); BuildLamps(); BuildCornerSigns(); BuildGrid(); BuildGantry(); BuildPaddock(); FlushBatches(); } private IEnumerable<(int, int)> OutsideTube() { if (TunnelFrom < 0) { yield return (0, track.Count); yield break; } if (TunnelFrom > 0) { yield return (0, TunnelFrom); } if (TunnelTo < track.Count) { yield return (TunnelTo, track.Count); } } private IEnumerable<(int, int)> WallRuns(int side) { List<(int, int)> list = new List<(int, int)>(); if (TunnelFrom >= 0) { list.Add((TunnelFrom, TunnelTo)); } if (side == -1) { list.Add((PaddockFrom, PaddockTo)); } list.Sort(); int at = 0; foreach (var (num, b) in list) { if (num > at) { yield return (at, num); } at = Mathf.Max(at, b); } if (at < track.Count) { yield return (at, track.Count); } } private void BuildTunnel() { //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) int tunnelFrom = TunnelFrom; int tunnelTo = TunnelTo; if (tunnelFrom >= 0) { float num = 15f; float num2 = 18f; float num3 = 0.8f; int num4 = tunnelTo - tunnelFrom + 1; List<Vector2>[] array = new List<Vector2>[num4]; List<Vector2>[] array2 = new List<Vector2>[num4]; List<Vector2>[] array3 = new List<Vector2>[num4]; List<Vector2>[] array4 = new List<Vector2>[num4]; for (int i = 0; i < num4; i++) { float num5 = track.TubeRound(tunnelFrom + i); float num6 = num - Mathf.Max(num5, 0.6f); array[i] = Rounded(num, 0f, num2, num5); array2[i] = Rounded(num + num3, 0f - num3, num2 + num3, num5 + num3); array3[i] = new List<Vector2> { new Vector2(0f - num6 + 0.25f, 0.03f), new Vector2(0f - num6 + 0.55f, 0.03f) }; array4[i] = new List<Vector2> { new Vector2(num6 - 0.55f, 0.03f), new Vector2(num6 - 0.25f, 0.03f) }; } int count = array[0].Count; MeshData meshData = new MeshData(); MeshData meshData2 = new MeshData(); MeshData meshData3 = new MeshData(); meshData.Sweep(track, array, 0, 1, tunnelFrom, 0f, 1f, 1f / roadTile); for (int j = 1; j < count - 1; j++) { meshData2.Sweep(track, array, j, j + 1, tunnelFrom, 0f, 1f, 0.1f); } for (int k = 0; k < count - 1; k++) { meshData3.Sweep(track, array2, k + 1, k, tunnelFrom, 0f, 1f, 0.1f); } Spawn("TubeFloor", meshData, Road, collide: true, (SurfaceMaterial)1); Spawn("TubeInside", meshData2, Dark, collide: true, (SurfaceMaterial)2); Spawn("TubeOutside", meshData3, Rust, collide: false, (SurfaceMaterial)2); Batch(EdgeGlow).Sweep(track, array3, 0, 1, tunnelFrom, 0f, 1f, 0.1f); Batch(EdgeGlow).Sweep(track, array4, 0, 1, tunnelFrom, 0f, 1f, 0.1f); int num7 = Mathf.Max(1, Mathf.RoundToInt(8f / track.Step)); int num8 = 0; int num9 = tunnelFrom + num7 / 2; while (num9 < tunnelTo) { float num10 = track.TubeRound(num9); Ring(Batch(Chase[num8 % 3]), num9, Rounded(num - 0.03f, 0.03f, num2 - 0.03f, num10), Rounded(num - 0.18f, 0.18f, num2 - 0.18f, Mathf.Max(num10 - 0.15f, 0f)), 0.7f); num9 += num7; num8++; } int[] array5 = new int[2] { tunnelFrom, tunnelTo - 1 }; foreach (int i2 in array5) { Ring(Batch(HubGlow), i2, Rounded(num + num3 + 1.2f, 0f - num3 - 1.2f, num2 + num3 + 1.2f, 0f), Rounded(num - 0.3f, 0.3f, num2 - 0.3f, 0f), 1.6f); } } } private static List<Vector2> Rounded(float w, float y0, float y1, float r) { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) r = Mathf.Clamp(r, 0.001f, Mathf.Min(w, (y1 - y0) / 2f) - 0.001f); float num = w - r; List<Vector2> pts = new List<Vector2> { new Vector2(0f - num, y0) }; Arc(new Vector2(num, y0 + r), -90f, 0f); Arc(new Vector2(num, y1 - r), 0f, 90f); Arc(new Vector2(0f - num, y1 - r), 90f, 180f); Arc(new Vector2(0f - num, y0 + r), 180f, 270f); return pts; void Arc(Vector2 c, float a0, float a1) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i <= 6; i++) { float num2 = Mathf.Lerp(a0, a1, (float)i / 6f) * (MathF.PI / 180f); pts.Add(c + new Vector2(Mathf.Cos(num2), Mathf.Sin(num2)) * r); } } } private void Ring(MeshData m, int i, List<Vector2> a, List<Vector2> b, float width) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) Vector3 val = track.Fwd[track.Wrap(i)] * (width / 2f); for (int j = 1; j < a.Count - 1; j++) { Vector3 val2 = track.At(i, a[j].x, a[j].y); Vector3 val3 = track.At(i, a[j + 1].x, a[j + 1].y); Vector3 val4 = track.At(i, b[j].x, b[j].y); Vector3 val5 = track.At(i, b[j + 1].x, b[j + 1].y); m.Quad(val4 + val, val5 + val, val5 - val, val4 - val); m.Quad(val2 - val, val3 - val, val3 + val, val2 + val); m.Quad(val4 - val, val5 - val, val3 - val, val2 - val); m.Quad(val2 + val, val3 + val, val5 + val, val4 + val); } } private void BuildLamps() { //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) int num = Mathf.RoundToInt(48f / track.Step); MeshData meshData = Batch(Pipe); MeshData meshData2 = Batch(Lamp); int num2 = 0; int num3 = num / 2; while (num3 < track.Count) { if (!InTunnel(num3) && (num3 < PaddockFrom - 4 || num3 > PaddockTo + 4) && num3 >= 10 && num3 <= track.Count - 10) { float num4 = ((num2 % 2 == 0) ? 1f : (-1f)); float across = num4 * 14.4f; Quaternion rotation = track.Facing(num3); Vector3 val = track.Right[num3] * (0f - num4); meshData.Box(track.At(num3, across, 5.6f), rotation, new Vector3(0.35f, 8f, 0.35f)); meshData.Box(track.At(num3, across, 9.6f) + val * 1.6f, rotation, new Vector3(3.6f, 0.3f, 0.35f)); meshData2.Box(track.At(num3, across, 9.35f) + val * 3f, rotation, new Vector3(1.5f, 0.25f, 0.7f)); } num3 += num; num2++; } } private void BuildCornerSigns() { //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) MeshData meshData = Batch(Chevron); MeshData meshData2 = Batch(Dark); int num = Mathf.RoundToInt(14f / track.Step); for (int i = 0; i < track.Count; i += num) { float num2 = track.Turn[i]; if (!(Mathf.Abs(num2) < 0.75f) && !InTunnel(i) && (i < PaddockFrom || i > PaddockTo)) { int num3 = ((!(num2 > 0f)) ? 1 : (-1)); float num4 = (float)num3 * 14.4f; Vector3 center = track.At(i, num4 - (float)num3 * 0.3f, 2.9f); Vector3 val = track.Fwd[i]; Vector3 up = track.Up[i]; meshData.Quad(center, (num3 < 0) ? val : (-val), up, 4f, 1.8f, num3 > 0); meshData2.Box(track.At(i, num4, 2.9f), track.Facing(i), new Vector3(0.4f, 2f, 4.2f)); } } } public Vector3 GridSlot(int slot, out Quaternion facing, out int sample) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) int num = slot / 2; int num2 = slot % 2; float num3 = 12f + (float)num * 10f + (float)num2 * 5f; sample = track.Wrap(-Mathf.RoundToInt(num3 / track.Step)); facing = track.Facing(sample); return track.At(sample, (num2 == 0) ? (-5.5f) : 5.5f, 0f); } private void BuildGrid() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) MeshData meshData = Batch(Paint); for (int i = 0; i < 8; i++) { Quaternion facing; int sample; Vector3 val = GridSlot(i, out facing, out sample); Vector3 val2 = track.Up[sample] * 0.035f; Vector3 val3 = track.Right[sample]; Vector3 val4 = track.Fwd[sample]; meshData.Quad(val + val2 + val4 * 2.5f, val3, val4, 6f, 0.3f, flipU: false); meshData.Quad(val + val2 + val3 * 3f, val3, val4, 0.3f, 5f, flipU: false); meshData.Quad(val + val2 - val3 * 3f, val3, val4, 0.3f, 5f, flipU: false); ((Graphic)Text((i + 1).ToString(), val + track.Up[sample] * 0.05f - val4 * 0.5f, Quaternion.LookRotation(track.Up[sample], val4), 2.2f).GetComponent<TextMeshPro>()).color = new Color(1f, 1f, 1f, 0.85f); } } private void BuildGantry() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) float num = 16.3f; Quaternion val = track.Facing(0); MeshData meshData = Batch(Dark); MeshData meshData2 = Batch(Pipe); MeshData meshData3 = Batch(HubGlow); for (int i = -1; i <= 1; i += 2) { meshData2.Box(track.At(0, (float)i * num, 7.5f), val, new Vector3(2.2f, 15f, 2.2f)); meshData3.Box(track.At(0, (float)i * (num - 1.15f), 7.5f), val, new Vector3(0.12f, 13f, 0.5f)); } meshData.Box(track.At(0, 0f, 14f), val, new Vector3(num * 2f + 2.2f, 3f, 2.2f)); meshData3.Box(track.At(0, 0f, 12.4f), val, new Vector3(num * 2f, 0.25f, 2.3f)); Text("QUAD'S HUB RACEWAY", track.At(0, 0f, 14.3f) - track.Fwd[0] * 1.15f, val * Quaternion.Euler(0f, 180f, 0f), 2f); Text("QUAD'S HUB RACEWAY", track.At(0, 0f, 14f) + track.Fwd[0] * 1.15f, val, 2.2f); for (int j = 0; j < 4; j++) { Vector3 val2 = track.At(0, ((float)j - 1.5f) * 3.2f, 10.2f) - track.Fwd[0] * 0.45f; meshData.Box(val2 + track.Fwd[0] * 0.35f, val, new Vector3(2.6f, 2.6f, 0.6f)); GameObject obj = Copy((PrimitiveType)2, "StartLight"); obj.transform.SetPositionAndRotation(val2, val * Quaternion.Euler(90f, 0f, 0f)); obj.transform.localScale = new Vector3(2f, 0.2f, 2f); ((Renderer)obj.GetComponent<MeshRenderer>()).sharedMaterial = StartLights[j]; } } private void BuildPaddock() { //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08c0: Unknown result type (might be due to invalid IL or missing references) //IL_08c5: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0640: Unknown result type (might be due to invalid IL or missing references) //IL_0642: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0935: Unknown result type (might be due to invalid IL or missing references) //IL_093a: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0958: Unknown result type (might be due to invalid IL or missing references) //IL_0962: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_096c: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_0991: Unknown result type (might be due to invalid IL or missing references) //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_09a5: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09c7: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_0710: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_0756: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_076a: Unknown result type (might be due to invalid IL or missing references) //IL_0774: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_078e: Unknown result type (might be due to invalid IL or missing references) //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_07f6: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084a: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Unknown result type (might be due to invalid IL or missing references) //IL_0859: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0873: Unknown result type (might be due to invalid IL or missing references) int num = (PaddockFrom + PaddockTo) / 2; float num2 = (paddockLength = (float)(PaddockTo - PaddockFrom) * track.Step); Vector3 val = new Vector3(track.Fwd[num].x, 0f, track.Fwd[num].z); Vector3 along = ((Vector3)(ref val)).normalized; Vector3 across = Vector3.Cross(Vector3.up, along) * -1f; Quaternion val2 = Quaternion.LookRotation(Vector3.Cross(along, Vector3.up), Vector3.up); Vector3 top = track.Pos[num] + across * 35.5f; top.y -= 0.03f; PaddockCenter = top; PaddockAcross = across; PaddockForward = along; float num3 = num2 / 2f; float num4 = 22f; Box("Paddock", P(0f, -0.75f, 0f), val2, new Vector3(num2, 1.5f, 44f), WallFace, collide: true); Batch(Rust).Box(P(0f, -2.1f, 0f), val2, new Vector3(num2 - 4f, 1.2f, 40f)); MeshData meshData = Batch(Pipe); meshData.Box(P(0f, 0.015f, 0f - num4 + 2f), val2, new Vector3(num2 - 2f, 0.03f, 0.5f)); meshData.Box(P(0f, 0.015f, num4 - 2f), val2, new Vector3(num2 - 2f, 0.03f, 0.5f)); for (int i = -1; i <= 1; i += 2) { meshData.Box(P((float)i * (num3 - 2f), 0.015f, 0f), val2, new Vector3(0.5f, 0.03f, 40f)); } ((Graphic)Text("QUAD'S HUB RACEWAY", P(0f, 0.04f, 0f - num4 + 5.5f), Quaternion.LookRotation(Vector3.up, across), 3.2f).GetComponent<TextMeshPro>()).color = new Color(0.75f, 0.12f, 0.1f, 0.85f); MeshData meshData2 = SolidBatch(Concrete); MeshData meshData3 = Batch(HubGlow); meshData2.Box(P(0f, 0.55f, num4 - 0.4f), val2, new Vector3(num2, 1.1f, 0.8f)); meshData3.Box(P(0f, 1.13f, num4 - 0.4f), val2, new Vector3(num2, 0.06f, 0.4f)); for (int j = -1; j <= 1; j += 2) { meshData2.Box(P((float)j * (num3 - 0.4f), 0.55f, 0f), val2, new Vector3(0.8f, 1.1f, 44f)); meshData3.Box(P((float)j * (num3 - 0.4f), 1.13f, 0f), val2, new Vector3(0.4f, 0.06f, 44f)); } for (float num5 = 0f - num3 + 3f; num5 <= num3 - 3f; num5 += 5f) { SolidBatch(Pipe).Box(P(num5, 0.45f, 0f - num4 + 0.6f), val2, new Vector3(0.35f, 0.9f, 0.35f)); Batch(HubGlow).Box(P(num5, 0.93f, 0f - num4 + 0.6f), val2, new Vector3(0.4f, 0.08f, 0.4f)); } for (int k = -1; k <= 1; k += 2) { for (int l = -1; l <= 1; l += 2) { Vector3 val3 = P((float)k * (num3 - 1.5f), 0f, (float)l * (num4 - 1.5f)); SolidBatch(Pipe).Box(val3 + Vector3.up * 6f, val2, new Vector3(0.45f, 12f, 0.45f)); Batch(Pipe).Box(val3 + Vector3.up * 11.6f - across * ((float)l * 1.2f), val2, new Vector3(0.3f, 0.3f, 2.8f)); Batch(Lamp).Box(val3 + Vector3.up * 11.35f - across * ((float)l * 2.3f), val2, new Vector3(1.6f, 0.2f, 1.6f)); } } for (int m = -1; m <= 1; m++) { Vector3 val4 = Station(m); if (m != 0) { GameObject val5 = Copy((PrimitiveType)2, "Dais"); val5.transform.SetPositionAndRotation(val4 + Vector3.up * 0.2f, val2); val5.transform.localScale = new Vector3(11f, 0.2f, 11f); ((Renderer)val5.GetComponent<MeshRenderer>()).sharedMaterial = Concrete; MeshCollider obj = val5.AddComponent<MeshCollider>(); obj.sharedMesh = val5.GetComponent<MeshFilter>().sharedMesh; obj.convex = true; FloorRing(val4 + Vector3.up * 0.38f, 5.55f, HubGlow); } else { FloorRing(val4 + Vector3.up * 0.02f, 5.2f, HubGlow); } Material m2 = ((m < 0) ? Glow : ((m > 0) ? EdgeGlow : HubGlow)); for (int n = 0; n < 6; n++) { float num6 = ((float)n + 0.5f) * MathF.PI * 2f / 6f; Vector3 val6 = val4 + (along * Mathf.Cos(num6) + across * Mathf.Sin(num6)) * 6.3f; if (m != 0 || !(Mathf.Sin(num6) > 0.3f)) { Batch(Pipe).Box(val6 + Vector3.up * 0.3f, val2, new Vector3(0.6f, 0.6f, 0.6f)); Batch(m2).Box(val6 + Vector3.up * 2.6f, val2, new Vector3(0.16f, 4f, 0.16f)); } } float num7 = ((m == 0) ? 7f : 6f); for (int num8 = -1; num8 <= 1; num8 += 2) { SolidBatch(Pipe).Box(val4 + along * ((float)num8 * 5.5f) + across * num7 + Vector3.up * 4f, val2, new Vector3(0.7f, 8f, 0.7f)); } Batch(Pipe).Box(val4 + across * num7 + Vector3.up * 8.2f, val2, new Vector3(12f, 0.6f, 0.7f)); } FloorRing(Arrival, 3f, HubGlow); FloorRing(Arrival, 2.2f, EdgeGlow); Text("ARRIVALS", Arrival + Vector3.up * 0.05f - across * 4f, Quaternion.LookRotation(Vector3.up, across), 1.2f); Material[] array = (Material[])(object)new Material[3] { Glow, Paint, EdgeGlow }; for (int num9 = -1; num9 <= 1; num9++) { Vector3 val7 = Arrival + Vector3.up * 0.03f; Vector3 val8 = Station(num9) + Vector3.up * 0.03f - val7; float num10 = ((Vector3)(ref val8)).magnitude - 3f - 5f; Vector3 normalized = ((Vector3)(ref val8)).normalized; Vector3 center = val7 + normalized * (3f + num10 / 2f); Batch(array[num9 + 1]).Quad(center, Vector3.Cross(Vector3.up, normalized), normalized, 0.5f, num10, flipU: false); } Vector3 P(float x, float y, float z) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) return top + along * x + Vector3.up * y + across * z; } } public Vector3 Station(int k) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) return PaddockCenter + PaddockAcross * 6f + PaddockForward * ((float)k * 24f); } public Vector3 StationTop(int k) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) return Station(k) + Vector3.up * ((k == 0) ? 0f : 0.4f); } public void StationSign(int k, string text, Material line) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) float num = ((k == 0) ? 7f : 6f); Vector3 val = Station(k) + PaddockAcross * num + Vector3.up * 9.6f; Quaternion rotation = Quaternion.LookRotation(PaddockAcross); Batch(Dark).Box(val, rotation, new Vector3(11f, 2.2f, 0.4f)); Batch(line).Box(val - Vector3.up * 1.15f - PaddockAcross * 0.05f, rotation, new Vector3(11f, 0.14f, 0.45f)); Text(text, val - PaddockAcross * 0.25f, Quaternion.LookRotation(-PaddockAcross), 1.3f); } private void FloorRing(Vector3 at, float radius, Material material) { //IL_0005: Unknown result type (might be d