private void CreateMod() { var textEntry = TextEntryDialogBox.Create(Game.Language.Translate("menus.name_mod_prompt.title"), SuggestModTitle(), "", Game.Screen.Width - 300.0f, new string[] { Game.Language.Translate("menus.ok"), Game.Language.Translate("menus.cancel") }); textEntry.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result == 0) { var title = (textEntry.EnteredText.Trim().Length > 0) ? textEntry.EnteredText.Trim() : "Untitled Mod"; var mod = Mods.Create(title); if (App.Steam) { mod.Author = Game.Network.LocalUser.DisplayName; mod.SteamUserID = Game.Network.LocalUser.ID; mod.SaveInfo(); } EditMod(mod); } else { ModEditor(); } }; ShowDialog(textEntry); }
private void RenameCampaign() { var textEntry = TextEntryDialogBox.Create(Game.Language.Translate("menus.name_campaign_prompt.title"), m_campaign.Title, "", Game.Screen.Width - 300.0f, new string[] { Game.Language.Translate("menus.ok"), Game.Language.Translate("menus.cancel") }); textEntry.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result == 0) { // Get the title var title = (textEntry.EnteredText.Trim().Length > 0) ? textEntry.EnteredText.Trim() : "Untitled Campaign"; // Add the title to the campaign var oldtitle = m_campaign.Title; var newCampaign = m_campaign.Copy(); newCampaign.Title = title; // Save the campaign if (m_mod != null) { var fullCampaignPath = Path.Combine(m_mod.Path, "assets/" + m_campaign.Path); newCampaign.Save(fullCampaignPath); // Rename the mod too if it has the same name if (m_mod.Title == oldtitle) { m_mod.Title = title; m_mod.SaveInfo(); } } else { var fullCampaignPath = Path.Combine(App.AssetPath, "main/" + m_campaign.Path); newCampaign.Save(fullCampaignPath); } // Reload the campaign Assets.Reload(m_campaign.Path); Title = MouseButton.Left.GetPrompt() + " " + m_campaign.Title; } }; ShowDialog(textEntry); }
private void CreateCampaign() { string suggestedTitle = m_mod.Title; var count = m_campaigns.Count; if (count > 0) { suggestedTitle = suggestedTitle + " Act " + (count + 1); } var textEntry = TextEntryDialogBox.Create(Game.Language.Translate("menus.name_campaign_prompt.title"), suggestedTitle, "", Game.Screen.Width - 300.0f, new string[] { Game.Language.Translate("menus.ok"), Game.Language.Translate("menus.cancel") }); textEntry.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result == 0) { // Determine a title var title = (textEntry.EnteredText.Trim().Length > 0) ? textEntry.EnteredText.Trim() : suggestedTitle; var shortTitle = title.ToSafeAssetName(true); // Determine an asset path int i = 2; var assetPath = AssetPath.Combine("campaigns", shortTitle + ".campaign"); while (File.Exists(Path.Combine(m_mod.Path, "assets/" + assetPath))) { assetPath = AssetPath.Combine("campaigns", shortTitle + i + ".campaign"); ++i; } // Save the file out var fullPath = Path.Combine(m_mod.Path, "assets/" + assetPath); var newCampaign = new Campaign(assetPath); newCampaign.Title = title; newCampaign.Save(fullPath); // Load the new campaign Assets.Reload(assetPath); OpenCampaign(Campaign.Get(assetPath), m_mod); } }; ShowDialog(textEntry); }
private void RenameMod() { var textEntry = TextEntryDialogBox.Create(Game.Language.Translate("menus.name_mod_prompt.title"), m_mod.Title, "", Game.Screen.Width - 300.0f, new string[] { Game.Language.Translate("menus.ok"), Game.Language.Translate("menus.cancel") }); textEntry.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result == 0) { // Get the title var newTitle = (textEntry.EnteredText.Trim().Length > 0) ? textEntry.EnteredText.Trim() : "Untitled Mod"; // Save the title var oldtitle = m_mod.Title; m_mod.Title = newTitle; m_mod.SaveInfo(); // Rename any campaigns that share the mod name foreach (var campaign in Assets.List <Campaign>("campaigns", m_mod.Assets)) { if (campaign.Title == oldtitle) { var fullPath = Path.Combine(m_mod.Path, "assets/" + campaign.Path); var newCampaign = campaign.Copy(); newCampaign.Title = newTitle; newCampaign.Save(fullPath); Assets.Reload(campaign.Path); } } // Update the title Title = MouseButton.Left.GetPrompt() + " " + m_mod.Title; } }; ShowDialog(textEntry); }
public EditorState(Game game, Mod mod, Campaign campaign, int levelIndex, string levelLoadPath, string levelSavePath) : base(game, levelLoadPath, LevelOptions.Editor) { m_mod = mod; m_campaign = campaign; m_levelIndex = levelIndex; EnableGamepad = false; LevelSavePath = levelSavePath; ShowPlacementsLeft = true; m_modified = (levelLoadPath != levelSavePath); // Load Menu // Test button m_testButton = new Button(Texture.Get("gui/play.png", true), 48.0f, 48.0f); m_testButton.Region = new Quad(0.0f, 0.0f, 0.375f, 0.375f); m_testButton.HighlightRegion = new Quad(0.5f, 0.0f, 0.375f, 0.375f); m_testButton.DisabledRegion = new Quad(0.0f, 0.5f, 0.375f, 0.375f); m_testButton.ShortcutKey = Key.T; m_testButton.ShowShortcutPrompt = true; m_testButton.Anchor = Anchor.BottomRight; m_testButton.LocalPosition = new Vector2(-16.0f - m_testButton.Width, -16.0f - m_testButton.Height); m_testButton.Visible = true; m_testButton.OnClicked += delegate(object o, EventArgs args) { if (Dialog == null && !m_tileSelect.IsFullscreen) { TestLevel(); } }; // Save button m_saveButton = new Button(Texture.Get("gui/save.png", true), 48.0f, 48.0f); m_saveButton.Region = new Quad(0.0f, 0.0f, 0.375f, 0.375f); m_saveButton.HighlightRegion = new Quad(0.5f, 0.0f, 0.375f, 0.375f); m_saveButton.DisabledRegion = new Quad(0.0f, 0.5f, 0.375f, 0.375f); m_saveButton.ShortcutKey = Key.S; m_saveButton.ShowShortcutPrompt = true; m_saveButton.Anchor = Anchor.BottomRight; m_saveButton.LocalPosition = new Vector2(-16.0f - m_testButton.Width - 8.0f - m_saveButton.Width, -16.0f - m_saveButton.Height); m_saveButton.Visible = true; m_saveButton.OnClicked += delegate(object o, EventArgs args) { if (Dialog == null && !m_tileSelect.IsFullscreen) { SaveLevel(); } }; // Menu button m_menuButton = new Button(Texture.Get("gui/menu.png", true), 48.0f, 48.0f); m_menuButton.Region = new Quad(0.0f, 0.0f, 0.375f, 0.375f); m_menuButton.HighlightRegion = new Quad(0.5f, 0.0f, 0.375f, 0.375f); m_menuButton.DisabledRegion = new Quad(0.0f, 0.5f, 0.375f, 0.375f); m_menuButton.ShortcutKey = Key.Escape; m_menuButton.ShowShortcutPrompt = true; m_menuButton.Anchor = Anchor.BottomRight; m_menuButton.LocalPosition = new Vector2(-16.0f - m_menuButton.Width - 8.0f - m_saveButton.Width - 8.0f - m_menuButton.Width, -16.0f - m_testButton.Height); m_menuButton.Visible = true; m_menuButton.OnClicked += delegate(object o, EventArgs args) { if (Dialog == null && !m_tileSelect.IsFullscreen) { ShowPauseMenu(); } }; // Load clickable title m_titleText = new TextMenu(UIFonts.Default, new string[] { "" }, TextAlignment.Right, MenuDirection.Vertical); m_titleText.Anchor = Anchor.TopRight; m_titleText.MouseOnly = true; m_titleText.LocalPosition = new Vector2(-32.0f, 16.0f); m_titleText.OnClicked += delegate(object sender, TextMenuClickedEventArgs e) { if (Dialog == null && !m_tileSelect.IsFullscreen) { var textEntry = TextEntryDialogBox.Create( Game.Language.Translate("menus.name_level_prompt.title"), Level.Info.Title, "", Game.Screen.Width - 300.0f, new string[] { Game.Language.Translate("menus.ok"), Game.Language.Translate("menus.cancel") } ); textEntry.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result == 0) { var title = (textEntry.EnteredText.Trim().Length > 0) ? textEntry.EnteredText.Trim() : "Untitled"; Level.Info.Title = title; m_titleText.Options[0] = MouseButton.Left.GetPrompt() + " " + TranslateTitle(title); m_modified = true; } }; ShowDialog(textEntry); } }; // Load status m_statusText = new Text(UIFonts.Smaller, "", UIColours.Text, TextAlignment.Left); m_statusText.Anchor = Anchor.BottomLeft; m_statusText.LocalPosition = new Vector2(80.0f + 16.0f, -16.0f - m_statusText.Font.Height); m_statusTimeout = 0.0f; // Load tile select m_tileSelect = new EditorTileSelect(Game, Game.User.Settings, Game.Language); }