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-06-01 02:35:22 +0400
committerNick Samarin <nicks1987@bigmir.net>2010-06-01 02:35:22 +0400
commit05b92f0fc90b5f2cd5d933f97df20c774b42479f (patch)
tree2f3870936365c1c727e19e2a44891d323d57b0dc /source/gameengine/Ketsji/KX_SteeringActuator.h
parentd7a701c2c5ffbe9313431c6367a264e54136accb (diff)
Added new actuator type for following steering behaviors: seek, flee, path following; renamed KX_Pathfinder to KX_NavMeshObject
Diffstat (limited to 'source/gameengine/Ketsji/KX_SteeringActuator.h')
-rw-r--r--source/gameengine/Ketsji/KX_SteeringActuator.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.h b/source/gameengine/Ketsji/KX_SteeringActuator.h
new file mode 100644
index 00000000000..fce2205ca6e
--- /dev/null
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.h
@@ -0,0 +1,95 @@
+/**
+* Add steering behaviors
+*
+*
+* $Id$
+*
+* ***** BEGIN GPL LICENSE BLOCK *****
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version. The Blender
+* Foundation also sells licenses for use in proprietary software under
+* the Blender License. See http://www.blender.org/BL/ for information
+* about this.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+* All rights reserved.
+*
+* The Original Code is: all of this file.
+*
+* Contributor(s): none yet.
+*
+* ***** END GPL LICENSE BLOCK *****
+*/
+
+#ifndef __KX_STEERINGACTUATOR
+#define __KX_STEERINGACTUATOR
+
+#include "SCA_IActuator.h"
+#include "SCA_LogicManager.h"
+
+class KX_GameObject;
+class KX_NavMeshObject;
+
+class KX_SteeringActuator : public SCA_IActuator
+{
+ Py_Header;
+
+ /** Target object */
+ KX_GameObject *m_target;
+ KX_NavMeshObject *m_navmesh;
+
+ int m_mode;
+ MT_Scalar m_distance;
+ MT_Scalar m_movement;
+public:
+ enum KX_STEERINGACT_MODE
+ {
+ KX_STEERING_NODEF = 0,
+ KX_STEERING_SEEK,
+ KX_STEERING_FLEE,
+ KX_STEERING_PATHFOLLOWING,
+ KX_STEERING_MAX
+ };
+
+ KX_SteeringActuator(class SCA_IObject* gameobj,
+ int mode,
+ KX_GameObject *target,
+ KX_GameObject *navmesh,
+ MT_Scalar movement,
+ MT_Scalar distance);
+ virtual ~KX_SteeringActuator();
+ virtual bool Update();
+
+ virtual CValue* GetReplica();
+ virtual void ProcessReplica();
+ virtual void Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map);
+ virtual bool UnlinkObject(SCA_IObject* clientobj);
+
+#ifndef DISABLE_PYTHON
+
+ /* --------------------------------------------------------------------- */
+ /* Python interface ---------------------------------------------------- */
+ /* --------------------------------------------------------------------- */
+
+ /* These are used to get and set m_target */
+ static PyObject* pyattr_get_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+
+#endif // DISABLE_PYTHON
+
+}; /* end of class KX_SteeringActuator : public SCA_PropertyActuator */
+
+#endif
+