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 override void Register(HistoryParameter Param) { parameter = (Param as UnitGroupRemoveHistoryParameter); RegisteredGroup = parameter.RegisterGroup; AllGroups = new MapLua.SaveLua.Army.UnitsGroup[RegisteredGroup.UnitGroups.Count]; RegisteredGroup.UnitGroups.CopyTo(AllGroups); }
public static void ReparentGroup(MapLua.SaveLua.Army.UnitsGroup Source, MapLua.SaveLua.Army.UnitsGroup NewOwner, MapLua.SaveLua.Army.UnitsGroup OldOwner) { if (OldOwner == null) { } OldOwner.RemoveGroup(Source); NewOwner.AddGroup(Source); }
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 override void Register(HistoryParameter Param) { parameter = (Param as UnitGroupChangeParam); RegisteredGroup = parameter.RegisterGroup; Name = RegisteredGroup.NoPrefixName; Prefix = RegisteredGroup.PrefixName; Orders = RegisteredGroup.orders; Platoons = RegisteredGroup.platoon; }
public static void ChangeAllPrefix(MapLua.SaveLua.Army.UnitsGroup Source, string Old, string New) { if (Source.PrefixName == Old) { Source.PrefixName = New; } foreach (MapLua.SaveLua.Army.UnitsGroup ug in Source.UnitGroups) { ChangeAllPrefix(ug, Old, New); } }
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); } }
public override void DoUndo() { if (!RedoGenerated) { MapLua.SaveLua.Army.UnitsGroup[] RegisterGroups = new MapLua.SaveLua.Army.UnitsGroup[GroupsUnits.Length]; for (int i = 0; i < GroupsUnits.Length; i++) { RegisterGroups[i] = GroupsUnits[i].Parent; } Undo.RegisterRedo(new HistoryUnitsRemove(), new UnitsRemoveParam(RegisterGroups)); } RedoGenerated = true; DoRedo(); }
public override void DoRedo() { MapLua.SaveLua.Army.UnitsGroup[] RemoveOld = new MapLua.SaveLua.Army.UnitsGroup[RegisteredGroup.UnitGroups.Count]; RegisteredGroup.UnitGroups.CopyTo(RemoveOld); for (int i = 0; i < RemoveOld.Length; i++) { RegisteredGroup.RemoveGroup(AllGroups[i]); AllGroups[i].ClearUnitInstances(); } RegisteredGroup.UnitGroups.Clear(); for (int i = 0; i < AllGroups.Length; i++) { RegisteredGroup.AddGroup(AllGroups[i]); AllGroups[i].InstantiateGroup(true); } Undo.Current.EditMenu.ChangeCategory(7); MapLuaParser.Current.UnitsMenu.ChangePage(0); MapLuaParser.Current.UnitsMenu.Generate(); }
public UnitGroupRemoveHistoryParameter(MapLua.SaveLua.Army.UnitsGroup RegisterGroup) { this.RegisterGroup = RegisterGroup; }
public UnitGroupChangeParam(MapLua.SaveLua.Army.UnitsGroup RegisterGroup) { this.RegisterGroup = RegisterGroup; }