private ImmovableObject GetObject(char type, int row) { ImmovableObject immovableObject = null; switch (type) { case '-': immovableObject = new StandardTrack(); break; case 'S': immovableObject = new StartingPoint(); _startingPoints.Add(immovableObject as StartingPoint); break; case 'E': immovableObject = new DoubleEntranceSwitch(); _switches.Add(immovableObject as Switch); break; case 'X': immovableObject = new DoubleExitSwitch(); _switches.Add(immovableObject as Switch); break; case 'Y': immovableObject = new Yard(); break; case 'D': immovableObject = new Dock(this); _dock = immovableObject as Dock; break; case '.': immovableObject = new EndPoint(); break; case ' ': immovableObject = new Empty(); break; } return(immovableObject ?? null); }
private void generateField() { this._gameField = new LinkedList <Field>(); _filePath = Directory.GetParent(Directory.GetParent(_filePath).FullName).FullName; _filePath += @"\Level\map1.txt"; string[] lines = System.IO.File.ReadAllLines(_filePath); Field prev = null; Field next = null; int i = 0; foreach (string line in lines) { foreach (char Char in line) { if (prev == null) { prev = new WaterField(); prev.Pos = i; } switch (Char) { case '~': next = new WaterField(); break; case '-': next = new Track("-"); break; case '|': next = new Track("|"); break; case '.': next = new EmptyField(); break; case 'D': next = new Dock(); break; case 'Y': next = new Yard(); break; // ╮ case 'w': next = new Track("╮"); break; // ╭ case 'x': next = new Track("╭"); break; // ╯ case 'y': next = new Track("╯"); break; // ╰ case 'z': next = new Track("╰"); break; // In case 'S': next = new SwitchIn("╭"); break; // Out case 's': next = new SwitchOut("╮"); break; case 'A': next = new Warehouse(); break; // Ship case '0': next = new WaterField(); next.Pos = i; next.PutMoveAbleObjectOnThisField(new Ship(), this); break; default: Console.WriteLine("CORRUPT MAP FILE :("); Console.ReadKey(); break; } next.Pos = i; prev.NextField = next; prev = next; this._gameField.AddLast(prev); i++; } } generateTrackLinks(); }