Mekanism-tilera-Edition/common/buildcraft/api/core/SafeTimeTracker.java
2013-12-01 14:41:01 +08:00

53 lines
1.1 KiB
Java

/**
* Copyright (c) SpaceToad, 2011 http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public License
* 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.api.core;
import net.minecraft.world.World;
public class SafeTimeTracker
{
private long lastMark = Long.MIN_VALUE;
private long duration = -1;
/**
* Return true if a given delay has passed since last time marked was called successfully.
*/
public boolean markTimeIfDelay(World world, long delay)
{
if (world == null)
return false;
long currentTime = world.getTotalWorldTime();
if (currentTime < lastMark)
{
lastMark = currentTime;
return false;
}
else if (lastMark + delay <= currentTime)
{
duration = currentTime - lastMark;
lastMark = currentTime;
return true;
}
else
return false;
}
public long durationOfLastDelay()
{
return duration > 0 ? duration : 0;
}
public void markTime(World world)
{
lastMark = world.getTotalWorldTime();
}
}