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(); } }
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); }
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; }
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 }); }
public static void ReplayMenuShutdown(WndTopLevelWindow window, Game game) { // TODO }