Dans l'environnement lua intégré (World of Warcraft - WoW) il manque la fonction require
.Lua émulant la fonction require
Je veux le port d'un code source existant (an great OO-library) pour l'utiliser dans le WoW. La bibliothèque elle-même est relativement petite (environ 8 petits fichiers) mais bien sûr, elle utilise beaucoup le require
.
World of Warcraft charges des fichiers et des bibliothèques en définissant dans un fichier XML, comme:
<Ui xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
<Script file="LibOne.lua"/>
<Script file="LibTwo.lua"/>
</Ui>
mais je ne sais pas comment la manipulation bibliothèque de bas niveau se fait dans le WoW.
AFAIK dans le WoW est manquant même la table package.
aussi. :(
La question (s):. Pour moi, la façon simplifiée serait écrire une fonction qui émuler la fonction require
en utilisant l'interface disponible dans WoW La question est de savoir comment quelqu'un pourrait-il me donner quelques directions
Ou comme solution de rechange, pour le portage de la source existante mentionnée à WoW, je dois remplacer les require Some.Other.Module
lignes dans les sources lua à quelque chose de ce que WoW comprendra. Qu'est-ce que l'équivalent/remplacement pour un tel require Some.Module
dans le WoW?
Comment le WoW gère-t-il les modules/bibliothèques de bas niveau?
Belle explication, merci pour l'exemple de code. – cajwine
Ce code est vraiment difficile à comprendre pour moi. Quel est le but de toutes ces variables à l'intérieur de 'loaded'? Pouvez-vous aller plus dans les détails? – Hatefiend
@Hatefiend: 'package.loaded' met en cache tous les modules chargés/requis. Ceux énumérés ci-dessus sont les modules de la bibliothèque standard de Lua. Dans Lua "normal", ils sont disponibles via 'require' de' package.loaded' et en tant que variables globales. Dans WoW, il n'y a que les variables globales, nous devons donc remplir 'package.loaded'. – siffiejoe