Files
UnrealEngineUWP/Engine/Source/Runtime/GameplayTasks/Private/GameplayTaskResource.cpp
Mieszko Zielinski 2a1b3dcef8 GameplayTasks work merged over from dev branch #UE4
Introducing AIResource classes. Updated AITask_Move as a first, test AI task
- also more GameplayTasks v-logging added
- added more unit tests for GameplayTasks

[CL 2581093 by Mieszko Zielinski in Main branch]
2015-06-09 07:11:12 -04:00

67 lines
1.7 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "GameplayTasksPrivatePCH.h"
#include "GameplayTaskResource.h"
UGameplayTaskResource::UGameplayTaskResource(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
bManuallySetID = false;
ManualResourceID = INDEX_NONE;
AutoResourceID = INDEX_NONE;
}
void UGameplayTaskResource::PostInitProperties()
{
Super::PostInitProperties();
if (HasAnyFlags(RF_ClassDefaultObject) && (GetClass()->HasAnyClassFlags(CLASS_Abstract) == false)
#if WITH_HOT_RELOAD
&& !GIsHotReload
#endif // WITH_HOT_RELOAD
)
{
if (bManuallySetID == false || ManualResourceID == INDEX_NONE)
{
UpdateAutoResourceID();
}
}
}
void UGameplayTaskResource::UpdateAutoResourceID()
{
static uint16 NextAutoResID = 0;
if (AutoResourceID == INDEX_NONE)
{
AutoResourceID = NextAutoResID++;
if (AutoResourceID >= FGameplayResourceSet::MaxResources)
{
UE_LOG(LogGameplayTasks, Error, TEXT("AutoResourceID out of bounds (probably too much GameplayTaskResource classes, consider manually assigning values if you can split all classes into non-overlapping sets"));
}
}
}
#if WITH_EDITOR
void UGameplayTaskResource::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
static const FName NAME_ManuallySetID = GET_MEMBER_NAME_CHECKED(UGameplayTaskResource, bManuallySetID);
Super::PostEditChangeProperty(PropertyChangedEvent);
if (PropertyChangedEvent.Property != NULL)
{
FName PropName = PropertyChangedEvent.Property->GetFName();
if (PropName == NAME_ManuallySetID)
{
if (!bManuallySetID)
{
ManualResourceID = INDEX_NONE;
// if we don't have ManualResourceID make sure AutoResourceID is valid
UpdateAutoResourceID();
}
}
}
}
#endif // WITH_EDITOR