/** Copyright: Copyright (c) 2015-2016 Andrey Penechko. License: $(WEB boost.org/LICENSE_1_0.txt, Boost License 1.0). Authors: Andrey Penechko. */ module voxelman.config.plugin; import pluginlib; import voxelman.core.config; public import voxelman.config.configmanager; enum string CONFIG_FILE_NAME_CLIENT = "../../config/client.sdl"; enum string CONFIG_FILE_NAME_SERVER = "../../config/server.sdl"; shared static this() { pluginRegistry.regClientPlugin(new ConfigPlugin(true)); pluginRegistry.regServerPlugin(new ConfigPlugin(false)); } final class ConfigPlugin : IPlugin { mixin IdAndSemverFrom!(voxelman.config.plugininfo); string configFileName; this(bool client) { if (client) configFileName = CONFIG_FILE_NAME_CLIENT; else configFileName = CONFIG_FILE_NAME_SERVER; } override void registerResourceManagers(void delegate(IResourceManager) reg) { reg(new ConfigManager(configFileName)); } }