#pragma once #pragma region CPL License /* Nuclex Unreal Module Copyright (C) 2014-2021 Nuclex Development Labs This library is free software; you can redistribute it and/or modify it under the terms of the IBM Common Public License as published by the IBM Corporation; either version 1.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the IBM Common Public License for more details. You should have received a copy of the IBM Common Public License along with this library */ #pragma endregion // CPL License #include #include #include "ButtonControllableDialog.h" #include "DialogInputSource.generated.h" // --------------------------------------------------------------------------------------------- // // This class does not need to be modified. UINTERFACE(MinimalAPI, BlueprintType) class UDialogInputSource : public UInterface { GENERATED_BODY() }; // --------------------------------------------------------------------------------------------- // /// Implemented by player controllers and other actors capable of generating dialog input class NUCLEX_API IDialogInputSource { GENERATED_BODY() /// Retrieves the dialog to which input is currently being sent /// @returns The dialog currently receiving input from this source public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="UI") const TScriptInterface GetActiveDialog(); /// Enables dialog input targeting the specified dialog (or switches to this dialog) /// @param newDialog Dialog that will be receiving input from this source public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="UI") void BeginDialogInput(const TScriptInterface &newDialog); /// Returns the player controller to non-dialog input mode public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="UI") void EndDialogInput(); /* /// Changes the dialog to which the input source will send input /// @param newDialog Dialog that will be receiving input from this source public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="UI") void SetActiveDialog(const TScriptInterface &newDialog); */ }; // --------------------------------------------------------------------------------------------- //