public GameWorld() : base() { World = this; Engine.Console.InvisibleUntilOpen = true; // Fade Fade fade = new Fade(new Color(0x000000), 0.15f); AddResponse(Door.DoorMessages.StartChangeRoom, (a) => { player.Active = false; fade.FadeIn(() => { Door callingDoor = (Door)a[0]; ActuallyChangeRoom(callingDoor); fade.FadeOut(() => player.Active = true); }); }); this.Add(fade); // Ogmo loading OgmoLoader ogmoSenpai = new OgmoLoader(); // TODO: Move enemy init logic somewhere else ogmoSenpai.RegisterClassAlias <Enemy>("EnemyWalker"); ogmoSenpai.DefineGrid("TileCollision", KQ.CollisionTypeSolid, 24, 24); ogmoSenpai.DefineGrid("px4TileCollision", KQ.CollisionTypeSolid, 6, 6); ogmoSenpai.DefineTilemap("Blocks", 24, 24, Library.Get <Texture>("content/ogmo/rooms/roomProjectTileset.png")); Map map = new Map("content/ogmo/layout/layout.oel"); this.Add(map); foreach (MapRoom layoutRoom in map.mapRooms.OfType <MapRoom>()) { XmlDocument roomXml = Library.Get <XmlDocument>("content/ogmo/rooms/" + layoutRoom.Filename + ".oel"); //Load level properties Room realRoom = new Room ( ogmoSenpai.BuildLevelAsArray(roomXml).ToList(), ogmoSenpai.GetLevelProperties <RealRoomMeta>(roomXml), layoutRoom, this ); realRoom.RealRoomMeta.Init(); rooms.Add(layoutRoom.Filename, realRoom); } (CurrentRoom = rooms["start"]).PopulateWorld(); Add(player); HUD hud = new HUD(player); Add(hud); Entity follow = player; //for (int i = 0; i < 4; i++) //{ // Orb orb = new Orb(player.X, player.Y, (OrbType)i, follow); // follow = orb; // orbs.Add(Add(orb)); //} }