From 39c95a5ed53c17914f33ed5080365b71e2d33b4e Mon Sep 17 00:00:00 2001 From: 997146918 <997146918@qq.com> Date: Sun, 31 Aug 2025 17:10:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=80=E8=83=BD=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E7=9A=84=E8=8F=9C=E5=8D=95=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetActions/SkillAssetTypeAction.cpp | 17 ++++++++++++ .../Private/Factory/SkillAssetFactory.cpp | 23 ++++++++++++++++ .../AssetActions/SkillAssetTypeAction.h | 27 +++++++++++++++++++ .../Public/Factory/SkillAssetFactory.h | 22 +++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 ProjectFish/Source/ProjectFishEditor/Private/AssetActions/SkillAssetTypeAction.cpp create mode 100644 ProjectFish/Source/ProjectFishEditor/Private/Factory/SkillAssetFactory.cpp create mode 100644 ProjectFish/Source/ProjectFishEditor/Public/AssetActions/SkillAssetTypeAction.h create mode 100644 ProjectFish/Source/ProjectFishEditor/Public/Factory/SkillAssetFactory.h diff --git a/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/SkillAssetTypeAction.cpp b/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/SkillAssetTypeAction.cpp new file mode 100644 index 0000000..9afc22c --- /dev/null +++ b/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/SkillAssetTypeAction.cpp @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "AssetActions/SkillAssetTypeAction.h" + +#include "ProjectFish/DataAsset/SkillAsset.h" + + +UClass* FSkillAssetTypeAction::GetSupportedClass() const +{ + return USkillAsset::StaticClass(); +} + +uint32 FSkillAssetTypeAction::GetCategories() +{ + return MyAssetCategory; +} diff --git a/ProjectFish/Source/ProjectFishEditor/Private/Factory/SkillAssetFactory.cpp b/ProjectFish/Source/ProjectFishEditor/Private/Factory/SkillAssetFactory.cpp new file mode 100644 index 0000000..56d81c9 --- /dev/null +++ b/ProjectFish/Source/ProjectFishEditor/Private/Factory/SkillAssetFactory.cpp @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Factory/SkillAssetFactory.h" + +#include "ProjectFish/DataAsset/SkillAsset.h" + +USkillAssetFactory::USkillAssetFactory() +{ + SupportedClass = USkillAsset::StaticClass(); +} + +UObject* USkillAssetFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, + UObject* Context, FFeedbackContext* Warn) +{ + USkillAsset* NewSkillAsset = NewObject(InParent, Class, Name, Flags | RF_Transactional); + return NewSkillAsset; +} + +bool USkillAssetFactory::ShouldShowInNewMenu() const +{ + return true; +} diff --git a/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/SkillAssetTypeAction.h b/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/SkillAssetTypeAction.h new file mode 100644 index 0000000..c7f0d36 --- /dev/null +++ b/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/SkillAssetTypeAction.h @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AssetTypeActions_Base.h" + +/** + * + */ +class PROJECTFISHEDITOR_API FSkillAssetTypeAction: public FAssetTypeActions_Base +{ +public: + FSkillAssetTypeAction(EAssetTypeCategories::Type InAssetCategory) + { + MyAssetCategory = InAssetCategory; + } + virtual FText GetName() const override { return FText::FromString("Skill Asset"); } + virtual FColor GetTypeColor() const override { return FColor(255, 196, 115); } + virtual UClass* GetSupportedClass() const override; + virtual uint32 GetCategories() override; + virtual bool CanFilter() override { return true; } + + +private: + EAssetTypeCategories::Type MyAssetCategory; +}; diff --git a/ProjectFish/Source/ProjectFishEditor/Public/Factory/SkillAssetFactory.h b/ProjectFish/Source/ProjectFishEditor/Public/Factory/SkillAssetFactory.h new file mode 100644 index 0000000..2802f23 --- /dev/null +++ b/ProjectFish/Source/ProjectFishEditor/Public/Factory/SkillAssetFactory.h @@ -0,0 +1,22 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Factories/Factory.h" +#include "SkillAssetFactory.generated.h" + +/** + * + */ +UCLASS() +class PROJECTFISHEDITOR_API USkillAssetFactory : public UFactory +{ + GENERATED_BODY() +public: + USkillAssetFactory(); + + //interface + virtual UObject* FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override; + virtual bool ShouldShowInNewMenu() const override; +};