Final commit of T fix

This commit is contained in:
2023-02-03 06:59:49 -08:00
parent 19b2434348
commit 45cad7e9c7
4 changed files with 22 additions and 22 deletions

View File

@ -9,7 +9,7 @@
#include "util/array.hpp"
namespace Dawn {
template<class T, typename J, class P = T>
template<class O, typename J, class P = O>
class Prefab {
public:
/**
@ -28,7 +28,7 @@ namespace Dawn {
* @param context Custom context that this prefab needs to initialize.
* @return The instance of the created prefab.
*/
static T * create(J *context) {
static O * create(J *context) {
assertNotNull(context);
return P::prefabCreate(context);
}

View File

@ -9,10 +9,10 @@
#include "game/DawnGame.hpp"
namespace Dawn {
template<class T>
template<class O>
class SceneItemPrefab :
public SceneItem,
public Prefab<T, Scene, T>
public Prefab<O, Scene, O>
{
public:
/**
@ -21,8 +21,8 @@ namespace Dawn {
* @param scene Scene that this prefab is going to be added to.
* @return The created prefab instance.
*/
static T * prefabCreate(Scene *scene) {
T *item = scene->createSceneItemOfType<T>();
static O * prefabCreate(Scene *scene) {
O *item = scene->createSceneItemOfType<O>();
item->prefabInit(&scene->game->assetManager);
return item;
}

View File

@ -26,7 +26,7 @@ void SimpleVNScene::stage() {
// Camera
this->camera = Camera::create(this);
this->camera->transform->lookAt(
glm::vec3(0, 0, 3),
glm::vec3(0, 0, 2),
glm::vec3(0, 0, 0)
);

View File

@ -14,8 +14,8 @@
#include "visualnovel/components/VisualNovelCharacter.hpp"
namespace Dawn {
template<class T>
class CharacterPrefab : public SceneItemPrefab<T> {
template<class O>
class CharacterPrefab : public SceneItemPrefab<O> {
protected:
/**
* Character Prefab will request you to initialize your characters'
@ -31,8 +31,8 @@ namespace Dawn {
public:
static std::vector<Asset*> prefabAssets(AssetManager *assMan) {
return std::vector<Asset*>{
assMan->get<TextureAsset>(T::getCharacterTexture()),
assMan->get<TilesetAsset>(T::getCharacterTileset())
assMan->get<TextureAsset>(O::getCharacterTexture()),
assMan->get<TilesetAsset>(O::getCharacterTileset())
};
}
@ -47,34 +47,34 @@ namespace Dawn {
TiledSprite *tiledSprite;
AudioSource *audioSource;
CharacterPrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab<T>(s, i) {}
CharacterPrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab<O>(s, i) {}
void prefabInit(AssetManager *man) override {
characterTexture = man->get<TextureAsset>(T::getCharacterTexture());
characterTileset = man->get<TilesetAsset>(T::getCharacterTileset());
characterTexture = man->get<TextureAsset>(O::getCharacterTexture());
characterTileset = man->get<TilesetAsset>(O::getCharacterTileset());
// Emotions
auto emotion = this->defineAndGetInitialEmotion(man);
// Components
meshRenderer = SceneItem::addComponent<MeshRenderer>();
meshHost = SceneItem::addComponent<MeshHost>();
meshRenderer = this->template addComponent<MeshRenderer>();
meshHost = this->template addComponent<MeshHost>();
material = SceneItem::addComponent<SimpleTexturedMaterial>();
material = this->template addComponent<SimpleTexturedMaterial>();
material->texture = &characterTexture->texture;
vnCharacter = SceneItem::addComponent<VisualNovelCharacter>();
vnCharacter->nameKey = T::getLanguagePrefix() + ".name";
vnCharacter = this->template addComponent<VisualNovelCharacter>();
vnCharacter->nameKey = O::getLanguagePrefix() + ".name";
animation = SceneItem::addComponent<AnimationController>();
animation = this->template addComponent<AnimationController>();
tiledSprite = SceneItem::addComponent<TiledSprite>();
tiledSprite = this->template addComponent<TiledSprite>();
tiledSprite->setTileset(&characterTileset->tileset);
float_t ratio = characterTileset->tileset.getTileWidth() / characterTileset->tileset.getTileHeight();
tiledSprite->setSize(glm::vec2(ratio, 1.0f));
tiledSprite->setTile(emotion.tile);
audioSource = SceneItem::addComponent<AudioSource>();
audioSource = this->template addComponent<AudioSource>();
this->transform.setLocalPosition(glm::vec3(0, 0, 0));
}