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
194#if PROTOCOL_VERSION > 736
199#if PROTOCOL_VERSION > 404
204#if PROTOCOL_VERSION > 477
209#if PROTOCOL_VERSION > 404
213#if PROTOCOL_VERSION > 765
216#if PROTOCOL_VERSION > 766
219#if PROTOCOL_VERSION > 767
223 virtual bool IsBoat()
const;
226 virtual bool IsRaft()
const;
231#if PROTOCOL_VERSION < 458
232 static std::shared_ptr<Entity> CreateObjectEntity(
const ObjectEntityType type);
244#if PROTOCOL_VERSION > 404
282#if PROTOCOL_VERSION > 768
432#elif PROTOCOL_VERSION > 767
463 CreakingTransient = 30,
583#elif PROTOCOL_VERSION > 765
714#elif PROTOCOL_VERSION > 764
841#elif PROTOCOL_VERSION > 761
966#elif PROTOCOL_VERSION > 760
1086#elif PROTOCOL_VERSION > 758
1205#elif PROTOCOL_VERSION > 754
1319#elif PROTOCOL_VERSION > 736
1428#elif PROTOCOL_VERSION > 578
1536#elif PROTOCOL_VERSION > 498
1640#elif PROTOCOL_VERSION > 404
1743#elif PROTOCOL_VERSION > 340
1929#if PROTOCOL_VERSION < 458
1930 enum class ObjectEntityType
1947 FallingBlockEntity = 70,
1952 FireworkRocketEntity = 76,
1953 LeashFenceKnotEntity = 77,
1959#if PROTOCOL_VERSION > 340
int GetDataTicksFrozen() const
virtual EntityType GetType() const =0
virtual double GetHeightImpl() const
void SetDataSilent(const bool data_silent)
virtual bool IsFlyingMob() const
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
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 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