public override void LoadContent() { base.LoadContent(); // Load the compiled map _map = Content.Load <TiledMap>("maps/Librarian"); // Create the map renderer _mapRenderer = new TiledMapRenderer(GraphicsDevice, _map); foreach (var layer in _map.ObjectLayers) { if (layer.Name == "Arrivals") { foreach (var obj in layer.Objects) { if (obj.Name == "from-city") { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; _player = HarvestMoon.Instance.RanchState.Entities.FirstOrDefault(e => e is Jack) as Jack; if (_player == null) { _player = _entityManager.AddEntity(new Jack(Content, _entityManager, this, objectPosition)); } else { _entityManager.AddEntity(_player); _player.EntityManager = _entityManager; } _player.Position = new Vector2(objectPosition.X, objectPosition.Y); _player.PlayerFacing = Jack.Facing.UP; } } } else if (layer.Name == "Walls") { foreach (var obj in layer.Objects) { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; var objectSize = obj.Size; _entityManager.AddEntity(new Wall(objectPosition, objectSize)); } } else if (layer.Name == "Doors") { foreach (var obj in layer.Objects) { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; var objectSize = obj.Size; var door = new Door(objectPosition, objectSize); _entityManager.AddEntity(door); door.OnTriggerStart(() => { _player.Freeze(); }); if (obj.Name == "city") { door.OnTriggerEnd(() => { if (!door.Triggered) { door.Triggered = true; var screen = new Town(Game, HarvestMoon.Arrival.Librarian); var transition = new FadeTransition(GraphicsDevice, Color.Black, 1.0f); ScreenManager.LoadScreen(screen, transition); } }); } } } else if (layer.Name == "Interactables") { foreach (var obj in layer.Objects) { } } } LoadPlayer(); }
public override void LoadContent() { base.LoadContent(); // Load the compiled map _map = Content.Load <TiledMap>("maps/Dealer"); // Create the map renderer _mapRenderer = new TiledMapRenderer(GraphicsDevice, _map); foreach (var layer in _map.ObjectLayers) { if (layer.Name == "Arrivals") { foreach (var obj in layer.Objects) { if (obj.Name == "from-city") { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; _player = HarvestMoon.Instance.RanchState.Entities.FirstOrDefault(e => e is Jack) as Jack; if (_player == null) { _player = _entityManager.AddEntity(new Jack(Content, _entityManager, this, objectPosition)); } else { _entityManager.AddEntity(_player); _player.EntityManager = _entityManager; } _player.Position = new Vector2(objectPosition.X, objectPosition.Y); _player.PlayerFacing = Jack.Facing.UP; } } } else if (layer.Name == "Walls") { foreach (var obj in layer.Objects) { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; var objectSize = obj.Size; _entityManager.AddEntity(new Wall(objectPosition, objectSize)); } } else if (layer.Name == "Doors") { foreach (var obj in layer.Objects) { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; var objectSize = obj.Size; var door = new Door(objectPosition, objectSize); _entityManager.AddEntity(door); door.OnTriggerStart(() => { _player.Freeze(); }); if (obj.Name == "city") { door.OnTriggerEnd(() => { if (!door.Triggered) { door.Triggered = true; var screen = new Town(Game, HarvestMoon.Arrival.Dealer); var transition = new FadeTransition(GraphicsDevice, Color.Black, 1.0f); ScreenManager.LoadScreen(screen, transition); } }); } } } else if (layer.Name == "Interactables") { foreach (var obj in layer.Objects) { var objectPosition = obj.Position; objectPosition.X = obj.Position.X + obj.Size.Width * 0.5f; objectPosition.Y = obj.Position.Y + obj.Size.Height * 0.5f; var objectSize = obj.Size; string objectMessage = ""; foreach (var property in obj.Properties) { if (property.Key.Contains("message")) { objectMessage = HarvestMoon.Instance.Strings.Get(property.Value); } } if (obj.Name == "livestock-dealer") { _entityManager.AddEntity(new LivestockDealerStore(objectPosition, objectSize, "All purchases will be delivered the same day.", "Livestock")); } else if (obj.Name == "pete") { _entityManager.AddEntity(new Pete(Content, objectPosition, objectSize)); } } } } LoadPlayer(); }