Dawn/src/dawn/prefabs/display/SimpleCubePrefab.hpp
2023-01-05 17:19:32 -08:00

39 lines
1.1 KiB
C++

// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "prefab/SceneItemPrefab.hpp"
#include "scene/components/Components.hpp"
#include "display/mesh/CubeMesh.hpp"
namespace Dawn {
class SimpleCubePrefab : public SceneItemPrefab<SimpleCubePrefab> {
public:
MeshRenderer *renderer = nullptr;
MeshHost *host = nullptr;
Material *material = nullptr;
static std::vector<Asset*> prefabAssets() {
return std::vector<Asset*>();
}
SimpleCubePrefab(Scene *scene, sceneitemid_t id) :
SceneItemPrefab(scene, id)
{
}
void prefabInit() override {
this->renderer = this->addComponent<MeshRenderer>();
this->host = this->addComponent<MeshHost>();
this->material = this->addComponent<Material>();
this->host->mesh.createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT);
CubeMesh::buffer(&this->host->mesh, glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1), 0, 0);
std::cout << "Preab Init" << std::endl;
}
};
}