Editor toling to easier create data assets
This commit is contained in:
@@ -0,0 +1,235 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "AssetDefinitionDefault.h"
|
||||
|
||||
#include "EleriDataAssetDefinitions.generated.h"
|
||||
|
||||
/**
|
||||
* One asset definition per data asset type of the project, all of them filed under the Eleri category.
|
||||
*
|
||||
* A definition is what tells the editor what a data asset type is called, what colour it is drawn in and
|
||||
* which category it belongs to. Both halves of the Content Browser read that: the Filters panel builds a
|
||||
* filter per definition out of it, and the Add menu files the factory behind a type by the category of
|
||||
* the definition registered for the class that factory makes. A type therefore only has to say that it
|
||||
* is an Eleri asset in one place to turn up in both.
|
||||
*
|
||||
* The engine registers these itself as the module loads, one per class, so there is nothing to do at
|
||||
* startup beyond declaring them. A definition also answers for the subclasses of its class, which is why
|
||||
* the minigame entry below is declared on the base and covers every minigame there is.
|
||||
*/
|
||||
UCLASS(Abstract)
|
||||
class UEleriDataAssetDefinition : public UAssetDefinitionDefault
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual TConstArrayView<FAssetCategoryPath> GetAssetCategories() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Items
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/** An item: the thing a player can hold, gather, grow or craft. */
|
||||
UCLASS()
|
||||
class UEleriItemDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** A container: a named set of items, used where an inventory has to start with something in it. */
|
||||
UCLASS()
|
||||
class UEleriItemContainerDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Quests and dialogue
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/** A quest: its steps, the conditions it can be taken under and what it hands back. */
|
||||
UCLASS()
|
||||
class UEleriQuestDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** The quest database: the asset every quest is looked up through. */
|
||||
UCLASS()
|
||||
class UEleriQuestDatabaseDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** Speech: the lines an NPC says, and how they are said. */
|
||||
UCLASS()
|
||||
class UEleriSpeechDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
World events and weather
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/** A game event: something the world does on a day, a condition or a trigger. */
|
||||
UCLASS()
|
||||
class UEleriGameEventDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** A weather preset: the sky, the fog and the particles one kind of weather is made of. */
|
||||
UCLASS()
|
||||
class UEleriWeatherPresetDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Characters
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/** A face expression set: the sprites each of an NPC's moods is drawn from. */
|
||||
UCLASS()
|
||||
class UEleriFaceExpressionDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** An NPC: who they are, how they look and what they are called. */
|
||||
UCLASS()
|
||||
class UEleriNpcDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** An NPC schedule: a day of a character, as a list of places and the times they are in them. */
|
||||
UCLASS()
|
||||
class UEleriNpcScheduleAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Settings, animation and minigames
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/** The bazar settings: what the market spawns, how often and how it pays. */
|
||||
UCLASS()
|
||||
class UEleriBazarSettingsDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** An animation set: which flipbook an action of a character plays. */
|
||||
UCLASS()
|
||||
class UEleriAnimationDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
|
||||
/** A minigame: the rules and the content one minigame is set up with. Declared on the base class, so
|
||||
* this one entry stands in for every minigame in the project, Potion Sort included. */
|
||||
UCLASS()
|
||||
class UEleriMinigameDataAssetDefinition : public UEleriDataAssetDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// UAssetDefinition
|
||||
virtual FText GetAssetDisplayName() const override;
|
||||
virtual FLinearColor GetAssetColor() const override;
|
||||
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
|
||||
// End UAssetDefinition
|
||||
};
|
||||
Reference in New Issue
Block a user