diff --git a/object_cloud_gen.py b/object_cloud_gen.py index fef1c4577fbf84dcd6b8db99e4f375b0e7b3dddc..4ddc487f6d183ade848e3e451a1afc9c9e28029a 100644 --- a/object_cloud_gen.py +++ b/object_cloud_gen.py @@ -24,7 +24,7 @@ bl_addon_info = { "api": 31667, "location": "Tool Shelf ", "description": "Creates Volumetric Clouds", - "warning": "returns error at line 542", + "warning": "", "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\ "Scripts/Object/Cloud_Gen", "tracker_url": "https://projects.blender.org/tracker/index.php?"\ @@ -330,7 +330,7 @@ class GenerateCloud(bpy.types.Operator): def execute(self, context): # Make variable that is the current .blend file main data blocks - main = context.main + blend_data = context.blend_data # Make variable that is the active object selected by user active_object = context.active_object @@ -373,7 +373,7 @@ class GenerateCloud(bpy.types.Operator): for createdObj in createdObjects: totallyDeleteObject(scene, createdObj) - # Delete the main object + # Delete the blend_data object totallyDeleteObject(scene, mainObj) # Select all of the left over boxes so people can immediately @@ -404,7 +404,7 @@ class GenerateCloud(bpy.types.Operator): bounds.hide_render = False # Just add a Definition Property designating this - # as the main object. + # as the blend_data object. bounds["CloudMember"] = "MainObj" # Since we used iteration 0 to copy with object we @@ -492,7 +492,7 @@ class GenerateCloud(bpy.types.Operator): bpy.ops.object.material_slot_remove() # Add a new material. - cloudMaterial = main.materials.new("CloudMaterial") + cloudMaterial = blend_data.materials.new("CloudMaterial") bpy.ops.object.material_slot_add() bounds.material_slots[0].material = cloudMaterial @@ -510,10 +510,13 @@ class GenerateCloud(bpy.types.Operator): # Add a texture vMaterialTextureSlots = cloudMaterial.texture_slots - cloudtex = main.textures.new("CloudTex", type='CLOUDS') + cloudtex = blend_data.textures.new("CloudTex", type='CLOUDS') cloudtex.noise_type = 'HARD_NOISE' cloudtex.noise_scale = 2 - cloudMaterial.add_texture(cloudtex, 'ORCO') + mtex = cloudMaterial.texture_slots.add() + mtex.texture = cloudtex + mtex.texture_coords = 'ORCO' + mtex.use_map_color_diffuse = True # Add a force field to the points. cloudField = bounds.field @@ -530,11 +533,15 @@ class GenerateCloud(bpy.types.Operator): #bpy.ops.ptcache.bake(bake=False) # Add a Point Density texture - pDensity = main.textures.new("CloudPointDensity", 'POINT_DENSITY') - cloudMaterial.add_texture(pDensity, 'ORCO') - vMaterialTextureSlots[1].use_map_density = True - vMaterialTextureSlots[1].use_rgb_to_intensity = True - vMaterialTextureSlots[1].texture_coords = 'GLOBAL' + pDensity = blend_data.textures.new("CloudPointDensity", 'POINT_DENSITY') + + mtex = cloudMaterial.texture_slots.add() + mtex.texture = pDensity + mtex.texture_coords = 'GLOBAL' + mtex.use_map_density = True + mtex.use_rgb_to_intensity = True + mtex.texture_coords = 'GLOBAL' + pDensity.point_density.vertex_cache_space = 'WORLD_SPACE' pDensity.point_density.use_turbulence = True pDensity.point_density.noise_basis = 'VORONOI_F2'