NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

__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)