public override void Load() { CollisionManager.Instance().WallCollideReset(); entityManager = EntityManager.Instance(); systemManager = SystemManager.Instance(); inputManager = InputManager.Instance(); audioManager = AudioManager.Instance(); audioManager.AddAudio("Death", "Audio/WilhelmScream.wav", false); audioManager.AddAudio("Collect", "Audio/CollectCoin.wav", false); audioManager.AddAudio("Powerup", "Audio/ElevatorMusic.wav", true); audioManager.AddAudio("KillGhost", "Audio/ko.wav", false); coinsCollected = 0; // Set the title of the window sceneManager.Title = "Game"; // Set the Render and Update delegates to the Update and Render methods of this class sceneManager.renderer = Render; sceneManager.updater = Update; // Set Keyboard events to go to a method in this class sceneManager.Keyboard.KeyDown += Keyboard_KeyDown; GL.ClearColor(0.0f, 0.0f, 0.0f, 1.0f); map = new MapLoader(); map.LoadMap("Maps/Level1.txt"); mapCamera = new MiniMapCamera(map.GetWidth(), map.GetHeight(), sceneManager.Width, sceneManager.Height); entityCamera = new EntityCamera(sceneManager.Width, sceneManager.Height); mapCamera.Position = new Vector3(0, 0, 0); mapCamera.Direction = new Vector3(0, -1, 0); mapCamera.Up = new Vector3(0, 0, -1); CollisionManager.Instance().SetMap(map); CollisionManager.Instance().SetLevel(this); Entity player = map.GetPlayer(); entityCamera.SetEntity(player); audioManager.SetCamera(entityCamera); CreateSystems(); CubeMapTexture cubeMap = ResourceManager.LoadCubeMap("Textures/darkskies_up.png", "Textures/darkskies_dn.png", "Textures/darkskies_lf.png", "Textures/darkskies_rt.png", "Textures/darkskies_ft.png", "Textures/darkskies_bk.png"); Shader shader = ResourceManager.LoadShader("Shaders/cubemapVS.glsl", "Shaders/cubemapFS.glsl"); Geometry geometry = ResourceManager.LoadGeometry("Geometry/SkyBox.obj"); cubemapRender = new CubeMapRender(entityCamera, cubeMap, shader, geometry); customRender = new MiniMapRender(entityCamera, mapCamera); }
public void InitializeController() { EntityMovement[] movementControllers = GetComponentsInChildren <EntityMovement>(); for (int i = 0; i < movementControllers.Length; i++) { movement.Add(movementControllers[i]); } entityCamera = Camera.main.GetComponent <EntityCamera>(); trailRenderers = GetComponentsInChildren <TrailRenderer>(); }
/// <summary> /// PERFORM GATHER /// </summary> /// <param name="camera"></param> /// <returns></returns> public GatherResult PerformGather(EntityCamera camera) { var task = Task.Run(() => { Thread.Sleep(camera.DemoWaitMs); }); bool isCompletedSuccessfully = task.Wait(TimeSpan.FromMilliseconds(camera.GatherTimeoutMs)); if (isCompletedSuccessfully) { //return task.Result; return(new GatherResult { RawImageName = camera.Name, Camera = camera, ThreadNumber = Thread.CurrentThread.ManagedThreadId }); } else { throw new TimeoutException("PerformGather Timeout: " + camera.Name + " (thread " + Thread.CurrentThread.ManagedThreadId.ToString() + ")"); } }
public World(IServiceProvider serviceProvider, GraphicsDevice graphics, AlexOptions options, NetworkProvider networkProvider) { Graphics = graphics; Options = options; PhysicsEngine = new PhysicsManager(this); ChunkManager = new ChunkManager(serviceProvider, graphics, this); EntityManager = new EntityManager(graphics, this, networkProvider); Ticker = new TickManager(); PlayerList = new PlayerList(); Ticker.RegisterTicked(this); Ticker.RegisterTicked(EntityManager); //Ticker.RegisterTicked(PhysicsEngine); Ticker.RegisterTicked(ChunkManager); ChunkManager.Start(); var profileService = serviceProvider.GetRequiredService <IPlayerProfileService>(); var resources = serviceProvider.GetRequiredService <ResourceManager>(); EventDispatcher = serviceProvider.GetRequiredService <IEventDispatcher>(); string username = string.Empty; PooledTexture2D texture; if (Alex.PlayerTexture != null) { texture = TextureUtils.BitmapToTexture2D(graphics, Alex.PlayerTexture); } else { resources.ResourcePack.TryGetBitmap("entity/alex", out var rawTexture); texture = TextureUtils.BitmapToTexture2D(graphics, rawTexture); } Skin skin = profileService?.CurrentProfile?.Skin; if (skin == null) { skin = new Skin() { Texture = texture, Slim = true }; } if (!string.IsNullOrWhiteSpace(profileService?.CurrentProfile?.Username)) { username = profileService.CurrentProfile.Username; } Player = new Player(graphics, serviceProvider.GetRequiredService <Alex>().InputManager, username, this, skin, networkProvider, PlayerIndex.One); Camera = new EntityCamera(Player); if (Alex.PlayerModel != null) { EntityModelRenderer modelRenderer = new EntityModelRenderer(Alex.PlayerModel, texture); if (modelRenderer.Valid) { Player.ModelRenderer = modelRenderer; } } Player.KnownPosition = new PlayerLocation(GetSpawnPoint()); Options.FieldOfVision.ValueChanged += FieldOfVisionOnValueChanged; Camera.FOV = Options.FieldOfVision.Value; PhysicsEngine.AddTickable(Player); EventDispatcher.RegisterEvents(this); var guiManager = serviceProvider.GetRequiredService <GuiManager>(); InventoryManager = new InventoryManager(guiManager); SkyRenderer = new SkyBox(serviceProvider, graphics, this); options.VideoOptions.RenderDistance.Bind( (old, newValue) => { Camera.SetRenderDistance(newValue); }); Camera.SetRenderDistance(options.VideoOptions.RenderDistance); }
public World(IServiceProvider serviceProvider, GraphicsDevice graphics, AlexOptions options, NetworkProvider networkProvider) { Graphics = graphics; Options = options; PhysicsEngine = new PhysicsManager(this); ChunkManager = new ChunkManager(serviceProvider, graphics, this); EntityManager = new EntityManager(graphics, this, networkProvider); Ticker = new TickManager(); PlayerList = new PlayerList(); ChunkManager.Start(); // var alex = serviceProvider.GetRequiredService<Alex>(); var settings = serviceProvider.GetRequiredService <IOptionsProvider>(); var profileService = serviceProvider.GetRequiredService <IPlayerProfileService>(); var resources = serviceProvider.GetRequiredService <ResourceManager>(); EventDispatcher = serviceProvider.GetRequiredService <IEventDispatcher>(); string username = string.Empty; PooledTexture2D texture; if (Alex.PlayerTexture != null) { texture = TextureUtils.BitmapToTexture2D(graphics, Alex.PlayerTexture); } else { resources.ResourcePack.TryGetBitmap("entity/alex", out var rawTexture); texture = TextureUtils.BitmapToTexture2D(graphics, rawTexture); } Skin skin = profileService?.CurrentProfile?.Skin; if (skin == null) { skin = new Skin() { Texture = texture, Slim = true }; } if (!string.IsNullOrWhiteSpace(profileService?.CurrentProfile?.Username)) { username = profileService.CurrentProfile.Username; } Player = new Player(graphics, serviceProvider.GetRequiredService <Alex>().InputManager, username, this, skin, networkProvider, PlayerIndex.One); Camera = new EntityCamera(Player); if (Alex.PlayerModel != null) { EntityModelRenderer modelRenderer = new EntityModelRenderer(Alex.PlayerModel, texture); if (modelRenderer.Valid) { Player.ModelRenderer = modelRenderer; } } Player.KnownPosition = new PlayerLocation(GetSpawnPoint()); Camera.MoveTo(Player.KnownPosition, Vector3.Zero); Options.FieldOfVision.ValueChanged += FieldOfVisionOnValueChanged; Camera.FOV = Options.FieldOfVision.Value; PhysicsEngine.AddTickable(Player); /*if (networkProvider is BedrockClient) * { * Player.SetInventory(new BedrockInventory(46)); * } * else * { * Player.SetInventory(new Utils.Inventory(46)); * }*/ // Player.Inventory.IsPeInventory = true; /*if (ItemFactory.TryGetItem("minecraft:diamond_sword", out var sword)) * { * Player.Inventory[Player.Inventory.SelectedSlot] = sword; * Player.Inventory.MainHand = sword; * } * else * { * Log.Warn($"Could not get diamond sword!"); * }*/ EventDispatcher.RegisterEvents(this); var guiManager = serviceProvider.GetRequiredService <GuiManager>(); InventoryManager = new InventoryManager(guiManager); SkyRenderer = new SkyBox(serviceProvider, graphics, this); //SkyLightCalculations = new SkyLightCalculations(); UseDepthMap = options.VideoOptions.Depthmap; options.VideoOptions.Depthmap.Bind((old, newValue) => { UseDepthMap = newValue; }); options.VideoOptions.RenderDistance.Bind( (old, newValue) => { Camera.SetRenderDistance(newValue); }); Camera.SetRenderDistance(options.VideoOptions.RenderDistance); //ServerType = (networkProvider is BedrockClient) ? ServerType.Bedrock : ServerType.Java; }