public bool Initialize(Engine engine) { this.engine = engine; if (!TryOpenMpq(out mpq)) { OnFailedInitialize?.Invoke(); waitForInitialized.SetResult(false); waitForInitialized = new(); return(false); } coroutineManager = new(); NotificationsCenter = new NotificationsCenter(this); TimeManager = new TimeManager(this); ScreenSpaceSelector = new ScreenSpaceSelector(this); DbcManager = new DbcManager(this, databaseClientFileOpener); CurrentMap = DbcManager.MapStore.FirstOrDefault(m => m.Id == 1) ?? Map.Empty; TextureManager = new WoWTextureManager(this); MeshManager = new WoWMeshManager(this); MdxManager = new MdxManager(this); WmoManager = new WmoManager(this); ChunkManager = new ChunkManager(this); CameraManager = new CameraManager(this); LightingManager = new LightingManager(this); AreaTriggerManager = new AreaTriggerManager(this); RaycastSystem = new RaycastSystem(engine); ModuleManager = new ModuleManager(this, gameView); // must be last OnInitialized?.Invoke(); IsInitialized = true; waitForInitialized.SetResult(true); return(true); }
public bool Initialize() { var gameFiles = ResolveOrCreate <IGameFiles>(); if (!gameFiles.Initialize()) { return(false); } coroutineManager = new(); dbcManager = ResolveOrCreate <DbcManager>(); SetMap(1); foreach (var store in dbcManager.Stores()) { registry.RegisterInstance(store.Item1, store.Item2); } notificationsCenter = ResolveOrCreate <NotificationsCenter>(); timeManager = ResolveOrCreate <TimeManager>(); screenSpaceSelector = ResolveOrCreate <ScreenSpaceSelector>(); loadingManager = ResolveOrCreate <LoadingManager>(); textureManager = ResolveOrCreate <WoWTextureManager>(); meshManager = ResolveOrCreate <WoWMeshManager>(); mdxManager = ResolveOrCreate <MdxManager>(); wmoManager = ResolveOrCreate <WmoManager>(); worldManager = ResolveOrCreate <WorldManager>(); chunkManager = ResolveOrCreate <ChunkManager>(); cameraManager = ResolveOrCreate <CameraManager>(); lightingManager = ResolveOrCreate <LightingManager>(); areaTriggerManager = ResolveOrCreate <AreaTriggerManager>(); raycastSystem = ResolveOrCreate <RaycastSystem>(); moduleManager = ResolveOrCreate <ModuleManager>(); IsInitialized = true; return(true); }