1 #include "animation/layer_state.hpp"
2 #include "animation/transition_bool_condition.hpp"
3 #include "importers/import_stack.hpp"
4 #include "importers/state_machine_layer_importer.hpp"
5 #include "generated/animation/state_machine_layer_base.hpp"
6 #include "animation/state_transition.hpp"
7 #include "animation/system_state_instance.hpp"
11 LayerState::~LayerState()
13 for (auto transition : m_Transitions)
19 StatusCode LayerState::onAddedDirty(CoreContext* context)
22 for (auto transition : m_Transitions)
24 if ((code = transition->onAddedDirty(context)) != StatusCode::Ok)
29 return StatusCode::Ok;
32 StatusCode LayerState::onAddedClean(CoreContext* context)
35 for (auto transition : m_Transitions)
37 if ((code = transition->onAddedClean(context)) != StatusCode::Ok)
42 return StatusCode::Ok;
45 StatusCode LayerState::import(ImportStack& importStack)
47 auto layerImporter = importStack.latest<StateMachineLayerImporter>(
48 StateMachineLayerBase::typeKey);
49 if (layerImporter == nullptr)
51 return StatusCode::MissingObject;
53 layerImporter->addState(this);
54 return Super::import(importStack);
57 void LayerState::addTransition(StateTransition* transition)
59 m_Transitions.push_back(transition);
62 StateInstance* LayerState::makeInstance() const
64 return new SystemStateInstance(this);