1#include "ScriptingManager.h"
2#include "Resources/ResourceStore.h"
4#include "Foundation/Logging/Logger.h"
5#include "Foundation/Platform/IO.h"
12Cogs::Core::ScriptingManager::ScriptingManager(Context * )
17void Cogs::Core::ScriptingManager::initialize()
22void Cogs::Core::ScriptingManager::cleanup()
24 for (
auto & engine : engines) {
31void Cogs::Core::ScriptingManager::addScriptingEngine(std::unique_ptr<ScriptingEngine> engine)
34 engines.push_back(std::move(engine));
37Cogs::Core::ScriptContextHandle Cogs::Core::ScriptingManager::createContext(
Cogs::ComponentModel::Entity * entity,
const StringView & source, ScriptFlags flags)
39 if ((flags & ScriptFlags::JavaScript) == 0 && (flags & ScriptFlags::Lua) == 0) {
40 if ((flags & ScriptFlags::JavaScript) == 0 && IO::extension(source.data()) ==
".js") {
41 flags |= ScriptFlags::JavaScript;
42 }
else if ((flags & ScriptFlags::Lua) == 0 && IO::extension(source.data()) ==
".lua") {
43 flags |= ScriptFlags::Lua;
47 for (
auto & engine : engines) {
48 if (engine->canLoad(flags)) {
49 return engine->createContext(entity, source, flags);
53 LOG_ERROR(logger,
"No suitable scripting engine found.");
Container for components, providing composition of dynamic entities.
Log implementation class.
constexpr Log getLogger(const char(&name)[LEN]) noexcept