Revision: 37061
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37061
Author:   moguri
Date:     2011-06-01 05:46:19 +0000 (Wed, 01 Jun 2011)
Log Message:
-----------
BGE Animations: Adding more functions to BL_ActionManager and KX_GameObject:
  BL_ActionManager:
    * IsActionDone(short layer) - Checks to see if the animation on the given 
layer has finished.

  KX_GameObject:
    * PlayAction(...) - Adds an action to the object's action manager
    * StopAction(short layer) - Remove an action from the object's action 
manager
    * IsActionDone(short layer) - Check if an action has finished playing

Modified Paths:
--------------
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.h
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.cpp      
2011-06-01 05:40:48 UTC (rev 37060)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.cpp      
2011-06-01 05:46:19 UTC (rev 37061)
@@ -66,6 +66,14 @@
        m_layers[layer] = 0;
 }
 
+bool BL_ActionManager::IsActionDone(short layer)
+{
+       if (m_layers[layer])
+               return m_layers[layer]->IsDone();
+
+       return true;
+}
+
 void BL_ActionManager::Update(float curtime)
 {
        for (int i=0; i<MAX_ACTION_LAYERS; ++i)

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.h
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.h        
2011-06-01 05:40:48 UTC (rev 37060)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/BL_ActionManager.h        
2011-06-01 05:46:19 UTC (rev 37061)
@@ -53,6 +53,7 @@
                                        float playback_speed=1.f);
 
        void StopAction(short layer);
+       bool IsActionDone(short layer);
        void Update(float);
 #ifdef WITH_CXX_GUARDEDALLOC
 public:

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp 
2011-06-01 05:40:48 UTC (rev 37060)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp 
2011-06-01 05:46:19 UTC (rev 37061)
@@ -352,6 +352,28 @@
        }
 }
 
+void KX_GameObject::PlayAction(const char* name,
+                                                               float start,
+                                                               float end,
+                                                               short layer,
+                                                               float blendin,
+                                                               short play_mode,
+                                                               short 
blend_mode,
+                                                               float 
playback_speed)
+{
+       m_actionManager->PlayAction(this, name, start, end, layer, blendin, 
play_mode, blend_mode, playback_speed);
+}
+
+void KX_GameObject::StopAction(short layer)
+{
+       m_actionManager->StopAction(layer);
+}
+
+bool KX_GameObject::IsActionDone(short layer)
+{
+       return m_actionManager->IsActionDone(layer);
+}
+
 void KX_GameObject::UpdateActionManager(float curtime)
 {
        m_actionManager->Update(curtime);
@@ -3024,7 +3046,7 @@
                blend_mode = BL_Action::ACT_BLEND_NONE;
        }
 
-       m_actionManager->PlayAction(this, name, start, end, layer, blendin, 
play_mode, blend_mode, speed);
+       PlayAction(name, start, end, layer, blendin, play_mode, blend_mode, 
speed);
 
        Py_RETURN_NONE;
 }

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h   
2011-06-01 05:40:48 UTC (rev 37060)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h   
2011-06-01 05:46:19 UTC (rev 37061)
@@ -203,6 +203,28 @@
        void RemoveParent(KX_Scene *scene);
 
        /**
+        * Adds an action to the object's action manager
+        */
+       void PlayAction(const char* name,
+                                       float start,
+                                       float end,
+                                       short layer=0,
+                                       float blendin=0.f,
+                                       short play_mode=0,
+                                       short blend_mode=0,
+                                       float playback_speed=1.f);
+
+       /**
+        * Remove an action from the object's action manager
+        */
+       void StopAction(short layer);
+
+       /**
+        * Check if an action has finished playing
+        */
+       bool IsActionDone(short layer);
+
+       /**
         * Kick the object's action manager
         */
        void UpdateActionManager(float curtime);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to