public override void DoRedo() { int mc = 0; // MasterChainID List <MapLua.SaveLua.Marker> NewMarkersList = AllMarkers.ToList(); for (int i = 0; i < MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Count; i++) { if (!NewMarkersList.Contains(MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i])) { if (MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].MarkerObj) { MapLua.SaveLua.RemoveMarker(MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].Name); Destroy(MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].MarkerObj.gameObject); } } } MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers = AllMarkers.ToList(); for (int i = 0; i < AllMarkers.Length; i++) { MapLua.SaveLua.AddNewMarker(AllMarkers[i]); } MarkersControler.RegenerateMarkers(); Undo.Current.EditMenu.ChangeCategory(4); NewMarkersInfo.Current.ClearCreateNew(); MarkersInfo.Current.ChangePage(0); NewMarkersInfo.Current.GoToSelection(); }
public void ValuesChanged() { if (IgnoreEvent) { return; } MarkersControler.Current.MarkerLayersSettings.Blank = BlankActive.isOn; MarkersControler.Current.MarkerLayersSettings.Spawn = SpawnActive.isOn; MarkersControler.Current.MarkerLayersSettings.Resource = ResourcesActive.isOn; MarkersControler.Current.MarkerLayersSettings.Camera = CameraActive.isOn; MarkersControler.Current.MarkerLayersSettings.LandNodes = LandNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.AmphibiousNodes = AmphibiousNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.NavyNodes = NavalNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.AirNodes = AirNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.ConnectedNodes = ConnectionsActive.isOn; MarkersControler.Current.MarkerLayersSettings.RallyPoint = RallyPointActive.isOn; MarkersControler.Current.MarkerLayersSettings.Combat = CombatActive.isOn; MarkersControler.Current.MarkerLayersSettings.Defense = DefenseActive.isOn; MarkersControler.Current.MarkerLayersSettings.ProtExp = ProtExpActive.isOn; MarkersControler.Current.MarkerLayersSettings.Expand = ExpandActive.isOn; MarkersControler.Current.MarkerLayersSettings.Other = OtherActive.isOn; UpdateAllToggle(); MarkersControler.UpdateLayers(); //MarkersInfo.Current.MarkerList.UpdateSelection(); }
public void ImportMarkers() { var extensions = new[] { new ExtensionFilter("Faf Markers", "fafmapmarkers") }; var paths = StandaloneFileBrowser.OpenFilePanel("Import markers", DefaultPath, extensions, false); if (paths.Length > 0 && !string.IsNullOrEmpty(paths[0])) { ExportMarkers ImpMarkers = JsonUtility.FromJson <ExportMarkers>(System.IO.File.ReadAllText(paths[0])); bool AnyCreated = false; int mc = 0; MapLua.SaveLua.Marker[] CreatedMarkers = new MapLua.SaveLua.Marker[ImpMarkers.Markers.Length]; for (int m = 0; m < ImpMarkers.Markers.Length; m++) { if (!AnyCreated) { Undo.Current.RegisterMarkersAdd(); } AnyCreated = true; if (SelectionManager.Current.SnapToGrid) { ImpMarkers.Markers[m].Pos = ScmapEditor.SnapToGridCenter(ImpMarkers.Markers[m].Pos, true, SelectionManager.Current.SnapToWater); } MapLua.SaveLua.Marker NewMarker = new MapLua.SaveLua.Marker(ImpMarkers.Markers[m].MarkerType); CreatedMarkers[m] = NewMarker; NewMarker.position = ScmapEditor.WorldPosToScmap(ImpMarkers.Markers[m].Pos); NewMarker.orientation = ImpMarkers.Markers[m].Rot.eulerAngles; MarkersControler.CreateMarker(NewMarker, mc); ChainsList.AddToCurrentChain(NewMarker); MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Add(NewMarker); } for (int m = 0; m < ImpMarkers.Markers.Length; m++) { CreatedMarkers[m].AdjacentToMarker = new List <MapLua.SaveLua.Marker>(); for (int c = 0; c < ImpMarkers.Markers[m].Connected.Length; c++) { CreatedMarkers[m].AdjacentToMarker.Add(CreatedMarkers[ImpMarkers.Markers[m].Connected[c]]); } } RenderMarkersConnections.Current.UpdateConnections(); EnvPaths.SetLastPath(ExportPathKey, System.IO.Path.GetDirectoryName(paths[0])); GenericInfoPopup.ShowInfo("Markers imported"); } }
// Use this for initialization void OnEnable() { SelectionManager.Current.SetSelectionChangeAction(SelectMarkers); int[] Types; SelectionManager.Current.SetAffectedGameObjects(MarkersControler.GetMarkerObjects(out Types), SelectionManager.SelectionControlTypes.MarkerChain); SelectionManager.Current.SetAffectedTypes(Types); //Selection.SelectionManager.Current.SetCustomSettings(true, false, false); //ChainSelected = -1; UpdateList(); }
public void NameChanged() { if (Loading) { return; } Loading = true; string NameToChange = NameField.text; if (AllowConnect) { NameToChange.Replace(" ", ""); } for (int i = 0; i < SelectionManager.Current.AffectedGameObjects.Length; i++) { if (SelectionManager.Current.AffectedGameObjects[i].name == NameToChange) { Loading = true; NameField.text = SelectedGameObjects[0].name; Loading = false; return; } } SaveLua.Marker Current = SelectedGameObjects[0].GetComponent <MarkerObject>().Owner; Undo.RegisterUndo(new UndoHistory.HistoryMarkersChange(), new UndoHistory.HistoryMarkersChange.MarkersChangeHistoryParameter(new SaveLua.Marker[] { Current })); //MapLua.SaveLua.RemoveMarkerName(SelectedGameObjects[0].name); //MapLua.SaveLua.RegisterMarkerName(NameToChange); MapLua.SaveLua.RemoveMarker(SelectedGameObjects[0].name); Current.Name = NameToChange; SelectedGameObjects[0].name = NameToChange; NameField.text = NameToChange; MapLua.SaveLua.AddNewMarker(Current); MarkerListControler.UpdateList(true); MarkersControler.UpdateBlankMarkersGraphics(); Loading = false; }
public void GoToSelection() { if (!MarkersInfo.MarkerPageChange) { SelectionManager.Current.CleanSelection(); } int[] Types; SelectionManager.Current.SetAffectedGameObjects(MarkersControler.GetMarkerObjects(out Types), SelectionManager.SelectionControlTypes.Marker); SelectionManager.Current.SetAffectedTypes(Types); //Selection.SelectionManager.Current.SetCustomSettings(true, false, false); PlacementManager.Clear(); if (ChangeControlerType.Current) { ChangeControlerType.Current.UpdateButtons(); } MarkerSelectionOptions.UpdateOptions(); }
GameObject GetCreationObject() { if (CreationId == CREATE_PRESET) { PlacementManager.SnapToWater = false; return(MarkerPresets[SpawnPressetDropdown.value]); } else { LastCreationType = GetCreationType(); MarkersControler.MarkerPropGraphic Mpg = MarkersControler.GetPropByType(LastCreationType); switch (LastCreationType) { case MapLua.SaveLua.Marker.MarkerTypes.BlankMarker: PlacementManager.SnapToWater = false; break; case MapLua.SaveLua.Marker.MarkerTypes.Mass: PlacementManager.SnapToWater = false; break; case MapLua.SaveLua.Marker.MarkerTypes.Hydrocarbon: PlacementManager.SnapToWater = false; break; default: PlacementManager.SnapToWater = true; break; } MarkerNew NewMarkerObject = MarkerPrefab.GetComponent <MarkerNew>(); NewMarkerObject.Mf.sharedMesh = Mpg.SharedMesh; NewMarkerObject.Mr.sharedMaterial = Mpg.SharedMaterial; NewMarkerObject.gameObject.SetActive(true); return(MarkerPrefab); } }
public void ValuesChanged() { MarkersControler.Current.MarkerLayersSettings.Blank = BlankActive.isOn; MarkersControler.Current.MarkerLayersSettings.Spawn = SpawnActive.isOn; MarkersControler.Current.MarkerLayersSettings.Resource = ResourcesActive.isOn; MarkersControler.Current.MarkerLayersSettings.Camera = CameraActive.isOn; MarkersControler.Current.MarkerLayersSettings.LandNodes = LandNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.AmphibiousNodes = AmphibiousNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.NavyNodes = NavalNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.AirNodes = AirNodesActive.isOn; MarkersControler.Current.MarkerLayersSettings.ConnectedNodes = ConnectionsActive.isOn; MarkersControler.Current.MarkerLayersSettings.RallyPoint = RallyPointActive.isOn; MarkersControler.Current.MarkerLayersSettings.NavyRallyPoint = NavyRallyPointActive.isOn; MarkersControler.Current.MarkerLayersSettings.Other = OtherActive.isOn; MarkersControler.UpdateLayers(); MarkersInfo.Current.MarkerList.UpdateSelection(); }
public void DestroyMarkers(List <GameObject> MarkerObjects, bool RegisterUndo = true) { int mc = 0; // MasterChainID bool AnyRemoved = false; int Mcount = MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Count; if (RegisterUndo) { LastDestroyedMarkers = new int[MarkerObjects.Count]; int Step = 0; for (int i = 0; i < Mcount; i++) { //bool Removed = false; for (int m = 0; m < MarkerObjects.Count; m++) { if (MarkerObjects[m] == null) { break; } if (MarkerObjects[m] == MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].MarkerObj.gameObject) { LastDestroyedMarkers[Step] = i; Step++; break; } } } Undo.Current.RegisterMarkersRemove(); } //List<MapLua.SaveLua.Marker> NewMarkers = new List<MapLua.SaveLua.Marker>(); //Mcount = MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Count; for (int i = 0; i < Mcount; i++) { if (MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].MarkerObj == null) { continue; } //bool Removed = false; for (int m = 0; m < MarkerObjects.Count; m++) { if (MarkerObjects[m] == MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].MarkerObj.gameObject) { MapLua.SaveLua.RemoveMarker(MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i].Name); Destroy(MarkerObjects[m]); MarkerObjects.RemoveAt(m); MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i] = null; MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.RemoveAt(i); Mcount--; i--; AnyRemoved = true; break; } } //if (!Removed) // NewMarkers.Add(MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers[i]); } //MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers = NewMarkers.ToArray(); if (AnyRemoved) { SelectionManager.Current.CleanSelection(); int[] Types; SelectionManager.Current.SetAffectedGameObjects(MarkersControler.GetMarkerObjects(out Types), SelectionManager.SelectionControlTypes.Marker); SelectionManager.Current.SetAffectedTypes(Types); MarkerSelectionOptions.UpdateOptions(); RenderMarkersConnections.Current.UpdateConnections(); } }
public void Place(Vector3[] Positions, Quaternion[] Rotations, Vector3[] Scales) { //List<MapLua.SaveLua.Marker> NewMarkers = new List<MapLua.SaveLua.Marker>(); int mc = 0; // MasterChainID LastAddedMarkers = new List <int>(); int TotalMarkersCount = MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Count; bool AnyCreated = false; if (CreationId == 5) { Vector3 NewPos; MarkerPreset Mpreset = MarkerPresets[SpawnPressetDropdown.value].GetComponent <MarkerPreset>(); for (int i = 0; i < Positions.Length; i++) { for (int m = 0; m < Mpreset.Markers.Length; m++) { if (!AnyCreated) { Undo.Current.RegisterMarkersAdd(); } AnyCreated = true; //Debug.Log(Mpreset.Markers[m].Tr.localPosition); NewPos = Positions[i] + Rotations[i] * Mpreset.Markers[m].Tr.localPosition; if (SelectionManager.Current.SnapToGrid) { NewPos = ScmapEditor.SnapToGridCenter(NewPos, true, SelectionManager.Current.SnapToWater); } //NewPos.y = ScmapEditor.Current.Teren.SampleHeight(NewPos); MapLua.SaveLua.Marker NewMarker = new MapLua.SaveLua.Marker(Mpreset.Markers[m].MarkerType); NewMarker.position = ScmapEditor.WorldPosToScmap(NewPos); //NewMarker.orientation = MarkersControler.CreateMarker(NewMarker, mc); ChainsList.AddToCurrentChain(NewMarker); LastAddedMarkers.Add(TotalMarkersCount); TotalMarkersCount++; MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Add(NewMarker); } } } else { for (int i = 0; i < Positions.Length; i++) { if (!AnyCreated) { Undo.Current.RegisterMarkersAdd(); } AnyCreated = true; MapLua.SaveLua.Marker NewMarker = new MapLua.SaveLua.Marker(LastCreationType); bool snapToWater = SelectionManager.Current.SnapToWater; if (LastCreationType == MapLua.SaveLua.Marker.MarkerTypes.Mass || LastCreationType == MapLua.SaveLua.Marker.MarkerTypes.Hydrocarbon) { snapToWater = false; } if (SelectionManager.Current.SnapToGrid) { Positions[i] = ScmapEditor.SnapToGridCenter(Positions[i], true, snapToWater); } //Positions[i].y = ScmapEditor.Current.Teren.SampleHeight(Positions[i]); ChainsList.AddToCurrentChain(NewMarker); NewMarker.position = ScmapEditor.WorldPosToScmap(Positions[i]); if (CreationId == 3) { NewMarker.orientation = Rotations[i].eulerAngles; } else { NewMarker.orientation = Vector3.zero; } MarkersControler.CreateMarker(NewMarker, mc); LastAddedMarkers.Add(TotalMarkersCount); TotalMarkersCount++; MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Add(NewMarker); } } if (AnyCreated) { //MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers = MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Concat<MapLua.SaveLua.Marker>(NewMarkers.ToArray()); MarkerSelectionOptions.UpdateOptions(); MarkersControler.UpdateBlankMarkersGraphics(); RenderMarkersWarnings.Generate(); } }
public void Save(string Path) { if (!IsLoaded) { return; } ScenarioLua.ScenarioInfo ScenarioData = MapLuaParser.Current.ScenarioLuaFile.Data; SaveLua.Marker[] AllMarkers = MarkersControler.GetMarkers(); LuaParser.Creator LuaFile = new LuaParser.Creator(); LuaFile.AddSaveComent("Generated by FAF Map Editor"); LuaFile.AddComent("Table of which resources belong to which player, it is sorted in such a way that the first line"); LuaFile.AddComent("corresponds to player one, the second to player 2 and so on..."); LuaFile.NextLine(1); int ArmyId = 0; // Count armies 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) { ArmyId++; } } } } LuaFile.AddLine("maxPlayerOnMap" + LuaParser.Write.SetValue + ArmyId); LuaFile.NextLine(4); LuaFile.AddComent("Line number is 10 + armynumber for the mexes in the table"); int ArmyCount = ArmyId; Data.spawnMexArmy = new MexArray[ArmyCount]; Data.spawnHydroArmy = new MexArray[ArmyCount]; ArmyId = 0; // Create Mass table 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) { List <string> MarkerArrays = new List <string>(); for (int m = 0; m < AllMarkers.Length; m++) { if (AllMarkers[m].MarkerType == SaveLua.Marker.MarkerTypes.Mass && AllMarkers[m].SpawnWithArmy.Contains(ArmyId)) { MarkerArrays.Add(ConvertToTableName(AllMarkers[m].Name, MexName)); } } MarkerArrays.Sort(); Data.spawnMexArmy[ArmyId] = new MexArray(MarkerArrays.ToArray()); string ValueString = CreateTableValueString(MarkerArrays); if (ArmyCount >= 16 && ArmyId == ArmyCount - 1) { ValueString += LuaParser.Write.EndBracket; } else { ValueString += ","; } if (ArmyId == 0) { LuaFile.OpenTab("spwnMexArmy" + LuaParser.Write.OpenBracketValue + "\t\t" + ValueString, 5); } else { LuaFile.AddLine(ValueString); } ArmyId++; } } } } if (ArmyCount < 16) { for (int a = ArmyId; a < 16; a++) { if (a == 15) { LuaFile.AddLine(LuaParser.Write.OpenBracket + LuaParser.Write.EndBracket + LuaParser.Write.EndBracket); } else { LuaFile.AddLine(LuaParser.Write.OpenBracket + LuaParser.Write.EndBracketNext); } } } LuaFile.CloseTab(5); LuaFile.NextLine(3); LuaFile.AddComent("Line number is 30 + armynumber for the hydros in the table"); ArmyId = 0; // Create Hydro table 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) { List <string> MarkerArrays = new List <string>(); for (int m = 0; m < AllMarkers.Length; m++) { if (AllMarkers[m].MarkerType == SaveLua.Marker.MarkerTypes.Hydrocarbon && AllMarkers[m].SpawnWithArmy.Contains(ArmyId)) { MarkerArrays.Add(ConvertToTableName(AllMarkers[m].Name, HydroName)); } } MarkerArrays.Sort(); Data.spawnHydroArmy[ArmyId] = new MexArray(MarkerArrays.ToArray()); string ValueString = CreateTableValueString(MarkerArrays); if (ArmyCount >= 16 && ArmyId == ArmyCount - 1) { ValueString += LuaParser.Write.EndBracket; } else { ValueString += ","; } if (ArmyId == 0) { LuaFile.OpenTab("spwnHydroArmy" + LuaParser.Write.OpenBracketValue + "\t" + ValueString, 5); } else { LuaFile.AddLine(ValueString); } ArmyId++; } } } } if (ArmyCount < 16) { for (int a = ArmyId; a < 16; a++) { if (a == 15) { LuaFile.AddLine(LuaParser.Write.OpenBracket + LuaParser.Write.EndBracket + LuaParser.Write.EndBracket); } else { LuaFile.AddLine(LuaParser.Write.OpenBracket + LuaParser.Write.EndBracketNext); } } } LuaFile.CloseTab(5); LuaFile.NextLine(2); LuaFile.AddComent("RESOURCE SCALING OPTIONS"); LuaFile.AddComent("exampleMexes = {{1,2},{3,4},{5,6}}, -- exampleMexes = {{1,2}}"); LuaFile.AddComent("exampleMexes = {{a},{b},{c}}, -- exampleMexes = {{a}}"); LuaFile.AddComent("option key=1 : removes a+b+c -- option key=1 : removes a"); LuaFile.AddComent("option key=2 : spawn a, removes b+c -- option key=2 : spawns a"); LuaFile.AddComent("option key=3 : spawn a+b, removes c"); LuaFile.AddComent("option key=4 : spawn a+b+c"); LuaFile.NextLine(1); int TablesCount = Data.AllTables.Count; for (int t = 0; t < TablesCount; t++) { string TableString = Data.AllTables[t].Key + LuaParser.Write.SetValue; if (!Data.AllTables[t].OneDimension) { TableString += LuaParser.Write.OpenBracket; } for (int v = 0; v < Data.AllTables[t].Values.Length; v++) { string TableValueKey = Data.AllTables[t].Key; if (!Data.AllTables[t].OneDimension) { TableValueKey += "#" + (v); } List <string> NewMexes = new List <string>(); for (int m = 0; m < AllMarkers.Length; m++) { if (Data.AllTables[t].IsHydro && AllMarkers[m].MarkerType == SaveLua.Marker.MarkerTypes.Hydrocarbon) { // Hydro if (AllMarkers[m].AdaptiveKeys.Contains(TableValueKey)) { NewMexes.Add(ConvertToTableName(AllMarkers[m].Name, HydroName)); } } else { // Mass if (AllMarkers[m].AdaptiveKeys.Contains(TableValueKey)) { NewMexes.Add(ConvertToTableName(AllMarkers[m].Name, MexName)); } } } NewMexes.Sort(); Data.AllTables[t].Values[v] = new MexArray(NewMexes.ToArray()); if (v > 0) { TableString += LuaParser.Write.NextValue; } TableString += CreateTableValueString(NewMexes); } if (!Data.AllTables[t].OneDimension) { TableString += LuaParser.Write.EndBracket; } LuaFile.AddLine(TableString); LuaFile.NextLine(); } System.IO.File.WriteAllText(Path, LuaFile.GetFileString()); }
public void ImportMarkers() { var extensions = new[] { new ExtensionFilter("Faf Markers", "fafmapmarkers") }; var paths = StandaloneFileBrowser.OpenFilePanel("Import markers", EnvPaths.GetMapsPath(), extensions, false); /* * OpenFileDialog FileDialog = new OpenFileDialog(); * FileDialog.Title = "Import markers"; * FileDialog.AddExtension = true; * FileDialog.DefaultExt = ".fafmapmarkers"; * FileDialog.Filter = "Faf Markers (*.fafmapmarkers)|*.fafmapmarkers"; * FileDialog.CheckFileExists = true; */ if (paths.Length > 0 && !string.IsNullOrEmpty(paths[0])) { ExportMarkers ImpMarkers = JsonUtility.FromJson <ExportMarkers>(System.IO.File.ReadAllText(paths[0])); bool AnyCreated = false; int mc = 0; MapLua.SaveLua.Marker[] CreatedMarkers = new MapLua.SaveLua.Marker[ImpMarkers.Markers.Length]; for (int m = 0; m < ImpMarkers.Markers.Length; m++) { if (!AnyCreated) { Undo.Current.RegisterMarkersAdd(); } AnyCreated = true; if (SelectionManager.Current.SnapToGrid) { ImpMarkers.Markers[m].Pos = ScmapEditor.SnapToGridCenter(ImpMarkers.Markers[m].Pos, true, SelectionManager.Current.SnapToWater); } MapLua.SaveLua.Marker NewMarker = new MapLua.SaveLua.Marker(ImpMarkers.Markers[m].MarkerType); CreatedMarkers[m] = NewMarker; NewMarker.position = ScmapEditor.WorldPosToScmap(ImpMarkers.Markers[m].Pos); NewMarker.orientation = ImpMarkers.Markers[m].Rot.eulerAngles; MarkersControler.CreateMarker(NewMarker, mc); ChainsList.AddToCurrentChain(NewMarker); MapLuaParser.Current.SaveLuaFile.Data.MasterChains[mc].Markers.Add(NewMarker); } for (int m = 0; m < ImpMarkers.Markers.Length; m++) { CreatedMarkers[m].AdjacentToMarker = new List <MapLua.SaveLua.Marker>(); for (int c = 0; c < ImpMarkers.Markers[m].Connected.Length; c++) { CreatedMarkers[m].AdjacentToMarker.Add(CreatedMarkers[ImpMarkers.Markers[m].Connected[c]]); } } RenderMarkersConnections.Current.UpdateConnections(); } }