X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2Fapp.cpp;h=86c90d83f043d644f83a25fcfecc2b8ce99a0872;hb=aefc5482b27e3d259b6c9f3f1e4cdd9ef2e6a8d2;hp=59070a56311d01c7e129a852b717e9313431aae2;hpb=7c2a8b8285278b8a3077b311d82f05ea0463a96e;p=blank.git diff --git a/src/app/app.cpp b/src/app/app.cpp index 59070a5..86c90d8 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -2,6 +2,7 @@ #include "Assets.hpp" #include "FrameCounter.hpp" +#include "init.hpp" #include "../audio/Sound.hpp" #include "../graphics/Font.hpp" #include "../world/BlockType.hpp" @@ -27,15 +28,15 @@ string get_asset_path() { namespace blank { -Application::Application(const Config &config) -: init(config.doublebuf, config.multisampling) +Application::Application(Window &win, const Config &config) +: window(win) , viewport() , assets(get_asset_path()) , audio() , counter() , world(config.world) , interface(config.interface, assets, audio, counter, world) -, test_controller(MakeTestEntity(world)) +, spawner(world) , running(false) { viewport.VSync(config.vsync); } @@ -44,17 +45,6 @@ Application::~Application() { audio.StopAll(); } -Entity &Application::MakeTestEntity(World &world) { - Entity &e = world.AddEntity(); - e.Name("test"); - e.Position({ 0.0f, 0.0f, 0.0f }); - e.Bounds({ { -0.5f, -0.5f, -0.5f }, { 0.5f, 0.5f, 0.5f } }); - e.WorldCollidable(true); - e.SetShape(world.BlockTypes()[1].shape, { 1.0f, 1.0f, 0.0f }); - e.AngularVelocity(glm::quat(glm::vec3{ 0.00001f, 0.000006f, 0.000013f })); - return e; -} - void Application::RunN(size_t n) { Uint32 last = SDL_GetTicks(); @@ -87,7 +77,7 @@ void Application::RunS(size_t n, size_t t) { void Application::Run() { running = true; Uint32 last = SDL_GetTicks(); - init.window.GrabMouse(); + window.GrabMouse(); while (running) { Uint32 now = SDL_GetTicks(); int delta = now - last; @@ -144,10 +134,10 @@ void Application::HandleEvents() { void Application::Handle(const SDL_WindowEvent &event) { switch (event.event) { case SDL_WINDOWEVENT_FOCUS_GAINED: - init.window.GrabMouse(); + window.GrabMouse(); break; case SDL_WINDOWEVENT_FOCUS_LOST: - init.window.ReleaseMouse(); + window.ReleaseMouse(); break; case SDL_WINDOWEVENT_RESIZED: viewport.Resize(event.data1, event.data2); @@ -160,7 +150,7 @@ void Application::Handle(const SDL_WindowEvent &event) { void Application::Update(int dt) { counter.EnterUpdate(); interface.Update(dt); - test_controller.Update(dt); + spawner.Update(dt); world.Update(dt); glm::mat4 trans = world.Player().Transform(Chunk::Pos(0, 0, 0)); @@ -183,7 +173,7 @@ void Application::Render() { interface.Render(viewport); counter.ExitRender(); - init.window.Flip(); + window.Flip(); }