Cogs.Core
TerrainProviderExtension.cpp
1
2#include "StashService.h"
3
4#include "../Bridge/TerrainProviderFunctions.h"
5
6#include "ExtensionRegistry.h"
7#include "Resources/ResourceStore.h"
8#include "Services/Services.h"
9
10#include "Foundation/Reflection/TypeDatabase.h"
11
12namespace Cogs::Core::TerrainProvider
13{
15 {
16 TerrainProviderExtension() { ExtensionRegistry::add(this, COGS_CORE_VERSION_STRING); }
17
18 const char* getExtensionKey() const override { return "TerrainProvider"; }
19
20 bool initializeStatic() override {
21 Reflection::TypeDatabase::createType<StashService>();
22 return true;
23 }
24
25 bool initialize(Context* context) override {
26 context->resourceStore->addResourceArchive("Cogs.Core.Extensions.TerrainProvider.zip");
27 context->services->registerService<StashService>(context);
28 return true;
29 }
30
31 } asyncBridgeExtension;
32
33}
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition: Context.h:83
std::unique_ptr< class Services > services
Services.
Definition: Context.h:174
std::unique_ptr< class ResourceStore > resourceStore
ResourceStore service instance.
Definition: Context.h:210
static void add(Extension *extension, StringView version)
Adds the given extension to the registry, ensuring the initialization methods are called at appropria...
Defines an extension to Cogs.Core and provides methods to override in order to initialize extension c...
const char * getExtensionKey() const override
Get the extensions unique key, used to check for extension presence and retrieve extension specific d...
bool initializeStatic() override
Initialize extension statically.
bool initialize(Context *context) override
Initialize extension for the given context.