コード例 #1
0
ファイル: World.cs プロジェクト: K4mey/Alex
        public void Update(UpdateArgs args)
        {
            var camera = Camera;

            args.Camera = camera;
            if (Player.FOVModifier != _fovModifier)
            {
                _fovModifier = Player.FOVModifier;

                camera.FOV += _fovModifier;
                camera.UpdateProjectionMatrix();
                camera.FOV -= _fovModifier;
            }
            camera.Update(args);

            BrightnessMod = SkyRenderer.BrightnessModifier;

            SkyRenderer.Update(args);
            ChunkManager.Update(args);
            EntityManager.Update(args, SkyRenderer);
            PhysicsEngine.Update(args.GameTime);

            var diffuseColor = Color.White.ToVector3() * SkyRenderer.BrightnessModifier;

            ChunkManager.AmbientLightColor = diffuseColor;

            if (Math.Abs(ChunkManager.BrightnessModifier - SkyRenderer.BrightnessModifier) > 0f)
            {
                ChunkManager.BrightnessModifier = SkyRenderer.BrightnessModifier;
            }

            Player.ModelRenderer.DiffuseColor = diffuseColor;
            Player.Update(args);

            if (Player.IsInWater)
            {
                ChunkManager.FogColor    = new Vector3(0.2666667F, 0.6862745F, 0.9607844F) * BrightnessModifier;
                ChunkManager.FogDistance = (float)Math.Pow(Options.VideoOptions.RenderDistance, 2) * 0.15f;
            }
            else
            {
                ChunkManager.FogColor    = SkyRenderer.WorldFogColor.ToVector3();
                ChunkManager.FogDistance = (float)Options.VideoOptions.RenderDistance * 16f * 0.8f;
            }

            if (Ticker.Update(args))
            {
                if (DoDaylightcycle)
                {
                    Time++;
                }
            }
        }
コード例 #2
0
        public void Update(UpdateArgs args)
        {
            if (_destroyed)
            {
                return;
            }

            var camera = Camera;

            args.Camera = camera;

            /*if (Math.Abs(Player.FOVModifier - _fovModifier) > 0f)
             * {
             *      _fovModifier = Player.FOVModifier;
             *
             *      camera.FOV += _fovModifier;
             *      camera.UpdateProjectionMatrix();
             *      camera.FOV -= _fovModifier;
             * }*/
            camera.Update(args);

            //_brightnessMod = SkyRenderer.BrightnessModifier;

            SkyBox.Update(args);
            ChunkManager.Update(args);

            EntityManager.Update(args);
            PhysicsEngine.Update(args.GameTime);

            if (Math.Abs(_brightnessMod - SkyBox.BrightnessModifier) > 0f)
            {
                _brightnessMod = SkyBox.BrightnessModifier;

                var diffuseColor = Color.White.ToVector3() * SkyBox.BrightnessModifier;
                ChunkManager.AmbientLightColor = diffuseColor;

                if (Math.Abs(ChunkManager.Shaders.BrightnessModifier - SkyBox.BrightnessModifier) > 0f)
                {
                    ChunkManager.Shaders.BrightnessModifier = SkyBox.BrightnessModifier;
                }

                var modelRenderer = Player?.ModelRenderer;

                if (modelRenderer != null)
                {
                    modelRenderer.DiffuseColor = diffuseColor;
                }
            }

            Player?.Update(args);
        }