本文整理汇总了Python中bravo.nbt.NBTFile类的典型用法代码示例。如果您正苦于以下问题:Python NBTFile类的具体用法?Python NBTFile怎么用?Python NBTFile使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了NBTFile类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: save_to_tag
def save_to_tag(chunk):
tag = NBTFile()
tag.name = ""
level = TAG_Compound()
tag["Level"] = level
level["Blocks"] = TAG_Byte_Array()
level["HeightMap"] = TAG_Byte_Array()
level["BlockLight"] = TAG_Byte_Array()
level["Data"] = TAG_Byte_Array()
level["SkyLight"] = TAG_Byte_Array()
level["Blocks"].value = chunk.blocks.tostring()
level["HeightMap"].value = chunk.heightmap.tostring()
level["BlockLight"].value = pack_nibbles(chunk.blocklight)
level["Data"].value = pack_nibbles(chunk.metadata)
level["SkyLight"].value = pack_nibbles(chunk.skylight)
level["TerrainPopulated"] = TAG_Byte(chunk.populated)
level["TileEntities"] = TAG_List(type=TAG_Compound)
for tile in chunk.tiles.itervalues():
level["TileEntities"].tags.append(tile.save_to_tag())
return tag
示例2: _save_level_to_tag
def _save_level_to_tag(self, level):
tag = NBTFile()
tag.name = ""
tag["Data"] = TAG_Compound()
tag["Data"]["RandomSeed"] = TAG_Long(level.seed)
tag["Data"]["SpawnX"] = TAG_Int(level.spawn[0])
tag["Data"]["SpawnY"] = TAG_Int(level.spawn[1])
tag["Data"]["SpawnZ"] = TAG_Int(level.spawn[2])
return tag
示例3: _save_tile_to_tag
def _save_tile_to_tag(self, tile):
tag = NBTFile()
tag.name = ""
tag["id"] = TAG_String(tile.name)
tag["x"] = TAG_Int(tile.x)
tag["y"] = TAG_Int(tile.y)
tag["z"] = TAG_Int(tile.z)
self._tile_savers[tile.name](tile, tag)
return tag
示例4: _save_chunk_to_tag
def _save_chunk_to_tag(self, chunk):
tag = NBTFile()
tag.name = ""
level = TAG_Compound()
tag["Level"] = level
level["xPos"] = TAG_Int(chunk.x)
level["zPos"] = TAG_Int(chunk.z)
level["HeightMap"] = TAG_Byte_Array()
level["BlockLight"] = TAG_Byte_Array()
level["SkyLight"] = TAG_Byte_Array()
level["Sections"] = TAG_List(type=TAG_Compound)
for i, s in enumerate(chunk.sections):
if s:
section = TAG_Compound()
section.name = ""
section["Y"] = TAG_Byte(i)
section["Blocks"] = TAG_Byte_Array()
section["Blocks"].value = s.blocks.tostring()
section["Data"] = TAG_Byte_Array()
section["Data"].value = pack_nibbles(s.metadata)
section["SkyLight"] = TAG_Byte_Array()
section["SkyLight"].value = pack_nibbles(s.skylight)
level["Sections"].tags.append(section)
level["HeightMap"].value = chunk.heightmap.tostring()
level["BlockLight"].value = pack_nibbles(chunk.blocklight)
level["TerrainPopulated"] = TAG_Byte(chunk.populated)
level["Entities"] = TAG_List(type=TAG_Compound)
for entity in chunk.entities:
try:
entitytag = self._save_entity_to_tag(entity)
level["Entities"].tags.append(entitytag)
except KeyError:
log.msg("Unknown entity %s" % entity.name)
level["TileEntities"] = TAG_List(type=TAG_Compound)
for tile in chunk.tiles.itervalues():
try:
tiletag = self._save_tile_to_tag(tile)
level["TileEntities"].tags.append(tiletag)
except KeyError:
log.msg("Unknown tile entity %s" % tile.name)
return tag
示例5: EmptyStringTest
class EmptyStringTest(unittest.TestCase):
def setUp(self):
self.golden_value = "\x0A\0\x04Test\x08\0\x0Cempty string\0\0\0"
self.nbtfile = NBTFile(buffer=StringIO(self.golden_value))
def testReadEmptyString(self):
self.assertEqual(self.nbtfile.name, "Test")
self.assertEqual(self.nbtfile["empty string"].value, "")
def testWriteEmptyString(self):
buffer = StringIO()
self.nbtfile.write_file(buffer=buffer)
self.assertEqual(buffer.getvalue(), self.golden_value)
示例6: save_player
def save_player(self, player):
tag = NBTFile()
tag.name = ""
tag["Pos"] = TAG_List(type=TAG_Double)
tag["Pos"].tags = [TAG_Double(i) for i in player.location.pos]
tag["Rotation"] = TAG_List(type=TAG_Double)
tag["Rotation"].tags = [TAG_Double(i)
for i in player.location.ori.to_degs()]
tag["Inventory"] = self._save_inventory_to_tag(player.inventory)
fp = self.folder.child("players").child("%s.dat" % player.username)
self._write_tag(fp, tag)
示例7: save_player
def save_player(self, player):
tag = NBTFile()
tag.name = ""
tag["Pos"] = TAG_List(type=TAG_Double)
tag["Pos"].tags = [TAG_Double(i) for i in (player.location.x, player.location.y, player.location.z)]
tag["Rotation"] = TAG_List(type=TAG_Double)
tag["Rotation"].tags = [TAG_Double(i) for i in (player.location.yaw, player.location.pitch)]
tag["Inventory"] = self._save_inventory_to_tag(player.inventory)
fp = self.folder.child("players")
if not fp.exists():
fp.makedirs()
fp = fp.child("%s.dat" % player.username)
self._write_tag(fp, tag)
示例8: _save_level_to_tag
def _save_level_to_tag(self, level):
tag = NBTFile()
tag.name = ""
tag["Data"] = TAG_Compound()
tag["Data"]["RandomSeed"] = TAG_Long(level.seed)
tag["Data"]["SpawnX"] = TAG_Int(level.spawn[0])
tag["Data"]["SpawnY"] = TAG_Int(level.spawn[1])
tag["Data"]["SpawnZ"] = TAG_Int(level.spawn[2])
tag["Data"]["Time"] = TAG_Long(level.time)
# Beta version and accounting.
# Needed for Notchian tools to be able to comprehend this world.
tag["Data"]["version"] = TAG_Int(19132)
tag["Data"]["LevelName"] = TAG_String("Generated by Bravo :3")
return tag
示例9: _save_entity_to_tag
def _save_entity_to_tag(self, entity):
tag = NBTFile()
tag.name = ""
tag["id"] = TAG_String(entity.name)
position = [entity.location.x, entity.location.y, entity.location.z]
tag["Pos"] = TAG_List(type=TAG_Double)
tag["Pos"].tags = [TAG_Double(i) for i in position]
rotation = [entity.location.yaw, entity.location.pitch]
tag["Rotation"] = TAG_List(type=TAG_Double)
tag["Rotation"].tags = [TAG_Double(i) for i in rotation]
tag["OnGround"] = TAG_Byte(int(entity.location.grounded))
self._entity_savers[entity.name](entity, tag)
return tag
示例10: _save_chunk_to_tag
def _save_chunk_to_tag(self, chunk):
tag = NBTFile()
tag.name = ""
level = TAG_Compound()
tag["Level"] = level
level["Blocks"] = TAG_Byte_Array()
level["HeightMap"] = TAG_Byte_Array()
level["BlockLight"] = TAG_Byte_Array()
level["Data"] = TAG_Byte_Array()
level["SkyLight"] = TAG_Byte_Array()
level["Blocks"].value = chunk.blocks.tostring()
level["HeightMap"].value = chunk.heightmap.tostring()
level["BlockLight"].value = pack_nibbles(chunk.blocklight)
level["Data"].value = pack_nibbles(chunk.metadata)
level["SkyLight"].value = pack_nibbles(chunk.skylight)
level["TerrainPopulated"] = TAG_Byte(chunk.populated)
level["Entities"] = TAG_List(type=TAG_Compound)
for entity in chunk.entities:
try:
entitytag = self._save_entity_to_tag(entity)
level["Entities"].tags.append(entitytag)
except KeyError:
print "Unknown entity %s" % entity.name
level["TileEntities"] = TAG_List(type=TAG_Compound)
for tile in chunk.tiles.itervalues():
try:
tiletag = self._save_tile_to_tag(tile)
level["TileEntities"].tags.append(tiletag)
except KeyError:
print "Unknown tile entity %s" % tile.name
return tag
示例11: testWriteback
def testWriteback(self):
mynbt = NBTFile(self.f.name)
mynbt.write_file()
示例12: len
#!/usr/bin/env python
import sys
from bravo.nbt import NBTFile
if len(sys.argv) < 2:
print "Usage: %s <file>" % __name__
f = NBTFile(sys.argv[1])
print f.pretty_tree()
示例13: testWriteBig
def testWriteBig(self):
mynbt = NBTFile(self.f.name)
output = StringIO()
mynbt.write_file(buffer=output)
self.assertTrue(GzipFile(self.f.name).read() == output.getvalue())
示例14: setUp
def setUp(self):
self.golden_value = "\x0A\0\x04Test\x08\0\x0Cempty string\0\0\0"
self.nbtfile = NBTFile(buffer=StringIO(self.golden_value))