def generate_level(): level = NBTFile() # Blank NBT level.name = "Data" level.tags.extend([ TAG_Long(name="Time", value=1), TAG_Long(name="LastPlayed", value=int(time.time())), TAG_Int(name="SpawnX", value=0), TAG_Int(name="SpawnY", value=2), TAG_Int(name="SpawnZ", value=0), TAG_Long(name="SizeOnDisk", value=0), TAG_Long(name="RandomSeed", value=random.randrange(1, 9999999999)), TAG_Int(name="version", value=19132), Tag_String(name="LevelName", value="Testing") ]) player = Tag_Compound() player.name = "Player" player.tags.extend( [TAG_Int(name="Score", value=0), TAG_Int(name="Dimension", value=0)]) inventory = Tag_Compound() inventory.name = "Inventory" player.tags.append(inventory) level.tags.append(player) return level
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 = "".join(chr(i) for i in chunk.blocks.ravel()) level["HeightMap"].value = "".join(chr(i) for i in chunk.heightmap.ravel()) level["BlockLight"].value = "".join( pack_nibbles(chunk.blocklight.ravel())) level["Data"].value = "".join(pack_nibbles(chunk.metadata)) level["SkyLight"].value = "".join(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
def value(self): if self.type_ == list: tag = TAG_Compound(self.name) tag.tags = [x.value for x in self._value] return tag if self.type_ == NBTFile: x = NBTFile() x.name = self.name x.tags = [x.value for x in self._value] return x if self.type_ == TAG_Compound: tag = TAG_Compound(name=self.name) tag.tags = [x.value for x in self._value] tag.name = self.name return tag if self.type_ == TAG_Int_Array: tag = TAG_Int_Array(name=self.name) tag.value = self._value return tag if self.type_ == TAG_List: tag = TAG_List(type=self.extra, name=self.name) tag.tags = [x.value for x in self._value] tag.name = self.name return tag return self.type_(value=self._value, name=self.name)
def generate_level(): level = NBTFile() # Blank NBT level.name = "Data" level.tags.extend([ TAG_Long(name="Time", value=1), TAG_Long(name="LastPlayed", value=int(time.time())), TAG_Int(name="SpawnX", value=0), TAG_Int(name="SpawnY", value=2), TAG_Int(name="SpawnZ", value=0), TAG_Long(name="SizeOnDisk", value=0), TAG_Long(name="RandomSeed", value=random.randrange(1,9999999999)), TAG_Int(name="version", value=19132), TAG_String(name="LevelName", value="Testing") ]) player = TAG_Compound() player.name = "Player" player.tags.extend([ TAG_Int(name="Score", value=0), TAG_Int(name="Dimension", value=0) ]) inventory = TAG_Compound() inventory.name = "Inventory" player.tags.append(inventory) level.tags.append(player) return level
def save_to_tag(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
def save_to_tag(chest): tag = NBTFile() tag.name = "" tag["id"] = TAG_String("Chest") tag["x"] = TAG_Int(chest.x) tag["y"] = TAG_Int(chest.y) tag["z"] = TAG_Int(chest.z) tag["Items"] = chest.inventory.save_to_tag() return tag
def save_to_tag(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, 0)] tag["Inventory"] = player.inventory.save_to_tag() return tag
def save_to_tag(sign): tag = NBTFile() tag.name = "" tag["id"] = TAG_String("Sign") tag["x"] = TAG_Int(sign.x) tag["y"] = TAG_Int(sign.y) tag["z"] = TAG_Int(sign.z) tag["Text1"] = TAG_String(sign.text1) tag["Text2"] = TAG_String(sign.text2) tag["Text3"] = TAG_String(sign.text3) tag["Text4"] = TAG_String(sign.text4) return tag