38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
// 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<SimpleSpinningCubePrefab>
|
|
{
|
|
public:
|
|
std::vector<Asset*> prefabAssets(AssetManager *man) {
|
|
return std::vector<Asset*>();
|
|
}
|
|
|
|
SimpleSpinningCubePrefab(Scene *s, sceneitemid_t i) :
|
|
SceneItemPrefab(s, i)
|
|
{
|
|
}
|
|
|
|
void prefabInit(AssetManager *man) override {
|
|
auto meshRenderer = this->addComponent<MeshRenderer>();
|
|
auto meshHost = this->addComponent<MeshHost>();
|
|
auto spinning = this->addComponent<ExampleSpin>();
|
|
auto material = this->addComponent<SimpleTexturedMaterial>();
|
|
|
|
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);
|
|
}
|
|
};
|
|
} |