3#if PROTOCOL_VERSION < 768
9#if PROTOCOL_VERSION < 768
11#if PROTOCOL_VERSION < 765
17 "data_id_paddle_left",
18 "data_id_paddle_right",
19#if PROTOCOL_VERSION > 340
20 "data_id_bubble_time",
25#if PROTOCOL_VERSION < 768
32#if PROTOCOL_VERSION < 765
37#if PROTOCOL_VERSION < 768
41#if PROTOCOL_VERSION > 340
60#if PROTOCOL_VERSION < 768
61 return EntityType::Boat;
73#if PROTOCOL_VERSION < 768
76 return EntityType::Boat;
88#if PROTOCOL_VERSION < 765
90#elif PROTOCOL_VERSION < 768
96#if PROTOCOL_VERSION < 768
97#if PROTOCOL_VERSION < 765
102 output[
"metadata"][
"data_id_type"] = GetDataIdType();
105#if PROTOCOL_VERSION > 340
109 output[
"type"] =
type;
116#if PROTOCOL_VERSION < 768
121#if PROTOCOL_VERSION < 765
134#if PROTOCOL_VERSION < 765
138 return std::any_cast<int>(
metadata.at(
"data_id_hurt"));
144 return std::any_cast<int>(
metadata.at(
"data_id_hurtdir"));
150 return std::any_cast<float>(
metadata.at(
"data_id_damage"));
154 int BoatEntity::GetDataIdType()
const
157 return std::any_cast<int>(
metadata.at(
"data_id_type"));
163 return std::any_cast<bool>(
metadata.at(
"data_id_paddle_left"));
169 return std::any_cast<bool>(
metadata.at(
"data_id_paddle_right"));
172#if PROTOCOL_VERSION > 340
176 return std::any_cast<int>(
metadata.at(
"data_id_bubble_time"));
181#if PROTOCOL_VERSION < 765
185 metadata[
"data_id_hurt"] = data_id_hurt;
191 metadata[
"data_id_hurtdir"] = data_id_hurtdir;
197 metadata[
"data_id_damage"] = data_id_damage;
201 void BoatEntity::SetDataIdType(
const int data_id_type)
204 metadata[
"data_id_type"] = data_id_type;
210 metadata[
"data_id_paddle_left"] = data_id_paddle_left;
216 metadata[
"data_id_paddle_right"] = data_id_paddle_right;
219#if PROTOCOL_VERSION > 340
223 metadata[
"data_id_bubble_time"] = data_id_bubble_time;
bool GetDataIdPaddleLeft() const
int GetDataIdBubbleTime() const
void SetDataIdPaddleRight(const bool data_id_paddle_right)
static const std::array< std::string, metadata_count > metadata_names
bool GetDataIdPaddleRight() const
void SetDataIdBubbleTime(const int data_id_bubble_time)
virtual ProtocolCraft::Json::Value Serialize() const override
void SetDataIdPaddleLeft(const bool data_id_paddle_left)
virtual double GetWidthImpl() const override
BoatEntity(const EntityType type)
virtual ProtocolCraft::Json::Value Serialize() const override
virtual EntityType GetType() const override
static std::string GetClassName()
virtual double GetHeightImpl() const override
virtual bool IsBoat() const override
static constexpr int hierarchy_metadata_count
virtual std::string GetName() const override
static constexpr int metadata_count
virtual ProtocolCraft::Json::Value Serialize() const
virtual void SetMetadataValue(const int index, const std::any &value)
static const std::array< std::string, metadata_count > metadata_names
std::shared_mutex entity_mutex
std::map< std::string, std::any > metadata
void SetDataIdHurt(const int data_id_hurt)
int GetDataIdHurt() const
int GetDataIdHurtdir() const
void SetDataIdDamage(const float data_id_damage)
float GetDataIdDamage() const
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual ProtocolCraft::Json::Value Serialize() const override
void SetDataIdHurtdir(const int data_id_hurtdir)
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...