Skip to content

Lua Guide - SnowShardEngine

Guide d’Utilisation de Lua - SnowShardEngine

Section titled “Guide d’Utilisation de Lua - SnowShardEngine”

Le Lua est applicable à 3 niveaux sur SnowShardEngine :

  • LuaBlocks : Un script Lua qui peut être exécuté dans un block.
  • LuaItems : Un script Lua qui peut être exécuté dans un item.
  • LuaNPCs : Un script Lua qui peut être exécuté dans un NPC.

La classe SnowShardBlock est accessible dans les scripts Lua. Elle permet d’interagir avec les blocks du jeu.

  • SnowShardBlock.getMatrix() : Récupère la matrice du block. (16 / 4x4)
  • SnowShardBlock.getWorldPos() : float, float, float : Récupère la position du block dans le monde.
  • SnowShardBlock.getRotationY() : float, float, float : Récupère la rotation du block.
  • SnowShardBlock.setRotationY(rot) : string : Récupère la rotation du block en string.
  • SnowShardBlock.getCUID() : string : Récupère le CUID du block.
  • SnowShardBlock.getBlockType() : string : Récupère le type de block.

La classe AlertLevel ce sont des strings constants qui représentent les différents niveaux d’alerte dans le jeu.

  • NONE : Aucun niveau d’alerte.
  • LOW : Niveau d’alerte bas.
  • MEDIUM : Niveau d’alerte moyen.
  • HIGH : Niveau d’alerte élevé.
  • CRITICAL : Niveau d’alerte critique.

La classe World est accessible dans les scripts Lua. Elle permet d’interagir avec le monde du jeu.

  • world.getBlockFromCUID(cuid): Block : Récupère depuis le CUID le block correspondant.
  • world.setTesla(boolean) : Définit si le monde est en mode Tesla ou non.
  • world.setLockdown(boolean) : Définit si le monde est en mode Lockdown ou non.
  • world.setBlackout(boolean) : Définit si le monde est en mode Blackout ou non.
  • world.setAlert(AlertLevel) : Définit le niveau d’alerte du monde.
  • world.setFireAlarm(boolean) : Définit si le monde est en mode FireAlarm ou non.
  • world.setSnowStormStart(long) : Définit le début de la tempête de neige.
  • world.isTesla() : Retourne si le monde est en mode Tesla.
  • world.isLockdown() : Retourne si le monde est en mode Lockdown.
  • world.isBlackout() : Retourne si le monde est en mode Blackout.
  • world.isFireAlarm() : Retourne si le monde est en mode FireAlarm.
  • world.getAlert() : Retourne le niveau d’alerte du monde.
  • world.getSnowStormStart() : Retourne le début de la tempête de neige.

Les variables globales sont récupérables grâce au prefix snowshard.

  • snowshard.world : Représente le monde.

Dans les LuaBlocks, le script enregistré propose ces méthodes :

  • init(event)
    • event.block : Représente le block dans lequel le script est exécuté.
  • tick(event)
    • event.block : Représente le block dans lequel le script est exécuté.
  • onInteract(event)
    • event.block : Représente le block dans lequel le script est exécuté.
    • event.player : Représente le joueur qui a interagi avec le block.
    • event.action : Représente l’action effectuée par le joueur (clic gauche, clic droit, etc.).

Si motivé, tu peux me faire une implémentation pour avoir des box d’interaction sur les blocks et après moi dans le script, je peux faire un event.box[] pour récupérer les box d’interaction du block.

Dans les LuaItems, le script enregistré propose ces méthodes :

  • init(event)
    • event.item : Représente l’item dans lequel le script est exécuté.
  • tick(event)
    • event.item : Représente l’item dans lequel le script est exécuté.
  • onInteract(event)
    • event.item : Représente l’item dans lequel le script est exécuté.
    • event.player : Représente le joueur qui a interagi avec l’item.
    • event.action : Représente l’action effectuée par le joueur (clic gauche, clic droit, etc.).

Dans les LuaNPCs, le script enregistré propose ces méthodes :

  • init(event)
    • event.npc : Représente le NPC dans lequel le script est exécuté.
  • tick(event)
    • event.npc : Représente le NPC dans lequel le script est exécuté.
  • onInteract(event)
    • event.npc : Représente le NPC dans lequel le script est exécuté.
    • event.player : Représente le joueur qui a interagi avec le NPC.
    • event.action : Représente l’action effectuée par le joueur (clic gauche, clic droit, etc.).