From cfe7c79991c69653b20f22adb80b34ded63b2f16 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 13 Dec 2015 16:36:38 +0100 Subject: [PATCH] Sdk: Add server-side module Former-commit-id: 4df27d1e44d791aad234d095af08ae3c19660fba --- SDK/src/NDK/Sdk.cpp | 76 ++++++++++++++++++------------ SDK/src/NDK/World.cpp | 14 ++++-- build/scripts/tools/ndk_server.lua | 40 ++++++++++++++++ 3 files changed, 97 insertions(+), 33 deletions(-) create mode 100644 build/scripts/tools/ndk_server.lua diff --git a/SDK/src/NDK/Sdk.cpp b/SDK/src/NDK/Sdk.cpp index 3a45b65b3..21bfd236f 100644 --- a/SDK/src/NDK/Sdk.cpp +++ b/SDK/src/NDK/Sdk.cpp @@ -13,64 +13,80 @@ #include #include #include -#include #include -#include -#include -#include #include #include #include -#include #include -#include #include +#ifndef NDK_SERVER +#include +#include +#include +#include +#include +#include +#endif + namespace Ndk { bool Sdk::Initialize() { if (s_referenceCounter++ > 0) - return true; // Déjà initialisé + return true; // Already initialized try { Nz::ErrorFlags errFlags(Nz::ErrorFlag_ThrowException, true); - // Initialisation du moteur + // Initialize the engine first - // Modules clients - Nz::Audio::Initialize(); - Nz::Graphics::Initialize(); - - // Modules serveurs + // Shared modules Nz::Lua::Initialize(); Nz::Noise::Initialize(); Nz::Physics::Initialize(); Nz::Utility::Initialize(); - // Initialisation du SDK + #ifndef NDK_SERVER + // Client modules + Nz::Audio::Initialize(); + Nz::Graphics::Initialize(); + #endif - // Initialisation des composants et systèmes + // SDK Initialization + + // Components BaseComponent::Initialize(); - BaseSystem::Initialize(); - // Composants - InitializeComponent("NdkCam"); + // Shared components InitializeComponent("NdkColli"); - InitializeComponent("NdkLight"); - InitializeComponent("NdkList"); - InitializeComponent("NdkGfx"); InitializeComponent("NdkNode"); InitializeComponent("NdkPhys"); InitializeComponent("NdkVeloc"); - // Systèmes - InitializeSystem(); + #ifndef NDK_SERVER + // Client components + InitializeComponent("NdkCam"); + InitializeComponent("NdkLight"); + InitializeComponent("NdkList"); + InitializeComponent("NdkGfx"); + #endif + + // Systems + + BaseSystem::Initialize(); + + // Shared systems InitializeSystem(); - InitializeSystem(); InitializeSystem(); + #ifndef NDK_SERVER + // Client systems + InitializeSystem(); + InitializeSystem(); + #endif + NazaraNotice("Initialized: SDK"); return true; } @@ -86,23 +102,25 @@ namespace Ndk { if (s_referenceCounter != 1) { - // Le module est soit encore utilisé, soit pas initialisé + // Either the module is not initialized, either it was initialized multiple times if (s_referenceCounter > 1) s_referenceCounter--; return; } - // Libération du SDK + // Uninitialize the SDK s_referenceCounter = 0; - // Libération du moteur + // Uninitialize the engine - // Modules clients + #ifndef NDK_SERVER + // Client modules Nz::Audio::Uninitialize(); Nz::Graphics::Uninitialize(); + #endif - // Modules serveurs + // Shared modules Nz::Lua::Uninitialize(); Nz::Noise::Uninitialize(); Nz::Physics::Uninitialize(); diff --git a/SDK/src/NDK/World.cpp b/SDK/src/NDK/World.cpp index 92b3fa654..e8fff42f2 100644 --- a/SDK/src/NDK/World.cpp +++ b/SDK/src/NDK/World.cpp @@ -4,11 +4,14 @@ #include #include -#include #include -#include #include +#ifndef NDK_SERVER +#include +#include +#endif + namespace Ndk { World::~World() @@ -19,10 +22,13 @@ namespace Ndk void World::AddDefaultSystems() { - AddSystem(); AddSystem(); - AddSystem(); AddSystem(); + + #ifndef NDK_SERVER + AddSystem(); + AddSystem(); + #endif } const EntityHandle& World::CreateEntity() diff --git a/build/scripts/tools/ndk_server.lua b/build/scripts/tools/ndk_server.lua new file mode 100644 index 000000000..c94170dce --- /dev/null +++ b/build/scripts/tools/ndk_server.lua @@ -0,0 +1,40 @@ +TOOL.Name = "SDKServer" + +TOOL.Directory = "../SDK/lib" +TOOL.Kind = "Library" + +TOOL.Defines = { + "NDK_BUILD", + "NDK_SERVER" +} + +TOOL.Includes = { + "../SDK/include" +} + +TOOL.Files = { + "../SDK/include/NDK/**.hpp", + "../SDK/include/NDK/**.inl", + "../SDK/src/NDK/**.hpp", + "../SDK/src/NDK/**.inl", + "../SDK/src/NDK/**.cpp" +} + +-- Exlude client-only files +TOOL.FilesExclusion = { + "../SDK/**/CameraComponent.*", + "../SDK/**/GraphicsComponent.*", + "../SDK/**/LightComponent.*", + "../SDK/**/ListenerComponent.*", + "../SDK/**/ListenerSystem.*", + "../SDK/**/RenderSystem.*", + "../SDK/**/LuaInterface_Audio.*" +} + +TOOL.Libraries = { + "NazaraCore", + "NazaraLua", + "NazaraNoise", + "NazaraPhysics", + "NazaraUtility" +}