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);
34 float m_probability{};
51 if(json.
count(
"color") > 0) m_color =
tson::Colori(json[
"color"].get<std::string>());
else allFound =
false;
52 if(json.
count(
"name") > 0) m_name = json[
"name"].
get<std::string>();
else allFound =
false;
53 if(json.
count(
"probability") > 0) m_probability = json[
"probability"].get<float>();
else allFound =
false;
54 if(json.
count(
"tile") > 0) m_tile = json[
"tile"].get<int>();
else allFound =
false;
56 if(json.
count(
"properties") > 0 && json[
"properties"].
isArray())
58 auto &properties = json.
array(
"properties");
59 std::for_each(properties.begin(), properties.end(), [&](std::unique_ptr<IJson> &item) { m_properties.add(*item); });
121 return m_properties.getValue<T>(name);
131 if(m_properties.hasProperty(name))
132 return m_properties.getProperty(name);
T get(std::string_view key)
Definition: IJson.hpp:72
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
Definition: Property.hpp:21
Definition: WangColor.hpp:14
tson::Property * getProp(const std::string &name)
Definition: WangColor.hpp:129
float getProbability() const
Definition: WangColor.hpp:88
T get(const std::string &name)
Definition: WangColor.hpp:119
const std::string & getName() const
Definition: WangColor.hpp:79
bool parse(IJson &json)
Definition: WangColor.hpp:47
PropertyCollection & getProperties()
Definition: WangColor.hpp:107
const Colori & getColor() const
Definition: WangColor.hpp:70
int getTile() const
Definition: WangColor.hpp:97
Definition: Base64.hpp:12
Color< uint8_t > Colori
Definition: Color.hpp:89