#include "Scene/ProjectEventFlowNodeFactory.h"

#include "Library/Event/CreateEventFlowNode.h"
#include "Library/Event/EventFlowNodeActionLoop.h"

const al::NameToCreator<al::EventFlowNodeCreatorFunction> sProjectEventFlowNodeFactoryEntries[] = {
    {"ActionLoop", al::createEventFlowNode<al::EventFlowNodeActionLoop>},
    {"ActionOneTime", nullptr},
    {"ActorBaseMovementEnd", nullptr},
    {"ActorBaseMovementStart", nullptr},
    {"ActorKill", nullptr},
    {"AmiiboTouchLayout", nullptr},
    {"AnimCameraStart", nullptr},
    {"AppearMapAmiiboHint", nullptr},
    {"BgmCtrl", nullptr},
    {"BindKeepDemoStart", nullptr},
    {"CameraEnd", nullptr},
    {"CameraStart", nullptr},
    {"CapMessage", nullptr},
    {"CapManHeroTalkSetDemoStartPose", nullptr},
    {"CapManHeroTalkAppear", nullptr},
    {"CapManHeroTalkFocus", nullptr},
    {"CapManHeroTalkPlayerTurn", nullptr},
    {"CapManHeroTalkReturn", nullptr},
    {"CapManHeroTalkSetDemoEndPose", nullptr},
    {"ChangeStage", nullptr},
    {"ChangeWorldDemoMessage", nullptr},
    {"CheckClear3CollectBgm", nullptr},
    {"CheckCompleteCollectBgm", nullptr},
    {"CheckCostume", nullptr},
    {"CheckCostumeInvisible", nullptr},
    {"CheckCostumeMissMatchPart", nullptr},
    {"CheckCostumePair", nullptr},
    {"CheckCount", nullptr},
    {"CheckFirstTalkCollectBgm", nullptr},
    {"CheckFlag", nullptr},
    {"CheckGetLinkShine", nullptr},
    {"CheckLifeUpItem", nullptr},
    {"CheckLink", nullptr},
    {"CheckMoonLockOpened", nullptr},
    {"CheckOpenDoorSnow", nullptr},
    {"CheckPlayingCollectBgm", nullptr},
    {"CheckPlayerOnGround", nullptr},
    {"CheckYukimaruRaceResult", nullptr},
    {"CheckSwitch", nullptr},
    {"CheckWaitSwitch", nullptr},
    {"CloseTalkMessage", nullptr},
    {"CoinPayment", nullptr},
    {"CutSceneDemoStart", nullptr},
    {"DemoAction", nullptr},
    {"DemoCamera", nullptr},
    {"DemoEnd", nullptr},
    {"DemoForceStartOnGround", nullptr},
    {"DemoForceStart", nullptr},
    {"DemoPlayerAction", nullptr},
    {"DemoPlayerHide", nullptr},
    {"DemoPlayerShow", nullptr},
    {"DemoResetPlayerDynamics", nullptr},
    {"DemoStart", nullptr},
    {"DirectGetLinkShine", nullptr},
    {"EnableHint", nullptr},
    {"Event", nullptr},
    {"EventQuery", nullptr},
    {"FirstTalkEndCollectBgmNpc", nullptr},
    {"Fork", nullptr},
    {"ForcePutOnDemoCap", nullptr},
    {"GetAmiiboCostume", nullptr},
    {"GetAmiiboNotSearchHintNum", nullptr},
    {"GetCollectBgmBonus01", nullptr},
    {"GetCollectBgmBonus02", nullptr},
    {"GetSearchAmiibo", nullptr},
    {"HitReaction", nullptr},
    {"IsCostumeAmiibo", nullptr},
    {"IsEnableSearchAmiibo", nullptr},
    {"IsTalkAmiiboHelp", nullptr},
    {"KakkuTurn", nullptr},
    {"Join", nullptr},
    {"JumpEntry", nullptr},
    {"MessageBalloon", nullptr},
    {"MessageTalk", nullptr},
    {"MessageTalkSpecialPurpose", nullptr},
    {"NextTalkMessage", nullptr},
    {"NormalDemoTryStart", nullptr},
    {"NpcMoveToLink", nullptr},
    {"OpenBgmList", nullptr},
    {"PlayerAction", nullptr},
    {"PlayerTurn", nullptr},
    {"PopItem", nullptr},
    {"PopLinkShine", nullptr},
    {"QueryJudge", nullptr},
    {"ReplacePlayer", nullptr},
    {"SceneWipeClose", nullptr},
    {"SelectChoice", nullptr},
    {"SelectYesNo", nullptr},
    {"SessionWaitMusician", nullptr},
    {"SetDemoInfoDemoName", nullptr},
    {"SwitchOn", nullptr},
    {"SwitchOff", nullptr},
    {"TurnToPlayer", nullptr},
    {"TurnToPlayerActionOneTime", nullptr},
    {"TurnToPreDir", nullptr},
    {"UnlockHint", nullptr},
    {"WaitWipeOpenEnd", nullptr},
    {"WaitSimple", nullptr},
    {"WipeFadeBlackClose", nullptr},
    {"WipeFadeBlackOpen", nullptr}};

ProjectEventFlowNodeFactory::ProjectEventFlowNodeFactory() : EventFlowNodeFactory() {
    initFactory(sProjectEventFlowNodeFactoryEntries);
}
