diff options
author | Ines Almeida <britalmeida@gmail.com> | 2015-02-27 14:11:49 +0300 |
---|---|---|
committer | Ines Almeida <britalmeida@gmail.com> | 2015-02-28 12:09:55 +0300 |
commit | 8bb3e2a3ea49fa9886897458720ac5acf299624e (patch) | |
tree | 4c97d9f0f12da05a55fa50f6ebd4ecfad8230c33 | |
parent | b00fecc85da19a25be571c6541dd76ea268af19d (diff) |
gameengine physics: moving collision filtering inside the collision panel and relabeling some parts
-rw-r--r-- | release/scripts/startup/bl_ui/properties_game.py | 28 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object.c | 4 |
2 files changed, 17 insertions, 15 deletions
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py index 2b229a4cf4f..32a8e734ab6 100644 --- a/release/scripts/startup/bl_ui/properties_game.py +++ b/release/scripts/startup/bl_ui/properties_game.py @@ -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 diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 51c011e474e..d8aa659b68e 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -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); |