1#if PROTOCOL_VERSION > 754
9 "data_is_screaming_goat",
10#if PROTOCOL_VERSION > 758
12 "data_has_right_horn",
20#if PROTOCOL_VERSION > 758
64#if PROTOCOL_VERSION > 758
91 return std::any_cast<bool>(
metadata.at(
"data_is_screaming_goat"));
94#if PROTOCOL_VERSION > 758
98 return std::any_cast<bool>(
metadata.at(
"data_has_left_horn"));
104 return std::any_cast<bool>(
metadata.at(
"data_has_right_horn"));
112 metadata[
"data_is_screaming_goat"] = data_is_screaming_goat;
115#if PROTOCOL_VERSION > 758
119 metadata[
"data_has_left_horn"] = data_has_left_horn;
125 metadata[
"data_has_right_horn"] = data_has_right_horn;
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual ProtocolCraft::Json::Value Serialize() const override
std::shared_mutex entity_mutex
std::map< std::string, std::any > metadata
void SetDataIsScreamingGoat(const bool data_is_screaming_goat)
virtual EntityType GetType() const override
static EntityType GetClassType()
static constexpr int metadata_count
static constexpr int hierarchy_metadata_count
bool GetDataIsScreamingGoat() const
static const std::array< std::string, metadata_count > metadata_names
virtual double GetWidthImpl() const override
void SetDataHasRightHorn(const bool data_has_right_horn)
static std::string GetClassName()
virtual std::string GetName() const override
virtual double GetHeightImpl() const override
bool GetDataHasRightHorn() const
void SetDataHasLeftHorn(const bool data_has_left_horn)
double GetAttributeAttackDamageValue() const
bool GetDataHasLeftHorn() const
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual ProtocolCraft::Json::Value Serialize() const override
std::map< EntityAttribute::Type, EntityAttribute > attributes
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...