def flipEastWest(self): if "Biomes" in self.root_tag: self.root_tag["Biomes"].value = self.root_tag["Biomes"].value[:, ::-1] self._fakeEntities = None blockrotation.FlipEastWest(self.Blocks, self.Data) self._Blocks = self._Blocks[:, ::-1, :] # z=-z self.root_tag["Data"].value = self.root_tag["Data"].value[:, ::-1, :] eastWestPaintingMap = [2, 1, 0, 3] log.info(u"E/W Flip: Relocating entities...") for entity in self.Entities: entity["Pos"][2].value = self.Length - entity["Pos"][2].value entity["Motion"][2].value = -entity["Motion"][2].value entity["Rotation"][0].value -= 180.0 if entity["id"].value in ("Painting", "ItemFrame"): entity["TileZ"].value = self.Length - entity["TileZ"].value entity["Direction"].value = eastWestPaintingMap[entity["Direction"].value] for tileEntity in self.TileEntities: tileEntity["z"].value = self.Length - tileEntity["z"].value - 1
def flipEastWest(self): if "Biomes" in self.root_tag: self.root_tag["Biomes"].value = self.root_tag["Biomes"].value[:, ::-1] self._fakeEntities = None blockrotation.FlipEastWest(self.Blocks, self.Data) self._Blocks = self._Blocks[:, ::-1, :] # z=-z self.root_tag["Data"].value = self.root_tag["Data"].value[:, ::-1, :] eastWestPaintingMap = [2, 1, 0, 3] log.info(u"E/W Flip: Relocating entities...") for entity in self.Entities: entity["Pos"][2].value = self.Length - entity["Pos"][2].value entity["Motion"][2].value = -entity["Motion"][2].value entity["Rotation"][0].value -= 180.0 # Special logic for old width painting as TileX/TileZ favours -x/-z if entity["id"].value in ("Painting", "ItemFrame"): facing = entity.get("Facing", entity.get("Direction")) if facing is None: dirFacing = entity.get("Dir") if dirFacing is not None: if dirFacing.value == 0: dirFacing.value = 2 elif dirFacing.value == 2: dirFacing.value = 0 facing = dirFacing else: raise Exception("None of tags Facing/Direction/Dir found in entity %s during flipping - %r" % (entity["id"].value, entity)) if entity["id"].value == "Painting": if facing.value == 1: entity["TileZ"].value = self.Length - entity["TileZ"].value - 2 + self.paintingMap[entity["Motive"].value] % 2 elif facing.value == 3: entity["TileZ"].value = self.Length - entity["TileZ"].value - self.paintingMap[entity["Motive"].value] % 2 else: entity["TileZ"].value = self.Length - entity["TileZ"].value - 1 if facing.value == 0: entity["TileX"].value = entity["TileX"].value + 1 - self.paintingMap[entity["Motive"].value] % 2 elif facing.value == 2: entity["TileX"].value = entity["TileX"].value - 1 + self.paintingMap[entity["Motive"].value] % 2 facing.value = eastWestPaintingMap[facing.value] elif entity["id"].value == "ItemFrame": entity["TileZ"].value = self.Length - entity["TileZ"].value - 1 facing.value = eastWestPaintingMap[facing.value] for tileEntity in self.TileEntities: tileEntity["z"].value = self.Length - tileEntity["z"].value - 1 if "TileTicks" in self.root_tag: for tileTick in self.TileTicks: tileTick["z"].value = self.Length - tileTick["z"].value - 1
def flipEastWest(self): if "Biomes" in self.root_tag: self.root_tag["Biomes"].value = self.root_tag[ "Biomes"].value[:, ::-1] self._fakeEntities = None blockrotation.FlipEastWest(self.Blocks, self.Data) self._Blocks = self._Blocks[:, ::-1, :] # z=-z self.root_tag["Data"].value = self.root_tag["Data"].value[:, ::-1, :] eastWestPaintingMap = [2, 1, 0, 3] log.info(u"E/W Flip: Relocating entities...") for entity in self.Entities: entity["Pos"][2].value = self.Length - entity["Pos"][2].value entity["Motion"][2].value = -entity["Motion"][2].value entity["Rotation"][0].value -= 180.0 # Special logic for old width painting as TileX/TileZ favours -x/-z if entity["id"].value == "Painting": if entity["Facing"].value == 1: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - 2 + self.paintingMap[ entity["Motive"].value] % 2 elif entity["Facing"].value == 3: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - self.paintingMap[ entity["Motive"].value] % 2 else: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - 1 if entity["Facing"].value == 0: entity["TileX"].value = entity[ "TileX"].value + 1 - self.paintingMap[ entity["Motive"].value] % 2 elif entity["Facing"].value == 2: entity["TileX"].value = entity[ "TileX"].value - 1 + self.paintingMap[ entity["Motive"].value] % 2 entity["Facing"].value = eastWestPaintingMap[ entity["Facing"].value] elif entity["id"].value == "ItemFrame": entity["TileZ"].value = self.Length - entity["TileZ"].value - 1 entity["Facing"].value = eastWestPaintingMap[ entity["Facing"].value] for tileEntity in self.TileEntities: tileEntity["z"].value = self.Length - tileEntity["z"].value - 1 if "TileTicks" in self.root_tag: for tileTick in self.TileTicks: tileTick["z"].value = self.Length - tileTick["z"].value - 1
def flipEastWest(self): " xxx flip entities " blockrotation.FlipEastWest(self.Blocks, self.Data) self.Blocks = self.Blocks[:, ::-1, :] # z=-z self.Data = self.Data[:, ::-1, :] eastWestPaintingMap = [2, 1, 0, 3] info(u"E/W Flip: Relocating entities...") for entity in self.Entities: entity["Pos"][2].value = self.Length - entity["Pos"][2].value entity["Motion"][2].value = -entity["Motion"][2].value entity["Rotation"][0].value -= 180.0 if entity["id"].value == "Painting": entity["TileZ"].value = self.Length - entity["TileZ"].value entity["Dir"].value = eastWestPaintingMap[entity["Dir"].value] for tileEntity in self.TileEntities: tileEntity["z"].value = self.Length - tileEntity["z"].value - 1
def flipEastWestBlocks(self): blockrotation.FlipEastWest(self.Blocks, self.Data)
def flipEastWest(self): if "Biomes" in self.root_tag: self.root_tag["Biomes"].value = self.root_tag[ "Biomes"].value[:, ::-1] self._fakeEntities = None blockrotation.FlipEastWest(self.Blocks, self.Data) self._Blocks = self._Blocks[:, ::-1, :] # z=-z self.root_tag["Data"].value = self.root_tag["Data"].value[:, ::-1, :] eastWestPaintingMap = [2, 1, 0, 3] log.info(u"E/W Flip: Relocating entities...") mcedit_ids_get = self.defsIds.mcedit_ids.get for entity in self.Entities: try: entity["Pos"][2].value = self.Length - entity["Pos"][2].value except: pass try: entity["Motion"][2].value = -entity["Motion"][2].value except: pass try: entity["Rotation"][ 0].value = entity["Rotation"][0].value * -1.0 + 180 except: pass # Special logic for old width painting as TileX/TileZ favours -x/-z try: ent_id_val = entity["id"].value mce_ent_id_val = mcedit_ids_get(ent_id_val) if ent_id_val in ("Painting", "ItemFrame") or mce_ent_id_val in ( 'DEFS_ENTITIES_PAINTING', 'DEFS_ENTITIES_ITEM_FRAME'): facing = entity.get("Facing", entity.get("Direction")) if facing is None: dirFacing = entity.get("Dir") if dirFacing is not None: if dirFacing.value == 0: dirFacing.value = 2 elif dirFacing.value == 2: dirFacing.value = 0 facing = dirFacing else: raise Exception( "None of tags Facing/Direction/Dir found in entity %s during flipping - %r" % (entity["id"].value, entity)) if ent_id_val == "Painting" or mce_ent_id_val == 'DEFS_ENTITIES_PAINTING': if facing.value == 1: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - 2 + self.paintingMap[ entity["Motive"].value] % 2 elif facing.value == 3: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - self.paintingMap[ entity["Motive"].value] % 2 else: entity["TileZ"].value = self.Length - entity[ "TileZ"].value - 1 if facing.value == 0: entity["TileX"].value = entity[ "TileX"].value + 1 - self.paintingMap[ entity["Motive"].value] % 2 elif facing.value == 2: entity["TileX"].value = entity[ "TileX"].value - 1 + self.paintingMap[ entity["Motive"].value] % 2 facing.value = eastWestPaintingMap[facing.value] elif ent_id_val == "ItemFrame" or mce_ent_id_val == 'DEFS_ENTITIES_ITEM_FRAME': entity["TileZ"].value = self.Length - entity[ "TileZ"].value - 1 facing.value = eastWestPaintingMap[facing.value] except: pass for tileEntity in self.TileEntities: tileEntity["z"].value = self.Length - tileEntity["z"].value - 1 if "TileTicks" in self.root_tag: for tileTick in self.TileTicks: tileTick["z"].value = self.Length - tileTick["z"].value - 1