Compare commits
No commits in common. "a07bf2a19cb823c296dc0645bcde127aa6632371" and "f4fe5cc478e5d17c7315ad75499d4860406431e0" have entirely different histories.
a07bf2a19c
...
f4fe5cc478
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,35 +2,3 @@
|
||||
|
||||
|
||||
#include "FishInfoConfigAsset.h"
|
||||
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
|
||||
void UFishInfoConfigAsset::PostDuplicate(bool bDuplicateForPIE)
|
||||
{
|
||||
Super::PostDuplicate(bDuplicateForPIE);
|
||||
if (!bDuplicateForPIE)
|
||||
{
|
||||
int32 MaxFishID = 0;
|
||||
|
||||
// 获取资产注册表模块
|
||||
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
|
||||
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
||||
|
||||
// 查找所有 QuestAsset 资产
|
||||
TArray<FAssetData> AssetDataList;
|
||||
AssetRegistry.GetAssetsByClass(UFishInfoConfigAsset::StaticClass()->GetClassPathName(), AssetDataList, true);
|
||||
|
||||
// 遍历所有已存在的任务资产,找到最大的 QuestID
|
||||
for (const FAssetData& AssetData : AssetDataList)
|
||||
{
|
||||
if (UFishInfoConfigAsset* FishAsset = Cast<UFishInfoConfigAsset>(AssetData.GetAsset()))
|
||||
{
|
||||
if (FishAsset->FishID > MaxFishID)
|
||||
{
|
||||
MaxFishID = FishAsset->FishID;
|
||||
}
|
||||
}
|
||||
}
|
||||
FishID = MaxFishID + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,12 +14,7 @@ UCLASS(BlueprintType)
|
||||
class PROJECTFISH_API UFishInfoConfigAsset : public UDataAsset
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
virtual void PostDuplicate(bool bDuplicateForPIE) override;
|
||||
public:
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = fish, meta = (ToolTip = "鱼的ID"))
|
||||
int32 FishID;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = fish, meta = (ToolTip = "鱼的名称"))
|
||||
FText FishName;
|
||||
|
||||
|
||||
@ -25,9 +25,6 @@ class PROJECTFISH_API UFishingRewardDataAsset : public UPrimaryDataAsset
|
||||
public:
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获名称"))
|
||||
FText RewardName;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获描述"))
|
||||
FText RewardDes;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获图片") )
|
||||
UTexture2D* RewardTexture;
|
||||
@ -43,7 +40,4 @@ public:
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获对应的任务信息"))
|
||||
FQuestTargetInfo QuestTargetInfo;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "价格"))
|
||||
float RewardPrice;
|
||||
};
|
||||
|
||||
@ -81,7 +81,7 @@ void UQuestAsset::PostDuplicate(bool bDuplicateForPIE)
|
||||
}
|
||||
}
|
||||
}
|
||||
QuestID = MaxQuestID + 1;
|
||||
QuestID += 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "Factory/FishInfoConfigAssetFactory.h"
|
||||
#include "ProjectFish/DataAsset/QuestAsset.h"
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
#include "AssetRegistry/AssetData.h"
|
||||
#include "ProjectFish/DataAsset/FishInfoConfigAsset.h"
|
||||
|
||||
UFishInfoConfigAssetFactory::UFishInfoConfigAssetFactory()
|
||||
{
|
||||
SupportedClass = UFishInfoConfigAsset::StaticClass();
|
||||
bCreateNew = true;
|
||||
bEditAfterNew = true;
|
||||
}
|
||||
|
||||
UObject* UFishInfoConfigAssetFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags,
|
||||
UObject* Context, FFeedbackContext* Warn)
|
||||
{
|
||||
UFishInfoConfigAsset* NewFishAsset = NewObject<UFishInfoConfigAsset>(InParent, Class, Name, Flags | RF_Transactional);
|
||||
|
||||
// 自动生成唯一的 QuestID
|
||||
if (NewFishAsset)
|
||||
{
|
||||
int32 MaxFishID = 0;
|
||||
|
||||
// 获取资产注册表模块
|
||||
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
|
||||
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
||||
|
||||
// 查找所有 QuestAsset 资产
|
||||
TArray<FAssetData> AssetDataList;
|
||||
AssetRegistry.GetAssetsByClass(UFishInfoConfigAsset::StaticClass()->GetClassPathName(), AssetDataList, true);
|
||||
|
||||
// 遍历所有已存在的任务资产,找到最大的 QuestID
|
||||
for (const FAssetData& AssetData : AssetDataList)
|
||||
{
|
||||
if (UFishInfoConfigAsset* FishAsset = Cast<UFishInfoConfigAsset>(AssetData.GetAsset()))
|
||||
{
|
||||
if (FishAsset->FishID > MaxFishID)
|
||||
{
|
||||
MaxFishID = FishAsset->FishID;
|
||||
}
|
||||
}
|
||||
}
|
||||
NewFishAsset->FishID = MaxFishID + 1;
|
||||
}
|
||||
|
||||
return NewFishAsset;
|
||||
}
|
||||
|
||||
|
||||
bool UFishInfoConfigAssetFactory::ShouldShowInNewMenu() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Factories/Factory.h"
|
||||
#include "FishInfoConfigAssetFactory.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class PROJECTFISHEDITOR_API UFishInfoConfigAssetFactory : public UFactory
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
UFishInfoConfigAssetFactory();
|
||||
|
||||
// UFactory interface
|
||||
virtual UObject* FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override;
|
||||
virtual bool ShouldShowInNewMenu() const override;
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user