/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { IsMouseVisible = true; _pauseMenuTexture = Content.Load <Texture2D>("PauseTexture"); _pauseMenuRectangle = new Rectangle(0, 0, _pauseMenuTexture.Width, _pauseMenuTexture.Height); _cleaner = new Cleaner() { Position = new Vector2(5, 2), VasteLocatie = new Vector2(5, 2) }; _cleaner2 = new Cleaner() { Position = new Vector2(5, 5), VasteLocatie = new Vector2(5, 5) }; // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); _persons = new List <IPerson>(); _cleaners = new List <Cleaner>(); _hotel.Areas = new LayoutReader().GetAllObjects(@"Content\Hotel3.layout"); AreaFactory areaFactory = new AreaFactory(); _elevator = (Elevator)areaFactory.Create("Elevator"); _stairs = (Stairs)areaFactory.Create("Stairs"); _lobby = (Lobby)areaFactory.Create("Lobby"); _elevator.Dimension = new Vector2(1, _hotel.Areas.OrderByDescending(x => x.Dimension.Y + x.Position.Y).First().Dimension.Y + _hotel.Areas.OrderByDescending(x => x.Dimension.Y + x.Position.Y).First().Position.Y); _stairs.Position = new Vector2(_hotel.Areas.OrderByDescending(x => x.Position.X + x.Dimension.X).First().Dimension.X + _hotel.Areas.OrderByDescending(x => x.Position.X + x.Dimension.X).First().Position.X, 0); _stairs.Dimension = new Vector2(1, _hotel.Areas.OrderByDescending(x => x.Dimension.Y + x.Position.Y).First().Dimension.Y + _hotel.Areas.OrderByDescending(x => x.Dimension.Y + x.Position.Y).First().Position.Y); _lobby.Dimension = new Vector2(_stairs.Position.X - 1, 1); _hotel.Areas.Add(_elevator); _hotel.Areas.Add(_stairs); _hotel.Areas.Add(_lobby); _persons.Add(_cleaner); _persons.Add(_cleaner2); _cleaners.Add(_cleaner); _cleaners.Add(_cleaner2); foreach (IArea area in _hotel.Areas) { area.LoadContent(Content); } _hotel.Load(); _hotel.AddToGraph(_simplePath); PeopleFactory peopleFactory = new PeopleFactory(); // nog even uitzoeken waar dit het best kan foreach (IPerson person in _persons) { person.LoadContent(Content); } _elevator.Attach(_cleaner); _elevator.Attach(_cleaner2); _menuForm = new MenuForm(_hotel, _cleaners, _customers, _persons, _stairs, _simplePath); _menuForm.Show(); // TODO: use this.Content to load your game content here }
/// <summary> /// The class that will create Areas when proper json objects are passed in /// </summary> /// <param name="objectType"></param> /// <param name="jsonObject"></param> /// <returns></returns> protected override IArea Create(Type objectType, JObject jsonObject) { // examine the AreaType value string typeName = (jsonObject["AreaType"]).ToString(); // based on the AreaType, instantiate and return a new object AreaFactory factory = new AreaFactory(); return(factory.Create(typeName)); }