9#if PROTOCOL_VERSION < 755
20#if PROTOCOL_VERSION < 755
21 SetDataAttachPosId(std::optional<Position>());
63#if PROTOCOL_VERSION < 755
64 output[
"metadata"][
"data_attach_pos_id"] = GetDataAttachPosId() ? GetDataAttachPosId().value().Serialize() :
ProtocolCraft::Json::Value();
89 return std::any_cast<Direction>(
metadata.at(
"data_attach_face_id"));
92#if PROTOCOL_VERSION < 755
93 std::optional<Position> ShulkerEntity::GetDataAttachPosId()
const
96 return std::any_cast<std::optional<Position>>(
metadata.at(
"data_attach_pos_id"));
103 return std::any_cast<char>(
metadata.at(
"data_peek_id"));
109 return std::any_cast<char>(
metadata.at(
"data_color_id"));
116 metadata[
"data_attach_face_id"] = data_attach_face_id;
119#if PROTOCOL_VERSION < 755
120 void ShulkerEntity::SetDataAttachPosId(
const std::optional<Position>& data_attach_pos_id)
123 metadata[
"data_attach_pos_id"] = data_attach_pos_id;
130 metadata[
"data_peek_id"] = data_peek_id;
136 metadata[
"data_color_id"] = data_color_id;
virtual ProtocolCraft::Json::Value Serialize() const
virtual void SetMetadataValue(const int index, const std::any &value)
std::shared_mutex entity_mutex
std::map< std::string, std::any > metadata
std::map< EntityAttribute::Type, EntityAttribute > attributes
char GetDataPeekId() const
void SetDataPeekId(const char data_peek_id)
static const std::array< std::string, metadata_count > metadata_names
virtual std::string GetName() const override
static EntityType GetClassType()
Direction GetDataAttachFaceId() const
virtual double GetHeightImpl() const override
virtual EntityType GetType() const override
static constexpr int metadata_count
static std::string GetClassName()
static constexpr int hierarchy_metadata_count
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual double GetWidthImpl() const override
void SetDataAttachFaceId(const Direction data_attach_face_id)
virtual ProtocolCraft::Json::Value Serialize() const override
char GetDataColorId() const
void SetDataColorId(const char data_color_id)
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...