public static void LoadFromCSV(string path, ConsItemFactory itemFactory, Enemy_Factory enemyFactory, BlockFactory blockFactory, Background_Factory bgFactory) { ArrayList tempList = new ArrayList(); try { using (StreamReader readFile = new StreamReader(path)) { string line; int rowsDownward = 0; int pixelFactor = 20; while ((line = readFile.ReadLine()) != null) { int heightPosition; int widthPosition; //determine if there is an object to be instantiated at this pixel height; skip line if only commas Match objectInRowMatch = Regex.Match(line, @"[A-Za-z0-9\-]+"); if (objectInRowMatch.Success) { int columnsInward = 0; while (line.Length > 0) { if (line.StartsWith(",")) { line = line.Remove(0,1); columnsInward++; } else { string objectToPlace = line.Split(',')[0]; widthPosition = pixelFactor * columnsInward; heightPosition = pixelFactor * rowsDownward; mapObject(objectToPlace, heightPosition, widthPosition, itemFactory, enemyFactory, blockFactory, bgFactory); tempList.Add(objectToPlace + "," + widthPosition + "," + heightPosition); line = line.Remove(0, objectToPlace.Length); } } } rowsDownward++; } } } catch (Exception e) { Console.WriteLine(e); } string temppath = "C:/Users/Dan/Desktop/TestGenerator2.txt"; File.WriteAllText(temppath, ""); for (int i = tempList.Count - 1; i >= 0; i--) { TextWriter tw = new StreamWriter(temppath, true); tw.WriteLine(tempList[i]); tw.Close(); } }
public KeyboardController(Level level, Enemy_Factory eFactory, Background_Factory bgFactory) { this.level = level; pastState = new ArrayList(); currentState = new ArrayList(); keyMapping.Add(Keys.Q, new QuitCommand(this.level)); keyMapping.Add(Keys.W, new MarioJumpCommand(this.level.mario)); keyMapping.Add(Keys.A, new MarioRunLeftCommand(this.level.mario)); keyMapping.Add(Keys.S, new MarioCrouchCommand(this.level.mario)); keyMapping.Add(Keys.D, new MarioRunRightCommand(this.level.mario)); keyMapping.Add(Keys.Space, new MarioShootCommand(this.level.mario)); keyMapping.Add(Keys.Y, new MarioSmallStateCommand(this.level.mario, this.level)); keyMapping.Add(Keys.B, new MarioBigStateCommand(this.level.mario, this.level)); keyMapping.Add(Keys.F, new MarioFireStateCommand(this.level.mario, this.level)); keyMapping.Add(Keys.O, new MarioDeadStateCommand(this.level.mario, this.level)); keyMapping.Add(Keys.I, new MarioIceStateCommand(this.level.mario, this.level)); }
public static void mapObject(string obj, int height, int width, ConsItemFactory itemFactory, Enemy_Factory enemyFactory, BlockFactory blockFactory, Background_Factory bgFactory) { switch (obj) { case "shine": bgFactory.Create_Shine(width, height, 0); break; case "cloud": bgFactory.Create_Cloud(width, height, 0); break; case "hill": bgFactory.Create_Hill(width, height, 0); break; case "bigbush": bgFactory.Create_BigBush(width, height, 0); break; case "smallbush": bgFactory.Create_LittleBush(width, height, 0); break; case "darkbg": bgFactory.Create_DarkRoom(width, height, 0); break; case "pole": blockFactory.CreateFlagpole(width, height); break; case "flag": bgFactory.Create_Flag(width + 10, height, 0); break; case "castle": bgFactory.Create_Castle(width, height, 0); break; case "cfb": blockFactory.CreateCastleFloorBlock(width, height); break; case "lava": blockFactory.CreateLavaBlock(width, height); break; case "castlepipe": blockFactory.CreateCastlePipe(width, height + 10); break; case "portal": blockFactory.CreateCastlePortal(width, height + 10); break; case "brick": blockFactory.CreateBrickBlock(width, height, "none"); break; case "pyr": blockFactory.CreatePyramidBlock(width, height); break; case "cbrick": blockFactory.CreateBrickBlock(width, height, "coin"); break; case "gbrick": blockFactory.CreateBrickBlock(width, height, "greenMushroom"); break; case "dbrick": blockFactory.CreateDarkBrickBlock(width, height); break; case "?": blockFactory.CreateQuestionBlock(width, height, "coin"); break; case "@": blockFactory.CreateQuestionBlock(width, height, "redMushroom"); break; case "#": blockFactory.CreateQuestionBlock(width, height, "fireFlower"); break; case "+": blockFactory.CreateQuestionBlock(width, height, "iceFlower"); break; case "!": blockFactory.CreateQuestionBlock(width, height, "greenMushroom"); break; case "$": blockFactory.CreateQuestionBlock(width, height, "star"); break; case "pipe": blockFactory.CreateGreenPipe(width, height); break; case "dpipe": blockFactory.CreateGreenPipe(width, height); break; case "enter": blockFactory.CreateSecretEntrance(width, height); break; case "exit": blockFactory.CreateSecretExit(width, height); break; case "used": blockFactory.CreateUsedBlock(width, height); break; case "floor": blockFactory.CreateFloorBlock(width, height); break; case "dfloor": blockFactory.CreateDarkFloorBlock(width, height); break; case "goomba": enemyFactory.Create_Goomba(width, height); break; case "koopa": enemyFactory.Create_Koopa(width, height); break; case "gshroom": itemFactory.CreateGreenMushroom(width, height); break; case "rshroom": itemFactory.CreateRedMushroom(width, height); break; case "coin": itemFactory.CreateCoin(width, height, false); break; case "star": itemFactory.CreateStar(width, height); break; case "fire": itemFactory.CreateFireFlower(width, height); break; default: Console.WriteLine("Incorrect object name."); break; } }
public static void LoadFile(string path, ConsItemFactory itemFactory, Enemy_Factory enemyFactory, BlockFactory blockFactory, Background_Factory bgFactory, Level level) { using (StreamReader readFile = new StreamReader(path)) { string line; while ((line = readFile.ReadLine()) != null) { string obj = line.Split(',')[0]; if (level.camera.customXLock > Int32.Parse(line.Split(',')[1])) { level.camera.customXLock = Int32.Parse(line.Split(',')[1]); } if (level.camera.customYLock > Int32.Parse(line.Split(',')[2])) { level.camera.customYLock = Int32.Parse(line.Split(',')[2]); } switch (obj) { case "shine": bgFactory.Create_Shine(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "cloud": bgFactory.Create_Cloud(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "hill": bgFactory.Create_Hill(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "bigbush": bgFactory.Create_BigBush(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "smallbush": bgFactory.Create_LittleBush(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "darkbg": bgFactory.Create_DarkRoom(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "pole": blockFactory.CreateFlagpole(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "flag": bgFactory.Create_Flag(Int32.Parse(line.Split(',')[1]) + 10, Int32.Parse(line.Split(',')[2]), 0); break; case "castle": bgFactory.Create_Castle(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), 0); break; case "brick": blockFactory.CreateBrickBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "none"); break; case "lakitu": enemyFactory.Create_Lakitu(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "spiny": enemyFactory.Create_Spiny(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]),0); break; case "pyr": blockFactory.CreatePyramidBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "cbrick": blockFactory.CreateBrickBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "coin"); break; case "gbrick": blockFactory.CreateBrickBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "greenMushroom"); break; case "dbrick": blockFactory.CreateDarkBrickBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "?": blockFactory.CreateQuestionBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "coin"); break; case "@": blockFactory.CreateQuestionBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "redMushroom"); break; case "#": blockFactory.CreateQuestionBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "fireFlower"); break; case "!": blockFactory.CreateQuestionBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "greenMushroom"); break; case "$": blockFactory.CreateQuestionBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), "star"); break; case "pipe": blockFactory.CreateGreenPipe(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "dpipe": blockFactory.CreateGreenPipe(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "castlepipe": blockFactory.CreateCastlePipe(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "portal": blockFactory.CreateCastlePortal(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "enter": blockFactory.CreateSecretEntrance(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "exit": blockFactory.CreateSecretExit(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "used": blockFactory.CreateUsedBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "floor": blockFactory.CreateFloorBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "dfloor": blockFactory.CreateDarkFloorBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "lava": blockFactory.CreateLavaBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "cfb": blockFactory.CreateCastleFloorBlock(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "goomba": enemyFactory.Create_Goomba(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "koopa": enemyFactory.Create_Koopa(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "gshroom": itemFactory.CreateGreenMushroom(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "rshroom": itemFactory.CreateRedMushroom(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "coin": itemFactory.CreateCoin(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2]), false); break; case "star": itemFactory.CreateStar(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "fire": itemFactory.CreateFireFlower(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "bridge": blockFactory.CreateCastleBridge(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; case "lever": blockFactory.CreateCastleLever(Int32.Parse(line.Split(',')[1]), Int32.Parse(line.Split(',')[2])); break; default: Console.WriteLine("Incorrect object name."); break; } } } }