def _save_inventory_to_tag(self, inventory): tag = TAG_List(type=TAG_Compound) for slot, item in enumerate(inventory.save_to_list()): if item is not None: d = TAG_Compound() id, damage, count = item d["id"] = TAG_Short(id) d["Damage"] = TAG_Short(damage) d["Count"] = TAG_Byte(count) d["Slot"] = TAG_Byte(slot) tag.tags.append(d) return tag
def _save_inventory_to_tag(self, inventory): tag = TAG_List(type=TAG_Compound) for i, item in enumerate( chain(inventory.crafted, inventory.crafting, inventory.armor, inventory.storage, inventory.holdables)): if item is not None: d = TAG_Compound() id, damage, count = item d["id"] = TAG_Short(id) d["Damage"] = TAG_Short(damage) d["Count"] = TAG_Byte(count) d["Slot"] = TAG_Byte(i) tag.tags.append(d) return tag
def test_load_entity_from_tag(self): tag = TAG_Compound() tag["Pos"] = TAG_List(type=TAG_Double) tag["Pos"].tags = [TAG_Double(10), TAG_Double(5), TAG_Double(-15)] tag["Rotation"] = TAG_List(type=TAG_Double) tag["Rotation"].tags = [TAG_Double(90), TAG_Double(0)] tag["OnGround"] = TAG_Byte(1) tag["id"] = TAG_String("Item") tag["Item"] = TAG_Compound() tag["Item"]["id"] = TAG_Short(3) tag["Item"]["Damage"] = TAG_Short(0) tag["Item"]["Count"] = TAG_Short(5) entity = self.serializer._load_entity_from_tag(tag) self.assertEqual(entity.location.x, 10) self.assertEqual(entity.location.yaw, 90) self.assertEqual(entity.location.grounded, True) self.assertEqual(entity.item[0], 3)
def _save_mobspawner_to_tag(self, ms, tag): tag["EntityId"] = TAG_String(ms.mob) tag["Delay"] = TAG_Short(ms.delay)
def _save_furnace_to_tag(self, furnace, tag): tag["BurnTime"] = TAG_Short(furnace.burntime) tag["CookTime"] = TAG_Short(furnace.cooktime) tag["Items"] = self._save_inventory_to_tag(furnace.inventory)
def _save_item_to_tag(self, item, tag): tag["Item"] = TAG_Compound() tag["Item"]["id"] = TAG_Short(item.item[0]) tag["Item"]["Damage"] = TAG_Short(item.item[1]) tag["Item"]["Count"] = TAG_Short(item.quantity)