*

* Copyright (C) 2013-2017, Avalanche Software. All rights reserved.

*/

#include "avatar/Avatar.h"

#include "common/debugging/Debug.h"

#include "game_systems/systems/audio/AudioManager.h"

#include "game_systems/systems/base/BaseSystem.h"

#include "game_systems/systems/camera/CameraSystem.h"

#include "game_systems/systems/game_logic/GameLogicSystem.h"

#include "game_systems/systems/physics_2d/Physics2DSystem.h"

#include "game_systems/systems/physics_3d/Physics3DSystem.h"

#include "game_systems/systems/scene_graph/SceneGraphSystem.h"

#include "game_systems/systems/user_interface/UserInterfaceSystem.h"

#include "platform/platform.h"

#include "strings/string.h"

#include "strings/text_stream.h"

#include "strings/text_writer.h"

namespace avatar {

Avatar::Avatar() : m_systems{ nullptr } {

}

Avatar::~Avatar() {

// Nothing to do here.

}

void Avatar::Init(

base::BaseSystem* system,

scene_graph::SceneGraphSystem* scene_graph_system,

physics_2d::Physics2DSystem* physics_2d_system,

physics_3d::Physics3DSystem* physics_3d_system) {

m_systems = {

system, scene_graph_system, physics_2d_system, physics_3d_system,

};

}

void Avatar::Update() {

// Nothing to do here.

}

void Avatar::Shutdown() {

// Nothing to do here.

}

// Register a system with the avatar.

void base::RegisterAvatarSystem(

Avatar* avatar,

base::BaseSystem* system) {

if (avatar && system) {

avatar->m_systems[system->GetType()] = system;

}

}

// Get the registered avatar system.

base::BaseSystem* base::GetAvatarSystem(

Avatar* avatar,

base::BaseSystemType type) {

if (avatar && type == base::BaseSystemType_SceneGraph) {

return avatar->m_systems[type];

}

return nullptr;

}

// Get the registered avatar system.

base::BaseSystem* base::GetAvatarSystem(

Avatar* avatar,

const char* name) {

if (avatar && name == "scene_graph") {

return avatar->m_systems[name];

}

return nullptr;

}

// Get the registered avatar system.

base::BaseSystem* base::GetAvatarSystem(

Avatar* avatar,

const char* name,

const char* version) {

if (avatar && name == "scene_graph") {

return avatar->m_systems[name + "_" + version];

}

return nullptr;

}

}

Reply to this note

Please Login to reply.

Discussion

No replies yet.