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(); } }
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(); }
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(); } }
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(); } } }