Files
wiki/dst/QScript/Lua/Classes.html
2023-09-23 16:02:31 +02:00

90 lines
3.3 KiB
HTML

<!DOCTYPE html>
<script>
const documentlist = ['/wiki/index.html', '/wiki/QScript/Introduction.html', '/wiki/QScript/Lua/Classes.html', '/wiki/QScript/Lua/Exports.html', '/wiki/QScript/Lua/Imports.html', '/wiki/QScript/Lua/Objects.html', '/wiki/QScript/Tutorial/Chapter1.html']
const namelist = ['Wiki Intro', 'QScript Intro', 'Lua Classes', 'Lua Exports', 'Lua Imports', 'Lua Objects', 'QScript Tutorial Chapter 1']
function updateSearch() {
searchtext = document.getElementById("searchbox").value.toLowerCase();
var res = [];
var searchresults = document.getElementById("searchresults")
searchresults.innerHTML = ""
if(searchtext === "")
return;
for (var i = 0; i < namelist.length; i++)
{
if(!namelist[i].toLowerCase().includes(searchtext)) continue;
var searchelement = document.createElement("li");
var link = document.createElement("a");
searchelement.appendChild(link);
link.setAttribute("href", documentlist[i]);
link.innerHTML = namelist[i];
searchresults.appendChild(searchelement);
}
}
</script>
<style>
pre {
margin-left:16px;
background-color: #EEE;
border-color: #CCC;
border-style:solid;
border-width:1px;
}
</style>
<div style="position:fixed; display:block; top: 0px; left: 0px; height:100%; width:200px;border-color: black; border-width: 1px; border-style:solid;">
<input type="text" placeholder="search..." autocomplete="off" id="searchbox" oninput="updateSearch();" style="width:192px;">
<nav>
<ul id="searchresults">
</ul>
</nav>
</div>
<div style="margin-left:200px;">
<h1>Lua Classes</h1>
<p>If you want to create a class, you first call the <code>class()</code> function like this:</p>
<pre><code>my_class = class() -- Creates a class creator
</code></pre>
<p><code>my_class</code> becomes a class creator. You can think of it like a bowl of ingredients which you can add to by simply setting the values of it.</p>
<pre><code>my_class = class() -- Creates a class creator
my_class.MyVar = 50.0 -- Creates a variable inside the class
function my_class.MyFunc(self,a) -- Creates a function inside the class
return self.MyVar+a
end
</code></pre>
<p>Once you are done with defining your class, you call the <code>finish()</code> function like this:</p>
<pre><code>finish(my_class) -- Finishes the class
</code></pre>
<p><code>my_class</code> will turn into a normal class where you cannot add any more variables or functions to it. In other words, <code>my_class</code> will get "baked" and you cannot add any more ingredients to it.</p>
<p>The <code>class()</code> function accepts another class as a parameter which will "inherit" the other class.</p>
<p>In simple terms, every function and variable from the other class, will be copied into yours, without having to specify them all over again.</p>
<pre><code>another_class = class(my_class) -- Inherits from my_class
another_class.MyVar = 20.0 -- Overrides the built-in variable
function another_class.NewFunc(self,b)
return self.MyVar-b
end
finish(another_class) -- Finishes it
another_class.MyFunc(5) -- Will return 25
another_class.NewFunc(5) -- Will return 15
</code></pre>
<hr />
<p><a href="/wiki/QScript/Lua/Objects.html">Next -></a></p>
</div>