Files
ProjectEleri/Source/ProjectEleriEditor/Private/Eleri/EleriDataAssetFactories.h

239 lines
6.2 KiB
C
Raw Normal View History

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Factories/Factory.h"
#include "EleriDataAssetFactories.generated.h"
/**
* The factories behind the data asset types the Eleri category offers, one per type.
*
* A factory is what puts a type into the Content Browser's Add menu, and the engine files it there by
* asking the asset definition of the class it supports where that class belongs, so a factory only has
* to name the class it makes. It also hands back the EAssetTypeCategories bit for the Eleri category,
* which is what the older Content Browser style groups the Add menu by, so the group holds together
* whichever of the two styles is in use.
*
* These only ever create the class they are named after. There is nothing to configure, so the factory
* goes straight to creating the asset as soon as it is picked.
*/
UCLASS(Abstract)
class UEleriDataAssetFactory : public UFactory
{
GENERATED_BODY()
public:
UEleriDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual bool ConfigureProperties() override;
virtual uint32 GetMenuCategories() const override;
virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override;
// End UFactory
};
/*-----------------------------------------------------------------------------
Items
-----------------------------------------------------------------------------*/
/** Creates a new item data asset. */
UCLASS()
class UEleriItemDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriItemDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new item container. */
UCLASS()
class UEleriItemContainerFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriItemContainerFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/*-----------------------------------------------------------------------------
Quests and dialogue
-----------------------------------------------------------------------------*/
/** Creates a new quest. */
UCLASS()
class UEleriQuestDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriQuestDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new quest database. */
UCLASS()
class UEleriQuestDatabaseFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriQuestDatabaseFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new speech asset. */
UCLASS()
class UEleriSpeechDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriSpeechDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/*-----------------------------------------------------------------------------
World events and weather
-----------------------------------------------------------------------------*/
/** Creates a new game event. */
UCLASS()
class UEleriGameEventDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriGameEventDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new weather preset. */
UCLASS()
class UEleriWeatherPresetDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriWeatherPresetDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/*-----------------------------------------------------------------------------
Characters
-----------------------------------------------------------------------------*/
/** Creates a new face expression set. */
UCLASS()
class UEleriFaceExpressionDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriFaceExpressionDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new NPC. */
UCLASS()
class UEleriNpcDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriNpcDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new NPC schedule. */
UCLASS()
class UEleriNpcScheduleAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriNpcScheduleAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/*-----------------------------------------------------------------------------
Settings, animation and minigames
-----------------------------------------------------------------------------*/
/** Creates a new bazar settings asset. */
UCLASS()
class UEleriBazarSettingsDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriBazarSettingsDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new animation set. */
UCLASS()
class UEleriAnimationDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriAnimationDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};
/** Creates a new Potion Sort minigame. The category entry it turns up under is declared on the
* minigame base class, so a minigame added later needs its own factory here but no category. */
UCLASS()
class UEleriPotionSortDataAssetFactory : public UEleriDataAssetFactory
{
GENERATED_BODY()
public:
UEleriPotionSortDataAssetFactory(const FObjectInitializer& ObjectInitializer);
// UFactory
virtual FText GetDisplayName() const override;
// End UFactory
};