public GenericOpenHeroesRunner(IMapLoader mapLoader, EntityWorld entityWorld = null) { _mapLoader = mapLoader; EventBus = JEventBus.GetDefault(); GameCalendar = new GameCalendar(); int?internalMapSize = mapLoader?.GetMapSize(); if (!internalMapSize.HasValue) { internalMapSize = 512; } Grid grid = new Grid(internalMapSize.Value, internalMapSize.Value); EntitySystem.BlackBoard.SetEntry("EventBus", EventBus); EntitySystem.BlackBoard.SetEntry("Grid", grid); EntitySystem.BlackBoard.SetEntry("GameCalendar", GameCalendar); EntitySystem.BlackBoard.SetEntry("TerrainLayer", new TerrainLayer(grid)); if (entityWorld == null) { EntityWorld = new EntityWorld(false, true, true) { PoolCleanupDelay = 1 }; LoadMap(); } else { EntityWorld = entityWorld; } }