Example #1
0
        public static WindowTransitionOperation Create(
            WndTopLevelWindow window,
            WindowTransitionWindow transitionWindow,
            TimeSpan currentTime)
        {
            var element   = window.Root.FindChild(transitionWindow.WinName);
            var startTime = currentTime + TimeSpan.FromSeconds(transitionWindow.FrameDelay / 30.0f);

            switch (transitionWindow.Style)
            {
            case WindowTransitionStyle.WinFade:
                return(new WinFadeTransition(element, startTime));

            case WindowTransitionStyle.Flash:
                return(new FlashTransition(element, startTime));

            case WindowTransitionStyle.ButtonFlash:
                return(new ButtonFlashTransition(element, startTime));

            case WindowTransitionStyle.WinScaleUp:
                return(new WinScaleUpTransition(element, startTime));

            case WindowTransitionStyle.ReverseSound:
                return(new ReverseSoundTransition(element, startTime));

            default:
                throw new NotImplementedException();
            }
        }
Example #2
0
        public static void ReplayMenuInit(WndTopLevelWindow window, Game game)
        {
            var listBox = (WndWindowListBox)window.Root.FindChild("ReplayMenu.wnd:ListboxReplayFiles");

            using (var fileSystem = GetReplaysFileSystem(game))
            {
                listBox.ListBoxItems.Clear();

                foreach (var file in fileSystem.Files)
                {
                    var replayFile = ReplayFile.FromFileSystemEntry(file, onlyHeader: true);

                    listBox.ListBoxItems.Add(new WndListBoxItem
                    {
                        DataItem   = file.FilePath,
                        ColumnData = new[]
                        {
                            replayFile.Header.Filename, // Path.GetFileNameWithoutExtension(file.FilePath),
                            $"{replayFile.Header.Timestamp.Hour.ToString("D2")}:{replayFile.Header.Timestamp.Minute.ToString("D2")}",
                            replayFile.Header.Version,
                            replayFile.Header.Metadata.MapFile.Replace("maps/", string.Empty)
                        }
                    });
                }
            }
        }
        public WindowTransitionState(WndTopLevelWindow window, WindowTransition transition, TimeSpan currentTime)
        {
            _operations = transition.Windows
                          .Select(x => WindowTransitionOperation.Create(window, x, currentTime))
                          .ToList();

            LastEndTime = _operations.Max(x => x.EndTime);
        }
Example #4
0
        public static void W3DMainMenuInit(WndTopLevelWindow window, Game game)
        {
            if (!game.Configuration.LoadShellMap)
            {
                // Draw the main menu background if no map is loaded.
                window.Root.DrawCallback = window.Root.DefaultDraw;
            }

            // We'll show these later via window transitions.
            window.Root.FindChild("MainMenu.wnd:MainMenuRuler").Hide();
            window.Root.FindChild("MainMenu.wnd:MainMenuRuler").Opacity = 0;

            var initiallyHiddenSections = new[]
            {
                "MainMenu.wnd:MapBorder",
                "MainMenu.wnd:MapBorder1",
                "MainMenu.wnd:MapBorder2",
                "MainMenu.wnd:MapBorder3",
                "MainMenu.wnd:MapBorder4"
            };

            foreach (var controlName in initiallyHiddenSections)
            {
                var control = window.Root.FindChild(controlName);
                control.Opacity = 0;

                foreach (var button in control.Children.First().Children)
                {
                    button.Opacity     = 0;
                    button.TextOpacity = 0;
                }
            }

            window.Root.FindChild("MainMenu.wnd:ButtonUSARecentSave").Hide();
            window.Root.FindChild("MainMenu.wnd:ButtonUSALoadGame").Hide();

            window.Root.FindChild("MainMenu.wnd:ButtonGLARecentSave").Hide();
            window.Root.FindChild("MainMenu.wnd:ButtonGLALoadGame").Hide();

            window.Root.FindChild("MainMenu.wnd:ButtonChinaRecentSave").Hide();
            window.Root.FindChild("MainMenu.wnd:ButtonChinaLoadGame").Hide();

            // TODO: Show faction icons when WinScaleUpTransition is implemented.

            _doneMainMenuFadeIn = false;
        }
Example #5
0
        public void QueueTransition(
            WndTopLevelWindow from,
            WndTopLevelWindow to,
            string transitionName)
        {
            if (!_transitions.TryGetValue(transitionName, out var transition))
            {
                throw new ArgumentOutOfRangeException(nameof(transitionName));
            }

            _transitionQueue.Enqueue(new WindowTransitionRequest
            {
                From       = from,
                To         = to,
                Transition = transition
            });
        }
Example #6
0
 public static void ReplayMenuShutdown(WndTopLevelWindow window, Game game)
 {
     // TODO
 }