Files
wiki/dst/QScript/Contributing/API/qscript.html
2023-09-25 16:50:17 +02:00

465 lines
16 KiB
HTML

<!DOCTYPE html>
<title>SourceBox Wiki</title>
<script>
documentlist = ['/wiki/index.html', '/wiki/QScript/Introduction.html', '/wiki/QScript/Private_Members.html', '/wiki/QScript/Contributing/Contributing.html', '/wiki/QScript/Contributing/API/qscript.html', '/wiki/QScript/Contributing/API/Structs/QCFunc.html', '/wiki/QScript/Contributing/API/Structs/QModuleDefFunc.html', '/wiki/QScript/Contributing/API/Structs/QReturn.html', '/wiki/QScript/Contributing/API/Structs/QScriptArgs.html', '/wiki/QScript/Contributing/API/Structs/QScriptCallback.html', '/wiki/QScript/Contributing/API/Structs/QScriptClass.html', '/wiki/QScript/Contributing/API/Structs/QScriptClassCreator.html', '/wiki/QScript/Contributing/API/Structs/QType.html', '/wiki/QScript/Contributing/API/Structs/QValue.html', '/wiki/QScript/Lua/Classes.html', '/wiki/QScript/Lua/Exports.html', '/wiki/QScript/Lua/Imports.html', '/wiki/QScript/Lua/Intro.html', '/wiki/QScript/Lua/Objects.html', '/wiki/QScript/Squirrel/Exports_And_Imports.html', '/wiki/QScript/Squirrel/Intro.html', '/wiki/QScript/Tutorial/Chapter1.html', '/wiki/QScript/Tutorial/Chapter2.html'];
namelist = ['Wiki Intro', 'QScript Intro', 'Private Members', 'Contributing', 'QScript API', 'QCFunc', 'QModuleDefFunc', 'QReturn', 'QScriptArgs', 'QScriptCallback', 'QScriptClass', 'QScriptClassCreator', 'QType', 'QValue', 'Lua Classes', 'Lua Exports', 'Lua Imports', 'Lua Intro', 'Lua Objects', 'Squirrel Exports and Imports', 'Squirrel Intro', 'QScript Tutorial Page 1: Mods', 'QScript Tutorial Page 2: Getting to work'];
function toggleTree(element)
{
nested = element.parentNode.childNodes[3];
if(nested.className.indexOf("active",0) != -1)
{
nested.className = "sidebar nested";
element.parentNode.childNodes[0].innerHTML = "+";
}
else
{
nested.className = "sidebar nested active";
element.parentNode.childNodes[0].innerHTML = "-";
}
if(element.className.indexOf("active",0) != -1)
{
element.className = "spanactive"
}
else
{
element.className = "spanactive active"
}
}
function Press(element)
{
if(element.className.indexOf("active",0) != -1)
{
element.className = "spanactive active"
}
else
{
element.className = "spanactive"
}
}
function unPress(element)
{
if(element.className.indexOf("active",0) != -1)
{
element.className = "active"
}
else
{
element.className = ""
}
}
function updateSearch()
{
searchtext = document.getElementById("searchbox").value.toLowerCase();
var res = [];
var searchresults = document.getElementById("searchresults")
searchresults.innerHTML = ""
if(searchtext === "")
{
document.getElementById("filetree").style.display = "block"
return;
}
else
{
document.getElementById("filetree").style.display = "none"
}
for (var i = 0; i < namelist.length; i++)
{
if(namelist[i].toLowerCase().indexOf(searchtext) == -1) continue;
var searchelement = document.createElement("li");
searchelement.className = "sidebar"
var link = document.createElement("a");
searchelement.appendChild(link);
link.setAttribute("href", documentlist[i]);
link.innerHTML = namelist[i];
searchresults.appendChild(searchelement);
}
}
</script>
<link rel="stylesheet" href="/wiki/default.css">
<style>
hr
{
color: #463c2a;
}
pre code
{
margin-left:16px;
background-color: #473c29;
border-color: #3b3221;
border-style:solid;
border-width:1px;
padding: 4px;
display:flow-root;
}
code {
background-color: #00000040;
border-color: #00000040;
border-style:solid;
border-width:1px;
}
.nested
{
display: none;
}
ul.sidebar.active
{
display: block !important;
}
ul.sidebar
{
padding-left: 4px;
}
li.sidebar ::marker
{
color:#00000000;
display:none;
}
li.sidebar
{
list-style-type: none !important;
background-color:#4A3F2C;
border-bottom: #312A1D 1px solid;
border-right: #312A1D 1px solid;
border-left: 1px solid #8d8881;
border-top: 1px solid #8d8881;
padding-left: 2px;
padding-bottom:2px;
padding-top:2px;
margin-right:2px;
}
.buttoncontainer, .sidebar .buttoncontainer
{
border: black 1px solid;
border-left-color: white;
border-top-color: white;
display:inline-flex;
}
.sidebar span
{
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
z-index: 1;
cursor: pointer;
display: inline-block;
border: black 1px solid;
border-left-color: white;
border-top-color: white;
margin: 2px;
}
.sidebar span span
{
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
z-index: 0;
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
margin: 0px;
padding-left: 4px;
padding-right: 4px;
}
.spanactive
{
border-left-color: black;
border-top-color: black;
border-right-color: white;
border-bottom-color: white;
}
span .spanactive
{
border: #463c2a 1px solid;
border-right-color: #8d8881;
border-bottom-color: #8d8881;
}
.liicon
{
display:inline-block;
width:12px;
height:100%;
font-family: monospace;
font-size: 16px;
color: white;
}
nav
{
background-color: #63553b;
height: 100%;
}
a
{
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
padding-left: 4px;
padding-right: 4px;
padding-top:2px;
padding-bottom:2px;
}
a:visited
{
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
padding-left: 4px;
padding-right: 4px;
padding-top:2px;
padding-bottom:2px;
}
body
{
background-color: #63553b;
color:white;
font-family:"Tahoma", sans-serif;
font-size:9pt;
}
.searchbox
{
background-color: #473c29;
border: #403624 1px solid;
border-bottom-color: #837f7a;
border-right-color: #837f7a;
color: white;
padding: 0px;
width:196px;
height:16px;
position: relative;
}
input:focus {
outline: none;
}
.searchboxcontainer
{
background-color: #473c29;
border: black 1px solid;
border-bottom-color: white;
border-right-color: white;
position:relative;
margin-left:auto;
margin-right:auto;
height:18px;
width:198px;
display: inline-block;
}
.sidebarcontainer
{
float:right;
display:block;
top: -16px;
right: -8px;
margin-left: 8px;
width:200px;
border-color: black;
border-width: 1px;
border-style:solid;
position:relative;
overflow:auto;
}
table {
border: #403624 1px solid;
border-top-color: #837f7a;
border-left-color: #837f7a;
background-color: #564A33;
}
th, td {
border: #00000040 1px solid;
border-right-color: #837f7a;
border-bottom-color: #837f7a;
background-color: #00000020;
}
</style>
<div>
<div class="sidebarcontainer">
<span class="searchboxcontainer"><input type="text" placeholder="search..." autocomplete="off" id="searchbox" oninput="updateSearch();" class="searchbox"></span>
<nav>
<ul class="sidebar" id="searchresults">
</ul>
<ul class="sidebar" id="filetree">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/index.html">Wiki Intro</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">QScript</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Introduction.html">QScript Intro</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Private_Members.html">Private Members</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Contributing</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/Contributing.html">Contributing</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">API</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><b>QScript API</b></li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Structs</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QCFunc.html">QCFunc</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QModuleDefFunc.html">QModuleDefFunc</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QReturn.html">QReturn</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptArgs.html">QScriptArgs</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptCallback.html">QScriptCallback</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClass.html">QScriptClass</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClassCreator.html">QScriptClassCreator</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QType.html">QType</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QValue.html">QValue</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Lua</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Classes.html">Lua Classes</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Exports.html">Lua Exports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Imports.html">Lua Imports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Intro.html">Lua Intro</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Objects.html">Lua Objects</a></span></li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Python</span></span>
<ul class="sidebar nested">
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Squirrel</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Squirrel/Exports_And_Imports.html">Squirrel Exports and Imports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Squirrel/Intro.html">Squirrel Intro</a></span></li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Tutorial</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Tutorial/Chapter1.html">QScript Tutorial Page 1: Mods</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Tutorial/Chapter2.html">QScript Tutorial Page 2: Getting to work</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<h1>QScript API</h1>
<hr />
<h2>CreateModule</h2>
<pre><code>QScriptModule CreateModule(const char* name, QModuleDefFunc* funcs)
</code></pre>
<p>Takes a name, and a <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QModuleDefFunc.html">QModuleDefFunc</span></a> list, returns a QScriptModule</p>
<hr />
<h2>LoadMods</h2>
<pre><code>void LoadMods(const char* filename)
</code></pre>
<p>Will load a file inside the root of every mod.</p>
<hr />
<h2>LoadModsInDirectory</h2>
<pre><code>void LoadModsInDirectory(const char* folder, const char* filename)
</code></pre>
<p>Acts like LoadMods, but loads a file inside a subdirectory. (mods/*/folder/filename.*)</p>
<hr />
<h2>StartClass</h2>
<pre><code>QScriptClassCreator StartClass(const char* name, QScriptClass parent)
</code></pre>
<p>Returns a <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClassCreator.html">QScriptClassCreator</span></a></p>
<hr />
<h2>AddMethod</h2>
<pre><code>void AddMethod(QScriptClassCreator creator, const char* name, QType* params, QCFunc func, bool is_private = false)
</code></pre>
<p>Adds a method to the class creator. Takes a name, <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QType.html">QType</span></a> list which will be the parameters, <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QCFunc.html">QCFunc</span></a> which will be the callback, and an optional <span class="buttoncontainer"><a href="/wiki/QScript/Private_Members.html">is_private</a></span> bool.</p>
<hr />
<h2>AddScriptingMethod</h2>
<pre><code>void AddScriptingMethod(QScriptClassCreator creator, const char* name, QScriptCallback callback, bool is_private)
</code></pre>
<p>Adds a scripting language method for the class creator. Takes a name, <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptCallback.html">QScriptCallback</span></a> which will be called when the method is called, and an optional is_private bool.</p>
<hr />
<h2>AddVariable</h2>
<pre><code>void AddVariable(QScriptClassCreator creator, const char* name, QType type, QValue defaultval, bool is_private)
</code></pre>
<p>Adds a variable with a default value to the class creator. Takes a name, QType, <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QValue.html">QValue</span></a>, and an optional is_private bool.</p>
<p>Do <strong>not</strong> use this for adding strings. Use the next method instead.</p>
<hr />
<h2>AddString</h2>
<pre><code>void AddString(QScriptClassCreator creator, const char* name, const char* defaultval, bool is_private)
</code></pre>
<p>Adds a string variable to the class creator. Takes a name, a default value and an optional is_private bool.</p>
<hr />
<h2>FinishClass</h2>
<pre><code>QScriptClass FinishClass(QScriptClassCreator creator)
</code></pre>
<p>Finishes the class creator and returns a <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClass.html">QScriptClass</span></a>. Will delete the creator.</p>
<hr />
</div>