about summary refs log tree commit diff stats
path: root/data/maps/the_entry/rooms/Daedalus Entrance.txtpb
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-13 11:10:37 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-13 11:10:37 -0400
commite2f1312753a8c7d60a3fd0ee1ff0123a58109a4d (patch)
treea1dc6a80d832450369c4f901d85d0df839ee4303 /data/maps/the_entry/rooms/Daedalus Entrance.txtpb
parent3445e5ace4bc5349000cb30b27b4617b48ec4119 (diff)
downloadlingo2-archipelago-e2f1312753a8c7d60a3fd0ee1ff0123a58109a4d.tar.gz
lingo2-archipelago-e2f1312753a8c7d60a3fd0ee1ff0123a58109a4d.tar.bz2
lingo2-archipelago-e2f1312753a8c7d60a3fd0ee1ff0123a58109a4d.zip
[Client] Handle anti-collectable location
Diffstat (limited to 'data/maps/the_entry/rooms/Daedalus Entrance.txtpb')
0 files changed, 0 insertions, 0 deletions
*/ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#ifndef SCRIPT_SYSTEM_H_FD8A95B3
#define SCRIPT_SYSTEM_H_FD8A95B3

#include <sol/sol.hpp>
#include <memory>
#include <set>
#include <list>
#include <string>
#include "system.h"

class Game;

class ScriptSystem : public System {
public:

  static constexpr SystemKey Key = SystemKey::Script;

  explicit ScriptSystem(Game& game);

  void tick(double dt) override;

  bool mapHasScript(std::string mapName, std::string scriptName);

  void runScript(std::string mapName, std::string scriptName);

  void runDebugScript(std::string script);

private:

  void loadMapScripts(std::string mapName);

  struct Script {
    std::unique_ptr<sol::thread> runner;
    std::unique_ptr<sol::coroutine> callable;
  };

  Game& game_;
  sol::state engine_;
  std::list<Script> scripts_;
  std::set<std::string> loadedScripts_;
};

#endif /* end of include guard: SCRIPT_SYSTEM_H_FD8A95B3 */