/** * 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']); }); }