69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include "../../YoggieEngine/src/AssetManager/ModelImporter.h"
 | 
						|
#include "../../YoggieEngine/src/Graphics/Memory/Framebuffer.h"
 | 
						|
#include "../../YoggieEngine/src/PerfCounter.h"
 | 
						|
#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;
 | 
						|
}; |