70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
|
#pragma once
|
||
|
#include "../../YoggieEngine/src/BarinkEngine.h"
|
||
|
#include "../../YoggieEngine/src/AssetManager/ModelImporter.h"
|
||
|
#include "../../YoggieEngine/src/Graphics/Memory/Framebuffer.h"
|
||
|
#include "../../YoggieEngine/src/PerfCounter.cpp"
|
||
|
#include "../../YoggieEngine/src/Scene/Entity.h"
|
||
|
#include "Project.h"
|
||
|
|
||
|
class SceneRuntime : public ApplicationRuntime {
|
||
|
|
||
|
public:
|
||
|
SceneRuntime() = default;
|
||
|
void Start() override
|
||
|
{
|
||
|
CurrentProject = std::make_shared<Project>("Random");
|
||
|
|
||
|
framebuffer = new Framebuffer();
|
||
|
|
||
|
// Create a level and load it as the current level
|
||
|
auto importer = ModelImporter();
|
||
|
|
||
|
// Create a cube
|
||
|
Model = importer.Import("build/Debug/Models/Cube.obj");
|
||
|
cube = MainScene.AddEntity("cube");
|
||
|
|
||
|
auto& render3DComponent = cube.AddComponent<Render3DComponent>();
|
||
|
render3DComponent.mesh = *(Model->renderable->mesh);
|
||
|
|
||
|
cube.GetComponent<TransformComponent>().Position = glm::vec3(1.0f, 0.0f, 5.0f);
|
||
|
|
||
|
auto cube2 = MainScene.AddEntity("Cube1");
|
||
|
auto& rendercube2 = cube2.AddComponent<Render3DComponent>();
|
||
|
rendercube2.mesh = *(Model->renderable->mesh);
|
||
|
|
||
|
|
||
|
// create an ambient light source
|
||
|
auto AmbientLight = MainScene.AddEntity("AmbientLight");
|
||
|
auto light = AmbientLight.AddComponent<LightComponent>();
|
||
|
light.Color = glm::vec3(1.0f);
|
||
|
light.Strength = 1.0f;
|
||
|
|
||
|
Selected = (entt::entity)-1;
|
||
|
|
||
|
}
|
||
|
|
||
|
void Update() override
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void FixedUpdate() override
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void Stop() override
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
private:
|
||
|
std::shared_ptr<Project> CurrentProject = nullptr;
|
||
|
Scene MainScene;
|
||
|
|
||
|
Framebuffer* framebuffer;
|
||
|
SceneObject* Model;
|
||
|
Entity cube;
|
||
|
|
||
|
|
||
|
entt::entity Selected;
|
||
|
friend class Editor;
|
||
|
};
|