Introduction sur les gui/container et les packets


  • Administrateurs

    Bienvenue dans la section HARD, dans les tutoriels que vous allez trouver ici, la moindre petite erreur va empêcher le bon fonctionnement de ce que vous faite (comme tout le reste en fait), la seul différence, c'est que contrairement à un bloc ou à un item où il y a juste la déclaration dans la classe principale et la classe du bloc/item, ici vous allez avoir beaucoup de classe (bloc + tileentity + container + gui + guiHandler + classe principale + packetHandler). Il faut donc être très attentif afin de ne pas louper quelque chose, car trouver d’où vient l'erreur dans autant de classe est difficile pour quelqu'un qui débute.

    Ceci étant une introduction, nous allons rien coder, mais uniquement faire de la théorie. Nous allons commencer par le cas d'un gui sur un bloc.

    Les différentes classes

    Comme dit juste au-dessus, vous allez avoir plusieurs classe pour assurer le bon fonctionnement de vos gui.

    Le bloc :

    Le bloc est simplement ce qui est visible sur la map. Le seul code qui sera dedans sera celui pour créer le tileEntity est lancer l'action de l'ouverture du gui.

    Le gui Handler :

    C'est quelque chose de magnifique sous FML, grâce à lui créer des gui est plutôt simple comme il va gérer les sides. Si le side est du type client, il fait afficher le gui. Si le side est du type serveur, il renvoie vers le container. Tout simplement.

    Le container :

    Uniquement du côté serveur (enfin client aussi si on prend en compte le serveur intégré pour le solo) c'est lui qui ajoutera les slots d'item.

    Le gui :

    Uniquement du côté client, il gère l'affichage, les boutons et les actions des boutons. D'ailleurs comme les actions des boutons sont du client side, il faut utiliser des paquets pour envoyer les informations au serveur.

    Les paquets :

    Ils vont assurer la communication entre le client et le serveur. Attention, comme des erreurs de connexion peuvent arriver, il faudra toujours utiliser des try/catch (ça serait bête de faire crasher un serveur juste car il n'a pas pu comprendre un paquet envoyé par un joueur ^^)

    L'entité de bloc :

    Comme vu dans ce tutoriel, elle sauvegarde des données dans des tagNBT, elle va donc enregistrer les items et autres valeurs du bloc.

    Le fonctionnement

    Un petit schéma 🙂 ?

    Les paquets peuvent être utilisés pour de nombreuses autres choses, mais nous allons rapidement voir comment les utiliser pour synchroniser les tileEntity au gui.
    Le tileEntity est dans le commun comme il est utilisé pour le serveur intégré, mais les NBT tag sont bien sur la sauvegarde de la map, donc uniquement dans le serveur (ou le serveur intégré dans le cas du jeu solo).

    Les GuiMenu

    Il n'existe pas que les gui sur le bloc (qui sont associées au container), il y a aussi les gui de menu, qui peuvent aussi être customisé à l'aide d'un tick handler sans modifier les classes de minecraft.

    Vous pouvez passer à la pratique maintenant.



  • Hey !!! Merci beaucoup, j'y vois déjà beaucoup plus claire avec sa, Merci :).



  • Sais-tu ou je peux trouver comment faire des packets ?


  • Administrateurs