source: Plugins/luaScripting/ScriptLoader.cpp @ 1

Revision 1, 3.0 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13
14//----------------------------------------------------------------------------------
15// Includes
16//----------------------------------------------------------------------------------
17#include "ScriptLoader.h"
18#include "Script.h"
19
20//----------------------------------------------------------------------------------
21LuaScriptLoader::LuaScriptLoader() : IResourceLoader("LuaScriptLoader")
22{
23        initialize();
24}
25
26
27//----------------------------------------------------------------------------------
28LuaScriptLoader::~LuaScriptLoader()
29{
30
31}
32
33//----------------------------------------------------------------------------------
34Result LuaScriptLoader::initialize(){
35       
36        // fill out supported resource types;
37        declareSupportedResourceType("LuaScript");
38        declareSupportedResourceType("Lua");
39
40        // we do only support dll files in windows version of our engine
41        declareSupportedFileType("lua");
42        declareSupportedFileType("luascript");
43        declareSupportedFileType("lscript");
44
45        declareTypeMap("lua", "LuaScript");
46        declareTypeMap("luascript", "LuaScript");
47        declareTypeMap("lscript", "LuaScript");
48       
49        return OK;
50}
51
52
53//----------------------------------------------------------------------------------
54Result LuaScriptLoader::loadImpl(IResource* res, const std::string& fileName, PropertyList* param)
55{
56
57        // load a file so we use its content as a script
58        FileStream* fStream = new FileStream();
59        Result ret = fStream->open(fileName);
60        if (ret == OK){
61
62                // get the whole file content
63                std::string str = fStream->getAsString();
64
65                // cast the resource to the iscript interface
66                IScript* scr = dynamic_cast<IScript*>(res);
67
68                // load the script from a string
69                ret = scr->loadFromString(str);
70        }
71        delete fStream;
72
73        // return the last error
74        return ret;
75}
76
77
78//----------------------------------------------------------------------------------
79IResource* LuaScriptLoader::createImpl(const ::std::string& resourceType, PropertyList* params)
80{
81        // create an plugin instance
82        return new LuaScript();
83}
84
85
86//----------------------------------------------------------------------------------
87IResource* LuaScriptLoader::createEmpty(const ::std::string& resourceType)
88{
89        // create an instance of empty plugin
90        return new EmptyScript();
91}
92
93
Note: See TracBrowser for help on using the repository browser.