Cuberite
A lightweight, fast and extensible game server for Minecraft
Public Member Functions | Private Types | Private Attributes | List of all members
cSkeleton Class Reference

#include <Skeleton.h>

Inheritance diagram for cSkeleton:
Inheritance graph
[legend]
Collaboration diagram for cSkeleton:
Collaboration graph
[legend]

Public Member Functions

virtual bool Attack (std::chrono::milliseconds a_Dt) override
 Try to perform attack returns true if attack was deemed successful (hit player, fired projectile, creeper exploded, etc.) even if it didn't actually do damage return false if e.g. More...
 
 cSkeleton ()
 
virtual void GetDrops (cItems &a_Drops, cEntity *a_Killer=nullptr) override
 Returns the list of drops for this pawn when it is killed. More...
 
bool IsChargingBow () const
 
virtual bool IsUndead (void) override
 Returns whether this mob is undead (skeleton, zombie, etc.) More...
 
virtual void SpawnOn (cClientHandle &a_ClientHandle) override
 Descendants override this function to send a command to the specified client to spawn the entity on the client. More...
 
virtual void Tick (std::chrono::milliseconds a_Dt, cChunk &a_Chunk) override
 
- Public Member Functions inherited from cAggressiveMonster
 cAggressiveMonster (const AString &a_ConfigName, eMonsterType a_MobType, const AString &a_SoundHurt, const AString &a_SoundDeath, const AString &a_SoundAmbient, float a_Width, float a_Height)
 
virtual void EventSeePlayer (cPlayer *a_Player, cChunk &a_Chunk) override
 
virtual void InStateChasing (std::chrono::milliseconds a_Dt, cChunk &a_Chunk) override
 
- Public Member Functions inherited from cMonster
bool BurnsInDaylight () const
 
bool CanBeLeashed () const
 Returns whether the mob can be leashed. More...
 
bool CanPickUpLoot ()
 
virtual void CheckEventLostPlayer (std::chrono::milliseconds a_Dt)
 
virtual void CheckEventSeePlayer (cChunk &a_Chunk)
 
 cMonster (const AString &a_ConfigName, eMonsterType a_MobType, const AString &a_SoundHurt, const AString &a_SoundDeath, const AString &a_SoundAmbient, float a_Width, float a_Height)
 Creates the mob object. More...
 
virtual bool DoTakeDamage (TakeDamageInfo &a_TDI) override
 Makes this entity take damage specified in the a_TDI. More...
 
void EngageLoveMode (cMonster *a_Partner)
 Start the mating process. More...
 
virtual void EventLosePlayer (void)
 
int GetAge (void) const
 
double GetAttackRate ()
 
virtual void GetBreedingItems (cItems &a_Items)
 Returns the items that make the animal breed - this is usually the same as the ones that make the animal follow, but not necessarily. More...
 
const AStringGetCustomName (void) const
 Gets the custom name of the monster. More...
 
float GetDropChanceBoots ()
 
float GetDropChanceChestplate ()
 
float GetDropChanceHelmet ()
 
float GetDropChanceLeggings ()
 
float GetDropChanceWeapon ()
 
virtual void GetFollowedItems (cItems &a_Items)
 Returns the items that the animal of this class follows when a player holds it in hand. More...
 
cEntityGetLeashedTo () const
 Returns the entity to where this mob is leashed, returns nullptr if it's not leashed. More...
 
Vector3dGetLeashToPos () const
 Gets entity position to where mob should be leashed. More...
 
eFamily GetMobFamily (void) const
 
eMonsterType GetMobType (void) const
 
void GetMonsterConfig (const AString &a_Name)
 Reads the monster configuration for the specified monster name and assigns it to this object. More...
 
cMonsterGetPartner (void) const
 Returns the partner which the monster is currently mating with. More...
 
double GetRelativeWalkSpeed (void) const
 
cPawnGetTarget ()
 Returns the current target. More...
 
virtual void HandleFalling (void) override
 
bool HasCustomName (void) const
 Returns true if the monster has a custom name. More...
 
virtual void InheritFromParents (cMonster *a_Parent1, cMonster *a_Parent2)
 Called after the baby is born, allows the baby to inherit the parents' properties (color, etc.) More...
 
virtual void InStateEscaping (std::chrono::milliseconds a_Dt, cChunk &a_Chunk)
 
virtual void InStateIdle (std::chrono::milliseconds a_Dt, cChunk &a_Chunk)
 
bool IsBaby (void) const
 
bool IsCustomNameAlwaysVisible (void) const
 Is the custom name of this monster always visible? If not, you only see the name when you sight the mob. More...
 
bool IsInLove () const
 Returns whether the monster has just been fed and is ready to mate. More...
 
bool IsInLoveCooldown () const
 Returns whether the monster is tired of breeding and is in the cooldown state. More...
 
bool IsLeashed () const
 Returns whether the monster is leashed to an entity. More...
 
