Files
ProjectEleri/Source/ProjectEleri/Settings/EleriGameSettings.h
2026-09-17 20:59:12 +02:00

79 lines
2.9 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DeveloperSettings.h"
#include "GameplayTagContainer.h"
#include "Data/GameplayStatEffect.h"
#include "Templates/SubclassOf.h"
#include "UObject/SoftObjectPtr.h"
#include "EleriGameSettings.generated.h"
class ARemovableStaticMeshActor;
class UDataTable;
class UNpcDataAsset;
class UNpcScheduleAsset;
class UItemDataAsset;
class UGameplayEffect;
/**
*
*/
UCLASS(Config = Game, defaultconfig, meta = (DisplayName = "Eleri Game Settings"))
class PROJECTELERI_API UEleriGameSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items", meta = (ForceInlineRow, Categories = "Items"))
TMap<FGameplayTag, FPrimaryAssetId> SpecialItemsMap;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items")
TSubclassOf<ARemovableStaticMeshActor> RemovableStaticMeshClass;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Items")
TSubclassOf<AActor> ItemSeedCarouselClass;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Camera")
TMap<FGameplayTag, FVector> CameraZoomLevels;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Effects")
TSubclassOf<UGameplayStatEffect> ExpIncreaseEffectClass;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Effects")
TSubclassOf<UGameplayStatEffect> MovementDisableEffectClass;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Professions")
TArray<float> ProfessionExpArray;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ai")
TArray<TSoftObjectPtr<UNpcDataAsset>> NpcDataAssets;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Ability System|Settings")
TSoftObjectPtr<UDataTable> GlobalSettingsDataSheet;
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category = "Materials")
TSoftObjectPtr<UMaterialInterface> SpriteShadowMaterial;
public:
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Eleri Game Settingss")
static bool GetCameraZoom(FGameplayTag Tag, FVector& OutBoomLength);
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
static const UEleriGameSettings* GetEleriGameSettings() {
return GetDefault<UEleriGameSettings>();
}
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
static FPrimaryAssetId GetSpecialItemId(FGameplayTag Tag);
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Items")
static UItemDataAsset* GetSpecialItem(UObject* WorldContext, FGameplayTag Tag);
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Ability System|Professions")
static int32 GetProfessionLevelForExp(float Exp);
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Eleri Game Settingss", meta = (AutoCreateRefTerm = "Key"))
static float GetGlobalKeyValue(const FName& Key);
};