Files
Aeon/Game/ExampleGame.cpp
Ben Kyd 83758c90b3 commit
2025-07-02 20:41:20 +01:00

108 lines
1.9 KiB
C++

#include <Aeon/Aeon.hpp>
#include <Aeon/Core/Events.hpp>
#include <Aeon/Entity/CoreComponents/MaterialComponent.hpp>
#include <Aeon/Entity/CoreComponents/MeshComponent.hpp>
#include <Aeon/Entity/CoreComponents/Transform.hpp>
#include <Aeon/Entity/Entity.hpp>
#include <Aeon/Rendering/ImGui.hpp>
#include <iostream>
#include <thread>
class BackgroundLevel : public Core::GameLayer
{
};
class Level : public Core::GameLayer
{
public:
Level()
{
Core::EventManager::GetInstance().DebugPrint();
}
void Attach() override
{
}
void FrameTick() override
{
}
void TimeTick() override
{
}
bool EventRecieved(Core::GenericEvent& e) override
{
return false;
}
void Detach() override
{
}
};
class DebugLayer : public Core::GameLayer
{
public:
DebugLayer()
{
}
void Attach() override
{
}
void FrameTick() override
{
ImGui::Begin("Debug");
ImGui::End();
}
void TimeTick() override
{
}
bool EventRecieved(Core::GenericEvent& e) override
{
return false;
}
void Detach() override
{
}
};
class ExampleGame : public Core::App
{
public:
ExampleGame()
: App({"Example"}, {"Game with AEON!"})
{
EC::Entity entity = GetEntityRegistry().create();
GetEntityRegistry().emplace<EC::Transform>(entity, EC::Transform({0.0f, 0.0f, 0.0f}));
GetEntityRegistry().emplace<EC::MeshComponent>(entity, EC::MeshComponent {});
GetEntityRegistry().emplace<EC::MaterialComponent>(entity, EC::MaterialComponent {});
Level* level = new Level;
PushLayer((Core::GameLayer*)level);
DebugLayer debug;
PushDebugLayer(&debug);
Run();
}
~ExampleGame()
{
}
};
int main(int argc, char** argv)
{
ExampleGame game;
return 0;
}