public void CreateGroup(MapLua.SaveLua.Army Army, MapLua.SaveLua.Army.UnitsGroup Grp, MapLua.SaveLua.Army.UnitsGroup Parent, Transform Pivot, bool Root = false) { if (Root) { Grp.Expanded = true; } GameObject NewGroupObject = Instantiate(GroupPrefab, Pivot); UnitListObject ulo = NewGroupObject.GetComponent <UnitListObject>(); ulo.AddAction = AddNewGroup; ulo.RemoveAction = RemoveGroup; ulo.SelectAction = SelectGroup; ulo.RenameAction = RenameStart; ulo.ExpandAction = ExpandAction; ulo.SetGroup(Army, Grp, Parent, Root); UnitGroups.Add(ulo); if (StoreSelection.Contains(Grp)) { AddToGrpSelection(ulo); } GenerateGroups(Army, Grp, ulo); }
public void Generate() { Clear(); var ScenarioData = MapLuaParser.Current.ScenarioLuaFile.Data; for (int c = 0; c < ScenarioData.Configurations.Length; c++) { for (int t = 0; t < ScenarioData.Configurations[c].Teams.Length; t++) { for (int a = 0; a < ScenarioData.Configurations[c].Teams[t].Armys.Count; a++) { GameObject NewGroupObject = Instantiate(GroupPrefab, Pivot); UnitListObject ulo = NewGroupObject.GetComponent <UnitListObject>(); ulo.GroupName.text = ScenarioData.Configurations[c].Teams[t].Armys[a].Data.Name; UnitGroups.Add(ulo); GenerateArmy(ScenarioData.Configurations[c].Teams[t].Armys[a], ulo); } } for (int e = 0; e < ScenarioData.Configurations[c].ExtraArmys.Count; e++) { GameObject NewGroupObject = Instantiate(GroupPrefab, Pivot); UnitListObject ulo = NewGroupObject.GetComponent <UnitListObject>(); ulo.GroupName.text = ScenarioData.Configurations[c].ExtraArmys[e].Data.Name; UnitGroups.Add(ulo); } } }
public void RenameGroup(UnitListObject parent) { string NewValue = NameInputField.text; if (parent.Source.Name == NewValue) { return; // No changes } if (parent.Source.UnitGroups.Count > 1) { HashSet <string> AllNames = new HashSet <string>(); foreach (MapLua.SaveLua.Army.UnitsGroup ug in parent.Source.UnitGroups) { AllNames.Add(ug.Name); } if (AllNames.Contains(NewValue)) { return; // Already exist } } RenameUndoApplyied = true; Undo.RegisterGroupChange(parent.Source); parent.Source.NoPrefixName = NewValue; Generate(true); }
public void PrefixChangeGroup(UnitListObject parent) { string OldPrefix = parent.Source.PrefixName; string NewValue = PrefixInputField.text; if (OldPrefix == NewValue) { return; // No changes } if (!RenameUndoApplyied) { Undo.RegisterGroupChange(parent.Source); } if (!string.IsNullOrEmpty(OldPrefix)) { ChangeAllPrefix(parent.Owner.Units, OldPrefix, NewValue); foreach (UnitListObject ulo in UnitGroups) { ulo.GroupName.text = ulo.Source.Name; } } else { parent.Source.PrefixName = NewValue; parent.GroupName.text = parent.Source.Name; } }
public void SelectGroup(UnitListObject parent) { ClearRename(); if (Input.GetKey(KeyCode.LeftShift)) { AddToGrpSelection(parent); } else if (Input.GetKey(KeyCode.LeftControl)) { if (SelectedGroups.Contains(parent)) { RemoveFromGrpSelection(parent); } else { AddToGrpSelection(parent); } } else { ClearGrpSelection(); AddToGrpSelection(parent); } UpdateGroupSelection(); }
public void RemoveGroup(UnitListObject parent, bool Forced = false) { if (parent == null || parent.IsRoot || parent.Parent == null) { return; } if (!Forced && (parent.Source.Units.Count > 0 || parent.Source.UnitGroups.Count > 0)) { LastRemoveObject = parent; GenericPopup.ShowPopup(GenericPopup.PopupTypes.TwoButton, "Remove group", "Group " + parent.Source.Name + " is not empty!\nRemove it anyway?", "Yes", RemoveGroupYes, "No", null); return; } ClearRename(); Undo.RegisterGroupRemove(parent.Parent); StoreSelection.Clear(); StoreSelection = GetAllSelectedGroups(); ClearGrpSelection(); UpdateGroupSelection(); parent.Source.ClearGroup(true); //parent.Parent.UnitGroups.Remove(parent.Source); parent.Parent.RemoveGroup(parent.Source); Generate(false); }
public void AddNewGroup(UnitListObject parent) { ClearRename(); Undo.RegisterGroupRemove(parent.Source); ClearGrpSelection(); UpdateGroupSelection(); string NamePrefix = DefaultGroupName; int NameCount = 0; bool found = false; if (parent.IsRoot && parent.Source.UnitGroups.Count == 0) { NamePrefix = "INITIAL"; } else if (parent.Source.UnitGroups.Count > 0) { HashSet <string> AllNames = new HashSet <string>(); foreach (MapLua.SaveLua.Army.UnitsGroup ug in parent.Source.UnitGroups) { AllNames.Add(ug.Name); } while (!found) { if (!AllNames.Contains(NamePrefix + "_" + NameCount.ToString("00"))) { found = true; break; } else { NameCount++; } } NamePrefix = DefaultGroupName + "_" + NameCount.ToString("00"); } else { NamePrefix = DefaultGroupName + "_00"; } MapLua.SaveLua.Army.UnitsGroup NewGroup = new MapLua.SaveLua.Army.UnitsGroup(parent.Source.Owner); NewGroup.Name = NamePrefix; //parent.Source.UnitGroups.Add(NewGroup); parent.Source.AddGroup(NewGroup); StoreSelection.Clear(); StoreSelection.Add(NewGroup); Generate(false); }
public void SelectGroup(UnitListObject parent, bool onTitle) { ClearRename(); if (Input.GetKey(KeyCode.LeftShift)) { AddToGrpSelection(parent); } else if (Input.GetKey(KeyCode.LeftControl)) { if (SelectedGroups.Contains(parent)) { RemoveFromGrpSelection(parent); } else { AddToGrpSelection(parent); } } else { if (SelectedGroups.Count == 1 && SelectedGroups[0] == parent) { if (!onTitle && Time.realtimeSinceStartup - LastClickTime < UnitListObject.DoubleClickTime) { SelectionManager.Current.CleanSelection(); List <UnitInstance> SelectedInstances = new List <UnitInstance>(128); parent.Source.GetAllUnitInstances(ref SelectedInstances); GameObject[] NewSelection = new GameObject[SelectedInstances.Count]; for (int i = 0; i < SelectedInstances.Count; i++) { NewSelection[i] = SelectedInstances[i].gameObject; } SelectionManager.Current.SelectObjects(NewSelection); } } else { ClearGrpSelection(); AddToGrpSelection(parent); } LastClickTime = Time.realtimeSinceStartup; } UpdateGroupSelection(); }
public void RenameStart(UnitListObject parent) { ClearRename(); RenameObject = parent; RenameField.SetParent(parent.transform, false); RenameField.gameObject.SetActive(true); RenameField.GetComponent <LayoutElement>().enabled = true; NameInputField.SetValue(parent.Source.NoPrefixName); PrefixInputField.SetValue(parent.Source.PrefixName); NameInputField.InputFieldUi.ActivateInputField(); }
public void SelectGroupUnits(UnitListObject ulo, bool recursive = true) { List <UnitInstance> allUnits = new List <UnitInstance>(); ulo.Source.GetAllUnitInstances(ref allUnits); int unitsCount = allUnits.Count; if (unitsCount == 0) { SelectionManager.Current.CleanSelection(); return; } GameObject[] allUnitsGameObjects = new GameObject[unitsCount]; for (int i = 0; i < unitsCount; i++) { allUnitsGameObjects[i] = allUnits[i].gameObject; } SelectionManager.Current.SelectObjectsInput(allUnitsGameObjects); }
public void GenerateArmy(MapLua.ScenarioLua.Army Army, UnitListObject ArmyGroup) { }
public void GenerateGroups(MapLua.SaveLua.Army Army, MapLua.SaveLua.Army.UnitsGroup Grp, UnitListObject ParentGrp) { int GrpCount = Grp.UnitGroups.Count; if (GrpCount == 0) { return; } foreach (MapLua.SaveLua.Army.UnitsGroup iGrp in Grp.UnitGroups) { CreateGroup(Army, iGrp, ParentGrp.Source, ParentGrp.Pivot); } }
static void RemoveFromGrpSelection(UnitListObject ulo) { SelectedGroups.Remove(ulo); }
static void AddToGrpSelection(UnitListObject ulo) { SelectedGroups.Add(ulo); }
public void ExpandAction(UnitListObject parent) { }
public void RemoveGroup(UnitListObject parent) { RemoveGroup(parent, false); }