__init__.py (4911B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\gametime\__init__.py 2 from carbon.common.lib.const import BLUE_TICK, HNSEC, uSEC, MSEC, SEC, MIN, HOUR, DAY, WEEK 3 EPOCH_BLUE_TIME = 116444736000000000L 4 5 class BlueTimeImplementation(object): 6 7 def __init__(self): 8 import blue 9 self.GetSimTime = blue.os.GetSimTime 10 self.GetWallclockTime = blue.os.GetWallclockTime 11 self.GetWallclockTimeNow = blue.os.GetWallclockTimeNow 12 13 14 class PythonTimeImplementation(object): 15 16 def __init__(self): 17 import time 18 GetTime = lambda : long(time.time() * SEC) 19 self.GetSimTime = GetTime 20 self.GetWallclockTime = GetTime 21 self.GetWallclockTimeNow = GetTime 22 23 24 try: 25 implementation = BlueTimeImplementation() 26 except ImportError: 27 implementation = PythonTimeImplementation() 28 29 GetSimTime = implementation.GetSimTime 30 GetWallclockTime = implementation.GetWallclockTime 31 GetWallclockTimeNow = implementation.GetWallclockTimeNow 32 33 def GetTimeDiff(a, b, unit_conversion_to = BLUE_TICK, cast_to_class = long): 34 return cast_to_class(float(b - a) / unit_conversion_to) 35 36 37 def GetTimeDiffInMs(a, b, cast_to_class = long): 38 return GetTimeDiff(a, b, MSEC, cast_to_class) 39 40 41 def GetTimeSinceWallclockTime(time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 42 return cast_to_class(float(GetWallclockTime() - time) / unit_conversion_to) 43 44 45 def GetSecondsSinceWallclockTime(time, cast_to_class = float): 46 return GetTimeSinceWallclockTime(time, SEC, cast_to_class) 47 48 49 def GetHoursSinceWallclockTime(time, cast_to_class = float): 50 return GetTimeSinceWallclockTime(time, HOUR, cast_to_class) 51 52 53 def GetDaysSinceWallclockTime(time, cast_to_class = float): 54 return GetTimeSinceWallclockTime(time, DAY, cast_to_class) 55 56 57 def GetWallclockTimeAfter(interval, unit_conversion_from = BLUE_TICK): 58 return GetWallclockTime() + long(interval * unit_conversion_from) 59 60 61 def GetWallclockTimeAfterSeconds(seconds): 62 return GetWallclockTimeAfter(seconds, SEC) 63 64 65 def GetTimeUntilWallclockTime(time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 66 return -GetTimeSinceWallclockTime(time, unit_conversion_to, cast_to_class) 67 68 69 def GetSecondsUntilWallclockTime(time, cast_to_class = float): 70 return -GetSecondsSinceWallclockTime(time, cast_to_class) 71 72 73 def GetTimeSinceSimTime(time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 74 return cast_to_class(float(GetSimTime() - time) / unit_conversion_to) 75 76 77 def GetSecondsSinceSimTime(time): 78 return GetTimeSinceSimTime(time, SEC, float) 79 80 81 def GetTimeUntilSimTime(time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 82 return -GetTimeSinceSimTime(time, unit_conversion_to, cast_to_class) 83 84 85 def GetSecondsUntilSimTime(time): 86 return -GetSecondsSinceSimTime(time) 87 88 89 def GetSimTimeAfter(interval, unit_conversion_from = BLUE_TICK): 90 return GetSimTime() + long(interval * unit_conversion_from) 91 92 93 def GetSimTimeAfterSeconds(seconds): 94 return GetSimTimeAfter(seconds, SEC) 95 96 97 def GetTimeOffsetInHours(): 98 try: 99 import eveLocalization 100 return int(eveLocalization.GetTimeDelta() / 3600) 101 except ImportError: 102 return 0 103 104 105 def GetDurationInClient(startTime, duration): 106 return duration + (startTime - GetSimTime()) / MSEC 107 108 109 class Timer(object): 110 111 def __init__(self, GetTime, Sleep, maxSleepTime): 112 self.maxSleepTime = maxSleepTime 113 self.GetTime = GetTime 114 self.Sleep = Sleep 115 116 def SleepUntil(self, wakeUpTime, minSleep = 5000): 117 sleepTime = wakeUpTime - self.GetTime() 118 if sleepTime > 0: 119 while True: 120 sleepTime = wakeUpTime - self.GetTime() 121 if sleepTime <= self.maxSleepTime: 122 self.Sleep(sleepTime / MSEC) 123 break 124 else: 125 self.Sleep(self.maxSleepTime / MSEC) 126 127 else: 128 self.Sleep(minSleep) 129 130 131 def now(): 132 import datetimeutils 133 return datetimeutils.filetime_to_datetime(GetWallclockTime()) 134 135 136 def now_sim(): 137 import datetimeutils 138 return datetimeutils.filetime_to_datetime(GetSimTime()) 139 140 141 def GetTimeUntilNowFromDateTime(date_time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 142 return cast_to_class(float(SEC * (date_time - now()).total_seconds()) / unit_conversion_to) 143 144 145 def GetTimeSinceDateTime(date_time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 146 return -GetTimeUntilNowFromDateTime(date_time, unit_conversion_to, cast_to_class) 147 148 149 def GetSimTimeUntilNowFromDateTime(date_time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 150 return cast_to_class(float(SEC * (date_time - now_sim()).total_seconds()) / unit_conversion_to) 151 152 153 def GetSimTimeSinceDateTime(date_time, unit_conversion_to = BLUE_TICK, cast_to_class = long): 154 return -GetSimTimeUntilNowFromDateTime(date_time, unit_conversion_to, cast_to_class)