#include "ZMMOHudHpSpWidget.h" #include "Components/ProgressBar.h" #include "Components/TextBlock.h" #include "Internationalization/Text.h" void UZMMOHudHpSpWidget::ApplySnapshot(const FZMMOAttributesSnapshot& Snapshot) { LastSnapshot = Snapshot; OnSnapshotApplied(Snapshot); } void UZMMOHudHpSpWidget::ApplyHpSp(int32 Hp, int32 MaxHp, int32 Sp, int32 MaxSp) { LastSnapshot.Hp = Hp; LastSnapshot.MaxHp = MaxHp; LastSnapshot.Sp = Sp; LastSnapshot.MaxSp = MaxSp; if (HpBar) { HpBar->SetPercent(MaxHp > 0 ? static_cast(Hp) / static_cast(MaxHp) : 0.f); } if (SpBar) { SpBar->SetPercent(MaxSp > 0 ? static_cast(Sp) / static_cast(MaxSp) : 0.f); } if (HpText) { HpText->SetText(FText::FromString(FString::Printf(TEXT("%d / %d"), Hp, MaxHp))); } if (SpText) { SpText->SetText(FText::FromString(FString::Printf(TEXT("%d / %d"), Sp, MaxSp))); } } void UZMMOHudHpSpWidget::OnSnapshotApplied_Implementation(const FZMMOAttributesSnapshot& Snapshot) { ApplyHpSp(Snapshot.Hp, Snapshot.MaxHp, Snapshot.Sp, Snapshot.MaxSp); if (LevelText) { LevelText->SetText(FText::FromString(FString::Printf(TEXT("Lv %d"), Snapshot.BaseLevel))); } }