/***************************************************************************** * Copyright (c) 2014-2018 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 * * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ #pragma once #include "../common.h" #include #include #include struct duk_hthread; typedef struct duk_hthread duk_context; class InteractiveConsole; namespace OpenRCT2 { interface IPlatformEnvironment; } namespace OpenRCT2::Scripting { class ScriptEngine { private: InteractiveConsole& _console; IPlatformEnvironment& _env; duk_context * _context; std::queue, std::string>> _evalQueue; public: ScriptEngine(InteractiveConsole& console, IPlatformEnvironment& env); ScriptEngine(ScriptEngine&&) = delete; ~ScriptEngine(); void Update(); std::future Eval(const std::string &s); }; }