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

resLoader.py (1362B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\client\script\util\resLoader.py
      2 import blue
      3 
      4 class _ResFileRaw(object):
      5     __slots__ = ['resfile', 'closed']
      6 
      7     def __init__(self, respath):
      8         self.resfile = blue.ResFile()
      9         self.resfile.OpenAlways(respath)
     10         self.closed = False
     11 
     12     def read(self, size = -1):
     13         if self.closed:
     14             raise ValueError('file is closed')
     15         return self.resfile.Read(size)
     16 
     17     def seek(self, offset, whence = 0):
     18         if whence == 0:
     19             r = self.resfile.Seek(offset)
     20         elif whence == 1:
     21             r = self.resfile.Seek(offset + self.file.pos)
     22         elif whence == -1:
     23             r = self.resfile.Seek(self.file.size - offset)
     24         else:
     25             raise ValueError("'whence' must be 0, 1 or -1, not %s" % whence)
     26 
     27     def tell(self):
     28         return self.resfile.pos
     29 
     30     def close(self):
     31         if not self.closed:
     32             self.resfile.Close()
     33         self.closed = True
     34 
     35 
     36 def ResFile(respath, mode = 'rb', bufsize = -1):
     37     if mode.count('b'):
     38         return _ResFileRaw(respath)
     39     else:
     40         s = _ResFileRaw(respath).read().replace('\r\n', '\n')
     41         import StringIO
     42         return StringIO.StringIO(s)
     43 
     44 
     45 import carbon.common.script.util.autoexport as autoexport
     46 exports = autoexport.AutoExports('util', globals())