Beispiel #1
0
 /**
  * Load sheet_id.bin from leveldesign.bnp
  * Initialize SheetId and SheetsManager
  */
 private function loadSheets()
 {
     $bnpLeveldesign = new BnpFile($this->ryzomDataPath . '/leveldesign.bnp');
     $buffer = $bnpLeveldesign->readFile('sheet_id.bin');
     $this->sheetIds = new SheetId();
     $this->sheetIds->load($buffer);
     $psLoader = new PackedSheetsLoader($this->ryzomDataPath);
     $this->sheets = new SheetsManager($this->sheetIds, $psLoader);
 }
 function __construct()
 {
     $app = $this;
     // leveldesign.bnp has 'sheet_id.bin' */
     $this['bnp.leveldesign'] = $app->share(function () use($app) {
         return new BnpFile($app['data.path'] . '/leveldesign.bnp');
     });
     // gamedev.bnp has translations (<sheet>_words_<lang>.txt, <lang>.uxt)
     $this['bnp.gamedev'] = $app->share(function () use($app) {
         return new BnpFile($app['data.path'] . '/gamedev.bnp');
     });
     $this['bnp.data_common'] = $app->share(function () use($app) {
         return new BnpFile($app['data.path'] . '/data_common.bnp');
     });
     // SheetIds collection, sheet_id.bin reader
     $this['sheetid'] = $app->share(function () use($app) {
         $sheetIds = new SheetId();
         $file = 'sheet_id.bin';
         /** @var $bnp BnpFile */
         $bnp = $app['bnp.leveldesign'];
         if ($bnp->hasFile($file)) {
             $app->debug('loading %s', $file);
             $data = $bnp->readFile($file);
             $sheetIds->load($data);
         }
         return $sheetIds;
     });
     // packed sheets collection
     // - depends on SheetId and PackedSheetsLoader
     $this['sheets'] = $this->share(function () use($app) {
         return new SheetsManager($app['sheetid'], $app['load.packed_sheets']);
     });
     // Packed sheets loader
     $this['load.packed_sheets'] = $this->share(function () use($app) {
         return new PackedSheetsLoader($app['data.path']);
     });
     // <sheet>_words_<lang>.txt reader
     $this['load.words'] = $this->share(function () use($app) {
         return new WordsLoader();
     });
     // Reader for <lang>.uxt files
     $this['load.uxt'] = $this->share(function () use($app) {
         return new UxtLoader();
     });
     // Save SheetId collection into cache files
     $this['export.sheetid'] = $this->share(function () use($app) {
         return new SheetIdExport($app['sheetid'], $app['cache.path']);
     });
     // Save words and uxt translations into cache files
     $this['export.words'] = $this->share(function () use($app) {
         return new WordsExport($app['cache.path']);
     });
     // Save loaded sheets to cache files
     $this['export.packed_sheets'] = $this->share(function () use($app) {
         return new PackedSheetsExport($app['sheetid'], $app['sheets'], $app['cache.path']);
     });
     // Save visual_slot.tab to cache file
     $this['export.visual_slot'] = $this->share(function () use($app) {
         return new VisualSlotExport($app['sheetid'], $app['cache.path']);
     });
 }