Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/pickup2/data/lua/LuaStateInit.lua @ 6485

Last change on this file since 6485 was 6412, checked in by dafrick, 15 years ago

Merged presentation2 branch into pickup2 branch.

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1-- Note: luaState is a pointer to the LuaState instance that created this lua state
2
3-- Save original print function in debug
4debug = print
5
6-- Redirect print to the C++ print function
7print = function(s)
8  luaState:luaPrint(s)
9end
10
11-- Create function to log text like COUT, but always prints a line!
12logMessage = function(level, message)
13  luaState:luaLog(level, message)
14end
15
16-- Redirect dofile in order to load with the resource manager
17doFile = function(filename)
18  luaState:doFile(filename)
19  -- Required because the C++ function cannot return whatever might be on the stack
20  return LuaStateReturnValue -- C-injected global variable
21end
22original_dofile = dofile
23dofile = doFile
24
25-- Create includeFile function that preparses the file according
26-- to a function provided to the LuaState constructor (in C++)
27include = function(filename)
28  luaState:includeFile(filename)
29  -- Required because the C++ function cannot return whatever might be on the stack
30  return LuaStateReturnValue -- C-injected global variable
31end
32
33-- Replace require function with almost similar behaviour
34-- The loaded modules are then stored with their names (where name has no .lua extension)
35-- Furthermore the ".lua" extension is appended to the moduleName parameter when looking for the file
36old_require = require
37require = function(moduleName)
38  if not luaState:fileExists(moduleName .. ".lua") then
39    return nil
40  end
41  if not _LOADED then
42    _LOADED = {}
43  end
44  if not _LOADED[moduleName] then
45    -- save old value
46    _REQUIREDNAME_OLD = _REQUIREDNAME
47    _REQUIREDNAME = moduleName
48    luaState:doFile(moduleName .. ".lua")
49    _LOADED[moduleName] = LuaStateReturnValue or true
50    -- restore old value
51    _REQUIREDNAME = _REQUIREDNAME_OLD
52  end
53  return _LOADED[moduleName]
54end
55
56-- Convenience function for console commands
57orxonox.execute = function(command)
58  orxonox.CommandExecutor:execute(command)
59end
Note: See TracBrowser for help on using the repository browser.