108 lines
1.9 KiB
C++
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;
|
|
}
|