private void Setup()
 {
     _title = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         TextRequest = (o, current) =>
         {
             return(GetTitle());
         }
     };
     _linecount = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Margin      = new Margin(0, 5, 0, 0),
         TextRequest = (o, current) =>
         {
             var u = (int)_linecount.UserData;
             if (u != _editor.LineCount)
             {
                 _linecount.UserData = _editor.LineCount;
                 return("Lines: " + _editor.LineCount.ToString());
             }
             return(current);
         },
         UserData = 0,
         Text     = "Lines: 0",
     };
 }
        private void Setup()
        {
            _bottombar = new Panel(this)
            {
                AutoSizeToContents   = true,
                ShouldDrawBackground = false,
                MouseInputEnabled    = false,
                Dock = Dock.Top
            };
            _topbar = new Panel(this)
            {
                AutoSizeToContents   = true,
                ShouldDrawBackground = false,
                MouseInputEnabled    = false,
                Dock = Dock.Top
            };
            _speedincrease          = CreateButton(_topbar, GameResources.fast_forward, "Increase Speed");
            _speedincrease.Clicked += (o, e) => _editor.PlaybackSpeedUp();
            _speedincrease.Dock     = Dock.Right;

            _speeddecrease          = CreateButton(_topbar, GameResources.rewind, "Decrease Speed");
            _speeddecrease.Clicked += (o, e) => _editor.PlaybackSpeedDown();
            _speeddecrease.Dock     = Dock.Left;

            Playhead      = new Playhead(_topbar, _editor);
            Playhead.Dock = Dock.Fill;
            Panel time = new Panel(_bottombar)
            {
                Dock = Dock.Fill,
                AutoSizeToContents   = true,
                ShouldDrawBackground = false,
                MouseInputEnabled    = false,
            };

            _iterations = new TrackLabel(time)
            {
                Dock        = Dock.Fill,
                TextRequest = (o, e) =>
                {
                    switch (_editor.IterationsOffset)
                    {
                    case 0:
                        return("Physics Iteration: 0 (momentum tick)");

                    case 1:
                        return("Physics Iteration: 1");

                    case 2:
                        return("Physics Iteration: 2");

                    case 3:
                        return("Physics Iteration: 3");

                    case 4:
                        return("Physics Iteration: 4");

                    case 5:
                        return("Physics Iteration: 5");

                    default:
                        return("");
                    }
                },
                Alignment = Pos.Center,
            };
            _timecurrent = new TrackLabel(time)
            {
                Dock        = Dock.Left,
                TextRequest = (o, e) =>
                {
                    string ret = GetTimeString((int)Playhead.Value);
                    return(ret);
                },
                Alignment = Pos.Center,
            };
            _timemax = new TrackLabel(time)
            {
                Dock        = Dock.Right,
                TextRequest = (o, e) =>
                {
                    string ret = GetTimeString((int)Playhead.DisplayMax);
                    return(ret);
                },
                Alignment = Pos.Center,
            };
        }
        private void Setup()
        {
            _title = new TrackLabel(this)
            {
                Dock        = Dock.Top,
                TextRequest = (o, current) =>
                {
                    return(GetTitle());
                }
            };
            _linecount = new TrackLabel(this)
            {
                Dock        = Dock.Top,
                Margin      = new Margin(0, 5, 0, 0),
                TextRequest = (o, current) =>
                {
                    var u = (int)_linecount.UserData;
                    if (u != _editor.LineCount)
                    {
                        _linecount.UserData = _editor.LineCount;
                        var lineCountText = "Lines: " + _editor.LineCount.ToString();
                        return(lineCountText);
                    }
                    return(current);
                },
                UserData = 0,
                Text     = "Lines: 0",
            };
            _selectioncount = new TrackLabel(this)
            {
                Dock        = Dock.Top,
                Margin      = new Margin(0, 5, 0, 0),
                TextRequest = (o, current) =>
                {
                    if (!_editor.Paused || TrackRecorder.Recording)
                    {
                        return("");
                    }
                    var u = (int)_selectioncount.UserData;
                    if (CurrentTools.SelectedTool == CurrentTools.SelectTool)
                    {
                        var linecount = ((SelectTool)(CurrentTools.SelectedTool)).GetLineSelectionsInBox().Count;
                        if (linecount == 0)
                        {
                            linecount = ((SelectTool)(CurrentTools.SelectedTool)).GetLineSelections().Count;
                        }

                        if (u != linecount)
                        {
                            if (linecount > 0)
                            {
                                _selectioncount.UserData = linecount;
                                return("Selected: " + linecount.ToString());
                            }
                            return("");
                        }
                    }
                    return(current);
                },
                UserData = 0,
            };
        }
