def dump(self, out): """Dumps group header and then records.""" if not self.changed: out.write( ModReader.recHeader('GRUP', self.size, self.label, 0, self.stamp).pack()) out.write(self.data) else: size = self.getSize() if size == ModReader.recHeader.rec_header_size: return out.write( ModReader.recHeader('GRUP', size, self.label, 0, self.stamp).pack()) for record in self.records: record.dump(out)
def dump(self,out): """Dumps group header and then records.""" if not self.changed: # noinspection PyArgumentList out.write(ModReader.recHeader('GRUP',self.size,self.label,0, self.stamp).pack()) out.write(self.data) else: size = self.getSize() if size == ModReader.recHeader.size: return #@UndefinedVariable # noinspection PyArgumentList out.write(ModReader.recHeader('GRUP',size,self.label,0, self.stamp).pack()) for record in self.records: record.dump(out)
def dump(self, out): """Dumps group header and then records.""" if not self.changed: # noinspection PyArgumentList out.write( ModReader.recHeader('GRUP', self.size, self.label, 0, self.stamp).pack()) out.write(self.data) else: size = self.getSize() if size == ModReader.recHeader.size: return #@UndefinedVariable # noinspection PyArgumentList out.write( ModReader.recHeader('GRUP', size, self.label, 0, self.stamp).pack()) for record in self.records: record.dump(out)
def dumpBlocks(self, out, bsbCellBlocks, bsb_size, blockGroupType, subBlockGroupType): """Dumps the cell blocks and their block and sub-block groups to out.""" curBlock = None curSubblock = None stamp = self.stamp outWrite = out.write for bsb, cellBlock in bsbCellBlocks: (block, subblock) = bsb bsb0 = (block, None) if block != curBlock: curBlock, curSubblock = bsb0 outWrite( ModReader.recHeader('GRUP', bsb_size[bsb0], block, blockGroupType, stamp).pack()) if subblock != curSubblock: curSubblock = subblock outWrite( ModReader.recHeader('GRUP', bsb_size[bsb], subblock, subBlockGroupType, stamp).pack()) cellBlock.dump(out)
def dumpBlocks(self,out,bsbCellBlocks,bsb_size,blockGroupType, subBlockGroupType): """Dumps the cell blocks and their block and sub-block groups to out.""" curBlock = None curSubblock = None stamp = self.stamp outWrite = out.write for bsb,cellBlock in bsbCellBlocks: (block,subblock) = bsb bsb0 = (block,None) if block != curBlock: curBlock,curSubblock = bsb0 # noinspection PyArgumentList outWrite(ModReader.recHeader('GRUP',bsb_size[bsb0],block, blockGroupType,stamp).pack()) if subblock != curSubblock: curSubblock = subblock # noinspection PyArgumentList outWrite(ModReader.recHeader('GRUP',bsb_size[bsb],subblock, subBlockGroupType,stamp).pack()) cellBlock.dump(out)
def setCell(self, cell): """Adds record to record list and indexed.""" if self.cellBlocks and not self.id_cellBlock: self.indexRecords() fid = cell.fid if fid in self.id_cellBlock: self.id_cellBlock[fid].cell = cell else: cellBlock = MobCell( ModReader.recHeader('GRUP', 0, 0, 6, self.stamp), self.loadFactory, cell) cellBlock.setChanged() self.cellBlocks.append(cellBlock) self.id_cellBlock[fid] = cellBlock
def setCell(self,cell): """Adds record to record list and indexed.""" if self.cellBlocks and not self.id_cellBlock: self.indexRecords() fid = cell.fid if fid in self.id_cellBlock: self.id_cellBlock[fid].cell = cell else: # noinspection PyArgumentList cellBlock = MobCell(ModReader.recHeader('GRUP',0,0,6,self.stamp), self.loadFactory,cell) cellBlock.setChanged() self.cellBlocks.append(cellBlock) self.id_cellBlock[fid] = cellBlock
def setWorld(self,world): """Adds record to record list and indexed.""" if self.worldBlocks and not self.id_worldBlocks: self.indexRecords() fid = world.fid if fid in self.id_worldBlocks: self.id_worldBlocks[fid].world = world else: # noinspection PyArgumentList worldBlock = MobWorld(ModReader.recHeader('GRUP',0,0,1,self.stamp), self.loadFactory,world) worldBlock.setChanged() self.worldBlocks.append(worldBlock) self.id_worldBlocks[fid] = worldBlock
def setWorld(self, world): """Adds record to record list and indexed.""" if self.worldBlocks and not self.id_worldBlocks: self.indexRecords() fid = world.fid if fid in self.id_worldBlocks: self.id_worldBlocks[fid].world = world else: # noinspection PyArgumentList worldBlock = MobWorld( ModReader.recHeader('GRUP', 0, 0, 1, self.stamp), self.loadFactory, world) worldBlock.setChanged() self.worldBlocks.append(worldBlock) self.id_worldBlocks[fid] = worldBlock
def setWorld(self, world, worldcellblock=None): """Adds record to record list and indexed.""" if self.worldBlocks and not self.id_worldBlocks: self.indexRecords() fid = world.fid if fid in self.id_worldBlocks: self.id_worldBlocks[fid].world = world self.id_worldBlocks[fid].worldCellBlock = worldcellblock else: worldBlock = MobWorld( ModReader.recHeader('GRUP', 0, 0, 1, self.stamp), self.loadFactory, world) worldBlock.setChanged() self.worldBlocks.append(worldBlock) self.id_worldBlocks[fid] = worldBlock
def dump(self, out): """Dumps group header and then records.""" if not self.changed: out.write(self.header.pack()) out.write(self.data) else: if not self.worldBlocks: return worldHeaderPos = out.tell() header = ModReader.recHeader('GRUP', 0, self.label, 0, self.stamp) out.write(header.pack()) totalSize = header.__class__.rec_header_size + sum( x.dump(out) for x in self.worldBlocks) out.seek(worldHeaderPos + 4) out.pack('I', totalSize) out.seek(worldHeaderPos + totalSize)
def dump(self,out): """Dumps group header and then records.""" if not self.changed: out.write(self.header.pack()) out.write(self.data) else: if not self.worldBlocks: return worldHeaderPos = out.tell() # noinspection PyArgumentList header = ModReader.recHeader('GRUP',0,self.label,0,self.stamp) out.write(header.pack()) totalSize = header.__class__.size + sum( x.dump(out) for x in self.worldBlocks) out.seek(worldHeaderPos + 4) out.pack('I', totalSize) out.seek(worldHeaderPos + totalSize)
def getReader(self): """Returns a ModReader wrapped around self.data.""" return ModReader(self.inName, sio(self.data))