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:
@@ -0,0 +1,73 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "SurvivalStatsWidget.generated.h"
|
||||
|
||||
class UProgressBar;
|
||||
class USurvivalStatsComponent;
|
||||
|
||||
/**
|
||||
* Les trois jauges de survie : vie, faim, soif.
|
||||
*
|
||||
* Aucun Tick : le widget s'abonne a OnStatsChanged, qui ne se declenche
|
||||
* qu'une fois par seconde ou lors d'une consommation.
|
||||
*/
|
||||
UCLASS(Abstract)
|
||||
class SURVIVAL_PROJET_API USurvivalStatsWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual void NativeConstruct() override;
|
||||
virtual void NativeDestruct() override;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "Survie")
|
||||
void Refresh();
|
||||
|
||||
/** (Re)branche sur les stats du pawn possede. Voir UInventoryWidget. */
|
||||
void BindToOwningPawn();
|
||||
|
||||
protected:
|
||||
/** A nommer exactement "HealthBar", "HungerBar" et "ThirstBar". */
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UProgressBar> HealthBar;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UProgressBar> HungerBar;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UProgressBar> ThirstBar;
|
||||
|
||||
/** En dessous de ce ratio, la barre passe en couleur d'alerte. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Survie", meta = (ClampMin = "0", ClampMax = "1"))
|
||||
float CriticalThreshold = 0.2f;
|
||||
|
||||
/** Couleur d'alerte, commune aux trois jauges. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Survie")
|
||||
FLinearColor CriticalColor = FLinearColor(0.9f, 0.1f, 0.1f, 1.f);
|
||||
|
||||
private:
|
||||
UFUNCTION()
|
||||
void HandleStatsChanged();
|
||||
|
||||
USurvivalStatsComponent* ResolveStats() const;
|
||||
|
||||
/** Applique le remplissage et la couleur d'une barre. */
|
||||
void ApplyBar(UProgressBar* Bar, float Percent, const FLinearColor& BaseColor) const;
|
||||
|
||||
TWeakObjectPtr<USurvivalStatsComponent> BoundStats;
|
||||
|
||||
/**
|
||||
* Couleurs d'origine relevees au NativeConstruct.
|
||||
*
|
||||
* On les capture depuis les widgets eux-memes plutot que de les redeclarer
|
||||
* en C++ : la palette reste entierement dans le Designer, et le code ne
|
||||
* fait que basculer vers l'alerte puis revenir.
|
||||
*/
|
||||
FLinearColor HealthBaseColor = FLinearColor::White;
|
||||
FLinearColor HungerBaseColor = FLinearColor::White;
|
||||
FLinearColor ThirstBaseColor = FLinearColor::White;
|
||||
};
|
||||
Reference in New Issue
Block a user