Пример #1
0
        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;
            }
        }