public static void CreateEmptyRoom(int width, int height)
 {
     view.LeftMax = 0;
     view.TopMax = 0;
     view.BottomMax = height * GRID_SIZE;
     view.RightMax = width * GRID_SIZE;
     grid = new Tile[width, height];
     for (int x = 0; x < width; x++)
     {
         for (int y = 0; y < height; y++)
         {
             if (x == 0 || y == 0 || x == width - 1 || y == height - 1)
                 grid[x, y] = new Tile(new Point(1, 0));
             else
                 grid[x, y] = new Tile(new Point(0, 0));
         }
     }
     entities = new List<Entity>();
     entities.Add(new Player(new Point(1, 1)));
 }
        public static void LoadRoom(string room)
        {
            currentRoomName = room;

            LevelFile file = FileHandling.LoadLevel(room);
            grid = new Tile[file.Width, file.Height];
            width = file.Width;
            height = file.Height;

            view.LeftMax = 0;
            view.TopMax = 0;
            view.BottomMax = height * GRID_SIZE;
            view.RightMax = width * GRID_SIZE;

            for (int x = 0; x < file.Width; x++)
            {
                for (int y = 0; y < file.Height; y++)
                {
                    grid[x, y] = new Tile(file.grid[x, y]);
                }
            }
            entities = new List<Entity>();
            entities.Add(new Player(new Point(2, 2)));
            for (int i = 0; i < file.entities.Count; i++)
            {
                #region Entities
                //TODO: THIS IS JUST A FRAMEWORK, ONLY REGULAR BOXES WORK AT THE MOMENT!!!

                //start (I): Start position of player
                //box: Regular Box
                //teleport: Teleporter
                //exit: Exit
                //button (U): Button
                //switch: Switch Block
                //key: Key
                //door: Door
                //pad: Pressure Pad (For light up box)
                //asthetic: Asthetic
                string type = file.entities[i][0].ToLower();
                Point pos = FileHandling.ParsePoint(file.entities[i][1]);
                if (type == "b" || type == "box")
                {
                    #region Boxes
                    if (file.entities[i].Length >= 3)
                    {
                        string boxType = file.entities[i][2].ToLower();
                        if (boxType == "n" || boxType == "normal" || boxType == "0")
                        {
                            entities.Insert(1, new BoxEntity(pos, false));
                        }
                        else if (boxType == "l" || boxType == "light" || boxType == "1")
                        {
                            entities.Insert(1, new BoxEntity(pos, true));
                        }
                        else
                        {
                            entities.Insert(1, new BoxEntity(pos, false));
                        }
                    }
                    else
                    {
                        entities.Insert(1, new BoxEntity(pos, false));
                    }
                    #endregion
                }
                else if (type == "g" || type == "gem")
                {
                    #region Gem
                    entities.Add(new GemEntity(pos));
                    #endregion
                }
                else if (type == "t" || type == "teleporter")
                {
                    #region Teleporters
                    if (file.entities[i].Length >= 3)
                    {
                        string teleType = file.entities[i][2].ToLower();
                        if (teleType == "red" || teleType == "0")
                        {
                            entities.Add(new TeleporterEntity(pos, 0));
                        }
                        else if (teleType == "green" || teleType == "1")
                        {
                            entities.Add(new TeleporterEntity(pos, 1));
                        }
                        else if (teleType == "blue" || teleType == "2")
                        {
                            entities.Add(new TeleporterEntity(pos, 2));
                        }
                        else
                        {
                            entities.Add(new TeleporterEntity(pos, 0));
                        }
                    }
                    else
                    {
                        entities.Add(new TeleporterEntity(pos, 0));
                    }
                    #endregion
                }
                else if (type == "e" || type == "exit")
                {
                    #region Exit
                    entities.Add(new ExitEntity(pos));
                    #endregion
                }
                else if (type == "u" || type == "button")
                {
                    #region Buttons
                    if (file.entities[i].Length >= 3)
                    {
                        string buttonType = file.entities[i][2].ToLower();
                        Point target = new Point(-1, -1);
                        bool isOneTimeUse = false;
                        if (file.entities[i].Length >= 4)
                            bool.TryParse(file.entities[i][3], out isOneTimeUse);
                        if (file.entities[i].Length >= 5)
                            target = FileHandling.ParsePoint(file.entities[i][4]);
                        //0=gray, 1=yellow, 2=orange, 3=blue, 4=green, 5=purple
                        if (buttonType == "gray" || buttonType == "0")
                        {
                            entities.Add(new ButtonEntity(pos, 0, isOneTimeUse, target));
                        }
                        else if (buttonType == "yellow" || buttonType == "1")
                        {
                            entities.Add(new ButtonEntity(pos, 1, isOneTimeUse, target));
                        }
                        else if (buttonType == "orange" || buttonType == "2")
                        {
                            entities.Add(new ButtonEntity(pos, 2, isOneTimeUse, target));
                        }
                        else if (buttonType == "blue" || buttonType == "3")
                        {
                            entities.Add(new ButtonEntity(pos, 3, isOneTimeUse, target));
                        }
                        else if (buttonType == "green" || buttonType == "4")
                        {
                            entities.Add(new ButtonEntity(pos, 4, isOneTimeUse, target));
                        }
                        else if (buttonType == "purple" || buttonType == "5")
                        {
                            entities.Add(new ButtonEntity(pos, 5, isOneTimeUse, target));
                        }
                        else
                        {
                            entities.Add(new ButtonEntity(pos, 0, true));//<--Set them to onetimeuse to represent that they weren't loaded right
                        }
                    }
                    else
                    {
                        entities.Add(new ButtonEntity(pos, 0, true));//<--Set them to onetimeuse to represent that they weren't loaded right
                    }
                    #endregion
                }
                else if (type == "s" || type == "switch")
                {
                    #region Switch Blocks
                    if (file.entities[i].Length >= 3)
                    {
                        string switchType = file.entities[i][2].ToLower();
                        //yellow, orange, blue, green, purple
                        //There is no 'gray' switch blocks only 'gray' buttons
                        List<string> settings = new List<string>();
                        if (file.entities[i].Length >= 4)
                        {
                            for (int i2 = 3; i2 < file.entities[i].Length; i2++)
                                settings.Add(file.entities[i][i2]);
                        }
                        if (switchType == "yellow" || switchType == "1")
                        {
                            entities.Add(new SwitchEntity(pos, 1, settings));
                        }
                        else if (switchType == "orange" || switchType == "2")
                        {
                            entities.Add(new SwitchEntity(pos, 2, settings));
                        }
                        else if (switchType == "blue" || switchType == "3")
                        {
                            entities.Add(new SwitchEntity(pos, 3, settings));
                        }
                        else if (switchType == "green" || switchType == "4")
                        {
                            entities.Add(new SwitchEntity(pos, 4, settings));
                        }
                        else if (switchType == "purple" || switchType == "5")
                        {
                            entities.Add(new SwitchEntity(pos, 5, settings));
                        }
                        else
                        {
                            entities.Add(new SwitchEntity(pos, 1, settings));
                        }
                    }
                    else
                    {
                        entities.Add(new SwitchEntity(pos, 1, new List<string>()));
                    }
                    #endregion
                }
                else if (type == "k" || type == "key") //TODO: Impliment keys
                {
                    #region Keys
                    if (file.entities[i].Length >= 3)
                    {
                        string keyType = file.entities[i][2].ToLower();
                        if (keyType == "gray" || keyType == "0")
                        {
                            //CREATE GRAY KEY
                        }
                        else if (keyType == "blue" || keyType == "1")
                        {
                            //CREATE BLUE KEY
                        }
                        else if (keyType == "green" || keyType == "2")
                        {
                            //CREATE GREEN KEY
                        }
                        else if (keyType == "brown" || keyType == "3")
                        {
                            //CREATE BROWN KEY
                        }
                        else
                        {
                            //ADD DEFAULT KEY
                        }
                    }
                    else
                    {
                        //ADD DEFAULT KEY
                    }
                    #endregion
                }
                else if (type == "d" || type == "door")
                {
                    #region Doors
                    if (file.entities[i].Length >= 3)
                    {
                        string doorType = file.entities[i][2].ToLower();
                        if (doorType == "gray" || doorType == "0")
                        {
                            entities.Add(new DoorEntity(pos, 0));
                        }
                        else if (doorType == "blue" || doorType == "1")
                        {
                            entities.Add(new DoorEntity(pos, 1));
                        }
                        else if (doorType == "green" || doorType == "2")
                        {
                            entities.Add(new DoorEntity(pos, 2));
                        }
                        else if (doorType == "brown" || doorType == "3")
                        {
                            entities.Add(new DoorEntity(pos, 3));
                        }
                        else if (doorType == "pressure" || doorType == "4")
                        {
                            entities.Add(new DoorEntity(pos, 4));
                        }
                        else
                        {
                            entities.Add(new DoorEntity(pos, 0));
                        }
                    }
                    else
                    {
                        entities.Add(new DoorEntity(pos, 0));
                    }
                    #endregion
                }
                else if (type == "p" || type == "pad")
                {
                    #region Pressure Pad
                    entities.Add(new PressurePadEntity(pos));
                    #endregion
                }
                else if (type == "i" || type == "start")
                {
                    entities.RemoveAt(0);
                    entities.Insert(0, new Player(pos));
                }
                else if (type == "a" || type == "asthetic" || type == "decal")
                {
                    #region Asthetic
                    if (file.entities[i].Length >= 3)
                    {
                        float alpha = 1;
                        if (file.entities[i].Length >= 4)
                            float.TryParse(file.entities[i][3], out alpha);
                        entities.Add(new AstheticEntity(pos, FileHandling.ParsePoint(file.entities[i][2]), alpha));
                    }
                    else
                    {
                        entities.Add(new AstheticEntity(pos, new Point(9,9)));
                    }
                    #endregion
                }
                else
                {
                    //Didn't recognize the entity type but would still like to see it
                    //loaded and shown when debugDraw is on
                    entities.Add(new Entity(new Point(0, 3), pos, true, false));
                }
                #endregion
            }

            if (!(entities[0] is Player))
            {
                entities.Insert(0, new Player(new Point(1, 1)));
            }
        }