// 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 { public: MeshRenderer *renderer = nullptr; MeshHost *host = nullptr; Material *material = nullptr; static std::vector prefabAssets() { return std::vector(); } SimpleCubePrefab(Scene *scene, sceneitemid_t id) : SceneItemPrefab(scene, id) { } void prefabInit() override { this->renderer = this->addComponent(); this->host = this->addComponent(); this->material = this->addComponent(); 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; } }; }