Exemple #1
0
        public override void Render()
        {
            if (Active)
            {
                var color = Color.FromArgb(255, 0x00, 0x77, 0xcc);
                if (_selectionbox != DoubleRect.Empty)
                {
                    GameRenderer.RenderRoundedRectangle(_selectionbox, color, 2f / game.Track.Zoom);
                    RenderCorner(_selectionbox, true, true);
                    RenderCorner(_selectionbox, false, false);
                    RenderCorner(_selectionbox, true, false);
                    RenderCorner(_selectionbox, false, true);
                    if (_hoverscale)
                    {
                        RenderFilledCorner(_selectionbox, _nodetop, _nodeleft);
                    }
                }
                if (_drawbox != DoubleRect.Empty)
                {
                    GameRenderer.RenderRoundedRectangle(_drawbox, color, 2f / game.Track.Zoom);
                }
                if (_hoverline != null)
                {
                    GameRenderer.RenderRoundedLine(_hoverline.Position, _hoverline.Position2, Color.FromArgb(127, Constants.DefaultKnobColor), (_hoverline.Width * 2 * 0.8f));

                    GameRenderer.DrawKnob(_hoverline.Position, _snapknob1, false, _hoverline.Width, _snapknob1 && !_snapknob2 ? 1 : 0);
                    GameRenderer.DrawKnob(_hoverline.Position2, _snapknob2, false, _hoverline.Width, _snapknob2 && !_snapknob1 ? 1 : 0);
                }
            }
            base.Render();
        }
Exemple #2
0
        private void DrawHover(GameLine line,
                               bool knob1, bool knob2, bool selected = false)
        {
            var start    = line.Position;
            var end      = line.Position2;
            var width    = line.Width;
            var elapsed  = _hovertime.ElapsedMilliseconds;
            int animtime = 250;

            if (_hovertime.IsRunning)
            {
                if (elapsed > animtime * 2)
                {
                    if (_hoverclick)
                    {
                        _hovertime.Stop();
                    }
                    else
                    {
                        _hovertime.Stop();
                    }
                }
                game.Track.Invalidate();
            }
            float hoverratio;

            if (_hoverclick)
            {
                animtime   = 75;
                elapsed   += 75 / 4;
                hoverratio = Math.Min(animtime, elapsed) / (float)animtime;
            }
            else
            {
                hoverratio = Math.Min((Math.Min(animtime, elapsed) / (float)animtime), 0.5f);
            }
            var both      = knob1 == knob2 == true;
            var linealpha = both ? 64 : 48;

            if (selected && both)
            {
                linealpha += 16;
            }
            GameRenderer.RenderRoundedLine(
                start,
                end,
                Color.FromArgb(linealpha, Color.FromArgb(127, 127, 127)),
                (width * 2));

            bool canlifelock = CanLifelock && line.Type != LineType.Scenery;

            GameRenderer.DrawKnob(start, knob1, canlifelock, width, hoverratio);
            GameRenderer.DrawKnob(end, knob2, canlifelock, width, hoverratio);
        }