[Durian-svn] [2269] Lots of fixes...

dolf institute at blender.org
Wed Apr 21 16:01:52 CEST 2010


Revision: 2269
          https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=2269
Author:   dolf
Date:     2010-04-21 16:01:51 +0200 (Wed, 21 Apr 2010)
Log Message:
-----------
Lots of fixes... City props are now fault free... and the script has no more swearing, for cam!

Modified Paths:
--------------
    pro/props_city/brick_plaster_blending.blend
    pro/props_city/cart_rigged.blend
    pro/props_city/ceramics.blend
    pro/props_city/ceramics_broken.blend
    pro/props_city/city_brickwalls.blend
    pro/props_city/city_buildings.blend
    pro/props_city/city_buildings_destroyed.blend
    pro/props_city/crates.blend
    pro/props_city/external/dyrob_city_flag.blend
    pro/props_city/external/fry_apple_Rotten_fruits.blend
    pro/props_city/external/gustavgoransson_trash_banan.blend
    pro/props_city/external/zafio_trash_orange.blend
    pro/props_city/fruits.blend
    pro/props_city/market_pilar.blend
    pro/props_city/market_props.blend
    pro/props_city/potteries.blend
    pro/props_city/rotten_apple.blend
    pro/props_city/rotten_banana.blend
    pro/props_city/rotten_orange.blend
    pro/scenes/04.1_ziggurat/04.1a.blend
    pro/scenes/04.1_ziggurat/04.1b.blend
    pro/scenes/04.1_ziggurat/04.1b_comp.blend
    pro/scenes/04.1_ziggurat/04.1c_comp.blend
    pro/scenes/04.1_ziggurat/04.1d.blend
    pro/scenes/04.1_ziggurat/04.1e.blend
    pro/scenes/04.1_ziggurat/ziggurat_layout.blend
    pro/scripts/ui/object_library_load.py
    pro/scripts/utilities/findLibError.py
    pro/scripts/utilities/findPathError.py

Modified: pro/props_city/brick_plaster_blending.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/cart_rigged.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/ceramics.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/ceramics_broken.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/city_brickwalls.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/city_buildings.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/city_buildings_destroyed.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/crates.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/external/dyrob_city_flag.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/external/fry_apple_Rotten_fruits.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/external/gustavgoransson_trash_banan.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/external/zafio_trash_orange.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/fruits.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/market_pilar.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/market_props.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/potteries.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/rotten_apple.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/rotten_banana.blend
===================================================================
(Binary files differ)

Modified: pro/props_city/rotten_orange.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1a.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1b.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1b_comp.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1c_comp.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1d.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/04.1e.blend
===================================================================
(Binary files differ)

Modified: pro/scenes/04.1_ziggurat/ziggurat_layout.blend
===================================================================
(Binary files differ)

Modified: pro/scripts/ui/object_library_load.py
===================================================================
--- pro/scripts/ui/object_library_load.py	2010-04-21 14:00:12 UTC (rev 2268)
+++ pro/scripts/ui/object_library_load.py	2010-04-21 14:01:51 UTC (rev 2269)
@@ -126,4 +126,5 @@
         bpy.types.VIEW3D_PT_tools_objectmode.remove(menu_func)    
 
 # EVIL, set user config here, they wont remember to set themselves
+bpy.context.user_preferences.filepaths.use_relative_paths = True
 bpy.context.user_preferences.filepaths.compress_file = False

Modified: pro/scripts/utilities/findLibError.py
===================================================================
--- pro/scripts/utilities/findLibError.py	2010-04-21 14:00:12 UTC (rev 2268)
+++ pro/scripts/utilities/findLibError.py	2010-04-21 14:01:51 UTC (rev 2269)
@@ -16,7 +16,7 @@
  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
  *