virtual bool IsNetherNative (void)
 Returns whether this mob spawns in the Nether in Vanilla. More...
 
virtual bool IsSitting (void) const
 
virtual bool IsTame (void) const
 
virtual void KilledBy (TakeDamageInfo &a_TDI) override
 Called when the health drops below zero. More...
 
void LeashTo (cEntity &a_Entity, bool a_ShouldBroadcast=true)
 Leash the monster to an entity. More...
 
void LoveTick (void)
 Does the whole love and breeding processing. More...
 
virtual void MoveToPosition (const Vector3d &a_Position)
 Engage pathfinder and tell it to calculate a path to a given position, and move the mob accordingly. More...
 
virtual void OnRemoveFromWorld (cWorld &a_World) override
 Called when the entity is removed from a world. More...
 
virtual void OnRightClicked (cPlayer &a_Player) override
 Called when the specified player right-clicks this entity. More...
 
void ResetAttackCooldown ()
 
void ResetLoveMode ()
 Finish the mating process. More...
 
void RightClickFeed (cPlayer &a_Player)
 Right click call to process feeding. More...
 
void SetAge (int a_Age)
 
void SetAttackDamage (int a_AttackDamage)
 
void SetAttackRange (double a_AttackRange)
 
void SetAttackRate (double a_AttackRate)
 
void SetBurnsInDaylight (bool a_BurnsInDaylight)
 
void SetCanBeLeashed (bool a_CanBeLeashed)
 Sets whether the mob can be leashed, for extensibility in plugins. More...
 
void SetCanPickUpLoot (bool a_CanPickUpLoot)
 
void SetCustomName (const AString &a_CustomName)
 Sets the custom name of the monster. More...
 
void SetCustomNameAlwaysVisible (bool a_CustomNameAlwaysVisible)
 Sets the custom name visiblity of this monster. More...
 
void SetDropChanceBoots (float a_DropChanceBoots)
 
void SetDropChanceChestplate (float a_DropChanceChestplate)
 
void SetDropChanceHelmet (float a_DropChanceHelmet)
 
void SetDropChanceLeggings (float a_DropChanceLeggings)
 
void SetDropChanceWeapon (float a_DropChanceWeapon)
 
void SetLeashToPos (Vector3d *pos)
 Sets entity position to where is leashed this mob. More...
 
void SetRelativeWalkSpeed (double a_WalkSpeed)
 
void SetSightDistance (int a_SightDistance)
 
void SetTarget (cPawn *a_NewTarget)
 Sets the target that this mob will chase. More...
 
void Unleash (bool a_ShouldDropLeashPickup)
 Unleash the monster. More...
 
void Unleash (bool a_ShouldDropLeashPickup, bool a_ShouldBroadcast)
 Unleash the monster. More...
 
void UnsafeUnsetTarget ()
 Unset the target without notifying the target entity. More...
 
bool WasLastTargetAPlayer () const
 Returns if this mob last target was a player to avoid destruction on player quit. More...
 
- Public Member Functions inherited from cPawn
void AddEntityEffect (cEntityEffect::eType a_EffectType, int a_EffectDurationTicks, short a_EffectIntensity, double a_DistanceModifier=1)
 Applies an entity effect. More...
 
void ClearEntityEffects (void)
 Removes all currently applied entity effects (used when drinking milk) More...
 
 cPawn (eEntityType a_EntityType, float a_Width, float a_Height)
 
cEntityEffectGetEntityEffect (cEntityEffect::eType a_EffectType) const
 Returns the entity effect, if it is currently applied or nullptr if not. More...
 
std::map< cEntityEffect::eType, cEntityEffect * > GetEntityEffects () const
 Returns all entity effects. More...
 
virtual void HandleAir (void) override
 Called in each tick to handle air-related processing i.e. More...
 
void HandleFarmlandTrampling (double a_FallHeight, BLOCKTYPE a_BlockAtFoot, BLOCKTYPE a_BlockBelow)
 Handles farmland trampling when hitting the ground. More...
 
bool HasEntityEffect (cEntityEffect::eType a_EffectType) const
 Returns true, if the entity effect is currently applied. More...
 
virtual bool IsFireproof (void) const override
 
virtual bool IsInvisible () const override
 
void NoLongerTargetingMe (cMonster *a_Monster)
 Remove the monster from the list of monsters targeting this pawn. More...
 
void RemoveEntityEffect (cEntityEffect::eType a_EffectType)
 Removes a currently applied entity effect. More...
 
void StopEveryoneFromTargetingMe ()
 Tells all pawns which are targeting us to stop targeting us. More...
 
void TargetingMe (cMonster *a_Monster)
 Add the monster to the list of monsters targeting this pawn. More...
 
- Public Member Functions inherited from cEntity
void AddLeashedMob (cMonster *a_Monster)
 Adds a mob to the leashed list of mobs. More...
 
