49 lines
1.7 KiB
C++
49 lines
1.7 KiB
C++
// Copyright (c) 2022 Dominic Masters
|
|
//
|
|
// This software is released under the MIT License.
|
|
// https://opensource.org/licenses/MIT
|
|
|
|
#pragma once
|
|
#include "asset/AssetManager.hpp"
|
|
#include "poker/PokerPlayer.hpp"
|
|
#include "scene/components/Components.hpp"
|
|
#include "display/animation/TiledSpriteAnimation.hpp"
|
|
|
|
namespace Dawn {
|
|
class VNPenny {
|
|
public:
|
|
static std::vector<Asset*> getAssets(AssetManager *assMan) {
|
|
return std::vector<Asset*>{
|
|
assMan->get<TextureAsset>("texture_penny"),
|
|
assMan->get<TilesetAsset>("tileset_penny")
|
|
};
|
|
}
|
|
|
|
static SceneItem * create(Scene *scene) {
|
|
auto item = scene->createSceneItem();
|
|
|
|
auto textureAsset = scene->game->assetManager.get<TextureAsset>("texture_penny");
|
|
auto tilesetAsset = scene->game->assetManager.get<TilesetAsset>("tileset_penny");
|
|
|
|
auto meshRenderer = item->addComponent<MeshRenderer>();
|
|
auto material = item->addComponent<Material>();
|
|
auto meshHost = item->addComponent<MeshHost>();
|
|
auto tiledSprite = item->addComponent<TiledSprite>();
|
|
auto pokerPlayer = item->addComponent<PokerPlayer>();
|
|
auto animation = item->addComponent<AnimationController>();
|
|
|
|
auto param = material->getShader()->getParameterByName("u_Text");
|
|
material->textureValues[param] = &textureAsset->texture;
|
|
|
|
tiledSprite->setTileset(&tilesetAsset->tileset);
|
|
tiledSprite->setSize(glm::vec2(tilesetAsset->tileset.divX, tilesetAsset->tileset.divY));
|
|
|
|
auto anim = new TiledSpriteAnimation(tiledSprite);
|
|
anim->addSequentialKeyframes(0.1f, 0, 22);
|
|
anim->loop = true;
|
|
animation->animation = anim;
|
|
|
|
return item;
|
|
}
|
|
};
|
|
} |