Fix T61187: Fluid Particle settings UI elements
Some properties were accidentally hidden for particle fluids. - Made sure we show the Forces and Integration sub-panels for particle fluids. - Slightly re-ordered the sub-panels here, so that the same sub-panels are at the top for Newtonian and Fluid particles. - Separated the Fluid Interaction sub-panel so we can give it a unique name. - Removed lingering unnecessary 'Keys' label in the Keyed physics.
This commit is contained in:
parent
bf9407fc71
commit
6be8c64e9a
Notes:
blender-bot
2023-02-14 08:42:53 +01:00
Referenced by issue #61187, Fluid Particle settings UI elements missing / broken
|
@ -479,8 +479,10 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, Panel):
|
|||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
psys = context.particle_system
|
||||
engine = context.engine
|
||||
if engine not in cls.COMPAT_ENGINES:
|
||||
return False
|
||||
psys = context.particle_system
|
||||
if psys is None:
|
||||
return False
|
||||
if psys.settings is None:
|
||||
|
@ -491,10 +493,10 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, Panel):
|
|||
if phystype == 'NO' or phystype == 'KEYED':
|
||||
return False
|
||||
return (
|
||||
(psys.settings.type in {'EMITTER', 'REACTOR'} or
|
||||
(psys.settings.type == 'HAIR' and
|
||||
(psys.use_hair_dynamics or psys.point_cache.is_baked))) and
|
||||
engine in cls.COMPAT_ENGINES
|
||||
psys.settings.type in {'EMITTER', 'REACTOR'} or (
|
||||
(psys.settings.type == 'HAIR') and
|
||||
(psys.use_hair_dynamics or psys.point_cache.is_baked)
|
||||
)
|
||||
)
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -681,8 +683,6 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
|
|||
if psys:
|
||||
col.prop(psys, "use_keyed_timing", text="Use Timing")
|
||||
|
||||
col.label(text="Keys")
|
||||
|
||||
|
||||
class PARTICLE_PT_physics_fluid_advanced(ParticleButtonsPanel, Panel):
|
||||
bl_label = "Advanced"
|
||||
|
@ -939,7 +939,7 @@ class PARTICLE_PT_physics_relations(ParticleButtonsPanel, Panel):
|
|||
@classmethod
|
||||
def poll(cls, context):
|
||||
part = particle_get_settings(context)
|
||||
return part.physics_type in {'KEYED', 'BOIDS', 'FLUID'}
|
||||
return part.physics_type in {'KEYED', 'BOIDS'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -982,12 +982,48 @@ class PARTICLE_PT_physics_relations(ParticleButtonsPanel, Panel):
|
|||
sub.prop(key, "object")
|
||||
sub.prop(key, "system", text="System")
|
||||
layout.prop(key, "alliance")
|
||||
elif part.physics_type == 'FLUID':
|
||||
sub = layout.column()
|
||||
# doesn't work yet
|
||||
#sub.alert = key.valid
|
||||
sub.prop(key, "object")
|
||||
sub.prop(key, "system", text="System")
|
||||
|
||||
|
||||
class PARTICLE_PT_physics_fluid_interaction(ParticleButtonsPanel, Panel):
|
||||
bl_label = "Fluid Interaction"
|
||||
bl_parent_id = "PARTICLE_PT_physics"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
part = particle_get_settings(context)
|
||||
return part.physics_type == 'FLUID'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.use_property_split = True
|
||||
|
||||
psys = context.particle_system
|
||||
part = particle_get_settings(context)
|
||||
|
||||
row = layout.row()
|
||||
row.template_list("UI_UL_list", "particle_targets", psys, "targets",
|
||||
psys, "active_particle_target_index", rows=4)
|
||||
|
||||
col = row.column()
|
||||
sub = col.row()
|
||||
subsub = sub.column(align=True)
|
||||
subsub.operator("particle.new_target", icon='ADD', text="")
|
||||
subsub.operator("particle.target_remove", icon='REMOVE', text="")
|
||||
sub = col.row()
|
||||
subsub = sub.column(align=True)
|
||||
subsub.operator("particle.target_move_up", icon='TRIA_UP', text="")
|
||||
subsub.operator("particle.target_move_down", icon='TRIA_DOWN', text="")
|
||||
|
||||
key = psys.active_particle_target
|
||||
|
||||
if key:
|
||||
sub = layout.column()
|
||||
# doesn't work yet
|
||||
#sub.alert = key.valid
|
||||
sub.prop(key, "object")
|
||||
sub.prop(key, "system", text="System")
|
||||
|
||||
|
||||
class PARTICLE_PT_physics_deflection(ParticleButtonsPanel, Panel):
|
||||
|
@ -1025,7 +1061,7 @@ class PARTICLE_PT_physics_forces(ParticleButtonsPanel, Panel):
|
|||
@classmethod
|
||||
def poll(cls, context):
|
||||
part = particle_get_settings(context)
|
||||
return part.physics_type == 'NEWTON'
|
||||
return part.physics_type in {'NEWTON', 'FLUID'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -1052,7 +1088,7 @@ class PARTICLE_PT_physics_integration(ParticleButtonsPanel, Panel):
|
|||
@classmethod
|
||||
def poll(cls, context):
|
||||
part = particle_get_settings(context)
|
||||
return part.physics_type == 'NEWTON'
|
||||
return part.physics_type in {'NEWTON', 'FLUID'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -2096,10 +2132,6 @@ classes = (
|
|||
PARTICLE_PT_rotation,
|
||||
PARTICLE_PT_rotation_angular_velocity,
|
||||
PARTICLE_PT_physics,
|
||||
PARTICLE_PT_physics_fluid_springs,
|
||||
PARTICLE_PT_physics_fluid_springs_viscoelastic,
|
||||
PARTICLE_PT_physics_fluid_springs_advanced,
|
||||
PARTICLE_PT_physics_fluid_advanced,
|
||||
PARTICLE_PT_physics_boids_movement,
|
||||
PARTICLE_PT_physics_boids_battle,
|
||||
PARTICLE_PT_physics_boids_misc,
|
||||
|
@ -2107,6 +2139,11 @@ classes = (
|
|||
PARTICLE_PT_physics_deflection,
|
||||
PARTICLE_PT_physics_integration,
|
||||
PARTICLE_PT_physics_relations,
|
||||
PARTICLE_PT_physics_fluid_springs,
|
||||
PARTICLE_PT_physics_fluid_springs_viscoelastic,
|
||||
PARTICLE_PT_physics_fluid_springs_advanced,
|
||||
PARTICLE_PT_physics_fluid_advanced,
|
||||
PARTICLE_PT_physics_fluid_interaction,
|
||||
PARTICLE_PT_boidbrain,
|
||||
PARTICLE_PT_render,
|
||||
PARTICLE_PT_render_line,
|
||||
|
|
Loading…
Reference in New Issue