void AddPosition (const Vector3d &a_AddPos)
 
void AddPosition (double a_AddPosX, double a_AddPosY, double a_AddPosZ)
 
void AddPosX (double a_AddPosX)
 
void AddPosY (double a_AddPosY)
 
void AddPosZ (double a_AddPosZ)
 
void AddSpeed (const Vector3d &a_AddSpeed)
 
void AddSpeed (double a_AddSpeedX, double a_AddSpeedY, double a_AddSpeedZ)
 
void AddSpeedX (double a_AddSpeedX)
 
void AddSpeedY (double a_AddSpeedY)
 
void AddSpeedZ (double a_AddSpeedZ)
 
virtual void ApplyArmorDamage (int DamageBlocked)
 Applies damage to the armor after the armor blocked the given amount. More...
 
virtual bool ArmorCoversAgainst (eDamageType a_DamageType)
 Returns whether armor will protect against the specified damage type. More...
 
void AttachTo (cEntity &a_AttachTo)
 Attaches to the specified entity; detaches from any previous one first. More...
 
void BroadcastDeathMessage (TakeDamageInfo &a_TDI)
 Announces a death message on chat about killing the entity. More...
 
virtual void BroadcastMovementUpdate (const cClientHandle *a_Exclude=nullptr)
 Updates clients of changes in the entity. More...
 
 cEntity (eEntityType a_EntityType, Vector3d a_Pos, float a_Width, float a_Height)
 
void Destroy ()
 Destroys the entity, schedules it for memory freeing and broadcasts the DestroyEntity packet. More...
 
void Detach (void)
 Detaches from the currently attached entity, if any. More...
 
virtual void DetectCacti (void)
 Detects the time for application of cacti damage. More...
 
virtual void DetectMagma (void)
 Detects the time for application of magma block damage. More...
 
virtual bool DetectPortal (void)
 Detects whether we are in a portal block and begins teleportation procedures if so Returns true if MoveToWorld() was called, false if not. More...
 
virtual bool DoesPreventBlockPlacement (void) const
 Returns whether blocks can be placed intersecting this entities' hitbox. More...
 
float GetAirDrag (void) const
 
int GetAirLevel (void) const
 Gets remaining air of a monster. More...
 
virtual float GetArmorCoverAgainst (const cEntity *a_Attacker, eDamageType a_DamageType, int a_RawDamage)
 Returns the hitpoints out of a_RawDamage that the currently equipped armor would cover. More...
 
cEntityGetAttached ()
 Gets entity (vehicle) attached to this entity. More...
 
cBoundingBox GetBoundingBox () const
 
int GetChunkX (void) const
 
int GetChunkZ (void) const
 
virtual const char * GetClass (void) const
 Returns the topmost class name for the object. More...
 
virtual float GetEnchantmentBlastKnockbackReduction ()
 Returns explosion knock back reduction percent from blast protection level. More...
 
virtual float GetEnchantmentCoverAgainst (const cEntity *a_Attacker, eDamageType a_DamageType, int a_Damage)
 Returns the hitpoints that the currently equipped armor's enchantments would cover. More...
 
eEntityType GetEntityType (void) const
 
virtual cItem GetEquippedBoots (void) const
 Returns the currently equipped boots; empty item if none. More...
 
virtual cItem GetEquippedChestplate (void) const
 Returns the currently equipped chestplate; empty item if none. More...
 
virtual cItem GetEquippedHelmet (void) const
 Returns the currently equipped helmet; empty item if none. More...
 
virtual cItem GetEquippedLeggings (void) const
 Returns the currently equipped leggings; empty item if none. More...
 
virtual cItem GetEquippedWeapon (void) const
 Returns the curently equipped weapon; empty item if none. More...
 
float GetGravity (void) const
 
double GetHeadYaw (void) const
 
float GetHealth (void) const
 Returns the health of this entity. More...
 
float GetHeight (void) const
 
int GetInvulnerableTicks (void) const
 Gets the invulnerable ticks from the entity. More...
 
virtual double GetKnockbackAmountAgainst (const cEntity &a_Receiver)
 Returns the knockback amount that the currently equipped items would cause to a_Receiver on a hit. More...
 
Vector3d GetLastSentPosition (void) const
 Returns the last position we sent to all the clients. More...
 
Vector3d GetLookVector (void) const
 
double GetMass (void) const
 
float GetMaxHealth (void) const
 
virtual cItem GetOffHandEquipedItem (void) const
 Returns the currently offhand equipped item; empty item if none. More...
 
cChunkGetParentChunk ()
 Returns the chunk responsible for ticking this entity. More...
 
const cChunkGetParentChunk () const
 
virtual const char * GetParentClass (void) const
 Returns the topmost class's parent class name for the object. More...
 
double GetPitch (void) const
 
const Vector3dGetPosition (void) const
 Exported in ManualBindings. More...
 
