Scripts

namespace tnt
namespace doo

Variables

struct tnt::doo::scripts_sys scripts
struct scripts_sys
#include <Scripts.hpp>

The system that handles the scripts of the objects.

Public Functions

void add_object(object const &id, std::string_view filename, tnt::lua::lib const &libs = tnt::lua::lib::core)

The name of the *.lua script to attach to the next object.

Parameters
  • id: The id of the object to add to the scripting system.

  • filename: The name of the .lua script file.

  • libs: The desired libraries you need for this object. Defaults to tnt::lua::lib::core.

void Init(object const &id)

Run init() from the object’s lua script. If no function named init() is found, it does nothing.

Parameters
  • id: The id of the object to init().

void reload(object const &id) noexcept

Reload the script data of the desired object.

Parameters
  • id: The id of the desired object.

template<typename ...Args>
decltype(auto) call(object const &id, std::string_view fn, Args&&... args)

Call the desired function from the lua state of the given object.

Parameters
  • id: The id of the object that has the function.

  • fn: The name of the function.

  • args: The arguments to pass to the function.

void Update(object const &id, float time_)

Run update() from the script.

Parameters
  • id: The id of the object to update.

  • time_: The elapsed time since the last update call.

void from_json(object const &id, nlohmann::json const &j)

Load script data from a json chunk.

Parameters
  • id: The id of the object to load from json.

  • j: The json chunk that holds the data.

void to_json(object const &id, nlohmann::json &j)

Store scripts data of a specific object to a json chunk.

Parameters
  • id: The id of the object to serialize to json.

  • j: The json chunk where the data will be saved.

void draw_imgui(object const &id, Window const &win) noexcept

Draw widgets on the given window to modify the datas of the system.

Parameters
  • id: The id of the active object.

  • win: The window where to draw the widgets.

void remove(object const &id) noexcept

Remove the desired object from the scripts system.

Parameters
  • id: The id of the object you want to remove.

void clear() noexcept

Remove all the objects from the scripts system.

Public Members

sparse_set<object> active
std::vector<sol::state> states

< The id-s of all the objects connected to scripts.

namespace lua