// Changes the manager state to given campaign public void SwitchCampaign(string name, bool isVanilla = true, bool isLocalMod = false) { if (m_campaignsByNames.ContainsKey(name)) { var obs = m_campaignsByNames[name]; foreach (var campaign in obs) { if (campaign.IsVanilla == isVanilla && campaign.IsLocalMod == isLocalMod) { m_activeCampaign = campaign; m_activeCampaignName = name; m_activeCampaignLevelNames.Clear(); m_selectedLanguage = m_activeCampaign.DefaultLocalizationLanguage; // Fill the level names in active campaign level names foreach (var campaignSmNode in m_activeCampaign.StateMachine.Nodes) { m_activeCampaignLevelNames.Add(campaignSmNode.Name); } return; } } } }
// Universal campaign loading process private void LoadCampaignData(MyObjectBuilder_Campaign campaignOb) { if (m_campaignsByNames.ContainsKey(campaignOb.Name)) { var obs = m_campaignsByNames[campaignOb.Name]; // check for duplicity foreach (var campaign in obs) { if (campaign.IsLocalMod == campaignOb.IsLocalMod && campaign.IsMultiplayer == campaignOb.IsMultiplayer && campaign.IsVanilla == campaignOb.IsVanilla) { Debug.Fail("Two campaigns of same name and parameters loaded."); return; } } obs.Add(campaignOb); } else { m_campaignsByNames.Add(campaignOb.Name, new List <MyObjectBuilder_Campaign>()); m_campaignsByNames[campaignOb.Name].Add(campaignOb); } }
private void CampaignSelectionChanged(MyGuiControlRadioButtonGroup args) { var button = args.SelectedButton as MyGuiControlCampaignButton; if (button != null) { var campaign = button.UserData as MyObjectBuilder_Campaign; if (campaign == null) { return; } m_nameTextbox.Text = campaign.Name; m_onlineMode.IsChecked = campaign.IsMultiplayer; m_descriptionMultilineText.Text = new StringBuilder(campaign.Description); if (!string.IsNullOrEmpty(campaign.Difficulty)) { if (campaign.Difficulty.StartsWith("Easy")) { m_difficultyCombo.SelectItemByIndex(0); } else if (campaign.Difficulty.StartsWith("Normal")) { m_difficultyCombo.SelectItemByIndex(1); } else { m_difficultyCombo.SelectItemByIndex(2); } } m_selectedCampaign = campaign; } }
private void AddCampaignButton(MyObjectBuilder_Campaign campaign, bool isLocalMod = false, bool isWorkshopMod = false) { var button = new MyGuiControlContentButton(campaign.Name, GetImagePath(campaign)) { UserData = campaign, IsLocalMod = isLocalMod, IsWorkshopMod = isWorkshopMod, }; m_campaignTypesGroup.Add(button); m_campaignList.Controls.Add(button); }
private string GetImagePath(MyObjectBuilder_Campaign campaign) { string imagePath = campaign.ImagePath; if (!campaign.IsVanilla) { imagePath = Path.Combine(campaign.ModFolderPath, campaign.ImagePath); if (!MyFileSystem.FileExists(imagePath)) { imagePath = Path.Combine(MyFileSystem.ContentPath, campaign.ImagePath); } } return(imagePath); }
private string GetImagePath(MyObjectBuilder_Campaign campaign) { string imagePath = campaign.ImagePath; if (string.IsNullOrEmpty(campaign.ImagePath)) { return(string.Empty); } if (!campaign.IsVanilla) { imagePath = campaign.ModFolderPath != null?Path.Combine(campaign.ModFolderPath, campaign.ImagePath) : string.Empty; if (!MyFileSystem.FileExists(imagePath)) { imagePath = Path.Combine(MyFileSystem.ContentPath, campaign.ImagePath); } } return(imagePath); }