LEAP Documentation 40220
Documentation for the LEAP project
LevelInfo.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/NoExportTypes.h"
7#include "Styling/SlateBrush.h"
8#include "Fonts/SlateFontInfo.h"
9#include "Engine/PrimaryAssetLabel.h"
10#include "LevelInfo.generated.h"
11
12UCLASS(Blueprintable, HideCategories = (ComponentTick, Collision, Tags, Variable, Activation, ComponentReplication, Cooking))
13class PROJECTX_API ULevelInfo : public UPrimaryAssetLabel
14{
15 GENERATED_BODY()
16
17public:
18 virtual void GetLoadingScreenInfo(FText& OutMap, FText& OutSize, FText& OutAuthor, FText& OutDescription, FText& OutMapDescription, class UTexture2D*& OutLoadingScreenTexture) const;
19
20 //Returns true if this level's name matches the provided one.
21 bool IsMap(const FString& FullMapName) const { return GetFullMapName() == FullMapName; }
22
23 //Returns true if this level info wants to override advanced slate information.
24 bool ShouldOverrideSlateInformation() const { return bOverrideSlateInformation; }
25
26 virtual void GetLoadingScreenSlateInfo(FSlateBrush& Background, FSlateBrush& LoadIcon, FSlateBrush& Frame, FSlateFontInfo& LevelNameFont, FSlateFontInfo& LevelSizeFont, FSlateFontInfo& AuthorNameFont, FSlateFontInfo& DescriptionFont) const;
27
28 //Returns a full asset path that can be used to create a soft object reference.
29 FString GetMapSoftObjectPath() const { return Map.ToSoftObjectPath().GetAssetPathString(); }
30 //Returns full level name which can be used to call open map as client/server.
31 FString GetFullMapName() const { return Map.GetLongPackageName(); }
32 FString GetMapFileName() const { return Map.GetAssetName(); }
33 FString GetLightingLevelMapName() const { return LightingMap ? LightingMap.GetLongPackageName() : ""; }
34 FString GetMapHumanReadableName() const { return MapName.ToString(); }
35 FString GetMapSize() const { return MapSize.ToString(); }
36 FString GetMapAuthorName() const { return AuthorName.ToString(); }
37
38protected:
39 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
40 TSoftObjectPtr<UWorld> Map;
41 /*LightingMapSublevel*/
42 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
43 TSoftObjectPtr<UWorld> LightingMap;
44 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
45 FText MapName = FText::FromString("Untitled Level");
46 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
47 FText MapSize = FText::FromString("Medium");
48 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
49 FText AuthorName = FText::FromString("Author");
50 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
51 FText DescriptionText = FText::FromString("");
52 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
53 FText MapDescription = FText::FromString("");
54 UPROPERTY(EditDefaultsOnly, Category = MapInfo)
55 class UTexture2D* LoadingScreenTexture = NULL;
56
57 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo)
58 bool bOverrideSlateInformation = false;
59 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
60 FSlateBrush LoadingScreenBackground;
61 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
62 FSlateBrush LoadingScreenLoadIcon;
63 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
64 FSlateBrush LoadingScreenFrame;
65 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
66 FSlateFontInfo LoadingScreenLevelNameFont;
67 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
68 FSlateFontInfo LoadingScreenLevelSizeFont;
69 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
70 FSlateFontInfo LoadingScreenAuthorNameFont;
71 UPROPERTY(EditDefaultsOnly, Category = AdvancedMapInfo, meta = (EditCondition = "bOverrideSlateInformation"))
72 FSlateFontInfo LoadingScreenDescriptionFont;
73};
Definition: LevelInfo.h:14
FString GetMapSize() const
Definition: LevelInfo.h:35
FString GetLightingLevelMapName() const
Definition: LevelInfo.h:33
FString GetMapFileName() const
Definition: LevelInfo.h:32
bool IsMap(const FString &FullMapName) const
Definition: LevelInfo.h:21
FString GetMapSoftObjectPath() const
Definition: LevelInfo.h:29
FString GetFullMapName() const
Definition: LevelInfo.h:31
FString GetMapAuthorName() const
Definition: LevelInfo.h:36
FString GetMapHumanReadableName() const
Definition: LevelInfo.h:34
bool ShouldOverrideSlateInformation() const
Definition: LevelInfo.h:24