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:
authorNick Samarin <nicks1987@bigmir.net>2010-08-15 16:58:13 +0400
committerNick Samarin <nicks1987@bigmir.net>2010-08-15 16:58:13 +0400
commitb822f0bb7a756ea48a035161db9576ec768098ee (patch)
tree3471c07286f75cdb200d68d57e3e7228eb634c26 /source/blender
parent3a8f3dd3f5e843ef8abad41996ebe5f7041e3807 (diff)
added option for automatic facing in steering actuator
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/sca.c2
-rw-r--r--source/blender/editors/space_logic/logic_window.c6
-rw-r--r--source/blender/makesdna/DNA_actuator_types.h4
-rw-r--r--source/blender/makesrna/intern/rna_actuator.c21
4 files changed, 32 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c
index 6ff15b31cc0..91c052bcbda 100644
--- a/source/blender/blenkernel/intern/sca.c
+++ b/source/blender/blenkernel/intern/sca.c
@@ -472,6 +472,8 @@ void init_actuator(bActuator *act)
sta->turnspeed = 120.f;
sta->dist = 1.f;
sta->velocity= 3.f;
+ sta->flag = ACT_STEERING_AUTOMATICFACING;
+ sta->facingaxis = 1;
default:
; /* this is very severe... I cannot make any memory for this */
/* logic brick... */
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 76e210e7549..929a29974de 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -4348,6 +4348,12 @@ static void draw_actuator_steering(uiLayout *layout, PointerRNA *ptr)
uiItemR(row, ptr, "acceleration", 0, NULL, 0);
uiItemR(row, ptr, "turnspeed", 0, NULL, 0);
row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "facing", 0, NULL, 0);
+ if (RNA_boolean_get(ptr, "facing"))
+ {
+ uiItemR(row, ptr, "facingaxis", 0, NULL, 0);
+ }
+ row = uiLayoutRow(layout, 0);
uiItemR(row, ptr, "selfterminated", 0, NULL, 0);
if (RNA_enum_get(ptr, "mode")==ACT_STEERING_PATHFOLLOWING)
{
diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h
index 627335a7666..4caee19e399 100644
--- a/source/blender/makesdna/DNA_actuator_types.h
+++ b/source/blender/makesdna/DNA_actuator_types.h
@@ -224,8 +224,9 @@ typedef struct bArmatureActuator {
} bArmatureActuator;
typedef struct bSteeringActuator {
- char pad[7];
+ char pad[5];
char flag;
+ short facingaxis;
int type; /* 0=seek, 1=flee, 2=path following */
float dist;
float velocity;
@@ -525,6 +526,7 @@ typedef struct bActuator {
/* steeringactuator->flag */
#define ACT_STEERING_SELFTERMINATED 1
#define ACT_STEERING_ENABLEVISUALIZATION 2
+#define ACT_STEERING_AUTOMATICFACING 4
#endif
diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c
index 4a5596f7a5e..16c640b8695 100644
--- a/source/blender/makesrna/intern/rna_actuator.c
+++ b/source/blender/makesrna/intern/rna_actuator.c
@@ -1892,6 +1892,15 @@ static void rna_def_steering_actuator(BlenderRNA *brna)
{ACT_STEERING_PATHFOLLOWING, "PATHFOLLOWING", 0, "Path following", ""},
{0, NULL, 0, NULL, NULL}};
+ static EnumPropertyItem facingaxis_items[] ={
+ {1, "X", 0, "X", ""},
+ {2, "Y", 0, "Y", ""},
+ {3, "Z", 0, "Z", ""},
+ {4, "-X", 0, "-X", ""},
+ {5, "-Y", 0, "-Y", ""},
+ {6, "-Z", 0, "-Z", ""},
+ {0, NULL, 0, NULL, NULL}};
+
srna= RNA_def_struct(brna, "SteeringActuator", "Actuator");
RNA_def_struct_ui_text(srna, "Steering Actuator", "");
RNA_def_struct_sdna_from(srna, "bSteeringActuator", "data");
@@ -1956,6 +1965,18 @@ static void rna_def_steering_actuator(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "NavMesh Object", "Navigation mesh");
RNA_def_property_pointer_funcs(prop, NULL, "rna_SteeringActuator_navmesh_set", NULL, NULL);
RNA_def_property_update(prop, NC_LOGIC, NULL);
+
+ prop= RNA_def_property(srna, "facing", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_STEERING_AUTOMATICFACING);
+ RNA_def_property_ui_text(prop, "Facing", "Enable automatic facing");
+ RNA_def_property_update(prop, NC_LOGIC, NULL);
+
+ prop= RNA_def_property(srna, "facingaxis", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "facingaxis");
+ RNA_def_property_enum_items(prop, facingaxis_items);
+ RNA_def_property_ui_text(prop, "Axis", "Axis for automatic facing");
+ RNA_def_property_update(prop, NC_LOGIC, NULL);
+
}
void RNA_def_actuator(BlenderRNA *brna)