From ee7077c7ff0c22a4909c15ab34aed777b45b977e Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 10 Feb 2021 18:06:35 -0500 Subject: Direction is preserved across map transitions now --- src/script_system.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/script_system.cpp') diff --git a/src/script_system.cpp b/src/script_system.cpp index a5e9403..6b35b73 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp @@ -10,6 +10,11 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { sol::lib::coroutine, sol::lib::math); + engine_.new_usertype( + "sprite", + "dir", &Sprite::dir, + "followers", &Sprite::followers); + engine_.new_usertype( "message", "displayMessage", &MessageSystem::displayMessage, @@ -18,7 +23,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { engine_.new_usertype( "animation", - "setSpriteAnimation", &AnimationSystem::setSpriteAnimation); + "setSpriteAnimation", &AnimationSystem::setSpriteAnimation, + "setSpriteDirection", &AnimationSystem::setSpriteDirection); engine_.new_usertype( "mixer", @@ -50,6 +56,24 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { return game_.getSpriteByAlias(alias); }); + engine_.set_function( + "getControllableSprite", + [&] () -> int { + for (int id : game_.getSprites()) { + Sprite& sprite = game_.getSprite(id); + if (sprite.controllable) { + return id; + } + } + return -1; + }); + + engine_.set_function( + "getSprite", + [&] (int id) -> Sprite& { + return game_.getSprite(id); + }); + engine_.set_function( "loadMap", [&] (std::string filename, std::string warpPoint) { -- cgit 1.4.1