Added basic prefabs finally

This commit is contained in:
2023-01-03 16:44:16 -08:00
parent 562e6644ef
commit 659ab3d760
29 changed files with 193 additions and 108 deletions

View File

@ -0,0 +1,43 @@
// 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);
// auto param = material->getShader()->getParameterByName("u_Text");
// this->material->textureValues[param] = nullptr;
this->material->colorValues[material->getShader()->getParameterByName("u_Color")] = COLOR_RED;
std::cout << "Preab Init" << std::endl;
}
};
}