def __init__(self, dataDirectory):
        self.log = logging.getLogger('RoundtripTester')
        self.dataDirectory = dataDirectory
        self.skipExport = False
        self.skipCompare = False
        self.comparer = FtlDiff()

        self.arxFiles = ArxFiles(self.dataDirectory)
        self.arxFiles.updateAll()
        cinematic = cinSerializer.read(cinematicFile)
        for keyframe in cinematic.keyframes:
            img = keyframe.image[1]
            if img not in arxFiles.cinematics.textures.keys():
                log.warning('Texture {} not found !', img)

            if keyframe.sound:
                for lang, files in arxFiles.audioSpeech.speeches.items():
                    if keyframe.sound not in files:
                        log.warning('Sound {} for Lang {} not found !'.format(
                            keyframe.sound, lang))
                    #else:
                    #    log.info('Sound {} found'.format(keyframe.sound))

    log.info('Done')


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('-d',
                        '--data-dir',
                        help='Where to find the data files',
                        required=True)
    args = parser.parse_args()
    print("Using data dir: " + args.data_dir)

    arxFiles = ArxFiles(args.data_dir)
    arxFiles.updateAll()

    checkCinematics()
Esempio n. 3
0
    cam.data.type = 'PERSP'
    cam.data.lens_unit = 'FOV'

    bpy.context.screen.scene.update()


if args.data and args.out:
    print("Using data dir: " + args.data)
    print("Using out dir: " + args.out)

    dataPath = args.data
    outPath = args.out

    clearScene()

    arxFiles = ArxFiles(args.data)
    arxFiles.updateAll()

    toHtml(arxFiles, outPath)

    scene = bpy.context.scene
    scene.render.alpha_mode = 'TRANSPARENT'
    scene.render.resolution_x = 500
    scene.render.resolution_y = 500
    scene.render.resolution_percentage = 100

    arxAddon = ArxAddon(args.data)

    # key = ("npc", "spider_base")
    # key = ('items', 'magic', 'waterlily')
    # key = ('items','weapons','giant_slayer')
Esempio n. 4
0
    def run(self):
        self.loadAddon('arx_addon', (0, 0, 1))

        arxFiles = ArxFiles(args.data)
        arxFiles.updateAll()

        result_file = open("test_files.txt", "w")
        result_file.write(
            formatColumns(["Import", "Export", "Compare", "File"]))

        error_file = open("test_errors.txt", "w")

        current_error_id = 0

        for key, val in sorted(arxFiles.models.data.items()):
            import_file = os.path.join(val.path, val.model)
            import_file_relative = os.path.relpath(import_file,
                                                   self.dataDirectory)
            export_file = "test.ftl"

            bpy.ops.wm.read_homefile()

            try:
                self.doImport(import_file)
                import_status = "Ok"
                import_ok = True
            except RuntimeError as e:
                import_ok = False
                error_file.write(
                    formatError(current_error_id, import_file_relative,
                                e.args[0]))
                error_file.flush()
                import_status = formatFailedStatus(current_error_id)
                current_error_id += 1

            if not self.skipExport and import_ok:
                try:
                    self.doExport(export_file)
                    export_ok = True
                    export_status = "Ok"
                except RuntimeError as e:
                    export_ok = False
                    error_file.write(
                        formatError(current_error_id, import_file_relative,
                                    e.args[0]))
                    error_file.flush()
                    export_status = formatFailedStatus(current_error_id)
                    current_error_id += 1
            else:
                export_ok = False
                export_status = "Skip"

            if not self.skipCompare and import_ok and export_ok:
                result = self.comparer.compareFiles(import_file, export_file)
                if result and not result.children:
                    compare_status = "Ok"
                else:
                    error_file.write(
                        formatError(current_error_id, import_file_relative,
                                    str(result)))
                    error_file.flush()
                    compare_status = formatFailedStatus(current_error_id)
                    current_error_id += 1
            else:
                compare_status = "Skip"

            result_file.write(
                formatColumns([
                    import_status, export_status, compare_status,
                    str(import_file_relative)
                ]))
            result_file.flush()

        result_file.close()
        error_file.close()