summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author12xx12 <44411062+12xx12@users.noreply.github.com>2020-09-17 20:06:41 +0200
committerGitHub <noreply@github.com>2020-09-17 20:06:41 +0200
commitba5312c198a7bb31b26fba57a966f16f07de1c90 (patch)
tree6d85b1ffa1059d83018c2d2b65c5e57b952b2b36
parentBlockHandler: no dynamic allocation (#4862) (diff)
downloadcuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar.gz
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar.bz2
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar.lz
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar.xz
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.tar.zst
cuberite-ba5312c198a7bb31b26fba57a966f16f07de1c90.zip
-rw-r--r--Server/Plugins/APIDump/APIDesc.lua160
-rw-r--r--src/Defines.h1
-rw-r--r--src/Items/ItemPumpkin.h2
-rw-r--r--src/Mobs/Enderman.cpp4
-rw-r--r--src/Mobs/SnowGolem.cpp2
5 files changed, 165 insertions, 4 deletions
diff --git a/Server/Plugins/APIDump/APIDesc.lua b/Server/Plugins/APIDump/APIDesc.lua
index aa8a0baab..4a61fb55c 100644
--- a/Server/Plugins/APIDump/APIDesc.lua
+++ b/Server/Plugins/APIDump/APIDesc.lua
@@ -14330,6 +14330,166 @@ end
{
Notes = "Unknown click action"
},
+ dtAdmin =
+ {
+ Notes = "Damage applied by an admin command"
+ },
+ dtArrow =
+ {
+ Notes = "Damage received by being attacked by a projectile, possibly from a mob"
+ },
+ dtArrowAttack =
+ {
+ Notes = "Damage received by being attacked by a projectile, possibly from a mob"
+ },
+ dtAttack =
+ {
+ Notes = "Damage recieved by being attacked by a mob"
+ },
+ dtBurning =
+ {
+ Notes = "Damage from being on fire"
+ },
+ dtCacti =
+ {
+ Notes = "Damage from contact with a cactus block"
+ },
+ dtCactus =
+ {
+ Notes = "Damage from contact with a cactus block"
+ },
+ dtCactusContact =
+ {
+ Notes = "Damage from contact with a cactus block"
+ },
+ dtCactuses =
+ {
+ Notes = "Damage from contact with a cactus block"
+ },
+ dtDrown =
+ {
+ Notes = "Damage received by drowning in water / lava"
+ },
+ dtDrowning =
+ {
+ Notes = "Damage received by drowning in water / lava"
+ },
+ dtEnderPearl =
+ {
+ Notes = "Damage received by throwing an ender pearl and being teleported by it"
+ },
+ dtEntityAttack =
+ {
+ Notes = "Damage recieved by being attacked by a mob"
+ },
+ dtEnvironment =
+ {
+ Notes = "Damage dealt to mobs from environment: enderman in rain, snow golem in desert"
+ },
+ dtExplosion =
+ {
+ Notes = "Damage applied by an explosion"
+ },
+ dtFall =
+ {
+ Notes = "Damage from falling down. Dealt when hitting the ground"
+ },
+ dtFalling =
+ {
+ Notes = "Damage from falling down. Dealt when hitting the ground"
+ },
+ dtFireContact =
+ {
+ Notes = "Damage received by standing inside a fire block"
+ },
+ dtHunger =
+ {
+ Notes = "Damage received from hunger"
+ },
+ dtInFire =
+ {
+ Notes = "Damage received by standing inside a fire block"
+ },
+ dtInVoid =
+ {
+ Notes = "Damage received by falling into the Void (Y < 0)"
+ },
+ dtLava =
+ {
+ Notes = "Damage received by a contact with a lava block"
+ },
+ dtLavaContact =
+ {
+ Notes = "Damage received by a contact with a lava block"
+ },
+ dtLightning =
+ {
+ Notes = "Damage from being hit by a lightning strike"
+ },
+ dtMob =
+ {
+ Notes = "Damage received by being attacked by a mob"
+ },
+ dtMobAttack =
+ {
+ Notes = "Damage received by being attacked by a mob"
+ },
+ dtOnFire =
+ {
+ Notes = "Damage from being on fire"
+ },
+ dtPawnAttack =
+ {
+ Notes = "Damage received by being attacked by a mob"
+ },
+ dtPlugin =
+ {
+ Notes = "Damage applied by an admin command"
+ },
+ dtPoison =
+ {
+ Notes = "Damage applied by the poison effect"
+ },
+ dtPoisoning =
+ {
+ Notes = "Damage applied by the poison effect"
+ },
+ dtPotionOfHarming =
+ {
+ Notes = "Damage applied by the potion of harming"
+ },
+ dtProjectile =
+ {
+ Notes = "Damage received by being attacked by a projectile, possibly from a mob"
+ },
+ dtRangedAttack =
+ {
+ Notes = "Damage received by being attacked by a projectile, possibly from a mob"
+ },
+ dtStarvation =
+ {
+ Notes = "Damage received from hunger"
+ },
+ dtStarving =
+ {
+ Notes = "Damage received from hunger"
+ },
+ dtSuffocating =
+ {
+ Notes = "Damage from suffocating inside a block"
+ },
+ dtSuffocation =
+ {
+ Notes = "Damage from suffocating inside a block"
+ },
+ dtWither =
+ {
+ Notes = "Damage from the wither effect"
+ },
+ dtWithering =
+ {
+ Notes = "Damage from the wither effect"
+ },
E_BLOCK_ACACIA_DOOR =
{
Notes = "The blocktype for acacia door"
diff --git a/src/Defines.h b/src/Defines.h
index 42978e740..a9714c52f 100644
--- a/src/Defines.h
+++ b/src/Defines.h
@@ -273,6 +273,7 @@ enum eDamageType
dtEnderPearl, // Thrown an ender pearl, teleported by it
dtAdmin, // Damage applied by an admin command
dtExplosion, // Damage applied by an explosion
+ dtEnvironment, // Damage dealt to mobs from environment: enderman in rain, snow golem in desert
// Some common synonyms:
dtPawnAttack = dtAttack,
diff --git a/src/Items/ItemPumpkin.h b/src/Items/ItemPumpkin.h
index 33810b51f..897cba279 100644
--- a/src/Items/ItemPumpkin.h
+++ b/src/Items/ItemPumpkin.h
@@ -82,7 +82,7 @@ public:
bool TrySpawnSnowGolem(cWorld & a_World, cPlayer & a_Player, const Vector3i a_PumpkinPos)
{
ASSERT(a_PumpkinPos.y > 1);
- ASSERT(a_World.GetBlock(a_PumpkinPos.addedY(-1)) == E_BLOCK_SNOW);
+ ASSERT(a_World.GetBlock(a_PumpkinPos.addedY(-1)) == E_BLOCK_SNOW_BLOCK);
// Need one more snow block 2 blocks below the pumpkin:
if (a_World.GetBlock(a_PumpkinPos.addedY(-2)) != E_BLOCK_SNOW_BLOCK)
diff --git a/src/Mobs/Enderman.cpp b/src/Mobs/Enderman.cpp
index aa7c00bdd..3b8cd77e5 100644
--- a/src/Mobs/Enderman.cpp
+++ b/src/Mobs/Enderman.cpp
@@ -159,14 +159,14 @@ void cEnderman::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
return;
}
- // Take damage when wet, drowning damage seems to be most appropriate
+ // Take damage when wet
if (
cChunkDef::IsValidHeight(POSY_TOINT) &&
(GetWorld()->IsWeatherWetAtXYZ(GetPosition().Floor()) || IsInWater())
)
{
EventLosePlayer();
- TakeDamage(dtDrowning, nullptr, 1, 0);
+ TakeDamage(dtEnvironment, nullptr, 1, 0);
// TODO teleport to a safe location
}
}
diff --git a/src/Mobs/SnowGolem.cpp b/src/Mobs/SnowGolem.cpp
index 2e6d5ea09..93c29cafb 100644
--- a/src/Mobs/SnowGolem.cpp
+++ b/src/Mobs/SnowGolem.cpp
@@ -38,7 +38,7 @@ void cSnowGolem::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
}
if (IsBiomeNoDownfall(m_World->GetBiomeAt(POSX_TOINT, POSZ_TOINT)))
{
- TakeDamage(*this);
+ TakeDamage(dtEnvironment, nullptr, GetRawDamageAgainst(*this), GetKnockbackAmountAgainst(*this));
}
else
{