Added Yaml config to Sprite (for texture file).
This commit is contained in:
parent
c93a6b0c9e
commit
d7013ce63a
5 changed files with 14 additions and 7 deletions
|
@ -20,7 +20,7 @@ std::vector<Character*> Character::mCharacterInstances = std::vector<Character*>
|
||||||
*/
|
*/
|
||||||
Character::Character(const Instances& instances, const String& texturePath,
|
Character::Character(const Instances& instances, const String& texturePath,
|
||||||
const PhysicalData& data, const Yaml& config) :
|
const PhysicalData& data, const Yaml& config) :
|
||||||
Sprite(texturePath, data),
|
Sprite(config, data),
|
||||||
mMaxHealth(config.get<int>(KEY_HEALTH)),
|
mMaxHealth(config.get<int>(KEY_HEALTH)),
|
||||||
mCurrentHealth(mMaxHealth),
|
mCurrentHealth(mMaxHealth),
|
||||||
mInstances(instances) {
|
mInstances(instances) {
|
||||||
|
|
|
@ -10,14 +10,17 @@
|
||||||
#include "../util/Loader.h"
|
#include "../util/Loader.h"
|
||||||
#include "../util/ResourceManager.h"
|
#include "../util/ResourceManager.h"
|
||||||
|
|
||||||
|
const String Sprite::KEY_TEXTURE = "texture";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads sprite from ResourceManager, sets world position.
|
* Loads sprite from ResourceManager, sets world position.
|
||||||
*
|
*
|
||||||
* @param texturePath Relative path to the texture file in the resource folder.
|
* @param texturePath Relative path to the texture file in the resource folder.
|
||||||
*/
|
*/
|
||||||
Sprite::Sprite(const String& texturePath, const PhysicalData& data) :
|
Sprite::Sprite(const Yaml& config, const PhysicalData& data) :
|
||||||
Physical(data),
|
Physical(data),
|
||||||
mTexture(ResourceManager::i().acquire(Loader::i().fromFile<sf::Texture>(texturePath))),
|
mTexture(ResourceManager::i().acquire(Loader::i()
|
||||||
|
.fromFile<sf::Texture>(config.get<String>(KEY_TEXTURE)))),
|
||||||
mSize(data.size) {
|
mSize(data.size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,10 +13,12 @@
|
||||||
#include <Thor/Resources.hpp>
|
#include <Thor/Resources.hpp>
|
||||||
|
|
||||||
#include "Physical.h"
|
#include "Physical.h"
|
||||||
#include "../util/Vector.h"
|
|
||||||
#include "../util/String.h"
|
#include "../util/String.h"
|
||||||
|
#include "../util/Vector.h"
|
||||||
|
#include "../util/Yaml.h"
|
||||||
|
|
||||||
class Physical;
|
class Physical;
|
||||||
|
class Yaml;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a drawable object.
|
* Represents a drawable object.
|
||||||
|
@ -26,7 +28,7 @@ class Physical;
|
||||||
class Sprite : public sf::Drawable, public Physical {
|
class Sprite : public sf::Drawable, public Physical {
|
||||||
// Public functions.
|
// Public functions.
|
||||||
public:
|
public:
|
||||||
Sprite(const String& texturePath, const PhysicalData& data);
|
Sprite(const Yaml& config, const PhysicalData& data);
|
||||||
Sprite(const std::shared_ptr<sf::Texture>& texture, const PhysicalData& data);
|
Sprite(const std::shared_ptr<sf::Texture>& texture, const PhysicalData& data);
|
||||||
virtual ~Sprite() = 0;
|
virtual ~Sprite() = 0;
|
||||||
|
|
||||||
|
@ -36,6 +38,8 @@ protected:
|
||||||
|
|
||||||
// Private variables.
|
// Private variables.
|
||||||
private:
|
private:
|
||||||
|
static const String KEY_TEXTURE;
|
||||||
|
|
||||||
std::shared_ptr<sf::Texture> mTexture;
|
std::shared_ptr<sf::Texture> mTexture;
|
||||||
Vector2i mSize;
|
Vector2i mSize;
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "Body.h"
|
#include "Body.h"
|
||||||
|
|
||||||
Body::Body(b2World& world, const Vector2f& position, const Yaml& config) :
|
Body::Body(b2World& world, const Vector2f& position, const Yaml& config) :
|
||||||
Sprite("body.png", PhysicalData(position, Vector2i(50, 50), world,
|
Sprite(config, PhysicalData(position, Vector2i(50, 50), world,
|
||||||
CATEGORY_NONSOLID, MASK_NONE, false)) {
|
CATEGORY_NONSOLID, MASK_NONE, false)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,6 @@
|
||||||
#include "Cover.h"
|
#include "Cover.h"
|
||||||
|
|
||||||
Cover::Cover(const Vector2f& position, const Vector2i& size, b2World& world, const Yaml& config) :
|
Cover::Cover(const Vector2f& position, const Vector2i& size, b2World& world, const Yaml& config) :
|
||||||
Sprite("cover.png", PhysicalData(position, size, world, CATEGORY_WORLD, MASK_ALL, false)) {
|
Sprite(config, PhysicalData(position, size, world, CATEGORY_WORLD, MASK_ALL, false)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue