blob: 9513eb72a8a7556ca7f3175953c6c261b735b774 [file] [log] [blame]
#include "rive/generated/animation/state_machine_fire_event_base.hpp"
#include "rive/animation/state_machine_fire_event.hpp"
#include "rive/animation/state_machine_layer_component.hpp"
#include "rive/animation/state_machine_instance.hpp"
#include "rive/event.hpp"
#include "rive/importers/state_machine_layer_component_importer.hpp"
using namespace rive;
StatusCode StateMachineFireEvent::import(ImportStack& importStack)
{
auto stateImporter =
importStack.latest<StateMachineLayerComponentImporter>(StateMachineLayerComponent::typeKey);
if (stateImporter == nullptr)
{
return StatusCode::MissingObject;
}
stateImporter->addFireEvent(this);
return Super::import(importStack);
}
void StateMachineFireEvent::perform(StateMachineInstance* stateMachineInstance) const
{
auto coreEvent = stateMachineInstance->artboard()->resolve(eventId());
if (coreEvent == nullptr || !coreEvent->is<Event>())
{
return;
}
stateMachineInstance->reportEvent(coreEvent->as<Event>());
}