summaryrefslogtreecommitdiff
path: root/src/scripting/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripting/script.cpp')
-rw-r--r--src/scripting/script.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/scripting/script.cpp b/src/scripting/script.cpp
index b222b0f7..490abf09 100644
--- a/src/scripting/script.cpp
+++ b/src/scripting/script.cpp
@@ -34,6 +34,7 @@ typedef std::map< std::string, Script::Factory > Engines;
static Engines *engines = NULL;
Script *Script::globalEventScript = NULL;
Script *Script::specialActionsScript = NULL;
+Script *Script::craftScript = NULL;
Script::Script():
mMap(NULL),
@@ -158,3 +159,16 @@ bool Script::performSpecialAction(int specialId, Being* caster)
}
return true;
}
+
+bool Script::performCraft(Being* crafter, std::list<InventoryItem> recipe)
+{
+ Script *script = Script::craftScript;
+ if (script)
+ {
+ script->prepare("on_craft");
+ script->push(crafter);
+ script->push(recipe);
+ script->execute();
+ }
+ return true;
+}