// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "prefab/SceneItemPrefab.hpp" #include "display/mesh/CubeMesh.hpp" #include "scene/components/display/MeshRenderer.hpp" #include "scene/components/display/MeshHost.hpp" #include "scene/components/display/material/SimpleTexturedMaterial.hpp" #include "scene/components/example/ExampleSpin.hpp" namespace Dawn { class SimpleSpinningCubePrefab : public SceneItemPrefab { public: std::vector prefabAssets(AssetManager *man) { return std::vector(); } SimpleSpinningCubePrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab(s, i) { } void prefabInit(AssetManager *man) override { auto meshRenderer = this->addComponent(); auto meshHost = this->addComponent(); auto spinning = this->addComponent(); auto material = this->addComponent(); meshHost->mesh.createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT); CubeMesh::buffer(&meshHost->mesh, glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1), 0, 0); } }; }