Mekanism-tilera-Edition/common/buildcraft/api/core/SafeTimeTracker.java

47 lines
1.1 KiB
Java
Raw Normal View History

2013-08-25 15:36:29 +02:00
/**
* 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
2013-04-13 16:35:13 +02:00
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.api.core;
import net.minecraft.world.World;
2013-12-26 21:00:08 +01:00
public class SafeTimeTracker {
2013-04-13 16:35:13 +02:00
2013-08-08 19:10:11 +02:00
private long lastMark = Long.MIN_VALUE;
2013-08-25 15:36:29 +02:00
private long duration = -1;
2013-04-13 16:35:13 +02:00
/**
2013-12-26 21:00:08 +01:00
* Return true if a given delay has passed since last time marked was called
* successfully.
2013-04-13 16:35:13 +02:00
*/
2013-12-26 21:00:08 +01:00
public boolean markTimeIfDelay(World world, long delay) {
2013-04-13 16:35:13 +02:00
if (world == null)
return false;
2013-08-25 15:36:29 +02:00
long currentTime = world.getTotalWorldTime();
2013-04-13 16:35:13 +02:00
2013-12-26 21:00:08 +01:00
if (currentTime < lastMark) {
2013-04-13 16:35:13 +02:00
lastMark = currentTime;
return false;
2013-12-26 21:00:08 +01:00
} else if (lastMark + delay <= currentTime) {
2013-08-08 19:10:11 +02:00
duration = currentTime - lastMark;
2013-08-25 15:36:29 +02:00
lastMark = currentTime;
2013-04-13 16:35:13 +02:00
return true;
2013-12-26 21:00:08 +01:00
} else
2013-04-13 16:35:13 +02:00
return false;
}
2013-08-25 15:36:29 +02:00
2013-12-26 21:00:08 +01:00
public long durationOfLastDelay() {
2013-08-25 15:36:29 +02:00
return duration > 0 ? duration : 0;
2013-08-08 19:10:11 +02:00
}
2013-04-13 16:35:13 +02:00
2013-12-26 21:00:08 +01:00
public void markTime(World world) {
2013-08-25 15:36:29 +02:00
lastMark = world.getTotalWorldTime();
2013-04-13 16:35:13 +02:00
}
}