Passer au contenu principal
Version: dernière version stable - a1.133.x ⚖️

Écran de chargement

Dans nanos world il est possible d'ajouter un chargement d'écran personnalisé et dynamique a votre serveur en utilisant WebUI.

Création d'un écran de chargement

Pour cela, vous devez créer un nouveau Package de type loading-screen, et ajouter vos fichiers HTML/CSS/JS dans le dossier racine du Package. Votre fichier HTML principal doit s'appeler index.html. Votre dossier devrait ressembler à cela :

Packages/
└── my-loading-screen/
├── Package.toml
├── index.html
├── style.css
└── ...

Accéder à la progression de chargement/téléchargement

Pour pouvoir afficher des informations dynamiques sur à l'écran, vous pouvez utiliser l'événement UpdateScreen (qui va être appelé toutes les quelques ms) :

L'évènement UpdateScreen

ParamètreDescription
messageAffiche l'état actuel (chargement, validation, téléchargement...)
message_secondaryAffiche le fichier/asset actuel en cours de chargement/téléchargement
progress_smallProgression du fichier en cours de chargement/téléchargement
progress_small_totalTaille du fichier en cours de chargement/téléchargement
progressProgression actuelle
progress_totalProgression totale
current_stageLa valeur numérique représentant l'étape actuelle du chargement (0 = None, 1 = Connecting, 2 = Fetching, 3 = Validating, 4 = Downloading, 5 = LoadingAssets, 6 = LoadingLevel, 7 = LoadingEntities, 8 = CompilingShaders, 9 = Finishing
Packages/my-loading-screen/index.js
Events.Subscribe("UpdateScreen", function(message, message_secondary, progress_small, progress_small_total, progress, progress_total, current_stage) {
// Mettre à jour l'HTML ici
});
tip

Vous pouvez utiliser progress et progress_total pour remplir la barre de chargement principale, et progress_small pour une barre de chargement réduite.

info

Toujours utiliser progress / progress_total pour récupérer le pourcentage % actuel, car progress_total représente le nombre total de fichiers en cours de téléchargement.

Informations sur le joueur

Aussi, il est possible de récupérer les informations d'un joueur en accédant à une variable globale nommée LoadingScreen :

var LoadingScreen = {
server: {
ip,
port,
name,
description,
},
player: {
nanos_id,
nanos_username,
steam_id,
}
tip

La variable LoadingScreen n'est seulement disponible après la création du navigateur d'écran de chargement.

Arrêter la musique du menu

Il est possible de désactiver la musique du menu intégré en appelant un événement à partir du JS de l'écran de chargement:

Packages/my-loading-screen/index.js
Events.Call("StopMenuMusic")

Configurer votre serveur pour utiliser l'écran de chargement

Note

Actuellement, les écrans de chargement ne fonctionnent que sur les Dedicated Servers.
Assurez-vous de configurer le Config.toml de votre serveur avec dedicated_server = true.

Après avoir crée votre package loading-screen, vous devrez configurer votre serveur pour le charger dans votre Config.toml. Dans loading_screen, mettez simplement le nom du dossier de votre Package.

Server/Config.toml
# le package loading-screen à charger (l'écran de chargement sera affiché quand les joueurs rejoindront votre serveur)
loading_screen = "my-loading-screen"

Or start it with --loading_screen "my-loading-screen".