void OpenMenuPanel(MenuButtonWidget button, WidgetArgs widgetArgs = null) { disableSystemButtons = true; var cachedPause = world.PredictedPaused; if (button.HideIngameUI) { worldRoot.IsVisible = () => false; } if (button.Pause && world.LobbyInfo.IsSinglePlayer) { world.SetPauseState(true); } widgetArgs = widgetArgs ?? new WidgetArgs(); widgetArgs.Add("onExit", () => { if (button.HideIngameUI) { worldRoot.IsVisible = () => true; } if (button.Pause && world.LobbyInfo.IsSinglePlayer) { world.SetPauseState(cachedPause); } menuRoot.RemoveChild(currentWidget); disableSystemButtons = false; }); currentWidget = Game.LoadWidget(world, button.MenuContainer, menuRoot, widgetArgs); }
protected MenuButtonWidget(MenuButtonWidget other) : base(other) { MenuContainer = other.MenuContainer; Pause = other.Pause; HideIngameUI = other.HideIngameUI; }
void OpenMenuPanel(MenuButtonWidget button, WidgetArgs widgetArgs = null) { disableSystemButtons = true; var cachedPause = world.PredictedPaused; if (button.HideIngameUI) { // Cancel custom input modes (guard, building placement, etc) world.CancelInputMode(); worldRoot.IsVisible = () => false; } if (button.Pause && world.LobbyInfo.NonBotClients.Count() == 1) { world.SetPauseState(true); } var cachedDisableWorldSounds = Game.Sound.DisableWorldSounds; if (button.DisableWorldSounds) { Game.Sound.DisableWorldSounds = true; } widgetArgs = widgetArgs ?? new WidgetArgs(); widgetArgs.Add("onExit", () => { if (button.HideIngameUI) { worldRoot.IsVisible = () => true; } if (button.DisableWorldSounds) { Game.Sound.DisableWorldSounds = cachedDisableWorldSounds; } if (button.Pause && world.LobbyInfo.NonBotClients.Count() == 1) { world.SetPauseState(cachedPause); } menuRoot.RemoveChild(currentWidget); disableSystemButtons = false; }); currentWidget = Game.LoadWidget(world, button.MenuContainer, menuRoot, widgetArgs); Game.RunAfterTick(Ui.ResetTooltips); }
public MenuScene() { leafParticleEffectTree1 = new LeafParticleEffect(this); leafParticleEffectTree2 = new LeafParticleEffect(this); buttonCampaign = new MenuButtonWidget(this, "Campaign", new Vector2(150, 100), new Vector2(300, 80)); buttonCampaign.OnClick += ButtonStart_OnClick; buttonFreePlay = new MenuButtonWidget(this, "Free Play", new Vector2(150, 200), new Vector2(300, 80)); buttonFreePlay.OnClick += ButtonStart_OnClick; buttonSettings = new MenuButtonWidget(this, "Settings", new Vector2(150, 300), new Vector2(300, 80)); buttonSettings.OnClick += ButtonStart_OnClick; clickEffect = new ConfettiParticleEffect(this); clickEffect.Stop(); this.OnDisplay += MenuScene_OnDisplay; buttonsEnterScreenAnimation = new LinearAnimation(TimeSpan.FromMilliseconds(500)); nextCampaignSelectorScene = new WorldMapScene(); }
void OpenMenuPanel(MenuButtonWidget button, WidgetArgs widgetArgs = null) { disableSystemButtons = true; var cachedPause = world.PredictedPaused; if (button.HideIngameUI) { // Cancel custom input modes (guard, building placement, etc) world.CancelInputMode(); worldRoot.IsVisible = () => false; } if (button.Pause && world.LobbyInfo.IsSinglePlayer) world.SetPauseState(true); widgetArgs = widgetArgs ?? new WidgetArgs(); widgetArgs.Add("onExit", () => { if (button.HideIngameUI) worldRoot.IsVisible = () => true; if (button.Pause && world.LobbyInfo.IsSinglePlayer) world.SetPauseState(cachedPause); menuRoot.RemoveChild(currentWidget); disableSystemButtons = false; }); currentWidget = Game.LoadWidget(world, button.MenuContainer, menuRoot, widgetArgs); Game.RunAfterTick(Ui.ResetTooltips); }