Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-06-20 10:06:13 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-06-20 10:06:13 +0400
commit3511d72488501640fb9b38daff7cfed35e5beed2 (patch)
treea9738a5383f569dd61e004dbd30432bba37c6b0a
parent7785ead4eb64f9702d7a59060e73b3e121e674a7 (diff)
game logic UI script, physics could be broken up into more panels.
-rw-r--r--release/ui/space_logic.py80
-rw-r--r--source/blender/makesrna/intern/rna_object.c43
2 files changed, 123 insertions, 0 deletions
diff --git a/release/ui/space_logic.py b/release/ui/space_logic.py
new file mode 100644
index 00000000000..71d94c86bf3
--- /dev/null
+++ b/release/ui/space_logic.py
@@ -0,0 +1,80 @@
+import bpy
+
+class LOGIC_PT_physics(bpy.types.Panel):
+ __space_type__ = "LOGIC_EDITOR"
+ __region_type__ = "UI"
+ __label__ = "Physics"
+
+ def draw(self, context):
+ layout = self.layout
+ ob = context.active_object
+
+ game = ob.game
+
+ flow = layout.column_flow()
+ flow.active = True
+ flow.itemR(game, "physics_type")
+ flow.itemR(game, "actor")
+
+ row = layout.row()
+ row.itemR(game, "ghost")
+ row.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
+
+ flow = layout.column_flow()
+ flow.itemR(game, "mass")
+ flow.itemR(game, "radius")
+ flow.itemR(game, "no_sleeping")
+ flow.itemR(game, "damping")
+ flow.itemR(game, "rotation_damping")
+ flow.itemR(game, "minimum_velocity")
+ flow.itemR(game, "maximum_velocity")
+
+ row = layout.row()
+ row.itemR(game, "do_fh")
+ row.itemR(game, "rotation_fh")
+
+ flow = layout.column_flow()
+ flow.itemR(game, "form_factor")
+ flow.itemR(game, "anisotropic_friction")
+
+ flow = layout.column_flow()
+ flow.active = game.anisotropic_friction
+ flow.itemR(game, "friction_coefficients")
+
+ split = layout.split()
+ sub = split.column()
+ sub.itemR(game, "lock_x_axis")
+ sub.itemR(game, "lock_y_axis")
+ sub.itemR(game, "lock_z_axis")
+ sub = split.column()
+ sub.itemR(game, "lock_x_rot_axis")
+ sub.itemR(game, "lock_y_rot_axis")
+ sub.itemR(game, "lock_z_rot_axis")
+
+
+class LOGIC_PT_collision_bounds(bpy.types.Panel):
+ __space_type__ = "LOGIC_EDITOR"
+ __region_type__ = "UI"
+ __label__ = "Collision Bounds"
+
+ def draw_header(self, context):
+ layout = self.layout
+ ob = context.active_object
+ game = ob.game
+
+ layout.itemR(game, "use_collision_bounds", text="")
+
+ def draw(self, context):
+ layout = self.layout
+
+ ob = context.scene.objects[0]
+ game = ob.game
+
+ flow = layout.column_flow()
+ flow.active = game.use_collision_bounds
+ flow.itemR(game, "collision_bounds")
+ flow.itemR(game, "collision_compound")
+ flow.itemR(game, "collision_margin")
+
+bpy.types.register(LOGIC_PT_physics)
+bpy.types.register(LOGIC_PT_collision_bounds)
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index ff9777d283e..435a9e0f0a4 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -522,6 +522,49 @@ static void rna_def_object_game_settings(BlenderRNA *brna)
RNA_def_property_range(prop, 0.0, 1.0);
RNA_def_property_ui_text(prop, "Rotation Damping", "General rotation damping.");
+ prop= RNA_def_property(srna, "minimum_velocity", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "min_vel");
+ RNA_def_property_range(prop, 0.0, 1000.0);
+ RNA_def_property_ui_text(prop, "Velocity Min", "Clamp velocity to this minimum speed (except when totally still).");
+
+ prop= RNA_def_property(srna, "maximum_velocity", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "max_vel");
+ RNA_def_property_range(prop, 0.0, 1000.0);
+ RNA_def_property_ui_text(prop, "Velocity Max", "Clamp velocity to this maximum speed.");
+
+ /* lock position */
+ prop= RNA_def_property(srna, "lock_x_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_X_AXIS);
+ RNA_def_property_ui_text(prop, "Lock X Axis", "Disable simulation of linear motion along the X axis.");
+
+ prop= RNA_def_property(srna, "lock_y_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_Y_AXIS);
+ RNA_def_property_ui_text(prop, "Lock Y Axis", "Disable simulation of linear motion along the Y axis.");
+
+ prop= RNA_def_property(srna, "lock_z_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_Z_AXIS);
+ RNA_def_property_ui_text(prop, "Lock Z Axis", "Disable simulation of linear motion along the Z axis.");
+
+
+ /* lock rotation */
+ prop= RNA_def_property(srna, "lock_x_rot_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_X_ROT_AXIS);
+ RNA_def_property_ui_text(prop, "Lock X Rotation Axis", "Disable simulation of angular motion along the X axis.");
+
+ prop= RNA_def_property(srna, "lock_y_rot_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_Y_ROT_AXIS);
+ RNA_def_property_ui_text(prop, "Lock Y Rotation Axis", "Disable simulation of angular motion along the Y axis.");
+
+ prop= RNA_def_property(srna, "lock_z_rot_axis", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "gameflag2", OB_LOCK_RIGID_BODY_Z_ROT_AXIS);
+ RNA_def_property_ui_text(prop, "Lock Z Rotation Axis", "Disable simulation of angular motion along the Z axis.");
+
+ /* is this used anywhere ? */
+ prop= RNA_def_property(srna, "use_activity_culling", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "gameflag2", OB_NEVER_DO_ACTIVITY_CULLING);
+ RNA_def_property_ui_text(prop, "Lock Z Rotation Axis", "Disable simulation of angular motion along the Z axis.");
+
+
prop= RNA_def_property(srna, "do_fh", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "gameflag", OB_DO_FH);
RNA_def_property_ui_text(prop, "Do Fh", "Use Fh settings in materials.");