bool BL_ActionManager::PlayAction(const char* name, float start, float end, short layer, short priority, float blendin, short play_mode, float layer_weight, short ipo_flags, float playback_speed, short blend_mode) { // Only this method will create layer if non-existent BL_Action *action = GetAction(layer); if (!action) { action = new BL_Action(m_obj); m_layers[layer] = action; } // Disable layer blending on the first layer if (layer == 0) layer_weight = -1.f; return action->Play(name, start, end, priority, blendin, play_mode, layer_weight, ipo_flags, playback_speed, blend_mode); }
void BL_ActionManager::SetTimes(short layer, float start, float end) { BL_Action *action = GetAction(layer); if (action) action->SetTimes(start, end); }
struct bAction *BL_ActionManager::GetCurrentAction(short layer) { BL_Action *action = GetAction(layer); return action ? action->GetAction() : 0; }
void BL_ActionManager::SetPlayMode(short layer, short mode) { BL_Action *action = GetAction(layer); if (action) action->SetPlayMode(mode); }
void BL_ActionManager::SetActionFrame(short layer, float frame) { BL_Action *action = GetAction(layer); if (action) action->SetFrame(frame); }
const char *BL_ActionManager::GetActionName(short layer) { BL_Action *action = GetAction(layer); return action ? action->GetName() : ""; }
float BL_ActionManager::GetActionFrame(short layer) { BL_Action *action = GetAction(layer); return action ? action->GetFrame() : 0.f; }
bool BL_ActionManager::IsActionDone(short layer) { BL_Action *action = GetAction(layer); return action ? action->IsDone() : true; }
const std::string BL_ActionManager::GetActionName(short layer) { BL_Action *action = GetAction(layer); return action ? action->GetName() : ""; }