239 lines
6.2 KiB
C
239 lines
6.2 KiB
C
|
|
// 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
|
||
|
|
};
|