5#ifndef TILESON_WANGCOLOR_HPP
6#define TILESON_WANGCOLOR_HPP
9#include "../objects/Color.hpp"
21 [[nodiscard]]
inline const std::string &
getName()
const;
23 [[nodiscard]]
inline int getTile()
const;
27 inline T
get(
const std::string &name);
30 [[nodiscard]]
inline const std::string &
getClassType()
const;
37 float m_probability{};
43 std::string m_classType {};
44 std::shared_ptr<tson::TiledClass> m_class {};
59 if(json.
count(
"color") > 0) m_color =
tson::Colori(json[
"color"].get<std::string>());
else allFound =
false;
60 if(json.
count(
"name") > 0) m_name = json[
"name"].
get<std::string>();
else allFound =
false;
61 if(json.
count(
"probability") > 0) m_probability = json[
"probability"].get<float>();
else allFound =
false;
62 if(json.
count(
"tile") > 0) m_tile = json[
"tile"].get<int>();
else allFound =
false;
63 if(json.
count(
"class") > 0) m_classType = json[
"class"].get<std::string>();
65 if(json.
count(
"properties") > 0 && json[
"properties"].
isArray())
67 auto &properties = json.
array(
"properties");
68 std::for_each(properties.begin(), properties.end(), [&](std::unique_ptr<IJson> &item) { m_properties.add(*item); });
130 return m_properties.
getValue<T>(name);
140 if(m_properties.hasProperty(name))
141 return m_properties.getProperty(name);
T get(std::string_view key)
Definition IJson.hpp:82
virtual bool isArray() const =0
virtual size_t count(std::string_view key) const =0
virtual std::vector< std::unique_ptr< IJson > > array()=0
Definition PropertyCollection.hpp:15
T getValue(const std::string &name)
Definition PropertyCollection.hpp:47
Definition Property.hpp:23
Definition TiledClass.hpp:11
Definition WangColor.hpp:14
tson::Property * getProp(const std::string &name)
Definition WangColor.hpp:138
float getProbability() const
Definition WangColor.hpp:97
T get(const std::string &name)
Definition WangColor.hpp:128
const std::string & getClassType() const
Definition WangColor.hpp:146
bool parse(IJson &json, tson::Map *map)
Definition WangColor.hpp:54
const std::string & getName() const
Definition WangColor.hpp:88
PropertyCollection & getProperties()
Definition WangColor.hpp:116
const Colori & getColor() const
Definition WangColor.hpp:79
int getTile() const
Definition WangColor.hpp:106
tson::TiledClass * getClass()
Definition tileson_forward.hpp:544
Color< uint8_t > Colori
Definition Color.hpp:89