10#if PROTOCOL_VERSION > 340
28#if PROTOCOL_VERSION < 458
29 enum class ObjectEntityType;
36 std::chrono::steady_clock::time_point
end;
54#if PROTOCOL_VERSION > 754
56#elif PROTOCOL_VERSION > 404
82#if PROTOCOL_VERSION > 340
90#if PROTOCOL_VERSION > 404
93#if PROTOCOL_VERSION > 754
100#if PROTOCOL_VERSION > 340
101 void SetDataCustomName(
const std::optional<ProtocolCraft::Chat>& data_custom_name);
108#if PROTOCOL_VERSION > 404
111#if PROTOCOL_VERSION > 754
129 std::map<EquipmentSlot, ProtocolCraft::Slot>
GetEquipments()
const;
133 std::vector<Renderer::Face>
GetFaces(
const bool reset_uptodate_status);
141 virtual void SetX(
const double x_);
142 virtual void SetY(
const double y_);
143 virtual void SetZ(
const double z_);
144 virtual void SetYaw(
const float yaw_);
145 virtual void SetPitch(
const float pitch_);
152 void SetEffects(
const std::vector<EntityEffect>& effects_);
170#if PROTOCOL_VERSION > 761
173#if PROTOCOL_VERSION > 764
181 virtual bool IsMob()
const;
183#if PROTOCOL_VERSION > 578
186#if PROTOCOL_VERSION < 771
187 virtual bool IsFlyingMob()
const;
194#if PROTOCOL_VERSION > 769
199#if PROTOCOL_VERSION > 736
203#if PROTOCOL_VERSION > 769
207#if PROTOCOL_VERSION > 404
212#if PROTOCOL_VERSION > 477
217#if PROTOCOL_VERSION > 404
221#if PROTOCOL_VERSION > 765
224#if PROTOCOL_VERSION > 766
227#if PROTOCOL_VERSION > 767
231 virtual bool IsBoat()
const;
234 virtual bool IsRaft()
const;
239#if PROTOCOL_VERSION < 458
240 static std::shared_ptr<Entity> CreateObjectEntity(
const ObjectEntityType type);
252#if PROTOCOL_VERSION > 404
290#if PROTOCOL_VERSION > 770
442#elif PROTOCOL_VERSION > 769
593#elif PROTOCOL_VERSION > 768
743#elif PROTOCOL_VERSION > 767
774 CreakingTransient = 30,
894#elif PROTOCOL_VERSION > 765
1025#elif PROTOCOL_VERSION > 764
1152#elif PROTOCOL_VERSION > 761
1277#elif PROTOCOL_VERSION > 760
1397#elif PROTOCOL_VERSION > 758
1516#elif PROTOCOL_VERSION > 754
1630#elif PROTOCOL_VERSION > 736
1739#elif PROTOCOL_VERSION > 578
1847#elif PROTOCOL_VERSION > 498
1951#elif PROTOCOL_VERSION > 404
2054#elif PROTOCOL_VERSION > 340
2240#if PROTOCOL_VERSION < 458
2241 enum class ObjectEntityType
2258 FallingBlockEntity = 70,
2263 FireworkRocketEntity = 76,
2264 LeashFenceKnotEntity = 77,
2270#if PROTOCOL_VERSION > 340
int GetDataTicksFrozen() const
virtual EntityType GetType() const =0
virtual double GetHeightImpl() const
void SetDataSilent(const bool data_silent)
virtual ProtocolCraft::Json::Value Serialize() const
void SetDataPose(const Pose data_pose)
std::map< EquipmentSlot, ProtocolCraft::Slot > equipments
Items on this entity.
virtual void SetY(const double y_)
virtual bool IsAbstractChestedHorse() const
virtual bool IsWaterAnimal() const
void SetEffects(const std::vector< EntityEffect > &effects_)
void SetDataAirSupplyId(const int data_air_supply_id)
void SetDataSharedFlagsIdImpl(const char data_shared_flags_id)
Vector3< double > GetSpeed() const
void SetUUID(const ProtocolCraft::UUID &uuid_)
std::map< EquipmentSlot, ProtocolCraft::Slot > GetEquipments() const
virtual bool IsAbstractArrow() const
virtual bool IsAbstractSkeleton() const
virtual bool IsAbstractPiglin() const
virtual bool IsLocalPlayer() const
std::vector< EntityEffect > effects
char GetDataSharedFlagsIdImpl() const
virtual bool IsRemotePlayer() const
bool GetDataSilent() const
void SetDataPoseImpl(const Pose data_pose)
virtual bool IsAbstractBoat() const
virtual bool IsAbstractHurtingProjectile() const
ProtocolCraft::UUID GetUUID() const
virtual bool IsAbstractSchoolingFish() const
void SetSpeed(const Vector3< double > &speed_)
virtual bool IsHangingEntity() const
bool GetAreRenderedFacesUpToDate() const
virtual void SetMetadataValue(const int index, const std::any &value)
virtual bool IsSpellcasterIllager() const
virtual bool IsBlockAttachedEntity() const
static std::shared_ptr< Entity > CreateEntity(const EntityType type)
static constexpr int hierarchy_metadata_count
virtual bool IsAbstractThrownPotion() const
static const std::array< std::string, metadata_count > metadata_names
bool are_rendered_faces_up_to_date
virtual double GetWidthImpl() const
virtual void SetZ(const double z_)
void SetEquipment(const EquipmentSlot slot, const ProtocolCraft::Slot &item)
std::vector< Renderer::Face > faces
virtual bool IsLivingEntity() const
virtual bool IsChestBoat() const
virtual bool IsPatrollingMonster() const
virtual bool IsProjectile() const
int GetDataAirSupplyId() const
std::vector< EntityEffect > GetEffects() const
virtual bool IsAbstractMinecart() const
virtual bool IsDisplay() const
void SetSpeedY(const double speed_y_)
virtual bool IsAbstractMinecartContainer() const
void SetDataCustomName(const std::optional< ProtocolCraft::Chat > &data_custom_name)
virtual bool IsAmbientCreature() const
virtual bool IsFireball() const
std::shared_mutex entity_mutex
void SetOnGround(const bool on_ground_)
virtual bool IsAnimal() const
std::vector< Renderer::Face > GetFaces(const bool reset_uptodate_status)
void SetSpeedX(const double speed_x_)
virtual bool IsAbstractFish() const
virtual bool IsAgeableMob() const
virtual void SetX(const double x_)
virtual bool IsAbstractVillager() const
virtual void InitializeFaces()
virtual bool IsThrowableProjectile() const
virtual bool IsAbstractWindCharge() const
AABB GetColliderImpl() const
void SetDataSharedFlagsId(const char data_shared_flags_id)
char GetDataSharedFlagsId() const
virtual bool IsMob() const
virtual void SetYaw(const float yaw_)
virtual bool IsPathfinderMob() const
ProtocolCraft::Slot GetEquipment(const EquipmentSlot slot) const
void SetDataCustomNameVisible(const bool data_custom_name_visible)
virtual bool IsVehicle() const
virtual std::string GetName() const =0
Pose GetDataPoseImpl() const
virtual bool IsRaider() const
virtual void SetPitch(const float pitch_)
virtual bool IsThrowableItemProjectile() const
void SetEntityID(const int entity_id_)
virtual bool IsMonster() const
virtual bool IsTamableAnimal() const
void SetDataNoGravity(const bool data_no_gravity)
bool GetDataCustomNameVisible() const
virtual bool IsAbstractIllager() const
virtual bool IsAbstractHorse() const
std::map< std::string, std::any > metadata
Vector3< double > position
virtual bool IsAbstractCow() const
virtual bool IsAbstractChestBoat() const
void AddEffect(const EntityEffect &effect)
virtual bool IsChestRaft() const
virtual bool IsAbstractGolem() const
virtual bool IsAgeableWaterCreature() const
bool GetDataNoGravity() const
void SetAreRenderedFacesUpToDate(const bool are_rendered_faces_up_to_date_)
Vector3< double > GetPosition() const
void SetSpeedZ(const double speed_z_)
static constexpr int metadata_count
std::vector< FaceDescriptor > face_descriptors
std::optional< ProtocolCraft::Chat > GetDataCustomName() const
virtual bool IsBoat() const
void LoadMetadataFromRawArray(const std::vector< unsigned char > &data)
virtual bool IsRaft() const
virtual bool IsShoulderRidingEntity() const
void RemoveEffect(const EntityEffectType type)
virtual void SetPosition(const Vector3< double > &position_)
void SetDataTicksFrozen(const int data_ticks_frozen)
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
std::array< unsigned char, 16 > UUID
std::chrono::steady_clock::time_point end