private void TryAddRay(bool wide, bool midLife) { Mesh mesh = this.Meshes[FezMath.AsViewpoint(FezMath.OrientationFromPhi((float)RandomHelper.Random.Next(0, 4) * 1.570796f))]; if (mesh.Groups.Count >= 15) { return; } float num1 = wide ? this.CameraManager.Radius * 2f : this.CameraManager.Radius; Vector3 vector3 = RandomHelper.Between(-(double)num1 / 2.0, (double)(num1 / 2f)) * Vector3.UnitX; float num2 = RandomHelper.Between(0.75, 4.0); float num3 = 8f + RandomHelper.Centered(4.0); lock (mesh) { Group local_9 = mesh.AddColoredQuad(new Vector3(0.0f, 0.0f, 0.0f), new Vector3(-num3 - num2, -num3, 0.0f), new Vector3(-num3, -num3, 0.0f), new Vector3(-num2, 0.0f, 0.0f), new Color((int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue), Color.Black, Color.Black, new Color((int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue)); local_9.CustomData = (object)new GodRays.RayCustomData() { RandomOpacity = RandomHelper.Between(0.125, 0.5), Layer = RandomHelper.Random.Next(0, 4), RandomSpeed = RandomHelper.Between(0.25, 2.0), AccumulatedTime = (midLife ? TimeSpan.FromSeconds((double)RandomHelper.Between(0.0, 8.0)) : TimeSpan.Zero) }; local_9.Material = new Material() { Diffuse = Vector3.Zero }; local_9.Position = vector3; } }