- * Contributor(s): Campbell Barton
+ * Contributor(s): Campbell Barton (and Dolf messed around a bit)
  *
  * ***** END GPL LICENSE BLOCK *****
 '''
@@ -38,13 +38,17 @@
 # SCENES, chicken run needs cleanup
 # CHARS, ENV_CAVE, ENV_CITY, ENV_QUEST, ENV_SNOW, MATTES, PROPS, PROPS_CITY, PROPS_SNOW
 
+# Checking images
+# 04.1 needs checking... going to props_city, env_city first
 
-search = '/media/data/durian/pro/sets'
 
+search = '/media/data/durian/pro/props_city'
+
 # blender_bin = '/render/blender_$(whoami)/blender/blender'
 blender_cmd = 'LD_LIBRARY_PATH=/shared/software/exr/lib  /media/data/blender_guest/blender/blender' 
 
 VERBOSE = True
+DEBUG = True
 
 def main():
     os.system('find %s -name "*.blend" > %s' % (search, blends))
@@ -72,17 +76,22 @@
         pyscript = os.path.join(os.getcwd(), os.path.dirname(__file__) + "findPathError.py")
 
         # Also run a py script
-
         cmd = '%s -b %s   -P %s   1> %s 2>&1' % (blender_cmd, line, pyscript, tempf)
+        
         # print(cmd)
         os.system(cmd)
         
         #os.system('/render/blender_$(whoami)/blender/blender -b %s')
         file_lib = open(tempf, 'r')
         
+        lines = file_lib.readlines()
+        
+        if DEBUG:
+            print("".join(lines))
+
         context_lib = None
-        for out_line in file_lib.readlines():
-            if 0: # out_line.startswith('ERROR PATH: ') or out_line.startswith('ABSOLUTE PATH: ') or out_line.startswith('DUPLICATE PATH: ') or out_line.startswith('PACKED PATH: '): # Py Script makes this one
+        for out_line in lines:
+            if out_line.startswith('ERROR PATH: ') or out_line.startswith('ABSOLUTE PATH: ') or out_line.startswith('DUPLICATE PATH: ') or out_line.startswith('PACKED PATH: '): # Py Script makes this one
                 context_lib = out_line.strip()
                 errors.setdefault(line, ({}, []))[1].append(out_line.strip())
                 error_count += 1
@@ -94,7 +103,7 @@
         error_total += error_count
          
         if VERBOSE:
-            print 'Loaded', line, str(int( (float(i)/tot) * 100.0 )) + '% done,  errors:', error_count
+            print 'Loaded', line, str(int( (float(i)/tot) * 100.0 )) + '% done,  errors:', error_count, "\n\n"
     
     print 'error total', error_total
     

Modified: pro/scripts/utilities/findPathError.py
===================================================================
--- pro/scripts/utilities/findPathError.py	2010-04-21 14:00:12 UTC (rev 2268)
+++ pro/scripts/utilities/findPathError.py	2010-04-21 14:01:51 UTC (rev 2269)
@@ -44,13 +44,62 @@
     
     return False
 
+def image_duplicates():
 
+    image_dupes = {}
 
-def report_images():
+    for i in bpy.data.images:
+        if not i.library:
+            name = i.name
+            if ignore_image(i):
+                continue
+                
+            filename = i.filename
+            filename_abs = filename
+            if not filename.startswith('//'):
+                pass
+            else:
+                filename_abs = expandpath(filename)
+                
+            # lookup duplicates
+            image_dupes.setdefault(filename_abs, []).append(i)
     
+    return image_dupes
 
-    image_duplicates = {}
+def merge_duplicates():
+    
+    image_dupes = image_duplicates()
+    
+    change = 0
+    
+    for filename_abs in sorted(image_dupes.keys()):
+        value = image_dupes[filename_abs]
+        base_image = value[0]
+        if len(value) > 1:
+            for i in value[1:]:
+                for tex in bpy.data.textures:
+                    if tex.library:
+                        continue
 
+                    if tex.type == 'IMAGE':
+                        if tex.image == i:
+                            tex.image = base_image
+                            change = 1
+                            
+                for me in bpy.data.meshes:
+                    if me.library:
+                        continue
+                    
+                    for uvlay in me.uv_textures:
+                        for tf in uvlay.data:
+                            if tf.image == i:
+                                tf.image = base_image
+                                change = 1
+    return change
+
+
+def report_images():
+
     for i in bpy.data.images:
         if not i.library:
             name = i.name
@@ -70,14 +119,14 @@
             if i.packed_file:
                 print("PACKED PATH:", name, filename, 'ABS:', filename_abs)
 
-            # lookup duplicates
-            image_duplicates.setdefault(filename_abs, []).append(name)
+    image_dupes = image_duplicates()
 
-    for filename_abs in sorted(image_duplicates.keys()):
-        value = image_duplicates[filename_abs]
+    for filename_abs in sorted(image_dupes.keys()):
+        value = image_dupes[filename_abs]
         if len(value) > 1:
-            print("DUPLICATE PATH:", filename_abs, 'Datablocks:', ' '.join(value))
+            print("DUPLICATE PATH:", filename_abs, 'Datablocks:', ' '.join([i.name for i in value]))
 
+
 def report_modifiers():
     for obj in bpy.data.objects:
 
@@ -97,9 +146,29 @@
                     if not exists(filename_abs):
                         print("ERROR PATH:", obj.name, filename, 'ABS:', filename_abs, "(OBJECT MODIFIER)")
 
+def relpath(path, start=None):
+    """
+    Returns the path relative to the current blend file using the "//" prefix.
 
+    :arg start: Relative to this path, when not set the current filename is used.
+    :type start: string
+    """
+    if not path.startswith("//"):
+        if start is None:
+            start = os.path.dirname(bpy.data.filename)
+
+        path = path.replace("/d/", "/media/data/durian/")
+        path = os.path.normpath(path)
+        newpath = os.path.relpath(path, start)
+
+        if newpath != path:
+            path = "//" + os.path.normpath(newpath)
+
+    return path
+    
+
 def make_relative():
-    change = False

@@ Diff output truncated at 10240 characters. @@


More information about the Durian-svn mailing list