public void PlaceElement(ref string line, string type) { int id = Int32.Parse(GetSubString(ref line, line.IndexOf(' '))); int row = Int32.Parse(GetSubString(ref line, line.IndexOf(' '))); int column = Int32.Parse(GetSubString(ref line, line.IndexOf(' '))); string direction = GetSubString(ref line, 1); int node1Id = Int32.Parse(GetSubString(ref line, line.IndexOf(' '))); int node2Id = Int32.Parse(GetSubString(ref line, line.Length)); Node node1 = gameController.scheme.GetNode(node1Id); Node node2 = gameController.scheme.GetNode(node2Id); BaseElement element; switch (type) { case "Re": element = new Resistor(node1, node2, id); break; case "No": element = new Norator(node1, node2, id); break; case "Nu": element = new Nullator(node1, node2, id); break; default: element = new Conductor(node1, node2, id); break; } gameController.scheme.AddElement(element); element.GetImage().SetValue(Grid.RowProperty, row); element.GetImage().SetValue(Grid.ColumnProperty, column); element.GetImage().SetValue(Panel.ZIndexProperty, 1); if (direction == "R") { element.ChangeImageDirectionToLand(); element.GetImage().SetValue(Grid.RowSpanProperty, 3); element.GetImage().SetValue(Grid.ColumnSpanProperty, 9); } else { element.GetImage().SetValue(Grid.RowSpanProperty, 9); element.GetImage().SetValue(Grid.ColumnSpanProperty, 3); } gameController.gameWindow.GameGrid.Children.Add(element.GetImage()); }