// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "CraftingRecipeBook.generated.h" class UCraftingRecipeDataAsset; /** * La liste ordonnee des recettes du jeu. * * Un catalogue plutot qu'un scan de l'AssetManager : le contenu est * deterministe, rien ne se charge par surprise au runtime, et surtout l'ORDRE * d'affichage de la grille devient une donnee de design qu'on regle a la * souris. Un scan d'assets rendrait cet ordre dependant du nom des fichiers. * * Un catalogue plutot qu'une liste posee sur le composant, aussi : un etabli * devra pointer son propre livre, et le pawn n'a pas a etre l'endroit ou vit * la table de craft du jeu. */ UCLASS(BlueprintType) class EMBERWILD_API UCraftingRecipeBook : public UPrimaryDataAsset { GENERATED_BODY() public: /** L'ordre de ce tableau est l'ordre d'affichage dans la grille de craft. */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Crafting") TArray> Recipes; // Pas de UFUNCTION ici : UHT refuse un TObjectPtr en valeur de retour. Le // Blueprint lit de toute facon Recipes directement, c'est une UPROPERTY. const TArray>& GetRecipes() const { return Recipes; } #if WITH_EDITOR virtual EDataValidationResult IsDataValid(class FDataValidationContext& Context) const override; #endif };