First attempt to play audio
This commit is contained in:
@ -14,9 +14,7 @@ PokerPlayer::PokerPlayer(SceneItem *item) : SceneItemComponent(item) {
|
||||
|
||||
void PokerPlayer::onStart() {
|
||||
SceneItemComponent::onStart();
|
||||
|
||||
this->pokerGame = this->getScene()->findComponent<PokerGame>();
|
||||
assertNotNull(this->pokerGame);
|
||||
}
|
||||
|
||||
void PokerPlayer::addChips(int32_t chips) {
|
||||
|
60
src/dawn/scene/components/display/ShaderInterface.hpp
Normal file
60
src/dawn/scene/components/display/ShaderInterface.hpp
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright (c) 2023 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "scene/components/display/Material.hpp"
|
||||
#include "scene/SceneItem.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
template<class T>
|
||||
class ShaderInterface : public SceneItemComponent {
|
||||
public:
|
||||
/**
|
||||
* ShaderInterface to provide a common interface language for all shaders
|
||||
* that can be referenced by scene components.
|
||||
*
|
||||
* @param i SceneItem this Shader interface belongs to.
|
||||
*/
|
||||
ShaderInterface(SceneItem *i) : SceneItemComponent(i) {}
|
||||
|
||||
/**
|
||||
* Sets the shader for this shader interface to use. Will also update the
|
||||
* underlying material for you.
|
||||
*
|
||||
* @param shader Shader to use for this interface.
|
||||
*/
|
||||
void setShader(T *shader) {
|
||||
assertNotNull(shader);
|
||||
this->getMaterial()->setShader(shader);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the shader, assuming that the material has the correct shader.
|
||||
*
|
||||
* @return Pointer to the shader.
|
||||
*/
|
||||
T * getShader() {
|
||||
auto material = dynamic_cast<T*>(this->getMaterial()->getShader());
|
||||
return material;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the material attached to this scene item.
|
||||
*
|
||||
* @return The attached material.
|
||||
*/
|
||||
Material * getMaterial() {
|
||||
auto mat = this->item->getComponent<Material>();
|
||||
assertNotNull(mat);
|
||||
return mat;
|
||||
}
|
||||
|
||||
std::vector<SceneItemComponent*> getDependencies() override {
|
||||
return std::vector<SceneItemComponent*>{
|
||||
this->item->getComponent<Material>()
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
@ -10,5 +10,5 @@ using namespace Dawn;
|
||||
VisualNovelCharacter::VisualNovelCharacter(SceneItem *item) :
|
||||
SceneItemComponent(item)
|
||||
{
|
||||
|
||||
|
||||
}
|
@ -8,6 +8,8 @@
|
||||
|
||||
namespace Dawn {
|
||||
class VisualNovelCharacter : public SceneItemComponent {
|
||||
protected:
|
||||
|
||||
public:
|
||||
std::string nameKey = "character.unknown";
|
||||
|
||||
|
Reference in New Issue
Block a user