This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Source/AgrarianGame/AgrarianDemoNoticeActor.cpp
T
2026-05-14 02:28:38 -07:00

48 lines
1.2 KiB
C++

// Copyright Pacificao. All Rights Reserved.
#include "AgrarianDemoNoticeActor.h"
#include "AgrarianDemoNoticeWidget.h"
#include "Blueprint/UserWidget.h"
#include "Engine/World.h"
#include "TimerManager.h"
AAgrarianDemoNoticeActor::AAgrarianDemoNoticeActor()
{
PrimaryActorTick.bCanEverTick = false;
NoticeWidgetClass = UAgrarianDemoNoticeWidget::StaticClass();
}
void AAgrarianDemoNoticeActor::BeginPlay()
{
Super::BeginPlay();
APlayerController* PlayerController = GetWorld() ? GetWorld()->GetFirstPlayerController() : nullptr;
if (!PlayerController || !NoticeWidgetClass)
{
return;
}
ActiveNoticeWidget = CreateWidget<UAgrarianDemoNoticeWidget>(PlayerController, NoticeWidgetClass);
if (!ActiveNoticeWidget)
{
return;
}
ActiveNoticeWidget->VersionLabel = VersionLabel;
ActiveNoticeWidget->DemoNotice = DemoNotice;
ActiveNoticeWidget->AddToViewport(100);
GetWorldTimerManager().SetTimer(RemoveNoticeTimerHandle, this, &AAgrarianDemoNoticeActor::RemoveNotice, NoticeDurationSeconds, false);
}
void AAgrarianDemoNoticeActor::RemoveNotice()
{
if (ActiveNoticeWidget)
{
ActiveNoticeWidget->RemoveFromParent();
ActiveNoticeWidget = nullptr;
}
}