public Level()
        {
            Blocks      = new List <Block>();
            Coins       = new List <Item>();
            Pipes       = new List <Pipe>();
            Enemies     = new List <Enemy>();
            Flagpoles   = new List <Flagpole>();
            Checkpoints = new List <CheckPoint>();

            Flag             = new Flag(Vector2.Zero);
            CoinRoomPosition = Vector2.Zero;
            InvisibleBarrier = new InvisibleBarrier(Vector2.Zero);

            BackgroundItems = new List <IBackgroundItem>();
            DynamicObjects  = new List <IDynamicObject>();
            StaticObjects   = new List <IStaticObject>();

            levelDictionary = GameValues.Levels;
            currentLevel    = GameValues.StartingLevel;
            fileName        = GameValues.LevelName1;


            levelData = ParseLevelCSV(fileName);
            BuildLevel(levelData);

            PowerUpState = false;
            IsOnePlayer  = true;
        }
        // Reloads the level and reinitializes Mario to his default state.
        public void Reset()
        {
            Enemies.Clear();
            Blocks.Clear();
            Pipes.Clear();
            Coins.Clear();
            Checkpoints.Clear();
            Flagpoles.Clear();
            levelData.Clear();

            InvisibleBarrier = new InvisibleBarrier(Vector2.Zero);
            CoinRoomPosition = Vector2.Zero;

            DynamicObjects.Clear();
            StaticObjects.Clear();

            PowerUpState = false;

            Mario.Instance.ResetPlayer();

            SoundManager.Instance.gameOverPlayOnce = true;

            levelData = ParseLevelCSV(fileName);
            BuildLevel(levelData);
        }