Plasma Engine  2.0
Loading...
Searching...
No Matches
SceneLoadUtil.h
1#pragma once
2
3#include <Core/ResourceManager/ResourceHandle.h>
4#include <Core/WorldSerializer/WorldReader.h>
5#include <Foundation/IO/FileSystem/FileReader.h>
6#include <Foundation/Types/UniquePtr.h>
7#include <Foundation/Utilities/Progress.h>
8#include <GameEngine/GameEngineDLL.h>
9
11
13class PL_GAMEENGINE_DLL plSceneLoadUtility
14{
15 PL_DISALLOW_COPY_AND_ASSIGN(plSceneLoadUtility);
16
17public:
20
21 enum class LoadingState
22 {
23 NotStarted,
24 Ongoing,
25 FinishedSuccessfully,
26 Failed,
27 };
28
30 LoadingState GetLoadingState() const { return m_LoadingState; }
31
33 float GetLoadingProgress() const { return m_fLoadingProgress; }
34
36 plStringView GetLoadingFailureReason() const { return m_sFailureReason; }
37
42 void StartSceneLoading(plStringView sSceneFile, plStringView sPreloadCollectionFile);
43
47 void TickSceneLoading();
48
52 plUniquePtr<plWorld> RetrieveLoadedScene();
53
54private:
55 void LoadingFailed(const plFormatString& reason);
56
57 LoadingState m_LoadingState = LoadingState::NotStarted;
58 float m_fLoadingProgress = 0.0f;
59 plString m_sFailureReason;
60
61 plString m_sFile;
62 plCollectionResourceHandle m_hPreloadCollection;
63 plFileReader m_FileReader;
64 plWorldReader m_WorldReader;
65 plUniquePtr<plWorld> m_pWorld;
67 plProgress m_InstantiationProgress;
68};
The default class to use to read data from a file, implements the plStreamReader interface.
Definition FileReader.h:12
Implements formating of strings with placeholders and formatting options.
Definition FormatString.h:59
Manages the way a progress bar is subdivided and advanced.
Definition Progress.h:36
This class allows to load a scene in the background and switch to it, once loading has finished.
Definition SceneLoadUtil.h:14
plStringView GetLoadingFailureReason() const
In case loading failed, this returns what went wrong.
Definition SceneLoadUtil.h:36
LoadingState GetLoadingState() const
Returns whether loading is still ongoing or finished.
Definition SceneLoadUtil.h:30
float GetLoadingProgress() const
Returns a loading progress value in 0 to 1 range.
Definition SceneLoadUtil.h:33
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
A Unique ptr manages an object and destroys that object when it goes out of scope....
Definition UniquePtr.h:10
Reads a world description from a stream. Allows to instantiate that world multiple times in different...
Definition WorldReader.h:47