Loading...
Searching...
No Matches
hellfire::SceneManager Class Reference

#include <SceneManager.h>

Collaboration diagram for hellfire::SceneManager:

Public Types

using SceneActivatedCallback = std::function< void(Scene *)>
 

Public Member Functions

 SceneManager ()
 
 ~SceneManager ()
 
std::vector< Scene * > get_scenes ()
 
void save_current_scene ()
 
void set_scene_activated_callback (SceneActivatedCallback callback)
 
void create_default_scene ()
 
Sceneload_scene (const std::filesystem::path &filename)
 
Sceneload_scene (AssetID asset_id, const std::filesystem::path &filename)
 
std::optional< AssetIDget_scene_asset_id (Scene *scene) const
 
std::optional< AssetIDget_active_scene_asset_id () const
 
bool save_scene (Scene *scene)
 
void set_scene_asset_id (Scene *scene, AssetID id)
 
bool save_scene_as (const std::string &filename, Scene *scene)
 
void update (float delta_time)
 
void clear ()
 
void destroy_scene (Scene *scene)
 
Scenecreate_scene (const std::string &name="GameScene")
 
EntityID find_entity_by_name (const std::string &name)
 
void set_active_camera (EntityID camera) const
 
CameraComponentget_active_camera () const
 
void set_active_scene (Scene *scene, bool should_play=true)
 
std::vector< EntityIDget_camera_entities () const
 
Sceneget_active_scene () const
 
bool has_active_scene () const
 

Private Attributes

std::vector< Scene * > scenes_
 
Sceneactive_scene_
 
std::unordered_map< Scene *, AssetIDscene_asset_ids_
 
SceneActivatedCallback scene_activated_callback_
 

Detailed Description

Definition at line 22 of file SceneManager.h.

Member Typedef Documentation

◆ SceneActivatedCallback

using hellfire::SceneManager::SceneActivatedCallback = std::function<void(Scene *)>

Definition at line 32 of file SceneManager.h.

Constructor & Destructor Documentation

◆ SceneManager()

hellfire::SceneManager::SceneManager ( )

Definition at line 14 of file SceneManager.cpp.

◆ ~SceneManager()

hellfire::SceneManager::~SceneManager ( )

Definition at line 19 of file SceneManager.cpp.

Member Function Documentation

◆ clear()

void hellfire::SceneManager::clear ( )

Definition at line 150 of file SceneManager.cpp.

◆ create_default_scene()

void hellfire::SceneManager::create_default_scene ( )

◆ create_scene()

Scene * hellfire::SceneManager::create_scene ( const std::string &  name = "GameScene")

Definition at line 31 of file SceneManager.cpp.

◆ destroy_scene()

void hellfire::SceneManager::destroy_scene ( Scene scene)

Definition at line 159 of file SceneManager.cpp.

◆ find_entity_by_name()

EntityID hellfire::SceneManager::find_entity_by_name ( const std::string &  name)

Definition at line 180 of file SceneManager.cpp.

◆ get_active_camera()

CameraComponent * hellfire::SceneManager::get_active_camera ( ) const

Definition at line 194 of file SceneManager.cpp.

◆ get_active_scene()

Scene * hellfire::SceneManager::get_active_scene ( ) const
inline

Definition at line 75 of file SceneManager.h.

◆ get_active_scene_asset_id()

std::optional< AssetID > hellfire::SceneManager::get_active_scene_asset_id ( ) const

Definition at line 98 of file SceneManager.cpp.

◆ get_camera_entities()

std::vector< EntityID > hellfire::SceneManager::get_camera_entities ( ) const

Definition at line 201 of file SceneManager.cpp.

◆ get_scene_asset_id()

std::optional< AssetID > hellfire::SceneManager::get_scene_asset_id ( Scene scene) const

Definition at line 90 of file SceneManager.cpp.

◆ get_scenes()

std::vector< Scene * > hellfire::SceneManager::get_scenes ( )

Definition at line 23 of file SceneManager.cpp.

◆ has_active_scene()

bool hellfire::SceneManager::has_active_scene ( ) const
inline

Definition at line 81 of file SceneManager.h.

◆ load_scene() [1/2]

Scene * hellfire::SceneManager::load_scene ( AssetID  asset_id,
const std::filesystem::path &  filename 
)

Definition at line 82 of file SceneManager.cpp.

◆ load_scene() [2/2]

Scene * hellfire::SceneManager::load_scene ( const std::filesystem::path &  filename)

Definition at line 37 of file SceneManager.cpp.

◆ save_current_scene()

void hellfire::SceneManager::save_current_scene ( )

Definition at line 27 of file SceneManager.cpp.

◆ save_scene()

bool hellfire::SceneManager::save_scene ( Scene scene)

Definition at line 102 of file SceneManager.cpp.

◆ save_scene_as()

bool hellfire::SceneManager::save_scene_as ( const std::string &  filename,
Scene scene 
)

Definition at line 114 of file SceneManager.cpp.

◆ set_active_camera()

void hellfire::SceneManager::set_active_camera ( EntityID  camera) const

Definition at line 188 of file SceneManager.cpp.

◆ set_active_scene()

void hellfire::SceneManager::set_active_scene ( Scene scene,
bool  should_play = true 
)

Definition at line 208 of file SceneManager.cpp.

◆ set_scene_activated_callback()

void hellfire::SceneManager::set_scene_activated_callback ( SceneActivatedCallback  callback)
inline

Definition at line 34 of file SceneManager.h.

◆ set_scene_asset_id()

void hellfire::SceneManager::set_scene_asset_id ( Scene scene,
AssetID  id 
)

◆ update()

void hellfire::SceneManager::update ( float  delta_time)

Definition at line 144 of file SceneManager.cpp.

Member Data Documentation

◆ active_scene_

Scene* hellfire::SceneManager::active_scene_
private

Definition at line 87 of file SceneManager.h.

◆ scene_activated_callback_

SceneActivatedCallback hellfire::SceneManager::scene_activated_callback_
private

Definition at line 91 of file SceneManager.h.

◆ scene_asset_ids_

std::unordered_map<Scene*, AssetID> hellfire::SceneManager::scene_asset_ids_
private

Definition at line 88 of file SceneManager.h.

◆ scenes_

std::vector<Scene*> hellfire::SceneManager::scenes_
private

Definition at line 86 of file SceneManager.h.


The documentation for this class was generated from the following files: