package com.bioxx.tfc2.core; import net.minecraft.world.World; import com.bioxx.tfc2.api.types.Season; import com.bioxx.tfc2.api.types.SeasonalPeriod; public class Timekeeper { World worldObj; static Timekeeper instance; public static final long ticksInYear = 2304000L;//24000*96 public static final long ticksInSeason = ticksInYear/4; public static final long ticksInPeriod = ticksInSeason/3; public static final long HOUR_LENGTH = 1000; public static final long DAY_LENGTH = 24000; public static Timekeeper getInstance() { return instance; } public static void initialize(World world) { instance = new Timekeeper(world); } public Timekeeper(World world) { worldObj = world; } public int getHoursInPeriod() { return 8 * 24; } public long getTotalTicks() { return worldObj.getWorldTime(); } public long getTotalDays() { return getTotalTicks() / 24000; } public long getTotalHours() { return getTotalTicks() / 1000; } public long getTotalHalfHours() { return getTotalTicks() / 500; } public int getClockTime() { long time = (getTotalTicks() % 24000) / 1000; time += 6; return (int)(time % 24); } public Season getSeason() { long mod = getTotalTicks() % ticksInYear; int season = (int)Math.floor(mod/ticksInSeason); return Season.fromInt(season); } public SeasonalPeriod getSeasonalPeriod() { long mod = getTotalTicks() % ticksInYear; int season = (int)Math.floor(mod/ticksInPeriod); return SeasonalPeriod.fromInt(season); } public long getTimeSinceLastPeriod() { long mod = getTotalTicks() % ticksInYear; return mod % ticksInPeriod; } public long getTimeUntilEndofPeriod() { long mod = getTotalTicks() % ticksInYear; return ticksInPeriod - (mod % ticksInPeriod); } }