Files
Unreal_EmberWild/Source/Survival_projet/Public/CraftingRecipeBook.h
T
2026-07-30 23:08:33 +02:00

41 lines
1.4 KiB
C++

// 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 SURVIVAL_PROJET_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<TObjectPtr<UCraftingRecipeDataAsset>> 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<TObjectPtr<UCraftingRecipeDataAsset>>& GetRecipes() const { return Recipes; }
#if WITH_EDITOR
virtual EDataValidationResult IsDataValid(class FDataValidationContext& Context) const override;
#endif
};