Ejemplo n.º 1
0
    def test_import_merge_materials(self):
        # Arrange
        mat, _, tex = self._get_compatible_material()
        prefs = utils.get_preferences()
        tex_folder = prefs.textures_folder
        prefs.textures_folder = 'gamedata/textures/'

        # Act
        bpy.ops.xray_import.object(
            directory=self.relpath(),
            files=[{
                'name': 'test_fmt.object'
            }],
        )

        prefs.textures_folder = tex_folder

        # Assert
        self.assertReportsNotContains('WARNING')
        imported_material = bpy.data.objects['test_fmt.object'].data.materials[
            0]
        self.assertEqual(imported_material, mat)
        if not bpy.app.version >= (2, 80, 0):
            imported_texture = imported_material.texture_slots[0].texture
            self.assertEqual(imported_texture, tex)
Ejemplo n.º 2
0
    def test_default(self):
        prefs = utils.get_preferences()
        prefs.gamemtl_file = os.path.join(self.relpath(), 'gamemtl.xr')

        # Import
        bpy.ops.xray_import.level(filepath=os.path.join(
            self.relpath(), 'test_fmt_level', 'level'
        ))

        # Export
        level_obj = bpy.data.objects['test_fmt_level']

        if bpy.app.version >= (2, 80, 0):
            level_obj.select_set(True)
        else:
            level_obj.select = True

        directory = self.outpath('test_fmt_level_export')
        if not os.path.exists(directory):
            os.makedirs(directory)
        utils.set_active_object(level_obj)
        bpy.ops.xray_export.level(directory=directory)

        # Assert
        self.assertReportsNotContains('WARNING')
Ejemplo n.º 3
0
    def test_default(self):
        prefs = utils.get_preferences()
        prefs.objects_folder = os.path.join(os.curdir, 'tests', 'cases')

        # Act
        bpy.ops.xray_import.scene(
            filepath=os.path.join(self.relpath(), 'test_fmt.level'))

        # Assert
        self.assertReportsNotContains('WARNING')
Ejemplo n.º 4
0
 def test_auto_values_if_no_paths(self):
     prefs = utils.get_preferences()
     reset_settings(prefs)
     prefs.textures_folder = np('/gdx/textures')
     self.assertEqual(prefs.gamedata_folder, '')
     self.assertEqual(prefs.gamedata_folder_auto, '')
     self.assertEqual(prefs.gamemtl_file, '')
     self.assertEqual(prefs.gamemtl_file_auto, '')
     self.assertEqual(prefs.eshader_file, '')
     self.assertEqual(prefs.eshader_file_auto, '')
     self.assertEqual(prefs.cshader_file, '')
     self.assertEqual(prefs.cshader_file_auto, '')
Ejemplo n.º 5
0
 def test_auto_values_from_some_file(self):
     prefs = utils.get_preferences()
     reset_settings(prefs)
     prefs.gamemtl_file = np('/gdf/gamemtl.xr')
     self.assertEqual(prefs.gamedata_folder, '')
     self.assertEqual(prefs.gamedata_folder_auto, np('/gdf'))
     self.assertEqual(prefs.textures_folder, '')
     self.assertEqual(prefs.textures_folder_auto, np('/gdf/textures'))
     self.assertEqual(prefs.eshader_file, '')
     self.assertEqual(prefs.eshader_file_auto, np('/gdf/shaders.xr'))
     self.assertEqual(prefs.cshader_file, '')
     self.assertEqual(prefs.cshader_file_auto, np('/gdf/shaders_xrlc.xr'))
Ejemplo n.º 6
0
    def test_auto_values_no_reassign(self):
        prefs = utils.get_preferences()
        reset_settings(prefs)
        prefs.textures_folder = np('/gdr/textures')
        self.assertEqual(prefs.textures_folder, np('/gdr/textures'))
        self.assertEqual(prefs.gamemtl_file, '')
        self.assertEqual(prefs.gamemtl_file_auto, np('/gdr/gamemtl.xr'))

        prefs.gamemtl_file = prefs.gamemtl_file
        self.assertEqual(prefs.gamemtl_file, '')

        prefs.gamemtl_file = np('/gdr/gamemtl.xrx')
        self.assertEqual(prefs.gamemtl_file_auto, np('/gdr/gamemtl.xrx'))
Ejemplo n.º 7
0
 def _get_compatible_material(self):
     prefs = utils.get_preferences()
     tex_folder = prefs.textures_folder
     prefs.textures_folder = 'gamedata/textures/'
     img = bpy.data.images.new('texture', 0, 0)
     img.source = 'FILE'
     img.filepath = 'gamedata/textures/eye.dds'
     mat = _create_compatible_material_object()
     if bpy.app.version >= (2, 80, 0):
         node_tree = mat.node_tree
         tex = node_tree.nodes.new('ShaderNodeTexImage')
         tex.image = img
         tex.location.x -= 500
         princ_shader = node_tree.nodes['Principled BSDF']
         node_tree.links.new(tex.outputs['Color'],
                             princ_shader.inputs['Base Color'])
         mts = None
     else:
         tex = bpy.data.textures.new('eye', type='IMAGE')
         tex.image = img
         mts = mat.texture_slots.add()
         mts.uv_layer = 'uvm'
         mts.texture = tex
     return mat, mts, tex
Ejemplo n.º 8
0
 def test_auto_values_default(self):
     prefs = utils.get_preferences()
     reset_settings(prefs)
     for prop in addon_prefs.props.__AUTO_PROPS__:
         self.assertEqual(getattr(prefs, prop), '', msg=prop)
         self.assertEqual(getattr(prefs, prop + '_auto'), '', msg=prop + '_auto')