Example #4
0
 private void Setup()
 {
     _iconpanel = new Panel(this)
     {
         ShouldDrawBackground = false,
         Dock   = Dock.Top,
         Width  = 32,
         Height = 32,
     };
     _fpslabel = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Alignment   = Pos.Right | Pos.CenterV,
         TextRequest = (o, currenttext) =>
         {
             var rec = Settings.Local.RecordingMode;
             if (rec && Settings.Recording.ShowFps)
             {
                 return(Settings.RecordSmooth ? "60 FPS" : "40 FPS");
             }
             else if (!_fpswatch.IsRunning || _fpswatch.ElapsedMilliseconds > 500)
             {
                 _fpswatch.Restart();
                 return(Math.Round(_editor.FramerateCounter.FPS) + " FPS");
             }
             return(currenttext);
         },
         Margin = new Margin(0, 0, 5, 0)
     };
     _riderspeedlabel = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Alignment   = Pos.Right | Pos.CenterV,
         TextRequest = (o, e) =>
         {
             var ppf      = _editor.RenderRider.CalculateMomentum().Length;
             var n        = (double)_riderspeedlabel.UserData;
             var roundppf = Math.Round(ppf, 2);
             if (n != ppf)
             {
                 _riderspeedlabel.UserData = roundppf;
                 return(string.Format("{0:N2}", Math.Round(ppf, 2)) + " P/f");
             }
             return(e);
         },
         Margin   = new Margin(0, 0, 5, 0),
         UserData = 0.0,
     };
     _cameraoffsetlabel = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Alignment   = Pos.Right | Pos.CenterV,
         TextRequest = (o, e) =>
         {
             var x = string.Format("{0:N2}", Math.Round(_editor.CameraOffset.X, 2));
             var y = string.Format("{0:N2}", Math.Round(_editor.CameraOffset.Y, 2));
             return("Camera Offset: (" + x + "," + y + ")");
         },
         Margin   = new Margin(0, 0, 5, 0),
         UserData = 0.0,
     };
     _camerazoomlabel = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Alignment   = Pos.Right | Pos.CenterV,
         TextRequest = (o, e) =>
         {
             //var zoom = string.Format("{0:N2}", Math.Round(_editor.Zoom, 2));
             var zoom = _editor.Zoom;
             return("Camera Zoom: " + zoom);
         },
         Margin   = new Margin(0, 0, 5, 0),
         UserData = 0.0,
     };
     _playbackratelabel = new TrackLabel(this)
     {
         Dock        = Dock.Top,
         Alignment   = Pos.Right | Pos.CenterV,
         TextRequest = (o, e) =>
         {
             var    rate = Math.Round(_editor.Scheduler.UpdatesPerSecond / 40.0, 3);
             string x    = "";
             if (rate.ToString() != "1")
             {
                 x = $"{rate}x";
             }
             return(x);
         },
         Margin = new Margin(0, 0, 5, 0),
     };
     _usercamerasprite = new Sprite(_iconpanel)
     {
         Dock              = Dock.Right,
         IsHidden          = true,
         Tooltip           = "Click to Reset Camera\n(Default hotkey N)",
         MouseInputEnabled = true,
         TooltipDelay      = 0,
     };
     _usercamerasprite.Clicked += (o, e) =>
     {
         _editor.Zoom        = _editor.Timeline.GetFrameZoom(_editor.Offset);
         _editor.UseUserZoom = false;
         _editor.UpdateCamera();
     };
     _usercamerasprite.SetImage(GameResources.camera_need_reset);
 }