예제 #1
0
        public void OnTableToggleChanged(int GroupId, int ToggleId)
        {
            TablesLua.TablesInfo TablesData = MapLuaParser.Current.TablesLuaFile.Data;


            bool SetTo = false;

            if (CustomToggles[GroupId][ToggleId].HasOffValue)
            {
                SetTo = true;
            }

            string TableKey;

            if (TablesData.AllTables[GroupId].OneDimension)
            {
                TableKey = TablesData.AllTables[GroupId].Key;
            }
            else
            {
                TableKey = TablesData.AllTables[GroupId].Key + "#" + ToggleId;
            }

            int  Count      = SelectionManager.Current.Selection.Ids.Count;
            bool AnyChanged = false;

            for (int i = 0; i < Count; i++)
            {
                GameObject     CurrentObj = SelectionManager.Current.AffectedGameObjects[SelectionManager.Current.Selection.Ids[i]];
                SaveLua.Marker Current    = CurrentObj.GetComponent <MarkerObject>().Owner;

                AnyChanged |= SetTableGroupToggle(Current, SetTo, TableKey);
            }

            for (int s = 0; s < SelectionManager.Current.SymetrySelection.Length; s++)
            {
                for (int i = 0; i < SelectionManager.Current.SymetrySelection[s].Ids.Count; i++)
                {
                    GameObject     CurrentObj = SelectionManager.Current.AffectedGameObjects[SelectionManager.Current.SymetrySelection[s].Ids[i]];
                    SaveLua.Marker Current    = CurrentObj.GetComponent <MarkerObject>().Owner;

                    AnyChanged |= SetTableGroupToggle(Current, SetTo, TableKey);
                }
            }


            CustomToggles[GroupId][ToggleId].HasOnValue  = SetTo;
            CustomToggles[GroupId][ToggleId].HasOffValue = !SetTo;
            CustomToggles[GroupId][ToggleId].ApplyTesting();

            if (AnyChanged)
            {
                RenderAdaptiveMarkers.UpdateAdaptiveLines();
            }
        }
예제 #2
0
        void Generate()
        {
            if (!MapLuaParser.Current.TablesLuaFile.IsLoaded)
            {
                return;
            }

            Clear();


            ScenarioLua.ScenarioInfo ScenarioData    = MapLuaParser.Current.ScenarioLuaFile.Data;
            List <UiToggle>          ArmyTogglesList = new List <UiToggle>();

            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++)
                    {
                        if (ScenarioData.Configurations[c].Teams[t].Armys[a].Data != null)
                        {
                            GameObject NewToggleObj = Instantiate(TogglePrefab, ArmyTooglePivot.parent);
                            CreatedObjects.Add(NewToggleObj);
                            NewToggleObj.transform.SetSiblingIndex(ArmyTooglePivot.GetSiblingIndex());
                            NewToggleObj.SetActive(true);

                            UiToggle NewToggle = NewToggleObj.GetComponent <UiToggle>();
                            NewToggle.Set(false, ScenarioData.Configurations[c].Teams[t].Armys[a].Data.Name + " (" + ScenarioData.Configurations[c].Teams[t].name + ")", OnArmyToggleChanged, t, a);
                            ArmyTogglesList.Add(NewToggle);
                        }
                    }
                }
            }
            ArmyToogles = ArmyTogglesList.ToArray();

            TablesLua.TablesInfo TablesData = MapLuaParser.Current.TablesLuaFile.Data;
            CustomToggles = new UiToggle[TablesData.AllTables.Count][];
            for (int i = 0; i < TablesData.AllTables.Count; i++)
            {
                CreateTitle(TablesData.AllTables[i].Key);

                if (TablesData.AllTables[i].OneDimension)
                {
                    CustomToggles[i] = new UiToggle[1];

                    GameObject NewToggleObj = Instantiate(TogglePrefab, ArmyTooglePivot.parent);
                    CreatedObjects.Add(NewToggleObj);
                    NewToggleObj.transform.SetSiblingIndex(CustomTablesPivot.GetSiblingIndex());
                    NewToggleObj.SetActive(true);

                    UiToggle NewToggle = NewToggleObj.GetComponent <UiToggle>();
                    NewToggle.Set(false, TablesData.AllTables[i].Key, OnTableToggleChanged, i, 0);
                    CustomToggles[i][0] = NewToggle;
                }
                else
                {
                    int        ToogleGroupCount = 0;
                    GameObject LastToggleGroup  = Instantiate(ToggleGroupPrefab, ArmyTooglePivot.parent);
                    CreatedObjects.Add(LastToggleGroup);
                    LastToggleGroup.transform.SetSiblingIndex(CustomTablesPivot.GetSiblingIndex());
                    LastToggleGroup.SetActive(true);

                    CustomToggles[i] = new UiToggle[TablesData.AllTables[i].Values.Length];

                    for (int j = 0; j < TablesData.AllTables[i].Values.Length; j++)
                    {
                        ToogleGroupCount++;
                        if (ToogleGroupCount > 3)
                        {
                            ToogleGroupCount = 0;
                            LastToggleGroup  = Instantiate(ToggleGroupPrefab, ArmyTooglePivot.parent);
                            CreatedObjects.Add(LastToggleGroup);
                            LastToggleGroup.transform.SetSiblingIndex(CustomTablesPivot.GetSiblingIndex());
                            LastToggleGroup.SetActive(true);
                        }

                        GameObject NewToggleObj = Instantiate(TogglePrefab, LastToggleGroup.transform);
                        CreatedObjects.Add(NewToggleObj);
                        NewToggleObj.transform.SetSiblingIndex(CustomTablesPivot.GetSiblingIndex());
                        NewToggleObj.SetActive(true);


                        UiToggle NewToggle = NewToggleObj.GetComponent <UiToggle>();
                        NewToggle.Set(false, (j + 1).ToString(), OnTableToggleChanged, i, j);                         // TablesData.AllTables[i].Key + " " +
                        CustomToggles[i][j] = NewToggle;
                    }
                }
            }

            UpdateSelection();
        }
