236 lines
7.5 KiB
C++
236 lines
7.5 KiB
C++
// 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
|
|
};
|