double GetPosX (void) const
 
double GetPosY (void) const
 
double GetPosZ (void) const
 
virtual int GetRawDamageAgainst (const cEntity &a_Receiver)
 Returns the hitpoints that this pawn can deal to a_Receiver using its equipped items. More...
 
double GetRoll (void) const
 
const Vector3dGetSpeed (void) const
 Exported in ManualBindings. More...
 
double GetSpeedX (void) const
 
double GetSpeedY (void) const
 
double GetSpeedZ (void) const
 
long int GetTicksAlive (void) const
 Gets number of ticks this entity has been alive for. More...
 
UInt32 GetUniqueID (void) const
 
float GetWidth (void) const
 
cWorldGetWorld (void) const
 
double GetYaw (void) const
 
virtual void HandlePhysics (std::chrono::milliseconds a_Dt, cChunk &a_Chunk)
 Handles the physics of the entity - updates position based on speed, updates speed based on environment. More...
 
virtual void HandleSpeedFromAttachee (float a_Forward, float a_Sideways)
 
bool HasAnyMobLeashed () const
 Returs whether the entity has any mob leashed to it. More...
 
virtual void Heal (int a_HitPoints)
 Heals the specified amount of HPs. More...
 
bool Initialize (OwnedEntity a_Self, cWorld &a_EntityWorld)
 Spawns the entity in the world; returns true if spawned, false if not (plugin disallowed). More...
 
