// © 2025 Naked People Team. All Rights Reserved. #include "DayPhaseConstraint.h" #include "NakedDesire/Player/NakedDesireCharacter.h" #define LOCTEXT_NAMESPACE "Commissions.Constraints.DayPhase" void UDayPhaseConstraint::OnActivate() { if (UTimeOfDaySubsystem* Time = GetTime()) Time->OnPhaseChanged.AddUniqueDynamic(this, &UDayPhaseConstraint::HandlePhaseChanged); } void UDayPhaseConstraint::OnDeactivate() { if (UTimeOfDaySubsystem* Time = GetTime()) Time->OnPhaseChanged.RemoveDynamic(this, &UDayPhaseConstraint::HandlePhaseChanged); } bool UDayPhaseConstraint::IsMet() const { const UTimeOfDaySubsystem* Time = GetTime(); return Time && Time->GetPhase() == RequiredPhase; } void UDayPhaseConstraint::HandlePhaseChanged(EDayPhase NewPhase) { NotifyChanged(); } UTimeOfDaySubsystem* UDayPhaseConstraint::GetTime() const { UWorld* World = Player ? Player->GetWorld() : nullptr; return World ? World->GetSubsystem() : nullptr; } FText UDayPhaseConstraint::GetDescription() const { return (RequiredPhase == EDayPhase::Night) ? LOCTEXT("Night", "at night") : LOCTEXT("Day", "during the day"); } #undef LOCTEXT_NAMESPACE