// 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 { public: static std::vector prefabAssets(AssetManager *man) { std::vector assets; assets.push_back(man->get("tileset_aqua")); assets.push_back(man->get("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("tileset_aqua"); auto texture = man->get("texture_aqua"); meshHost = addComponent(); tiledSprite = addComponent(); material = addComponent(); meshRenderer = addComponent(); playerController = addComponent(); tiledSprite->setTilesetAndSize(&tileset->tileset); tiledSprite->setTile(896); material->textureValues[material->getShader()->getParameterByName("u_Text")] = &texture->texture; } }; }