46 lines
1.5 KiB
C++
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;
|
|
}
|
|
};
|
|
} |