2023-03-14 22:27:46 -07:00

46 lines
1.5 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 "scene/components/Components.hpp"
#include "components/PlayerController.hpp"
namespace Dawn {
class PlayerPrefab : public SceneItemPrefab<PlayerPrefab> {
public:
static std::vector<Asset*> prefabAssets(AssetManager *man) {
std::vector<Asset*> assets;
assets.push_back(man->get<TilesetAsset>("tileset_aqua"));
assets.push_back(man->get<TextureAsset>("texture_aqua"));
return assets;
}
//
MeshHost *meshHost;
TiledSprite *tiledSprite;
Material *material;
MeshRenderer *meshRenderer;
PlayerController *playerController;
PlayerPrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab(s, i) {}
void prefabInit(AssetManager *man) override {
auto tileset = man->get<TilesetAsset>("tileset_aqua");
auto texture = man->get<TextureAsset>("texture_aqua");
meshHost = addComponent<MeshHost>();
tiledSprite = addComponent<TiledSprite>();
material = addComponent<Material>();
meshRenderer = addComponent<MeshRenderer>();
playerController = addComponent<PlayerController>();
tiledSprite->setTilesetAndSize(&tileset->tileset);
tiledSprite->setTile(896);
material->textureValues[material->getShader()->getParameterByName("u_Text")] = &texture->texture;
}
};
}