Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
        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;
            }
            }
                }
        }