Import initial du projet Survival (UE 5.8)

Boucle de jeu complète : récolte, inventaire, consommation, stats de survie,
mort et respawn. Gameplay en C++, Blueprints réservés au câblage d'assets.

Assets binaires (.uasset, .umap, textures, audio) suivis via Git LFS.
Binaries/, Intermediate/, Saved/ et DerivedDataCache/ sont ignorés :
régénérés au build, ils pèsent 3 Go pour 1,3 Go de contenu utile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-28 11:29:07 +02:00
commit ed7c7fd991
2626 changed files with 14833 additions and 0 deletions
@@ -0,0 +1,85 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "ConfirmDialogWidget.generated.h"
class UButton;
class UTextBlock;
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnConfirmDialogConfirmed);
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnConfirmDialogCancelled);
/**
* Boite de dialogue "es-tu sur ?", volontairement generique.
*
* Elle ne sait pas ce qu'elle confirme : elle pose la question et previent via
* ses delegues. C'est l'appelant qui decide de l'action. Ainsi la meme boite
* servira pour quitter, effacer une sauvegarde ou abandonner une partie.
*
* Classe Abstract : on cree un WBP_ConfirmDialog qui en herite.
*/
UCLASS(Abstract)
class SURVIVAL_PROJET_API UConfirmDialogWidget : public UUserWidget
{
GENERATED_BODY()
public:
UConfirmDialogWidget(const FObjectInitializer& ObjectInitializer);
virtual void NativeConstruct() override;
virtual void NativeDestruct() override;
virtual FReply NativeOnKeyDown(const FGeometry& InGeometry, const FKeyEvent& InKeyEvent) override;
UPROPERTY(BlueprintAssignable, Category = "Dialogue")
FOnConfirmDialogConfirmed OnConfirmed;
UPROPERTY(BlueprintAssignable, Category = "Dialogue")
FOnConfirmDialogCancelled OnCancelled;
/**
* Affiche la boite et lui donne le focus clavier.
*
* Passe par ici et jamais par SetVisibility directement : sans le focus,
* la boite ne recevrait aucune touche et Echap resterait sans effet.
*/
UFUNCTION(BlueprintCallable, Category = "Dialogue")
void Open(const FText& InMessage);
/** Referme la boite. Ne previent personne : l'appelant sait ce qu'il fait. */
UFUNCTION(BlueprintCallable, Category = "Dialogue")
void Close();
protected:
/** Echap equivaut a cliquer Annuler. Decoche pour une question incontournable. */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Dialogue")
bool bCancelOnEscape = true;
/**
* Entree equivaut a cliquer Confirmer.
*
* Desactive par defaut, volontairement : sur une question destructrice, un
* joueur qui martele Entree validerait sans avoir lu.
*/
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Dialogue")
bool bConfirmOnEnter = false;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> ConfirmButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> CancelButton;
/** Optionnel : une boite dont le texte est fige dans le Blueprint reste valide. */
UPROPERTY(meta = (BindWidgetOptional))
TObjectPtr<UTextBlock> MessageText;
private:
UFUNCTION()
void HandleConfirmClicked();
UFUNCTION()
void HandleCancelClicked();
};