(NDK) Added Listener component and system

Former-commit-id: 0553c4ad9a7e33608e9ab91bd4ca8812272a6293
This commit is contained in:
Lynix
2015-04-12 19:38:38 +02:00
parent f290b8d886
commit f137a75267
11 changed files with 156 additions and 2 deletions

View File

@@ -0,0 +1,32 @@
// Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
#pragma once
#ifndef NDK_COMPONENTS_LISTENERCOMPONENT_HPP
#define NDK_COMPONENTS_LISTENERCOMPONENT_HPP
#include <NDK/Component.hpp>
namespace Ndk
{
class NDK_API ListenerComponent : public Component<ListenerComponent>
{
public:
ListenerComponent();
~ListenerComponent() = default;
bool IsActive() const;
bool SetActive(bool active = true);
static ComponentIndex componentIndex;
private:
bool m_isActive;
};
}
#include <NDK/Components/ListenerComponent.inl>
#endif // NDK_COMPONENTS_LISTENERCOMPONENT_HPP

View File

@@ -0,0 +1,21 @@
// Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
namespace Ndk
{
inline ListenerComponent::ListenerComponent() :
m_isActive(true)
{
}
inline bool ListenerComponent::IsActive() const
{
return m_isActive;
}
inline bool ListenerComponent::SetActive(bool active)
{
m_isActive = active;
}
}

View File

@@ -0,0 +1,28 @@
// Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
#pragma once
#ifndef NDK_SYSTEMS_LISTENERSYSTEM_HPP
#define NDK_SYSTEMS_LISTENERSYSTEM_HPP
#include <NDK/System.hpp>
namespace Ndk
{
class NDK_API ListenerSystem : public System<ListenerSystem>
{
public:
ListenerSystem();
~ListenerSystem() = default;
void Update(float elapsedTime);
static SystemIndex systemIndex;
};
}
#include <NDK/Systems/ListenerSystem.inl>
#endif // NDK_SYSTEMS_LISTENERSYSTEM_HPP

View File

@@ -0,0 +1,3 @@
// Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp

View File

@@ -26,9 +26,11 @@ namespace Ndk
public:
using EntityList = std::vector<EntityHandle>;
World() = default;
World(bool addDefaultSystems = true);
~World();
void AddDefaultSystems();
BaseSystem& AddSystem(std::unique_ptr<BaseSystem>&& system);
template<typename SystemType, typename... Args> SystemType& AddSystem(Args&&... args);

View File

@@ -7,6 +7,12 @@
namespace Ndk
{
inline World::World(bool addDefaultSystems)
{
if (addDefaultSystems)
AddDefaultSystems();
}
inline BaseSystem& World::AddSystem(std::unique_ptr<BaseSystem>&& system)
{
NazaraAssert(system, "System must be valid");