From 1bd45731cdadd742358b08c5cabad948c0e551a1 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 7 Apr 2015 17:39:45 +0200 Subject: [PATCH] (NDK) Added NodeComponent Former-commit-id: 61b970c31a12a1b128e72c4754590528b6c1b4d6 --- SDK/include/NDK/Components/NodeComponent.hpp | 31 ++++++++++++++++++++ SDK/include/NDK/Components/NodeComponent.inl | 21 +++++++++++++ SDK/src/NDK/Components/NodeComponent.cpp | 10 +++++++ SDK/src/NDK/Sdk.cpp | 2 ++ 4 files changed, 64 insertions(+) create mode 100644 SDK/include/NDK/Components/NodeComponent.hpp create mode 100644 SDK/include/NDK/Components/NodeComponent.inl create mode 100644 SDK/src/NDK/Components/NodeComponent.cpp diff --git a/SDK/include/NDK/Components/NodeComponent.hpp b/SDK/include/NDK/Components/NodeComponent.hpp new file mode 100644 index 000000000..804acc2c0 --- /dev/null +++ b/SDK/include/NDK/Components/NodeComponent.hpp @@ -0,0 +1,31 @@ +// 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_NODECOMPONENT_HPP +#define NDK_COMPONENTS_NODECOMPONENT_HPP + +#include +#include + +namespace Ndk +{ + class Entity; + + class NDK_API NodeComponent : public Component, public NzNode + { + public: + NodeComponent() = default; + ~NodeComponent() = default; + + void SetParent(Entity* entity, bool keepDerived = false); + + static ComponentIndex componentIndex; + }; +} + +#include + +#endif // NDK_COMPONENTS_NODECOMPONENT_HPP diff --git a/SDK/include/NDK/Components/NodeComponent.inl b/SDK/include/NDK/Components/NodeComponent.inl new file mode 100644 index 000000000..f7b01b687 --- /dev/null +++ b/SDK/include/NDK/Components/NodeComponent.inl @@ -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 + +#include +#include + +namespace Ndk +{ + inline void NodeComponent::SetParent(Entity* entity, bool keepDerived) + { + if (entity) + { + NazaraAssert(entity->HasComponent(), "Entity must have a NodeComponent"); + + NzNode::SetParent(entity->GetComponent(), keepDerived); + } + else + SetParent(nullptr, keepDerived); + } +} diff --git a/SDK/src/NDK/Components/NodeComponent.cpp b/SDK/src/NDK/Components/NodeComponent.cpp new file mode 100644 index 000000000..b3ee8546a --- /dev/null +++ b/SDK/src/NDK/Components/NodeComponent.cpp @@ -0,0 +1,10 @@ +// 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 + +#include + +namespace Ndk +{ + ComponentIndex NodeComponent::componentIndex = 0; +} diff --git a/SDK/src/NDK/Sdk.cpp b/SDK/src/NDK/Sdk.cpp index f7cb1c5ca..8a7324470 100644 --- a/SDK/src/NDK/Sdk.cpp +++ b/SDK/src/NDK/Sdk.cpp @@ -13,6 +13,7 @@ #include #include #include +#include namespace Ndk { @@ -44,6 +45,7 @@ namespace Ndk BaseSystem::Initialize(); // Composants + InitializeComponent("NdkNode"); NazaraNotice("Initialized: SDK"); return true;