Пример #1
0
        public TerrainLogic()
        {
            Game.GameManager.GraphicsThread.OnFrame += new VideoThread.FrameRenderDelegate(UpdateLogic);
            ChangeMode = Logic.ChangeMode.Flat;
            Intensity  = 30.0f;
            Video.Input.InputManager.Input.KeyPressed += new Video.Input.InputManager.KeyPressDlg(keyPressed);
            Video.Input.InputManager.Input.MousePress += Input_MousePress;
            TerrainBrush                = new Brushes.TerrainBrush();
            Radius                      = 30.0f;
            InnerRadius                 = Radius * 0.66f;
            InnerChangeMode             = Logic.ChangeMode.Flat;
            TerrainBrush.InnerSharpness = 0.75f;
            TerrainBrush.OuterSharpness = 0.8f;

            Game.GameManager.ActiveChangeModeChanged += () =>
            {
                if (Game.GameManager.ActiveChangeType == ActiveChangeType.Height)
                {
                    switch (mChangeMode)
                    {
                    case Logic.ChangeMode.Flat:
                    case Logic.ChangeMode.Linear:
                    case Logic.ChangeMode.Quadratic:
                    case Logic.ChangeMode.Smooth:
                    case Logic.ChangeMode.Spline:
                        Video.ShaderCollection.TerrainShader.SetValue("brushType", Game.GameManager.GameWindow.PropertyPanel.BrushType);
                        break;

                    case Logic.ChangeMode.Special:
                        Video.ShaderCollection.TerrainShader.SetValue("brushType", 3);
                        break;
                    }
                }
            };
        }
Пример #2
0
        public TerrainLogic()
        {
            Game.GameManager.GraphicsThread.OnFrame += new VideoThread.FrameRenderDelegate(UpdateLogic);
            ChangeMode = Logic.ChangeMode.Flat;
            Intensity = 30.0f;
            Video.Input.InputManager.Input.KeyPressed += new Video.Input.InputManager.KeyPressDlg(keyPressed);
            Video.Input.InputManager.Input.MousePress += Input_MousePress;
            TerrainBrush = new Brushes.TerrainBrush();
            Radius = 30.0f;
            InnerRadius = Radius * 0.66f;
            InnerChangeMode = Logic.ChangeMode.Flat;
            TerrainBrush.InnerSharpness = 0.75f;
            TerrainBrush.OuterSharpness = 0.8f;

            Game.GameManager.ActiveChangeModeChanged += () =>
                {
                    if (Game.GameManager.ActiveChangeType == ActiveChangeType.Height)
                    {
                        switch (mChangeMode)
                        {
                            case Logic.ChangeMode.Flat:
                            case Logic.ChangeMode.Linear:
                            case Logic.ChangeMode.Quadratic:
                            case Logic.ChangeMode.Smooth:
                            case Logic.ChangeMode.Spline:
                                Video.ShaderCollection.TerrainShader.SetValue("brushType", Game.GameManager.GameWindow.PropertyPanel.BrushType);
                                break;

                            case Logic.ChangeMode.Special:
                                Video.ShaderCollection.TerrainShader.SetValue("brushType", 3);
                                break;
                        }
                    }
                };
        }