virtual bool IsA (const char *a_ClassName) const
 Returns true if the entity is of the specified class or a subclass (cPawn's IsA("cEntity") returns true) More...
 
bool IsArrow (void) const
 
bool IsAttachedTo (const cEntity *a_Entity) const
 Returns true if this entity is attached to the specified entity. More...
 
bool IsBoat (void) const
 
virtual bool IsCrouched (void) const
 
bool IsDestroyed () const
 Deprecated. More...
 
virtual bool IsElytraFlying (void) const
 
bool IsEnderCrystal (void) const
 
bool IsExpOrb (void) const
 
bool IsFallingBlock (void) const
 
bool IsFloater (void) const
 
virtual bool IsHeadInWater (void) const
 Returns true if any part of the entity is in a water block. More...
 
virtual bool IsInFire (void) const
 Returns true if any part of the entity is in a fire block. More...
 
virtual bool IsInLava (void) const
 Returns true if any part of the entity is in a lava block. More...
 
virtual bool IsInWater (void) const
 Returns true if any part of the entity is in a water block. More...
 
bool IsItemFrame (void) const
 
bool IsLeashKnot (void) const
 
bool IsMinecart (void) const
 
bool IsMob (void) const
 
virtual bool IsOnFire (void) const
 
virtual bool IsOnGround (void) const
 Returns whether the entity is on ground or not. More...
 
bool IsOrientationDirty () const
 Returns whether the entity's orientation has been set manually. More...
 
bool IsPainting (void) const
 
bool IsPawn (void) const
 
bool IsPickup (void) const
 
bool IsPlayer (void) const
 
bool IsProjectile (void) const
 
virtual bool IsRclking (void) const
 
virtual bool IsRiding (void) const
 
virtual bool IsSprinting (void) const
 
bool IsTicking (void) const
 Returns true if the entity is valid and ticking. More...
 
bool IsTNT (void) const
 
bool IsWorldChangeScheduled () const
 Returns true if a world change is scheduled to happen. More...
 
virtual void Killed (const cEntity &a_Victim, eDamageType a_DamageType)
 Called when the entity kills another entity. More...
 
bool MoveToWorld (const AString &a_WorldName, bool a_ShouldSendRespawn=true)
 Moves entity to specified world, taking a world name. More...
 
bool MoveToWorld (cWorld &a_World, bool a_ShouldSendRespawn, Vector3d a_NewPosition)
 
bool MoveToWorld (cWorld &a_World, bool a_ShouldSendRespawn=true)
 Moves entity to specified world, taking a world pointer. More...
 
bool MoveToWorld (cWorld &a_World, Vector3d a_NewPosition, bool a_ShouldSetPortalCooldown=false, bool a_ShouldSendRespawn=true)
 
void OnAcquireSpectator (cPlayer &a_Player)
 Called when a player begins spectating this entity. More...
 
virtual void OnAddToWorld (cWorld &a_World)
 Called when the entity is added to a world. More...
 
virtual void OnFinishedBurning (void)
 Called when the entity finishes burning. More...
 
void OnLoseSpectator (cPlayer &a_Player)
 Called when a player stops spectating this entity. More...
 
virtual void OnStartedBurning (void)
 Called when the entity starts burning. More...
 
void RemoveLeashedMob (cMonster *a_Monster)
 Removes a mob from the leashed list of mobs. More...
 
void SetAirDrag (float a_AirDrag)
 
void SetGravity (float a_Gravity)
 
void SetHeadYaw (double a_HeadYaw)
 
void SetHealth (float a_Health)
 Sets the health of this entity; doesn't broadcast any hurt animation. More...
 
void SetInvulnerableTicks (int a_InvulnerableTicks)
 Set the invulnerable ticks from the entity. More...
 
void SetIsFireproof (bool a_IsFireproof)
 Sets whether the entity is fireproof. More...
 
void SetIsTicking (bool a_IsTicking)
 Set the entity's status to either ticking or not ticking. More...
 
void SetMass (double a_Mass)
 
void SetMaxHealth (float a_MaxHealth)
 Sets the maximum value for the health. More...
 
void SetParentChunk (cChunk *a_Chunk)
 Sets the parent chunk, which is the chunk responsible for ticking this entity. More...
 
void SetPitch (double a_Pitch)
 
void SetPitchFromSpeed (void)
 Sets the pitch to match the speed vector (entity gies "face-forward") More...
 
void SetPosition (const Vector3d &a_Position)
 
void SetPosition (double a_PosX, double a_PosY, double a_PosZ)
 
void SetPosX (double a_PosX)
 
void SetPosY (double a_PosY)
 
void SetPosZ (double a_PosZ)
 
void SetRoll (double a_Roll)
 
void SetSize (float a_Width, float a_Height)
 Update an entity's size, for example, on body stance changes. More...
 
void SetSpeed (double a_SpeedX, double a_SpeedY, double a_SpeedZ)
 Sets the speed of the entity, measured in m / sec. More...
 
void SetSpeed (Vector3d a_Speed)
 Sets the speed of the entity, measured in m / sec. More...
 
void SetSpeedX (double a_SpeedX)
 Sets the speed in the X axis, leaving the other speed components intact. More...
 
void SetSpeedY (double a_SpeedY)
 Sets the speed in the Y axis, leaving the other speed components intact. More...
 
void SetSpeedZ (double a_SpeedZ)
 Sets the speed in the Z axis, leaving the other speed components intact. More...
 
void SetWorld (cWorld *a_World)
 Sets the internal world pointer to a new cWorld, doesn't update anything else. More...
 
void SetYaw (double a_Yaw)
 
void SetYawFromSpeed (void)
 Sets the rotation to match the speed vector (entity goes "face-forward") More...
 
void StartBurning (int a_TicksLeftBurning)
 Puts the entity on fire for the specified amount of ticks. More...
 
void SteerVehicle (float a_Forward, float a_Sideways)
 
void StopBurning (void)
 Stops the entity from burning, resets all burning timers. More...
 
void TakeDamage (cEntity &a_Attacker)
 Makes this pawn take damage from an attack by a_Attacker. More...
 
void TakeDamage (eDamageType a_DamageType, cEntity *a_Attacker, int a_RawDamage, double a_KnockbackAmount)
 Makes this entity take the specified damage. More...
 
void TakeDamage (eDamageType a_DamageType, cEntity *a_Attacker, int a_RawDamage, float a_FinalDamage, double a_KnockbackAmount)
 Makes this entity take the specified damage. More...
 
void TakeDamage (eDamageType a_DamageType, UInt32 a_Attacker, int a_RawDamage, double a_KnockbackAmount)
 Makes this entity take the specified damage. More...
 
virtual void TeleportToCoords (double a_PosX, double a_PosY, double a_PosZ)
 Teleports to the coordinates specified. More...
 
virtual void TeleportToEntity (cEntity &a_Entity)
 Teleports to the entity specified. More...
 
virtual void TickBurning (cChunk &a_Chunk)
 Updates the state related to this entity being on fire. More...
 
virtual void TickInVoid (cChunk &a_Chunk)
 Handles when the entity is in the void. More...
 
void WrapHeadYaw ()
 Makes sure head yaw is not over the specified range. More...
 
void WrapRotation ()
 Makes sure rotation is not over the specified range. More...
 
void WrapSpeed ()
 Makes speed is not over 20. More...
 
virtual ~cEntity ()=default
 

Private Types

using Super = cAggressiveMonster
 

Private Attributes

bool m_ChargingBow
 

Additional Inherited Members

- Public Types inherited from cMonster
enum  eFamily {
  mfHostile = 0, mfPassive = 1, mfAmbient = 2, mfWater = 3,
  mfNoSpawn
}
 
enum  MPersonality { PASSIVE, AGGRESSIVE, COWARDLY }
 
enum  MState { ATTACKING, IDLE, CHASING, ESCAPING }
 
- Public Types inherited from cEntity
enum  eEntityType {
  etEntity, etEnderCrystal, etPlayer, etPickup,
  etMonster, etFallingBlock, etMinecart, etBoat,
  etTNT, etProjectile, etExpOrb, etFloater,
  etItemFrame, etPainting, etLeashKnot, etMob = etMonster
}
 
- Static Public Member Functions inherited from cMonster
static eFamily FamilyFromType (eMonsterType a_MobType)
 Returns the mob family based on the type. More...
 
static cTickTime GetSpawnDelay (cMonster::eFamily a_MobFamily)
 Returns the spawn delay (number of game ticks between spawn attempts) for the given mob family. More...
 
static AString MobTypeToString (eMonsterType a_MobType)
 Translates MobType enum to a string, empty string if unknown. More...
 
static AString MobTypeToVanillaName (eMonsterType a_MobType)
 Translates MobType enum to the vanilla name of the mob, empty string if unknown. More...
 
static AString MobTypeToVanillaNBT (eMonsterType a_MobType)
 Translates the MobType enum to the vanilla nbt name. More...
 
static std::unique_ptr< cMonsterNewMonsterFromType (eMonsterType a_MobType)
 Creates a new object of the specified mob. More...
 
static eMonsterType StringToMobType (const AString &a_MobTypeName)
 Translates MobType string to the enum, mtInvalidType if not recognized. More...
 
- Static Public Member Functions inherited from cPawn
static bool FindTeleportDestination (cWorld &a_World, const int a_HeightRequired, const unsigned int a_NumTries, Vector3d &a_Destination, const cBoundingBox a_BoundingBox)
 
static bool FindTeleportDestination (cWorld &a_World, const int a_HeightRequired, const unsigned int a_NumTries, Vector3d &a_Destination, const Vector3i a_MinBoxCorner, const Vector3i a_MaxBoxCorner)
 
static bool FindTeleportDestination (cWorld &a_World, const int a_HeightRequired, const unsigned int a_NumTries, Vector3d &a_Destination, Vector3i a_Centre, const int a_HalfCubeWidth)
 Used by enderman and chorus fruit. More...
 
- Static Public Member Functions inherited from cEntity
static const char * GetClassStatic (void)
 Returns the class name of this class. More...
 
- Public Attributes inherited from cMonster
enum cMonster::MPersonality m_EMPersonality
 
enum cMonster::MState m_EMState
 
- Static Public Attributes inherited from cEntity
static const int BURN_DAMAGE = 1
 Damage to deal when the entity is burning. More...
 
static const int BURN_TICKS = 160
 Ticks to keep an entity burning after it has stood in lava / fire. More...
 
static const int BURN_TICKS_PER_DAMAGE = 20
 Ticks to wait between damaging an entity when it is burning. More...
 
static const int DROWNING_TICKS = 20
 Number of ticks per heart of damage. More...
 
static const int FALL_DAMAGE_HEIGHT = 4
 Y difference after which fall damage is applied. More...
 
static const int FIRE_DAMAGE = 1
 Damage to deal when standing in fire. More...
 
static const int FIRE_TICKS_PER_DAMAGE = 10
 Ticks to wait between damaging an entity when it stands in fire. More...
 
static const UInt32 INVALID_ID = 0
 Special ID that is considered an "invalid value", signifying no entity. More...
 
static const int LAVA_DAMAGE = 4
 Damage to deal when standing in lava. More...
 
static const int LAVA_TICKS_PER_DAMAGE = 10
 Ticks to wait between damaging an entity when it stands in lava. More...
 
static const int MAX_AIR_LEVEL = 300
 Maximum air an entity can have. More...
 
static const int VOID_BOUNDARY = -64
 Y position to begin applying void damage. More...
 
- Protected Types inherited from cPawn
typedef std::map< cEntityEffect::eType, std::unique_ptr< cEntityEffect > > tEffectMap
 
- Protected Member Functions inherited from cMonster
void AddRandomArmorDropItem (cItems &a_Drops, unsigned int a_LootingLevel)
 Adds armor that is equipped with the chance saved in m_DropChance... to the drop. More...
 
void AddRandomDropItem (cItems &a_Drops, unsigned int a_Min, unsigned int a_Max, short a_Item, short a_ItemHealth=0)
 Adds a random number of a_Item between a_Min and a_Max to itemdrops a_Drops. More...
 
void AddRandomRareDropItem (cItems &a_Drops, cItems &a_Items, unsigned int a_LootingLevel)
 Adds one rare item out of the list of rare items a_Items modified by the looting level a_LootingLevel(I-III or custom) to the itemdrop a_Drops. More...
 
void AddRandomUncommonDropItem (cItems &a_Drops, float a_Chance, short a_Item, short a_ItemHealth=0)
 Adds a item a_Item with the chance of a_Chance (in percent) to itemdrops a_Drops. More...
 
void AddRandomWeaponDropItem (cItems &a_Drops, unsigned int a_LootingLevel)
 Adds weapon that is equipped with the chance saved in m_DropChance... to the drop. More...
 
bool DoesPosYRequireJump (double a_PosY)
 Returns whether the monster needs to jump to reach a given height. More...
 
int FindFirstNonAirBlockPosition (double a_PosX, double a_PosZ)
 Finds the lowest non-air block position (not the highest, as cWorld::GetHeight does) If current Y is nonsolid, goes down to try to find a solid block, then returns that + 1 If current Y is solid, goes up to find first nonsolid block, and returns that. More...
 
void HandleDaylightBurning (cChunk &a_Chunk, bool WouldBurn)
 
void MoveToWayPoint (cChunk &a_Chunk)
 Move in a straight line to the next waypoint in the path, will jump if needed. More...
 
bool ReachedFinalDestination (void)
 Returns if the ultimate, final destination has been reached. More...
 
void SetPitchAndYawFromDestination (bool a_IsFollowingPath)
 Sets the body yaw and head yaw. More...
 
void StopMovingToPosition ()
 Stops pathfinding. More...
 
bool TargetIsInRange (void)
 Returns whether or not the target is close enough for attack. More...
 
bool WouldBurnAt (Vector3d a_Location, cChunk &a_Chunk)
 
- Protected Member Functions inherited from cPawn
virtual void ResetPosition (Vector3d a_NewPosition) override
 Set the entities position and last sent position. More...
 
- Protected Member Functions inherited from cEntity
void BroadcastLeashedMobs ()
 If has any mobs are leashed, broadcasts every leashed entity to this. More...
 
void DoMoveToWorld (const sWorldChangeInfo &a_WorldChangeInfo)
 Handles the moving of this entity between worlds. More...
 
virtual void OnDetach ()
 Called when this entity dismounts from m_AttachedTo. More...
 
virtual void SetSwimState (cChunk &a_Chunk)
 Called once per tick to set m_IsInFire, m_IsInLava, m_IsInWater and m_IsHeadInWater. More...
 
- Static Protected Member Functions inherited from cEntity
static void ApplyFriction (Vector3d &a_Speed, double a_SlowdownMultiplier, float a_Dt)
 Applies friction to an entity. More...
 
- Protected Attributes inherited from cMonster
int m_Age
 
int m_AgingTimer
 
int m_AmbientSoundTimer
 
int m_AttackCoolDownTicksLeft
 
int m_AttackDamage
 
double m_AttackRange
 
double m_AttackRate
 
bool m_BurnsInDaylight
 
bool m_CanBeLeashed
 Determines whether a monster can be leashed. More...
 
bool m_CanPickUpLoot
 
AString m_CustomName
 
bool m_CustomNameAlwaysVisible
 
std::chrono::milliseconds m_DestroyTimer
 
float m_DropChanceBoots
 
float m_DropChanceChestplate
 
float m_DropChanceHelmet
 
float m_DropChanceLeggings
 
float m_DropChanceWeapon
 
cUUID m_Feeder
 Remembers the player is was last fed by for statistics tracking. More...
 
Vector3d m_FinalDestination
 Coordinates for the ultimate, final destination. More...
 
std::chrono::milliseconds m_IdleInterval
 
bool m_IsLeashActionJustDone
 Mob has ben leashed or unleashed in current player action. More...
 
int m_JumpCoolDown
 
cEntitym_LeashedTo
 Entity leashed to. More...
 
std::unique_ptr< Vector3dm_LeashToPos
 Entity pos where this mob was leashed to. More...
 
std::chrono::milliseconds m_LoseSightAbandonTargetTimer
 
int m_LoveCooldown
 If above 0, the monster is in cooldown mode and will refuse to breed. More...
 
cMonsterm_LovePartner
 The monster's breeding partner. More...
 
int m_LoveTimer
 If above 0, the monster is in love mode, and will breed if a nearby monster is also in love mode. More...
 
int m_MatingTimer
 The monster is engaged in mating, once this reaches zero, a baby will be born. More...
 
eMonsterType m_MobType
 
Vector3d m_NextWayPointPosition
 Coordinates of the next position that should be reached. More...
 
cPathFinder m_PathFinder
 The pathfinder instance handles pathfinding for this monster. More...
 
bool m_PathfinderActivated
 Stores if pathfinder is being used - set when final destination is set, and unset when stopped moving to final destination. More...
 
double m_RelativeWalkSpeed
 
int m_SightDistance
 
AString m_SoundAmbient
 
AString m_SoundDeath
 
AString m_SoundHurt
 
int m_TicksSinceLastDamaged
 
bool m_WasLastTargetAPlayer
 
- Protected Attributes inherited from cPawn
bool m_bTouchGround
 
tEffectMap m_EntityEffects
 
double m_LastGroundHeight
 
- Protected Attributes inherited from cEntity
float m_AirDrag
 Stores the air drag that is applied to the entity every tick, measured in speed ratio per tick Acts as air friction and slows down flight Will be interpolated if the server tick rate varies Data: https://minecraft.gamepedia.com/Entity#Motion_of_entities. More...
 
int m_AirLevel
 Air level of a mobile. More...
 
int m_AirTickTimer
 
cEntitym_AttachedTo
 The entity to which this entity is attached (vehicle), nullptr if none. More...
 
cEntitym_Attachee
 The entity which is attached to this entity (rider), nullptr if none. More...
 
bool m_bDirtyHead
 Stores whether head yaw has been set manually. More...
 
bool m_bDirtyOrientation
 Stores whether our yaw / pitch / roll (body orientation) has been set manually. More...
 
bool m_bHasSentNoSpeed
 Stores whether we have sent a Velocity packet with a speed of zero (no speed) to the client Ensures that said packet is sent only once. More...
 
bool m_bOnGround
 Stores if the entity is on the ground. More...
 
eEntityType m_EntityType
 
float m_Gravity
 Stores gravity that is applied to an entity every tick For realistic effects, this should be negative. More...
 
float m_Health
 
bool m_IsFireproof
 Whether the entity is capable of taking fire or lava damage. More...
 
bool m_IsHeadInWater
 If the entity's head is in a water block. More...
 
bool m_IsInFire
 If any part of the entity is in a fire block. More...
 
bool m_IsInLava
 If any part of the entity is in a lava block. More...
 
bool m_IsInWater
 If any part of the entity is in a water block. More...
 
Vector3d m_LastPosition
 
Vector3d m_LastSentPosition
 Last position sent to client via the Relative Move or Teleport packets (not Velocity) Only updated if cEntity::BroadcastMovementUpdate() is called! More...
 
float m_MaxHealth
 
sPortalCooldownData m_PortalCooldownData
 Portal delay timer and cooldown boolean data. More...
 
Vector3d m_Speed
 Measured in meters / second (m / s) More...
 
long int m_TicksAlive
 The number of ticks this entity has been alive for. More...
 
int m_TicksLeftBurning
 Time, in ticks, until the entity extinguishes its fire. More...
 
int m_TicksSinceLastBurnDamage
 Time, in ticks, since the last damage dealt by being on fire. More...
 
int m_TicksSinceLastFireDamage
 Time, in ticks, since the last damage dealt by standing in fire. More...
 
int m_TicksSinceLastLavaDamage
 Time, in ticks, since the last damage dealt by standing in lava. More...
 
int m_TicksSinceLastVoidDamage
 Time, in ticks, since the last damage dealt by the void. More...
 
UInt32 m_UniqueID
 The ID of the entity that is guaranteed to be unique within a single run of the server. More...
 
cWorldm_World
 
sWorldChangeInfo m_WorldChangeInfo
 If field m_NewWorld not nullptr, a world change is scheduled and a task is queued in the current world. More...
 

Detailed Description

Definition at line 10 of file Skeleton.h.

Member Typedef Documentation

◆ Super

Definition at line 13 of file Skeleton.h.

Constructor & Destructor Documentation

◆ cSkeleton()

cSkeleton::cSkeleton ( )

Definition at line 12 of file Skeleton.cpp.

Member Function Documentation

◆ Attack()

bool cSkeleton::Attack ( std::chrono::milliseconds  a_Dt)
overridevirtual

Try to perform attack returns true if attack was deemed successful (hit player, fired projectile, creeper exploded, etc.) even if it didn't actually do damage return false if e.g.

the mob is still in cooldown from a previous attack

Reimplemented from cAggressiveMonster.

Definition at line 62 of file Skeleton.cpp.

◆ GetDrops()

void cSkeleton::GetDrops ( cItems a_Drops,
cEntity a_Killer = nullptr 
)
overridevirtual

Returns the list of drops for this pawn when it is killed.

May check a_Killer for special handling (sword of looting etc.). Called from KilledBy().

Reimplemented from cEntity.

Definition at line 22 of file Skeleton.cpp.

◆ IsChargingBow()

bool cSkeleton::IsChargingBow ( ) const
inline

Definition at line 29 of file Skeleton.h.

◆ IsUndead()

virtual bool cSkeleton::IsUndead ( void  )
inlineoverridevirtual

Returns whether this mob is undead (skeleton, zombie, etc.)

Reimplemented from cMonster.

Definition at line 27 of file Skeleton.h.

◆ SpawnOn()

void cSkeleton::SpawnOn ( cClientHandle a_Client)
overridevirtual

Descendants override this function to send a command to the specified client to spawn the entity on the client.

To spawn on all eligible clients, use cChunkMap::BroadcastSpawnEntity()

Reimplemented from cMonster.

Definition at line 101 of file Skeleton.cpp.

◆ Tick()

void cSkeleton::Tick ( std::chrono::milliseconds  a_Dt,
cChunk a_Chunk 
)
overridevirtual

Reimplemented from cAggressiveMonster.

Definition at line 40 of file Skeleton.cpp.

Member Data Documentation

◆ m_ChargingBow

bool cSkeleton::m_ChargingBow
private

Definition at line 33 of file Skeleton.h.


The documentation for this class was generated from the following files: