Measure block break times in ticks instead of floating-point real-time

This commit is contained in:
Dylan K. Taylor 2017-03-09 13:56:36 +00:00
parent 7a36d80384
commit 1da870b298

View File

@ -1554,10 +1554,10 @@ class Level implements ChunkManager, Metadatable{
return false; return false;
} }
$breakTime = $target->getBreakTime($item); $breakTime = ceil($target->getBreakTime($item) * 20);
if($player->isCreative() and $breakTime > 0.15){ if($player->isCreative() and $breakTime > 3){
$breakTime = 0.15; $breakTime = 3;
} }
if($player->hasEffect(Effect::SWIFTNESS)){ if($player->hasEffect(Effect::SWIFTNESS)){
@ -1568,9 +1568,9 @@ class Level implements ChunkManager, Metadatable{
$breakTime *= 1 + (0.3 * ($player->getEffect(Effect::MINING_FATIGUE)->getAmplifier() + 1)); $breakTime *= 1 + (0.3 * ($player->getEffect(Effect::MINING_FATIGUE)->getAmplifier() + 1));
} }
$breakTime -= 0.05; //1 tick compensation $breakTime -= 1; //1 tick compensation
if(!$ev->getInstaBreak() and ($player->lastBreak + $breakTime) > microtime(true)){ if(!$ev->getInstaBreak() and ((ceil($player->lastBreak * 20)) + $breakTime) > ceil(microtime(true) * 20)){
return false; return false;
} }