diff --git a/Minecraft.World/PrimedTnt.cpp b/Minecraft.World/PrimedTnt.cpp index 39b3ea73..8cdfd67f 100644 --- a/Minecraft.World/PrimedTnt.cpp +++ b/Minecraft.World/PrimedTnt.cpp @@ -67,11 +67,35 @@ void PrimedTnt::tick() yo = y; zo = z; - yd -= 0.04f; - move(xd, yd, zd); - xd *= 0.98f; - yd *= 0.98f; - zd *= 0.98f; + this->updateInWaterState(); + bool inWater = this->isInWater() || this->isInLava(); + + + if (inWater) + { + yd -= 0.0392f; + } + else + { + yd -= 0.04f; + } + + move(xd, yd, zd); + + + if (inWater) + { + xd *= 0.8f; + yd *= 0.8f; + zd *= 0.8f; + } + else + { + xd *= 0.98f; + yd *= 0.98f; + zd *= 0.98f; + } + if (onGround) { @@ -121,4 +145,4 @@ float PrimedTnt::getShadowHeightOffs() shared_ptr PrimedTnt::getOwner() { return owner.lock(); -} \ No newline at end of file +}