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

#include <WitherSkullEntity.h>

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

Public Member Functions

 cWitherSkullEntity (cEntity *a_Creator, Vector3d a_Pos, Vector3d a_Speed)
 
- Public Member Functions inherited from cProjectileEntity
virtual void CollectedBy (cPlayer &a_Dest)
 Called by Chunk when the projectile is eligible for player collection. More...
 
 cProjectileEntity (eKind a_Kind, cEntity *a_Creator, Vector3d a_Pos, double a_Width, double a_Height)
 
 cProjectileEntity (eKind a_Kind, cEntity *a_Creator, Vector3d a_Pos, Vector3d a_Speed, double a_Width, double a_Height)
 
AString GetCreatorName (void) const
 Returns the name of the player that created the projectile Will be empty for non-player creators. More...
 
UInt32 GetCreatorUniqueID (void)
 Returns the unique ID of the entity who created this projectile May return an ID <0. More...
 
AString GetMCAClassName (void) const
 Returns the string that is used as the entity type (class name) in MCA files. More...
 
eKind GetProjectileKind (void) const
 Returns the kind of the projectile (fast class identification) More...
 
bool IsInGround (void) const
 Returns true if the projectile has hit the ground and is stuck there. More...
 
void SetIsInGround (bool a_IsInGround)
 Sets the internal InGround flag. More...
 
- Public Member Functions inherited from cEntity
void AddLeashedMob (cMonster *a_Monster)
 Adds a mob to the leashed list of mobs. More...
 
void AddPosition (double a_AddPosX, double a_AddPosY, double a_AddPosZ)
 
void AddPosition (const Vector3d &a_AddPos)
 
void AddPosX (double a_AddPosX)
 
void AddPosY (double a_AddPosY)
 
void AddPosZ (double a_AddPosZ)
 
void AddSpeed (double a_AddSpeedX, double a_AddSpeedY, double a_AddSpeedZ)
 
void AddSpeed (const Vector3d &a_AddSpeed)
 
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...
 
virtual void AttachTo (cEntity *a_AttachTo)
 Attaches to the specified entity; detaches from any previous one first. More...
 
virtual void BroadcastMovementUpdate (const cClientHandle *a_Exclude=nullptr)
 Updates clients of changes in the entity. More...
 
 cEntity (eEntityType a_EntityType, Vector3d a_Pos, double a_Width, double a_Height)
 
virtual void Destroy (bool a_ShouldBroadcast=true)
 Destroys the entity and schedules it for memory freeing; if a_ShouldBroadcast is set to true, broadcasts the DestroyEntity packet. More...
 
void DestroyNoScheduling (bool a_ShouldBroadcast)
 Destroy the entity without scheduling memory freeing. More...
 
virtual 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 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...
 
virtual bool DoMoveToWorld (cWorld *a_World, bool a_ShouldSendRespawn, Vector3d a_NewPosition)
 
virtual bool DoTakeDamage (TakeDamageInfo &a_TDI)
 Makes this entity take damage specified in the a_TDI. More...
 
float GetAirDrag (void) const
 
int GetAirLevel (void) const
 Gets remaining air of a monster. More...
 
virtual int 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...
 
int GetChunkX (void) const
 
int GetChunkZ (void) const
 
virtual const char * GetClass (void) const
 Returns the topmost class name for the object. More...
 
virtual void GetDrops (cItems &a_Drops, cEntity *a_Killer=nullptr)
 Returns the list of drops for this pawn when it is killed. More...
 
virtual float GetEnchantmentBlastKnockbackReduction ()
 Returns explosion knock back reduction percent from blast protection level. More...
 
virtual int 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...
 
virtual float GetExplosionExposureRate (Vector3d a_ExplosionPosition, float a_ExlosionPower)
 a lightweight calculation approach to get explosion exposure rate More...
 
float GetGravity (void) const
 
double GetHeadYaw (void) const
 
float GetHealth (void) const
 Returns the health of this entity. More...
 
