BARE2D
LuaScriptQueue.cpp
Go to the documentation of this file.
1 #include "LuaScriptQueue.hpp"
2 
3 #include "LuaScript.hpp"
4 
5 namespace BARE2D {
6 
7  LuaScriptQueue* LuaScriptQueue::m_instance = nullptr;
8 
10  {
11  // Not really anything to do here.
12  }
13 
15  {
16  // Nor here, either.
17  }
18 
20  {
21  if(m_instance == nullptr) {
22  m_instance = new LuaScriptQueue();
23  }
24  return m_instance;
25  }
26 
28  if(m_instance) delete m_instance;
29  }
30 
32  {
33  // Add the script to the map. (or, in the off chance we have somehow added 4,294,967,295 different scripts in the last update, overwrite this one.)
34  LuaScript* scr = new LuaScript();
35  *scr = script;
36 
37  m_scripts[++m_lastUUID] = scr;
38 
39  return m_lastUUID;
40  }
41 
42  unsigned int LuaScriptQueue::addLuaScript(std::string script) {
43  // Create a script object and add it normally
44  LuaScript scr;
45  scr.m_script = script;
46  scr.inited = true;
47 
48  return addLuaScript(scr);
49  }
50 
51  std::map<unsigned int,LuaScript*>& LuaScriptQueue::getQueue()
52  {
53  return m_scripts;
54  }
55 
57  {
58  // First, make sure we actually dispose of the scripts correctly
59  for(auto e : m_scripts) {
60  delete e.second;
61  }
62 
63  // Just clear the map now. Ez.
64  m_scripts.clear();
65  }
66 
67 }
BARE2D::LuaScriptQueue::getQueue
std::map< unsigned int, LuaScript * > & getQueue()
Returns the queue of scripts to activate.
Definition: LuaScriptQueue.cpp:51
LuaScriptQueue.hpp
This class essentially just collects all of the scripts that need to be run from all the various end-...
BARE2D::LuaScript::m_script
std::string m_script
Definition: LuaScript.hpp:20
BARE2D
Definition: App.cpp:13
BARE2D::LuaScriptQueue::m_scripts
std::map< unsigned int, LuaScript * > m_scripts
Definition: LuaScriptQueue.hpp:61
BARE2D::LuaScriptQueue::m_lastUUID
unsigned int m_lastUUID
Definition: LuaScriptQueue.hpp:64
BARE2D::LuaScript
Definition: LuaScript.hpp:14
BARE2D::LuaScriptQueue::clearQueue
void clearQueue()
Clears the stored script queue - for regular use by tbe Script Engine. Deallocates memory that was in...
Definition: LuaScriptQueue.cpp:56
BARE2D::LuaScriptQueue::getInstance
static LuaScriptQueue * getInstance()
Returns a pointer to the singleton object - creates the object if one doesn't already exist.
Definition: LuaScriptQueue.cpp:19
BARE2D::LuaScriptQueue::LuaScriptQueue
LuaScriptQueue()
Definition: LuaScriptQueue.cpp:9
BARE2D::LuaScript::inited
bool inited
Definition: LuaScript.hpp:23
BARE2D::LuaScriptQueue::m_instance
static LuaScriptQueue * m_instance
Definition: LuaScriptQueue.hpp:58
BARE2D::LuaScriptQueue::~LuaScriptQueue
~LuaScriptQueue()
Definition: LuaScriptQueue.cpp:14
BARE2D::LuaScriptQueue
Definition: LuaScriptQueue.hpp:15
BARE2D::LuaScriptQueue::addLuaScript
unsigned int addLuaScript(LuaScript &script)
Adds a script to the queue to be run.
Definition: LuaScriptQueue.cpp:31
BARE2D::LuaScriptQueue::destroyInstance
static void destroyInstance()
Destroys the singleton.
Definition: LuaScriptQueue.cpp:27
LuaScript.hpp
This is the basic Lua script wrapper - it is what the end-user will create and add to the queue....