class AInsertAction

#include <InsertAction.h>

class AInsertAction: public ABasePrototype
{
public:
    // methods

    virtual void Initialize();
    virtual void Undo();
    virtual void Perform();

    void SetInsertPrefab(
        TSubclassOf<AActor> InsertBlueprint,
        TSubclassOf<AActor> FinalBlueprint,
        AActor* InsertBlueprintAttachActor = nullptr,
        USceneComponent* InsertBlueprintAttachComponent = nullptr,
        FName InsertBlueprintSocketName = NAME_None,
        AActor* FinalBlueprintAttachActor = nullptr,
        USceneComponent* FinalBlueprintAttachComponent = nullptr,
        FName FinalBlueprintSocketName = NAME_None
        );
};

// direct descendants

class ABPInsertAction;

Inherited Members

public:
    // classes

    class InstrumentTransforms;

    // fields

    TArray<FORamaVR> afterSpawnFunctions;
    TMap<AActor*, UAnimSequence*> CharacterAnimationsMap;
    TMap<AActor*, UAnimSequence*> CharacterUndoAnimations;
    TArray<AActor*> BoundActorCharacterAnimated;
    USceneComponent* _rootComp;
    int OverrideSetPath = -1;
    int AlternativePath = -1;
    FString ActionName = TEXT("");

    // methods

    FString GetActionName();
    void SetActioName();
    AAction* GetActionNode();
    void SetActionNode();
    int32 GetAlternativePath();
    void SetAlternativePath();
    virtual void Perform() = 0;
    virtual void Undo() = 0;
    virtual void Initialize() = 0;
    virtual void InitializeHolograms() = 0;
    virtual void DifficultyRestrictions() = 0;
    virtual void SetNextModule(FORamaVR action) = 0;
    virtual void SetNextModulePath(FORamaVRSetPath Action, int pathToSet) = 0;
    virtual void Initialize();
    virtual void Perform();
    virtual void Undo();
    virtual void InitializeHolograms();
    void SetAfterSpawn(FORamaVR afterSpawnFunction);
    void SetUndoAction(FORamaVR undoActionFunction);

    void SetPerformAction(
        FORamaVR performActionFunction,
        int numOfTriggerToPlay = -1
        );

    void BindCharacterAnimationToPerform(
        TSubclassOf<AActor> Actor,
        UAnimSequence* seq
        );

    void BindCharacterAnimationOnUndo(TSubclassOf<AActor> Actor, UAnimSequence* seq);
    virtual void DifficultyRestrictions();
    virtual void ActionCall();
    void SetEventListener(FString _event);

    void SetHologramObject(
        TSubclassOf<AActor> Class,
        AActor* AttachActor = nullptr,
        USceneComponent* AttachParent = nullptr,
        FName SocketName = NAME_None
        );

    virtual void SetNextModule(FORamaVR action);
    virtual void SetNextModulePath(FORamaVRSetPath Action, int pathToSet);
    FString GetClassName() const;