double 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 GetLastSentPos (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 existed for. More...
 
UInt32 GetUniqueID (void) const
 
double GetWidth (void) const
 
cWorldGetWorld (void) const
 
double GetYaw (void) const
 
virtual void HandleSpeedFromAttachee (float a_Forward, float a_Sideways)
 
bool HasAnyMobLeashed () const
 Returs whether the entity has any mob leashed to. More...
 
virtual void Heal (int a_HitPoints)
 Heals the specified amount of HPs. More...
 
virtual 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 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...
 
bool IsEnderCrystal (void) const
 
bool IsExpOrb (void) const
 
bool IsFallingBlock (void) const
 
virtual bool IsFireproof (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 IsInvisible (void) const
 
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 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
 
virtual void Killed (cEntity *a_Victim)
 Called when the entity kills another entity. More...
 
virtual void KilledBy (TakeDamageInfo &a_TDI)
 Called when the health drops below zero. 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 (const AString &a_WorldName, bool a_ShouldSendRespawn=true)
 Moves entity to specified world, taking a world name. More...
 
virtual void OnFinishedBurning (void)
 Called when the entity finishes burning. More...
 
virtual void OnRightClicked (cPlayer &a_Player)
 Called when the specified player right-clicks 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 ScheduleMoveToWorld (cWorld *a_World, Vector3d a_NewPosition, bool a_ShouldSetPortalCooldown=false, bool a_ShouldSendRespawn=false)
 Schedules a MoveToWorld call to occur on the next Tick of the entity. 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 SetHeight (double a_Height)
 
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 (double a_PosX, double a_PosY, double a_PosZ)
 
void SetPosition (const Vector3d &a_Position)
 
void SetPosX (double a_PosX)
 
void SetPosY (double a_PosY)
 
void SetPosZ (double a_PosZ)
 
void SetRoll (double a_Roll)
 
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 SetWidth (double a_Width)
 
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, UInt32 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...
 
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 ()
 

Protected Member Functions

virtual void OnHitEntity (cEntity &a_EntityHit, Vector3d a_HitPos) override
 Called by the physics blocktracer when the entity hits another entity. More...
 
virtual void OnHitSolidBlock (Vector3d a_HitPos, eBlockFace a_HitFace) override
 Called by the physics blocktracer when the entity hits a solid block, the hit position and the face hit (BLOCK_FACE_) is given. More...
 
- Protected Member Functions inherited from cProjectileEntity
virtual void HandlePhysics (std::chrono::milliseconds a_Dt, cChunk &a_Chunk) override
 Handles the physics of the entity - updates position based on speed, updates speed based on environment. More...
 
virtual void SpawnOn (cClientHandle &a_Client) 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
 
- Protected Member Functions inherited from cEntity
virtual void Destroyed (void)
 
virtual void DoSetSpeed (double a_SpeedX, double a_SpeedY, double a_SpeedZ)
 Does the actual speed-setting. More...
 
virtual void HandleAir (void)
 Called in each tick to handle air-related processing i.e. More...
 
virtual void ResetPosition (Vector3d a_NewPos)
 Set the entities position and last sent position. More...
 
virtual void SetSwimState (cChunk &a_Chunk)
 Called once per tick to set m_IsInFire, m_IsInLava, m_IsInWater and m_IsHeadInWater. More...
 

Private Types

using super = cProjectileEntity
 

Additional Inherited Members

- Public Types inherited from cProjectileEntity
enum  eKind {
  pkArrow = 60, pkSnowball = 61, pkEgg = 62, pkGhastFireball = 63,
  pkFireCharge = 64, pkEnderPearl = 65, pkExpBottle = 75, pkSplashPotion = 73,
  pkFirework = 76, pkWitherSkull = 66, pkFishingFloat = 90
}
 The kind of the projectile. More...
 
- Public Types inherited from cEntity
enum  eEntityStatus {
  esGenericHurt = 2, esGenericDead = 3, esIronGolemAttacking = 4, esWolfTaming = 6,
  esWolfTamed = 7, esWolfDryingWater = 8, esPlayerEatingAccepted = 9, esSheepEating = 10,
  esIronGolemGivingPlant = 11, esVillagerBreeding = 12, esVillagerAngry = 13, esVillagerHappy = 14,
  esWitchMagicking = 15, esFireworkExploding = 17, esMobInLove = 18
}
 
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 cProjectileEntity
static std::unique_ptr< cProjectileEntityCreate (eKind a_Kind, cEntity *a_Creator, Vector3d a_Pos, const cItem *a_Item, const Vector3d *a_Speed=nullptr)
 Creates a new instance of the specified projectile entity. More...
 
static std::unique_ptr< cProjectileEntityCreate (eKind a_Kind, cEntity *a_Creator, double a_PosX, double a_PosY, double a_PosZ, const cItem *a_Item, const Vector3d *a_Speed=nullptr)
 OBSOLETE, use the Vector3d-based overload instead. More...
 
- Static Public Member Functions inherited from cEntity
static const char * GetClassStatic (void)
 Returns the class name of this class. More...
 
- 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...
 
- 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 cProjectileEntity
CreatorData m_CreatorData
 The structure for containing the entity ID and name who has created this projectile The ID and / or name may be nullptr (e.g. More...
 
bool m_IsInGround
 True if the projectile has hit the ground and is stuck there. More...
 
eKind m_ProjectileKind
 The type of projectile I am. More...
 
- 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...
 
bool m_IsWorldChangeScheduled
 State variables for ScheduleMoveToWorld. More...
 
Vector3d m_LastPosition
 
float m_MaxHealth
 
cWorldm_NewWorld
 
Vector3d m_NewWorldPosition
 
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
 
bool m_WorldChangeSendRespawn
 
bool m_WorldChangeSetPortalCooldown
 

Detailed Description

Definition at line 20 of file WitherSkullEntity.h.

Member Typedef Documentation

Definition at line 25 of file WitherSkullEntity.h.

Constructor & Destructor Documentation

cWitherSkullEntity::cWitherSkullEntity ( cEntity a_Creator,
Vector3d  a_Pos,
Vector3d  a_Speed 
)

Definition at line 15 of file WitherSkullEntity.cpp.

Member Function Documentation

void cWitherSkullEntity::OnHitEntity ( cEntity a_EntityHit,
Vector3d  a_HitPos 
)
overrideprotectedvirtual

Called by the physics blocktracer when the entity hits another entity.

Reimplemented from cProjectileEntity.

Definition at line 38 of file WitherSkullEntity.cpp.

void cWitherSkullEntity::OnHitSolidBlock ( Vector3d  a_HitPos,
eBlockFace  a_HitFace 
)
overrideprotectedvirtual

Called by the physics blocktracer when the entity hits a solid block, the hit position and the face hit (BLOCK_FACE_) is given.

Reimplemented from cProjectileEntity.

Definition at line 27 of file WitherSkullEntity.cpp.


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