/* By Rama */ #pragma once //HTTP #include "Http.h" #include "Runtime/Engine/Classes/GameFramework/PlayerController.h" #include "VictoryPC.generated.h" DECLARE_LOG_CATEGORY_EXTERN(VictoryPCLog, Log, All); //Exposing the UE4 Subtitle system for Solus // <3 Rama USTRUCT(BlueprintType) struct FVictorySubtitleCue { GENERATED_USTRUCT_BODY() /** The text to appear in the subtitle. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SubtitleCue) FText SubtitleText; /** The time at which the subtitle is to be displayed, in seconds relative to the beginning of the line. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SubtitleCue) float Time; FVictorySubtitleCue() : Time(0) { } FVictorySubtitleCue(const FText& InText, float InTime) : SubtitleText(InText) , Time(InTime) {} }; UCLASS() class VICTORYBPLIBRARY_API AVictoryPC : public APlayerController { GENERATED_BODY() public: AVictoryPC(const FObjectInitializer& ObjectInitializer); /** * When the sound is played OnVictorySubtitlesQueued will be called with the subtitles! * You can bind an event off of the audio component for OnAudioFinished to know hwen the sound is done! */ UFUNCTION(Category="Victory Subtitles", BlueprintCallable, BlueprintCosmetic, meta=( UnsafeDuringActorConstruction = "true", Keywords = "play" )) UAudioComponent* VictoryPlaySpeechSound(class USoundBase* Sound, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f); UFUNCTION(Category="Victory Subtitles", BlueprintImplementableEvent) void OnVictorySubtitlesQueued(const TArray& VictorySubtitles, float CueDuration); UFUNCTION() void Subtitles_CPPDelegate(const TArray& VictorySubtitles, float CueDuration); public: /** This node relies on http://api.ipify.org, so if this node ever stops working, check out http://api.ipify.org. Returns false if the operation could not occur because HTTP module was not loaded or unable to process request. */ UFUNCTION(BlueprintCallable, Category="Victory PC") bool VictoryPC_GetMyIP_SendRequest(); /** Implement this event to receive your IP once the request is processed! This requires that your computer has a live internet connection */ UFUNCTION(BlueprintImplementableEvent, Category = "Victory PC", meta = (DisplayName = "Victory PC ~ GetMyIP ~ Data Received!")) void VictoryPC_GetMyIP_DataReceived(const FString& YourIP); void HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); };