finish handle for properties_XXX scripts

This commit is contained in:
Xiao Xiangquan
2011-08-02 16:51:50 +00:00
parent 66d1707293
commit 79656a65e0
27 changed files with 1262 additions and 1237 deletions

View File

@@ -19,6 +19,7 @@
# <pep8 compliant>
import bpy
from rna_prop_ui import PropertyPanel
from blf import gettext as _
from bl_ui.properties_physics_common import (
point_cache_ui,
@@ -107,17 +108,17 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
layout.template_ID(context.space_data, "pin_id")
if part.is_fluid:
layout.label(text="Settings used for fluid.")
layout.label(text=_("Settings used for fluid."))
return
layout.prop(part, "type", text="Type")
layout.prop(part, "type", text=_("Type"))
elif not psys.settings:
split = layout.split(percentage=0.32)
col = split.column()
col.label(text="Name:")
col.label(text="Settings:")
col.label(text=_("Name:"))
col.label(text=_("Settings:"))
col = split.column()
col.prop(psys, "name", text="")
@@ -127,10 +128,10 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split(percentage=0.32)
col = split.column()
col.label(text="Name:")
col.label(text=_("Name:"))
if part.is_fluid == False:
col.label(text="Settings:")
col.label(text="Type:")
col.label(text=_("Settings:"))
col.label(text=_("Type:"))
col = split.column()
col.prop(psys, "name", text="")
@@ -140,8 +141,8 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
row.template_ID(psys, "settings", new="particle.new")
#row = layout.row()
#row.label(text="Viewport")
#row.label(text="Render")
#row.label(text=_("Viewport"))
#row.label(text=_("Render"))
if part.is_fluid:
layout.label(text=str(part.count) + " fluid particles for this frame.")
@@ -156,7 +157,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split(percentage=0.65)
if part.type == 'HAIR':
if psys != None and psys.is_edited:
split.operator("particle.edited_clear", text="Free Edit")
split.operator("particle.edited_clear", text=_("Free Edit"))
else:
row = split.row()
row.enabled = particle_panel_enabled(context, psys)
@@ -173,11 +174,11 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
elif psys != None and part.type == 'REACTOR':
split.enabled = particle_panel_enabled(context, psys)
split.prop(psys, "reactor_target_object")
split.prop(psys, "reactor_target_particle_system", text="Particle System")
split.prop(psys, "reactor_target_particle_system", text=_("Particle System"))
class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Emission"
bl_label = _("Emission")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -220,7 +221,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel):
col.prop(part, "lifetime")
col.prop(part, "lifetime_random", slider=True)
layout.label(text="Emit From:")
layout.label(text=_("Emit From:"))
layout.prop(part, "emit_from", expand=True)
row = layout.row()
@@ -238,15 +239,15 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel):
row = layout.row()
if part.distribution == 'JIT':
row.prop(part, "userjit", text="Particles/Face")
row.prop(part, "jitter_factor", text="Jittering Amount", slider=True)
row.prop(part, "userjit", text=_("Particles/Face"))
row.prop(part, "jitter_factor", text=_("Jittering Amount"), slider=True)
elif part.distribution == 'GRID':
row.prop(part, "grid_resolution")
row.prop(part, "grid_random", text="Random", slider=True)
row.prop(part, "grid_random", text=_("Random"), slider=True)
class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Hair dynamics"
bl_label = _("Hair dynamics")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -283,26 +284,26 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split()
col = split.column()
col.label(text="Material:")
col.label(text=_("Material:"))
sub = col.column(align=True)
sub.prop(cloth, "pin_stiffness", text="Stiffness")
sub.prop(cloth, "pin_stiffness", text=_("Stiffness"))
sub.prop(cloth, "mass")
sub.prop(cloth, "bending_stiffness", text="Bending")
sub.prop(cloth, "bending_stiffness", text=_("Bending"))
sub.prop(cloth, "internal_friction", slider=True)
sub.prop(cloth, "collider_friction", slider=True)
col = split.column()
col.label(text="Damping:")
col.label(text=_("Damping:"))
sub = col.column(align=True)
sub.prop(cloth, "spring_damping", text="Spring")
sub.prop(cloth, "air_damping", text="Air")
sub.prop(cloth, "spring_damping", text=_("Spring"))
sub.prop(cloth, "air_damping", text=_("Air"))
col.label(text="Quality:")
col.prop(cloth, "quality", text="Steps", slider=True)
col.label(text=_("Quality:"))
col.prop(cloth, "quality", text=_("Steps"), slider=True)
class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Cache"
bl_label = _("Cache")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -328,7 +329,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Velocity"
bl_label = _("Velocity")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -354,17 +355,17 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split()
col = split.column()
col.label(text="Emitter Geometry:")
col.label(text=_("Emitter Geometry:"))
col.prop(part, "normal_factor")
sub = col.column(align=True)
sub.prop(part, "tangent_factor")
sub.prop(part, "tangent_phase", slider=True)
col = split.column()
col.label(text="Emitter Object:")
col.label(text=_("Emitter Object:"))
col.prop(part, "object_align_factor", text="")
layout.label(text="Other:")
layout.label(text=_("Other:"))
row = layout.row()
if part.emit_from == 'PARTICLE':
row.prop(part, "particle_factor")
@@ -378,7 +379,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Rotation"
bl_label = _("Rotation")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -405,21 +406,21 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel):
layout.enabled = particle_panel_enabled(context, psys)
row = layout.row()
row.label(text="Initial Rotation:")
row.label(text=_("Initial Rotation:"))
row.prop(part, "use_dynamic_rotation")
split = layout.split()
col = split.column(align=True)
col.prop(part, "rotation_mode", text="")
col.prop(part, "rotation_factor_random", slider=True, text="Random")
col.prop(part, "rotation_factor_random", slider=True, text=_("Random"))
col = split.column(align=True)
col.prop(part, "phase_factor", slider=True)
col.prop(part, "phase_factor_random", text="Random", slider=True)
col.prop(part, "phase_factor_random", text=_("Random"), slider=True)
col = layout.column()
col.label(text="Angular Velocity:")
col.label(text=_("Angular Velocity:"))
col.row().prop(part, "angular_velocity_mode", expand=True)
if part.angular_velocity_mode != 'NONE':
@@ -427,7 +428,7 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Physics"
bl_label = _("Physics")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -460,19 +461,19 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
if part.physics_type != 'NO':
col = row.column(align=True)
col.prop(part, "mass")
col.prop(part, "use_multiply_size_mass", text="Multiply mass with size")
col.prop(part, "use_multiply_size_mass", text=_("Multiply mass with size"))
if part.physics_type in ('NEWTON', 'FLUID'):
split = layout.split()
col = split.column()
col.label(text="Forces:")
col.label(text=_("Forces:"))
col.prop(part, "brownian_factor")
col.prop(part, "drag_factor", slider=True)
col.prop(part, "damping", slider=True)
col = split.column()
col.label(text="Integration:")
col.label(text=_("Integration:"))
col.prop(part, "integrator", text="")
col.prop(part, "timestep")
col.prop(part, "subframes")
@@ -487,13 +488,13 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split()
col = split.column()
col.label(text="Fluid properties:")
col.prop(fluid, "stiffness", text="Stiffness")
col.prop(fluid, "linear_viscosity", text="Viscosity")
col.prop(fluid, "buoyancy", text="Buoancy", slider=True)
col.label(text=_("Fluid properties:"))
col.prop(fluid, "stiffness", text=_("Stiffness"))
col.prop(fluid, "linear_viscosity", text=_("Viscosity"))
col.prop(fluid, "buoyancy", text=_("Buoancy"), slider=True)
col = split.column()
col.label(text="Advanced:")
col.label(text=_("Advanced:"))
sub = col.row()
sub.prop(fluid, "repulsion", slider=fluid.factor_repulsion)
@@ -514,8 +515,8 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
split = layout.split()
col = split.column()
col.label(text="Springs:")
col.prop(fluid, "spring_force", text="Force")
col.label(text=_("Springs:"))
col.prop(fluid, "spring_force", text=_("Force"))
col.prop(fluid, "use_viscoelastic_springs")
sub = col.column(align=True)
sub.active = fluid.use_viscoelastic_springs
@@ -523,7 +524,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
sub.prop(fluid, "plasticity", slider=True)
col = split.column()
col.label(text="Advanced:")
col.label(text=_("Advanced:"))
sub = col.row()
sub.prop(fluid, "rest_length", slider=fluid.factor_rest_length)
sub.prop(fluid, "factor_rest_length", text="")
@@ -531,7 +532,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
sub = col.column()
sub.active = fluid.use_viscoelastic_springs
sub.prop(fluid, "use_initial_rest_length")
sub.prop(fluid, "spring_frames", text="Frames")
sub.prop(fluid, "spring_frames", text=_("Frames"))
elif part.physics_type == 'KEYED':
split = layout.split()
@@ -540,11 +541,11 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
row = layout.row()
col = row.column()
col.active = not psys.use_keyed_timing
col.prop(part, "keyed_loops", text="Loops")
col.prop(part, "keyed_loops", text=_("Loops"))
if psys:
row.prop(psys, "use_keyed_timing", text="Use Timing")
row.prop(psys, "use_keyed_timing", text=_("Use Timing"))
layout.label(text="Keys:")
layout.label(text=_("Keys:"))
elif part.physics_type == 'BOIDS':
boids = part.boids
@@ -580,7 +581,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
row = layout.row()
col = row.column(align=True)
col.label(text="Battle:")
col.label(text=_("Battle:"))
col.prop(boids, "health")
col.prop(boids, "strength")
col.prop(boids, "aggression")
@@ -588,16 +589,16 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
col.prop(boids, "range")
col = row.column()
col.label(text="Misc:")
col.label(text=_("Misc:"))
col.prop(boids, "bank", slider=True)
col.prop(boids, "pitch", slider=True)
col.prop(boids, "height", slider=True)
if psys and part.physics_type in {'KEYED', 'BOIDS', 'FLUID'}:
if part.physics_type == 'BOIDS':
layout.label(text="Relations:")
layout.label(text=_("Relations:"))
elif part.physics_type == 'FLUID':
layout.label(text="Fluid interaction:")
layout.label(text=_("Fluid interaction:"))
row = layout.row()
row.template_list(psys, "targets", psys, "active_particle_target_index")
@@ -620,7 +621,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
#doesn't work yet
#col.alert = key.valid
col.prop(key, "object", text="")
col.prop(key, "system", text="System")
col.prop(key, "system", text=_("System"))
col = row.column()
col.active = psys.use_keyed_timing
col.prop(key, "time")
@@ -630,7 +631,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
#doesn't work yet
#sub.alert = key.valid
sub.prop(key, "object", text="")
sub.prop(key, "system", text="System")
sub.prop(key, "system", text=_("System"))
layout.prop(key, "alliance", expand=True)
elif part.physics_type == 'FLUID':
@@ -638,11 +639,11 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
#doesn't work yet
#sub.alert = key.valid
sub.prop(key, "object", text="")
sub.prop(key, "system", text="System")
sub.prop(key, "system", text=_("System"))
class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Boid Brain"
bl_label = _("Boid Brain")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -677,7 +678,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
state = boids.active_boid_state
#layout.prop(state, "name", text="State name")
#layout.prop(state, "name", text=_("State name"))
row = layout.row()
row.prop(state, "ruleset_type")
@@ -720,7 +721,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
row.prop(rule, "use_predict")
row.prop(rule, "fear_factor")
elif rule.type == 'FOLLOW_PATH':
row.label(text="Not yet functional.")
row.label(text=_("Not yet functional."))
elif rule.type == 'AVOID_COLLISION':
row.prop(rule, "use_avoid")
row.prop(rule, "use_avoid_collision")
@@ -743,7 +744,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Render"
bl_label = _("Render")
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -799,14 +800,14 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
sub.active = (part.use_render_adaptive is True and part.use_strand_primitive is False)
sub.prop(part, "adaptive_pixel")
col.prop(part, "use_hair_bspline")
col.prop(part, "render_step", text="Steps")
col.prop(part, "render_step", text=_("Steps"))
col = split.column()
col.label(text="Timing:")
col.label(text=_("Timing:"))
col.prop(part, "use_absolute_path_time")
col.prop(part, "path_start", text="Start", slider=not part.use_absolute_path_time)
col.prop(part, "path_end", text="End", slider=not part.use_absolute_path_time)
col.prop(part, "length_random", text="Random", slider=True)
col.prop(part, "path_start", text=_("Start"), slider=not part.use_absolute_path_time)
col.prop(part, "path_end", text=_("End"), slider=not part.use_absolute_path_time)
col.prop(part, "length_random", text=_("Random"), slider=True)
row = layout.row()
col = row.column()
@@ -863,30 +864,30 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
elif part.render_type == 'BILLBOARD':
ob = context.object
col.label(text="Align:")
col.label(text=_("Align:"))
row = layout.row()
row.prop(part, "billboard_align", expand=True)
row.prop(part, "lock_billboard", text="Lock")
row.prop(part, "lock_billboard", text=_("Lock"))
row = layout.row()
row.prop(part, "billboard_object")
row = layout.row()
col = row.column(align=True)
col.label(text="Tilt:")
col.prop(part, "billboard_tilt", text="Angle", slider=True)
col.prop(part, "billboard_tilt_random", text="Random", slider=True)
col.label(text=_("Tilt:"))
col.prop(part, "billboard_tilt", text=_("Angle"), slider=True)
col.prop(part, "billboard_tilt_random", text=_("Random"), slider=True)
col = row.column()
col.prop(part, "billboard_offset")
row = layout.row()
col = row.column()
col.prop(part, "billboard_size", text="Scale")
col.prop(part, "billboard_size", text=_("Scale"))
if part.billboard_align == 'VEL':
col = row.column(align=True)
col.label("Velocity Scale:")
col.prop(part, "billboard_velocity_head", text="Head")
col.prop(part, "billboard_velocity_tail", text="Tail")
col.label(_("Velocity Scale:"))
col.prop(part, "billboard_velocity_head", text=_("Head"))
col.prop(part, "billboard_velocity_tail", text=_("Tail"))
if psys:
col = layout.column()
@@ -894,8 +895,8 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
col.prop_search(psys, "billboard_time_index_uv", ob.data, "uv_textures")
split = layout.split(percentage=0.33)
split.label(text="Split uv's:")
split.prop(part, "billboard_uv_split", text="Number of splits")
split.label(text=_("Split uv's:"))
split.prop(part, "billboard_uv_split", text=_("Number of splits"))
if psys:
col = layout.column()
@@ -903,9 +904,9 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
col.prop_search(psys, "billboard_split_uv", ob.data, "uv_textures")
row = col.row()
row.label(text="Animate:")
row.label(text=_("Animate:"))
row.prop(part, "billboard_animation", text="")
row.label(text="Offset:")
row.label(text=_("Offset:"))
row.prop(part, "billboard_offset_split", text="")
if part.render_type == 'HALO' or part.render_type == 'LINE' or part.render_type == 'BILLBOARD':
@@ -913,10 +914,10 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
col = row.column()
col.prop(part, "trail_count")
if part.trail_count > 1:
col.prop(part, "use_absolute_path_time", text="Length in frames")
col.prop(part, "use_absolute_path_time", text=_("Length in frames"))
col = row.column()
col.prop(part, "path_end", text="Length", slider=not part.use_absolute_path_time)
col.prop(part, "length_random", text="Random", slider=True)
col.prop(part, "path_end", text=_("Length"), slider=not part.use_absolute_path_time)
col.prop(part, "length_random", text=_("Random"), slider=True)
else:
col = row.column()
col.label(text="")
@@ -928,7 +929,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Display"
bl_label = _("Display")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -964,11 +965,11 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel):
if part.draw_percentage != 100 and psys is not None:
if part.type == 'HAIR':
if psys.use_hair_dynamics and psys.point_cache.is_baked == False:
layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
layout.row().label(text=_("Display percentage makes dynamics inaccurate without baking!"))
else:
phystype = part.physics_type
if phystype != 'NO' and phystype != 'KEYED' and psys.point_cache.is_baked == False:
layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
layout.row().label(text=_("Display percentage makes dynamics inaccurate without baking!"))
row = layout.row()
col = row.column()
@@ -979,18 +980,18 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel):
col.prop(part, "show_health")
col = row.column(align=True)
col.label(text="Color:")
col.label(text=_("Color:"))
col.prop(part, "draw_color", text="")
sub = col.row()
sub.active = part.draw_color in ('VELOCITY', 'ACCELERATION')
sub.prop(part, "color_maximum", text="Max")
sub.prop(part, "color_maximum", text=_("Max"))
if (path):
col.prop(part, "draw_step")
class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Children"
bl_label = _("Children")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -1012,24 +1013,24 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
row = layout.row()
col = row.column(align=True)
col.prop(part, "child_nbr", text="Display")
col.prop(part, "rendered_child_count", text="Render")
col.prop(part, "child_nbr", text=_("Display"))
col.prop(part, "rendered_child_count", text=_("Render"))
if part.child_type == 'INTERPOLATED':
col = row.column()
if psys:
col.prop(psys, "child_seed", text="Seed")
col.prop(psys, "child_seed", text=_("Seed"))
col.prop(part, "virtual_parents", slider=True)
col.prop(part, "create_long_hair_children")
else:
col = row.column(align=True)
col.prop(part, "child_size", text="Size")
col.prop(part, "child_size_random", text="Random")
col.prop(part, "child_size", text=_("Size"))
col.prop(part, "child_size_random", text=_("Random"))
split = layout.split()
col = split.column()
col.label(text="Effects:")
col.label(text=_("Effects:"))
sub = col.column(align=True)
sub.prop(part, "clump_factor", slider=True)
@@ -1041,38 +1042,38 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
if part.child_type == 'SIMPLE':
sub = col.column(align=True)
sub.prop(part, "child_radius", text="Radius")
sub.prop(part, "child_roundness", text="Roundness", slider=True)
sub.prop(part, "child_radius", text=_("Radius"))
sub.prop(part, "child_roundness", text=_("Roundness"), slider=True)
if psys:
sub.prop(psys, "child_seed", text="Seed")
sub.prop(psys, "child_seed", text=_("Seed"))
elif part.virtual_parents > 0.0:
sub = col.column(align=True)
sub.label(text="Parting not")
sub.label(text="available with")
sub.label(text="virtual parents.")
sub.label(text=_("Parting not"))
sub.label(text=_("available with"))
sub.label(text=_("virtual parents."))
else:
sub = col.column(align=True)
sub.prop(part, "child_parting_factor", text="Parting", slider=True)
sub.prop(part, "child_parting_min", text="Min")
sub.prop(part, "child_parting_max", text="Max")
sub.prop(part, "child_parting_factor", text=_("Parting"), slider=True)
sub.prop(part, "child_parting_min", text=_("Min"))
sub.prop(part, "child_parting_max", text=_("Max"))
col = split.column()
col.label(text="Roughness:")
col.label(text=_("Roughness:"))
sub = col.column(align=True)
sub.prop(part, "roughness_1", text="Uniform")
sub.prop(part, "roughness_1_size", text="Size")
sub.prop(part, "roughness_1", text=_("Uniform"))
sub.prop(part, "roughness_1_size", text=_("Size"))
sub = col.column(align=True)
sub.prop(part, "roughness_endpoint", "Endpoint")
sub.prop(part, "roughness_end_shape")
sub = col.column(align=True)
sub.prop(part, "roughness_2", text="Random")
sub.prop(part, "roughness_2_size", text="Size")
sub.prop(part, "roughness_2", text=_("Random"))
sub.prop(part, "roughness_2_size", text=_("Size"))
sub.prop(part, "roughness_2_threshold", slider=True)
layout.row().label(text="Kink:")
layout.row().label(text=_("Kink:"))
layout.row().prop(part, "kink", expand=True)
split = layout.split()
@@ -1081,7 +1082,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
col = split.column()
sub = col.column(align=True)
sub.prop(part, "kink_amplitude")
sub.prop(part, "kink_amplitude_clump", text="Clump", slider=True)
sub.prop(part, "kink_amplitude_clump", text=_("Clump"), slider=True)
col.prop(part, "kink_flat", slider=True)
col = split.column()
sub = col.column(align=True)
@@ -1090,7 +1091,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Field Weights"
bl_label = _("Field Weights")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -1111,7 +1112,7 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel):
class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Force Field Settings"
bl_label = _("Force Field Settings")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -1122,30 +1123,30 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel):
row = layout.row()
row.prop(part, "use_self_effect")
row.prop(part, "effector_amount", text="Amount")
row.prop(part, "effector_amount", text=_("Amount"))
split = layout.split(percentage=0.2)
split.label(text="Type 1:")
split.label(text=_("Type 1:"))
split.prop(part.force_field_1, "type", text="")
basic_force_field_settings_ui(self, context, part.force_field_1)
if part.force_field_1.type != 'NONE':
layout.label(text="Falloff:")
layout.label(text=_("Falloff:"))
basic_force_field_falloff_ui(self, context, part.force_field_1)
if part.force_field_1.type != 'NONE':
layout.label(text="")
split = layout.split(percentage=0.2)
split.label(text="Type 2:")
split.label(text=_("Type 2:"))
split.prop(part.force_field_2, "type", text="")
basic_force_field_settings_ui(self, context, part.force_field_2)
if part.force_field_2.type != 'NONE':
layout.label(text="Falloff:")
layout.label(text=_("Falloff:"))
basic_force_field_falloff_ui(self, context, part.force_field_2)
class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel):
bl_label = "Vertexgroups"
bl_label = _("Vertexgroups")
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -1162,56 +1163,56 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel):
psys = context.particle_system
row = layout.row()
row.label(text="Vertex Group")
row.label(text="Negate")
row.label(text=_("Vertex Group"))
row.label(text=_("Negate"))
row = layout.row()
row.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text="Density")
row.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text=_("Density"))
row.prop(psys, "invert_vertex_group_density", text="")
# Commented out vertex groups don't work and are still waiting for better implementation
# row = layout.row()
# row.prop_search(psys, "vertex_group_velocity", ob, "vertex_groups", text="Velocity")
# row.prop_search(psys, "vertex_group_velocity", ob, "vertex_groups", text=_("Velocity"))
# row.prop(psys, "invert_vertex_group_velocity", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text="Length")
row.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text=_("Length"))
row.prop(psys, "invert_vertex_group_length", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text="Clump")
row.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text=_("Clump"))
row.prop(psys, "invert_vertex_group_clump", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text="Kink")
row.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text=_("Kink"))
row.prop(psys, "invert_vertex_group_kink", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text="Roughness 1")
row.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text=_("Roughness 1"))
row.prop(psys, "invert_vertex_group_roughness_1", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text="Roughness 2")
row.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text=_("Roughness 2"))
row.prop(psys, "invert_vertex_group_roughness_2", text="")
row = layout.row()
row.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text="Roughness End")
row.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text=_("Roughness End"))
row.prop(psys, "invert_vertex_group_roughness_end", text="")
# row = layout.row()
# row.prop_search(psys, "vertex_group_size", ob, "vertex_groups", text="Size")
# row.prop_search(psys, "vertex_group_size", ob, "vertex_groups", text=_("Size"))
# row.prop(psys, "invert_vertex_group_size", text="")
# row = layout.row()
# row.prop_search(psys, "vertex_group_tangent", ob, "vertex_groups", text="Tangent")
# row.prop_search(psys, "vertex_group_tangent", ob, "vertex_groups", text=_("Tangent"))
# row.prop(psys, "invert_vertex_group_tangent", text="")
# row = layout.row()
# row.prop_search(psys, "vertex_group_rotation", ob, "vertex_groups", text="Rotation")
# row.prop_search(psys, "vertex_group_rotation", ob, "vertex_groups", text=_("Rotation"))
# row.prop(psys, "invert_vertex_group_rotation", text="")
# row = layout.row()
# row.prop_search(psys, "vertex_group_field", ob, "vertex_groups", text="Field")
# row.prop_search(psys, "vertex_group_field", ob, "vertex_groups", text=_("Field"))
# row.prop(psys, "invert_vertex_group_field", text="")