Types de base
Types Lua
nanos world utilise Lua 5.4. Pour plus d'informations et de tutoriels, consultez le manuel de référence officiel de Lua 5.4.
number
Les nombres peuvent être des entiers (64 bits, comme 10 ou -3) ou des flottants (double précision, comme 3.14). Lua convertit automatiquement entre les deux si besoin : par ex. 10 / 2 donne le flottant 5.0, tandis que 10 // 2 (division entière) donne l'entier 5. Dans cette documentation, nous utilisons integer et float pour indiquer ce qu'une fonction attend ou renvoie.
string
Une suite de caractères (octets), comme "hello" ou 'world'. Les chaînes peuvent contenir n'importe quelles données binaires et sont immuables : des fonctions comme string.upper renvoient une nouvelle chaîne au lieu de modifier l'originale. Utilisez .. pour concaténer des chaînes, par ex. "Hello " .. player:GetName().
function
Les fonctions sont des valeurs comme les autres : on peut les stocker dans des variables et des tables, les passer en paramètres et les renvoyer depuis d'autres fonctions. C'est ainsi que fonctionnent les callbacks dans nanos world, par ex. Player.Subscribe("Spawn", function(player) ... end).
boolean
Soit true, soit false. Dans les conditions, seuls false et nil sont considérés comme faux ; tout le reste (y compris 0 et la chaîne vide "") est considéré comme vrai.
nil
Représente l'absence de valeur. Les variables jamais assignées valent nil, et beaucoup de fonctions renvoient nil quand elles ne trouvent pas ce que vous demandez (par ex. Prop.GetByIndex(9999)) : vérifiez-le toujours avant d'utiliser le résultat.
table
La seule structure de données de Lua, qui sert à la fois de tableau ({ "a", "b", "c" }, indexé à partir de 1) et de dictionnaire ({ name = "John", age = 30 }). Les tables grandissent dynamiquement et peuvent contenir n'importe quelle valeur, sauf nil. Elles sont passées par référence : modifier une table dans une fonction modifie l'originale.
iterator
L'itérateur permet de parcourir les éléments d'une table avec for k, v in ipairs().
any
Nous utilisons l'expression "n'importe quel" dans les documentations pour indiquer que n'importe quel type peut être utilisé.
varargs
Liste de valeurs à nombre variable d'arguments.
Types numériques
Outre les Types Lua, certaines méthodes de l'API ont des types numériques spécifiques, qui sont converties et traitées différemment en interne.
integer
Des nombres entiers sans chiffres après la virgule.
float
Type à virgule flottante avec décimales.
Types spéciaux
SpecialPath
nanos world prend en charge un type de chemin spécial pour charger des textures (.jpg, .png), des sons (.ogg) ou référencer des fichiers depuis une WebUI. Il permet à n'importe quel Package ou WebUI d'accéder facilement aux fichiers d'autres Packages ou Packs d'Assets.
Un SpecialPath est une chaîne qui accepte les formats suivants pour accéder aux fichiers des Assets ou des Packages :
Référencer des fichiers d'Asset Packs
assets://[ASSET_PACK_PATH]/[PATH/TO/FILE.jpg]
Référencer des fichiers Packages
package://[PACKAGE_PATH]/[PATH/TO/FILE.jpg]
Exemple d'accès à des images de l'Asset Pack quaternius :
assets://quaternius/Thumbnails/SK_Revolver_01.jpg
Exemple d'accès à un son .ogg du Package sandbox :
package://sandbox/Client/my_awesome_audio.ogg
Exemple d'accès à des polices .ttf du Package my-fonts :
package://my-fonts/Client/Roboto.ttf
L'entrée SpecialPath prend également en charge les chemins relatifs et traditionnels !
Steam Avatar
Steam Avatar est une URL spéciale qui peut charger des avatars Steam en tant qu'images sur les WebUIs et les Widgets.
steam-avatar://player_steam_id
Cette URL peut être automatiquement récupérée avec Player:GetAccountIconURL().