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); }
// Start is called before the first frame update void Start() { playerInputDecoder = GetComponent <PlayerInputDecoder>(); playerInputDecoder.AutoUpdate = false; player = GetComponent <Transform>(); controller = GetComponent <CharacterController>(); weaponSystem = GetComponent <WeaponSystem>(); raycastSystem = GetComponent <RaycastSystem>(); }
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); }
public void InventoryGrabTest() { var contexts = new Contexts(); //create item var cubeEntity = contexts.game.CreateEntity(); cubeEntity.AddIngredient(IngredientsType.Crystal); var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); var link = cube.AddComponent <GameObjectEntityLink>(); link.Entity = cubeEntity; cubeEntity.AddGameObject(cube); cube.transform.position = new Vector3(5, 0, 0); var camera = new GameObject().AddComponent <Camera>(); camera.transform.LookAt(cube.transform, Vector3.up); contexts.game.SetCamera(camera); contexts.game.cameraEntity.AddDistance(float.MaxValue); var tryGrabSystem = new RaycastSystem(contexts); var click = contexts.input.CreateEntity(); click.isClick = true; Assert.IsFalse(cubeEntity.isInsideInventory); tryGrabSystem.Execute(); Assert.IsTrue(cubeEntity.isInsideInventory); }
public override void GetSystemDependencies(Dependencies dependencies) { m_inputManagementSystem = dependencies.GetDependency <InputManagementSystem>(); m_raycastSystem = dependencies.GetDependency <RaycastSystem>(); }