예제 #3
0
        public void OnTableToggleChanged(int GroupId, int ToggleId)
        {
            TablesLua.TablesInfo TablesData = MapLuaParser.Current.TablesLuaFile.Data;


            bool SetTo = false;

            if (CustomToggles[GroupId][ToggleId].HasOffValue)
            {
                SetTo = true;
            }

            string TableKey;

            if (TablesData.AllTables[GroupId].OneDimension)
            {
                TableKey = TablesData.AllTables[GroupId].Key;
            }
            else
            {
                TableKey = TablesData.AllTables[GroupId].Key + "#" + ToggleId;
            }

            int  Count      = SelectionManager.Current.Selection.Ids.Count;
            bool AnyChanged = false;

            for (int i = 0; i < Count; i++)
            {
                GameObject     CurrentObj = SelectionManager.Current.AffectedGameObjects[SelectionManager.Current.Selection.Ids[i]];
                SaveLua.Marker Current    = CurrentObj.GetComponent <MarkerObject>().Owner;

                if (Current.MarkerType != SaveLua.Marker.MarkerTypes.Mass && Current.MarkerType != SaveLua.Marker.MarkerTypes.Hydrocarbon)
                {
                    continue;
                }

                if (SetTo)
                {
                    if (!Current.AdaptiveKeys.Contains(TableKey))
                    {
                        Current.AdaptiveKeys.Add(TableKey);
                        AnyChanged = true;
                    }
                }
                else
                {
                    if (Current.AdaptiveKeys.Contains(TableKey))
                    {
                        Current.AdaptiveKeys.Remove(TableKey);
                        AnyChanged = true;
                    }
                }
            }


            CustomToggles[GroupId][ToggleId].HasOnValue  = SetTo;
            CustomToggles[GroupId][ToggleId].HasOffValue = !SetTo;
            CustomToggles[GroupId][ToggleId].ApplyTesting();

            if (AnyChanged)
            {
                RenderAdaptiveMarkers.UpdateAdaptiveLines();
            }
        }
예제 #4
0
        void UpdateCustomToggles()
        {
            for (int t = 0; t < CustomToggles.Length; t++)
            {
                for (int j = 0; j < CustomToggles[t].Length; j++)
                {
                    CustomToggles[t][j].ResetTesting();
                }
            }

            TablesLua.TablesInfo TablesData = MapLuaParser.Current.TablesLuaFile.Data;

            int Count = SelectionManager.Current.Selection.Ids.Count;

            for (int i = 0; i < Count; i++)
            {
                GameObject     CurrentObj = SelectionManager.Current.AffectedGameObjects[SelectionManager.Current.Selection.Ids[i]];
                SaveLua.Marker Current    = CurrentObj.GetComponent <MarkerObject>().Owner;

                if (Current.MarkerType != SaveLua.Marker.MarkerTypes.Mass && Current.MarkerType != SaveLua.Marker.MarkerTypes.Hydrocarbon)
                {
                    continue;
                }

                for (int t = 0; t < CustomToggles.Length; t++)
                {
                    if (TablesData.AllTables[t].OneDimension)
                    {
                        if (Current.AdaptiveKeys.Contains(TablesData.AllTables[t].Key))
                        {
                            CustomToggles[t][0].HasOnValue = true;
                        }
                        else
                        {
                            CustomToggles[t][0].HasOffValue = true;
                        }
                    }
                    else
                    {
                        for (int j = 0; j < CustomToggles[t].Length; j++)
                        {
                            // Check if contain
                            if (Current.AdaptiveKeys.Contains(TablesData.AllTables[t].Key + "#" + j))
                            {
                                CustomToggles[t][j].HasOnValue = true;
                            }
                            else
                            {
                                CustomToggles[t][j].HasOffValue = true;
                            }
                        }
                    }
                }
            }


            for (int t = 0; t < CustomToggles.Length; t++)
            {
                for (int j = 0; j < CustomToggles[t].Length; j++)
                {
                    CustomToggles[t][j].ApplyTesting();
                }
            }
        }