A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
StoryScript.cpp
Go to the documentation of this file.
1// Copyright(c) 2018 PixoVR, LLC. All Rights Reserved.
2
3
4#include "Story/StoryScript.h"
5
7#include "Kismet/GameplayStatics.h"
9
10void UStoryScript::ExecuteScript_Implementation(AActor* Instigator)
11{
12 CurrentInstigator = Instigator;
13}
14
15void UStoryScript::ScriptInitialization_Implementation()
16{
17 if (GetWorld())
18 {
19 GameModeRef = GetWorld()->GetAuthGameMode();
20 PlayerPawnRef = UGameplayStatics::GetPlayerPawn(GetWorld(), 0);
21 GameManagerRef = Cast<UGameManager>(IPixoCoreInterface::Execute_GetManagerRef(GameModeRef, UGameManager::StaticClass()));
22 }
23}
24
25void UStoryScript::GetAllActorsOfClass(TSubclassOf<AActor> ActorClass, TArray<AActor*>& OutActors)
26{
27 if (UWorld* World = GetWorld())
28 {
29 UGameplayStatics::GetAllActorsOfClass(World, ActorClass, OutActors);
30 }
31}
32
33ABaseStoryActor* UStoryScript::SpawnStoryActorWithSpecificSteps(TSubclassOf<ABaseStoryActor> ActorClass, FTransform SpawnTransform, TArray<FText> ActiveSteps, TArray<FText> HighlightSteps)
34{
35 if (GetWorld())
36 {
37 // Begin deferred actor spawn
38 ABaseStoryActor* SpawnedActor = GetWorld()->SpawnActorDeferred<ABaseStoryActor>(ActorClass, SpawnTransform);
39
40 if (SpawnedActor)
41 {
42 SpawnedActor->Story->ActiveSteps = ActiveSteps;
43 SpawnedActor->HighlightComponent->HighlightActiveOnSteps = HighlightSteps;
44 SpawnedActor->FinishSpawning(SpawnTransform);
45 }
46 else
47 {
48 UE_LOG(LogTemp, Error, TEXT("StoryScript - SpawnStoryActorWithSpecificSteps failed"));
49 return nullptr;
50 }
51 return SpawnedActor;
52 }
53 else
54 {
55 UE_LOG(LogTemp, Error, TEXT("StoryScript - SpawnStoryActorWithSpecificSteps failed"));
56 return nullptr;
57 }
58}
Base class for story actors.
UStoryComponent * Story
UPROPERTY(BlueprintReadWrite, EditAnywhere)
UHighlightComponent * HighlightComponent
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray< FText > HighlightActiveOnSteps
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Highlight")
TArray< FText > ActiveSteps
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Story|Setup")
AActor * CurrentInstigator
UPROPERTY(BlueprintReadWrite, Category = "Script")
APawn * PlayerPawnRef
UPROPERTY(BlueprintReadWrite, Category = "Script")
UGameManager * GameManagerRef
UPROPERTY(BlueprintReadWrite, Category = "Script")
AGameModeBase * GameModeRef
UPROPERTY(BlueprintReadWrite, Category = "Script")
void GetAllActorsOfClass(TSubclassOf< AActor > ActorClass, TArray< AActor * > &OutActors)
Analogue to engine functions GetAllActorsOfClass.
ABaseStoryActor * SpawnStoryActorWithSpecificSteps(TSubclassOf< ABaseStoryActor > ActorClass, FTransform SpawnTransform, TArray< FText > ActiveSteps, TArray< FText > HighlightSteps)
Spawns a story actor with specific steps.