From 01e72ddb6567531b16f92af2564b853878b6ef65 Mon Sep 17 00:00:00 2001 From: changyong guo Date: Mon, 23 Jul 2018 17:24:00 +0800 Subject: Rewrite explosion knock back (#4251) 1. Base knockback on an entity's bounding box intersection with the explosion 2. Armor blast protection reduces knockback 3. Don't apply knockback to players flying in creative mode Fixes #4139 --- src/Entities/Player.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/Entities/Player.cpp') diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index d8bb22e2f..181a54870 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -3069,3 +3069,31 @@ float cPlayer::GetPlayerRelativeBlockHardness(BLOCKTYPE a_Block) // LOGD("blockHardness: %f, digSpeed: %f, canHarvestBlockDivisor: %f\n", blockHardness, digSpeed, canHarvestBlockDivisor); return (blockHardness < 0) ? 0 : ((digSpeed / blockHardness) / canHarvestBlockDivisor); } + + + + + + +float cPlayer::GetExplosionExposureRate(Vector3d a_ExplosionPosition, float a_ExlosionPower) +{ + if ( + IsGameModeSpectator() || + (IsGameModeCreative() && !IsOnGround()) + ) + { + return 0; // No impact from explosion + } + + return super::GetExplosionExposureRate(a_ExplosionPosition, a_ExlosionPower); +} + + + + + + + + + + -- cgit v1.2.3