In der eingebetteten Lua-Umgebung (World of Warcraft - WoW) fehlt die require
Funktion.Lua emuliert die Funktion require
Ich möchte einen vorhandenen lua Quellcode (an great OO-library) für den Einsatz in der WoW. Die Bibliothek selbst ist relativ klein (ca. 8 kleine Dateien), aber natürlich verwendet sie stark die require
.
World of Warcraft lädt Dateien und Bibliotheken, indem sie in einer XML-Datei definiert, wie:
<Ui xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
<Script file="LibOne.lua"/>
<Script file="LibTwo.lua"/>
</Ui>
, aber ich weiß nicht, wie die geringe Bibliothek Manipulation in der WoW erfolgt.
AFAIK in der WoW fehlt auch die package.
Tabelle zu. :(
So ist die Frage (n):. Für mich ist die unkomplizierte Möglichkeit eine Funktion schreiben würde, die die require
Funktion mit Hilfe der Schnittstelle in WoW verfügbar emulieren wird die Frage, wie Könnte jemand einige Richtungen geben Sie mir
Oder als Alternative für die Portierung der genannten bestehenden Quelle zu WoW, ich brauche ersetzen die require Some.Other.Module
Linien in den lua Quellen zu etwas, was WoW wird es verstehen. Was das entspricht/Ersatz für solche require Some.Module
in WoW?
Wie das WoW behandelt Module/Bibliotheken auf niedrigem Niveau?
Schöne Erklärung, danke für das Codebeispiel. – cajwine
Dieser Code ist wirklich schwer für mich zu verstehen. Was ist der Zweck all dieser Variablen innerhalb von 'loaded'? Kannst du mehr ins Detail gehen? – Hatefiend
@Hatefiend: 'package.loaded' speichert alle geladenen/benötigten Module zwischen. Die oben aufgeführten sind die Module aus der Standardbibliothek von Lua. In "normalem" Lua sind sie über 'require' von' package.loaded' und als globale Variablen verfügbar. In WoW gibt es nur die globalen Variablen, also müssen wir 'package.loaded' selbst füllen. – siffiejoe