gameengine physics: moving collision filtering inside the collision panel and relabeling some parts
This commit is contained in:
parent
b00fecc85d
commit
8bb3e2a3ea
|
@ -180,7 +180,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
|
|||
col.prop(game, "use_actor", text="Detect Actors")
|
||||
col.prop(ob, "hide_render", text="Invisible")
|
||||
|
||||
elif physics_type in {'INVISIBLE', 'NO_COLLISION', 'OCCLUDE'}:
|
||||
elif physics_type in {'INVISIBLE', 'NO_COLLISION', 'OCCLUDER'}:
|
||||
layout.prop(ob, "hide_render", text="Invisible")
|
||||
|
||||
elif physics_type == 'NAVMESH':
|
||||
|
@ -192,15 +192,6 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
|
|||
layout.operator("mesh.navmesh_reset")
|
||||
layout.operator("mesh.navmesh_clear")
|
||||
|
||||
if physics_type not in {'NO_COLLISION', 'OCCLUDE'}:
|
||||
layout.separator()
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.prop(game, "collision_group")
|
||||
col = split.column()
|
||||
col.prop(game, "collision_mask")
|
||||
|
||||
|
||||
class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
|
||||
bl_label = "Collision Bounds"
|
||||
|
@ -210,7 +201,8 @@ class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
|
|||
def poll(cls, context):
|
||||
game = context.object.game
|
||||
rd = context.scene.render
|
||||
return (game.physics_type in {'DYNAMIC', 'RIGID_BODY', 'SENSOR', 'SOFT_BODY', 'STATIC', 'CHARACTER'}) and (rd.engine in cls.COMPAT_ENGINES)
|
||||
return (rd.engine in cls.COMPAT_ENGINES) \
|
||||
and (game.physics_type in {'SENSOR', 'STATIC', 'DYNAMIC', 'RIGID_BODY', 'CHARACTER', 'SOFT_BODY'})
|
||||
|
||||
def draw_header(self, context):
|
||||
game = context.active_object.game
|
||||
|
@ -221,16 +213,25 @@ class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
|
|||
layout = self.layout
|
||||
|
||||
game = context.active_object.game
|
||||
|
||||
layout.active = game.use_collision_bounds
|
||||
|
||||
layout.prop(game, "collision_bounds_type", text="Bounds")
|
||||
|
||||
row = layout.row()
|
||||
row.prop(game, "collision_margin", text="Margin", slider=True)
|
||||
|
||||
sub = row.row()
|
||||
sub.active = game.physics_type not in {'SOFT_BODY', 'CHARACTER'}
|
||||
sub.prop(game, "use_collision_compound", text="Compound")
|
||||
|
||||
layout.separator()
|
||||
split = layout.split()
|
||||
col = split.column()
|
||||
col.prop(game, "collision_group")
|
||||
col = split.column()
|
||||
col.prop(game, "collision_mask")
|
||||
|
||||
|
||||
class PHYSICS_PT_game_obstacles(PhysicsButtonsPanel, Panel):
|
||||
bl_label = "Create Obstacle"
|
||||
COMPAT_ENGINES = {'BLENDER_GAME'}
|
||||
|
@ -239,7 +240,8 @@ class PHYSICS_PT_game_obstacles(PhysicsButtonsPanel, Panel):
|
|||
def poll(cls, context):
|
||||
game = context.object.game
|
||||
rd = context.scene.render
|
||||
return (game.physics_type in {'DYNAMIC', 'RIGID_BODY', 'SENSOR', 'SOFT_BODY', 'STATIC'}) and (rd.engine in cls.COMPAT_ENGINES)
|
||||
return (rd.engine in cls.COMPAT_ENGINES) \
|
||||
and (game.physics_type in {'SENSOR', 'STATIC', 'DYNAMIC', 'RIGID_BODY', 'SOFT_BODY'})
|
||||
|
||||
def draw_header(self, context):
|
||||
game = context.active_object.game
|
||||
|
|
|
@ -1633,7 +1633,7 @@ static void rna_def_object_game_settings(BlenderRNA *brna)
|
|||
{OB_BODY_TYPE_DYNAMIC, "DYNAMIC", 0, "Dynamic", "Linear physics"},
|
||||
{OB_BODY_TYPE_RIGID, "RIGID_BODY", 0, "Rigid Body", "Linear and angular physics"},
|
||||
{OB_BODY_TYPE_SOFT, "SOFT_BODY", 0, "Soft Body", "Soft body"},
|
||||
{OB_BODY_TYPE_OCCLUDER, "OCCLUDE", 0, "Occlude", "Occluder for optimizing scene rendering"},
|
||||
{OB_BODY_TYPE_OCCLUDER, "OCCLUDER", 0, "Occluder", "Occluder for optimizing scene rendering"},
|
||||
{OB_BODY_TYPE_SENSOR, "SENSOR", 0, "Sensor",
|
||||
"Collision Sensor, detects static and dynamic objects but not the other "
|
||||
"collision sensor objects"},
|
||||
|
@ -1834,7 +1834,7 @@ static void rna_def_object_game_settings(BlenderRNA *brna)
|
|||
RNA_def_property_enum_sdna(prop, NULL, "collision_boundtype");
|
||||
RNA_def_property_enum_items(prop, collision_bounds_items);
|
||||
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Object_collision_bounds_itemf");
|
||||
RNA_def_property_ui_text(prop, "Collision Bounds", "Select the collision type");
|
||||
RNA_def_property_ui_text(prop, "Collision Shape", "Select the collision shape that better fits the object");
|
||||
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
|
||||
|
||||
prop = RNA_def_property(srna, "use_collision_compound", PROP_BOOLEAN, PROP_NONE);
|
||||
|
|
Loading…
Reference in New Issue