public void AddToTowerSelctionMenu() { string towerSelFilePath = TowerSelectFiles[TowerSelPos]; if (!File.Exists(towerSelFilePath)) { ConsoleHandler.append_Force("Unable to find the Tower Selection file!"); return; } string text = CheckJSONFromFile(towerSelFilePath); if (!Guard.IsStringValid(text)) { FileInfo file = new FileInfo(towerSelFilePath); ConsoleHandler.append_Force("The Tower Select File " + file.Name + " has has invalid text/JSON. Unable to add tower to TowerSelectionMenu"); return; } ConsoleHandler.append("Creating new tower entry in TowerSelectionMenu"); TowerSelectionMenu menu = TowerSelectionMenu.FromJson(text); TowerSelectItem newItem = new TowerSelectItem(); bool foundBaseTower = false; if (UseBaseTower) { newItem = TowerSelMenu_DupBaseTower(); if (!Guard.IsStringValid(newItem.ToString())) { foundBaseTower = false; ConsoleHandler.append("Unable to find chosen base tower in tower selection menu files. Using blank values instead."); } else { foundBaseTower = true; } } if (!UseBaseTower || !foundBaseTower) { newItem = TowerSelMenu_EmptyTower(newItem); } if (newItem == null) { return; } if (menu == null) { return; } AddTowerToSelMenu(newItem, menu); }
private void AddTowerToSelMenu(TowerSelectItem newItem, TowerSelectionMenu menu) { menu.Items.Add(newItem); string text = menu.ToJson(); StreamWriter serialize = new StreamWriter(TowerSelectFiles[TowerSelPos], false); serialize.Write(text); serialize.Close(); ConsoleHandler.append("Tower added to " + TowerSelectFiles[TowerSelPos].Replace(CurrentProjectVariables.PathToProjectFiles, "")); }
private TowerSelectItem TowerSelMenu_EmptyTower(TowerSelectItem newItem) { newItem.FactoryName = TowerName; newItem.Icon = ""; newItem.KeyboardShortcut = ""; ConsoleHandler.append("Creating empty TowerSelectMenu entry"); if (TowerSelPos == TowerSelectMenu_Pos.FixedLeft || TowerSelPos == TowerSelectMenu_Pos.FixedRight) { newItem.ObjectType = 1; } else { newItem.ObjectType = 0; } return(newItem); }
private TowerSelectItem TowerSelMenu_DupBaseTower() { FileInfo baseTower = new FileInfo(BaseTowerFile); TowerSelectItem newItem = new TowerSelectItem(); ConsoleHandler.append("Duplicating base TowerSelectMenu entry"); foreach (var a in TowerSelectFiles) { string tempText = CheckJSONFromFile(a.Value); if (!Guard.IsStringValid(tempText)) { continue; } TowerSelectionMenu tempMenu = TowerSelectionMenu.FromJson(tempText); if (tempMenu == null) { continue; } foreach (TowerSelectItem item in tempMenu.Items) { if (item.FactoryName == baseTower.Name.Replace(".tower", "")) { ConsoleHandler.append("Found base tower's TowerSelect entry in: " + a.Value.Replace(CurrentProjectVariables.PathToProjectFiles, "")); newItem.FactoryName = TowerName; newItem.Icon = item.Icon; newItem.KeyboardShortcut = item.KeyboardShortcut; newItem.ObjectType = item.ObjectType; break; } } } return(newItem); }