// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "JournalPage.h" #include "JournalWidget.generated.h" /** * */ UCLASS(Blueprintable) class SURREALISM_API UJournalWidget : public UUserWidget { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Journal") TArray journal_pages; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Journal") int max_pages = 10; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Journal") int current_number_of_pages = 0; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Journal") int current_page_number = 0; UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void next_page(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void previous_page(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void go_to_page(int page_number); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void remove_page(int page_number); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") TArray get_current_page_entries_names(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") FString get_entry_description(FString entry_name); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") int add_page(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void add_to_journal(FString item_name, FString item_description); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void clear_journal(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") void print_current_page(); UFUNCTION(BlueprintCallable, CallInEditor, Category = "Journal") int get_current_page_number(); virtual void NativeConstruct() override; };