Exemplo n.º 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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public void Generate(bool HoldSelection = true)
        {
            if (HoldSelection)
            {
                StoreSelection.Clear();
                StoreSelection = GetAllSelectedGroups();
            }

            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++)
                    {
                        CreateGroup(ScenarioData.Configurations[c].Teams[t].Armys[a].Data, ScenarioData.Configurations[c].Teams[t].Armys[a].Data.Units, null, Pivot, true);
                    }
                }
                for (int e = 0; e < ScenarioData.Configurations[c].ExtraArmys.Count; e++)
                {
                    CreateGroup(ScenarioData.Configurations[c].ExtraArmys[e].Data, ScenarioData.Configurations[c].ExtraArmys[e].Data.Units, null, Pivot, true);
                }
            }

            UpdateGroupSelection();
        }
Exemplo n.º 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);
        }