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;
}
$breakTime = $target->getBreakTime($item);
$breakTime = ceil($target->getBreakTime($item) * 20);
if($player->isCreative() and $breakTime > 0.15){
$breakTime = 0.15;
if($player->isCreative() and $breakTime > 3){
$breakTime = 3;
}
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 -= 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;
}