Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 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);
     }
 }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        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();
        }
Beispiel #9
0
        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();
        }
Beispiel #10
0
 public UnitGroupRemoveHistoryParameter(MapLua.SaveLua.Army.UnitsGroup RegisterGroup)
 {
     this.RegisterGroup = RegisterGroup;
 }
Beispiel #11
0
 public UnitGroupChangeParam(MapLua.SaveLua.Army.UnitsGroup RegisterGroup)
 {
     this.RegisterGroup = RegisterGroup;
 }