• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Rotation de dalles

    1.7.x
    1.7.10
    2
    5
    1264
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Mapper
      Mapper dernière édition par

      Salut,

      Je reviens avec un nouveau problème de rotation de bloc. Cette fois-ci, je m’attaque aux dalles.
      Je veux faire les versions dalles de mes blocs de route avec des lignes orientées en fonction de l’orientation du joueur.

      Pour info, mes blocs “lignes” normaux fonctionnent comme ceci: 1 ID contient jusqu’à 8 blocs “lignes” différentes, les metadatas 0 à 7 contiennent le type de ligne et les metadatas 8 à 15 la version “orientée à 90°”. Pas d’utilisation de tileEntity (chose que j’évite au maximum)
      Je veux faire pareil avec mes dalles, éviter le tileEntity. Je compte donc utiliser un ID pour 4 lignes différentes, metadatas 0 à 3 pour les dalles du bas, 4 à 7 pour les dalles du bas avec rotation 90°, 8 à 11 pour les dalles hautes et 12 à 15 pour les dalles hautes avec rotation 90°. J’espère que vous arriverez à suivre 😛
      Je sais faire le rendu d’une texture tournée à 90° sans avoir besoin de faire une texture supplémentaire (cf mon premier topic) donc pas besoin de se soucier de ça.

      Là où je bloque, c’est à la gestion des metadatas et des fonctions spécifiques aux dalles. J’ai essayé de faire comme pour les blocs rotatifs, à savoir utiliser la méthode onBlockPlacedBy dans la classe du bloc pour appliquer le metadata en fonction du sous-bloc et de l’orientation mais ça casse la fonctionnalité de l’empilement de 2 dalles en un bloc (vu que les metadatas ne correspondent plus).
      Faudrait que je puisse ajouter une dalle sur une dalle de metadata 4 avec la dalle de metadata 0 en main (et pareil pour les autres, 5 sur 1, 6 sur 2 etc, ainsi que les versions dalles hautes) tout en vérifiant l’orientation du joueur.

      Mon code est entièrement accessible ici: https://github.com/KillerMapper/roadstuff/
      Les classes en question sont cette classe Block et cette classe ItemBlock. C’est à peu près le même code que celui de base pour faire des dalles.

      Je suis sur que ça devrait pouvoir se faire sans que ça ne soit trop compliqué, mais j’ai l’impression de passer à côté. Gérer les metadatas à la pose du bloc dans la classe du Block, est-ce pertinent?

      Je continue de chercher de mon côté (ça fait déjà quelques jours que je suis dessus) tout en espérant trouver un peu d’indices par ici 😉

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,
        Laisse tomber la fonction onBlockPlacedBy
        Passe entièrement par les fonctions qui se trouve dans l’item bloc je pense que ça sera plus simple.
        Car de toute façon il faut que tu modifies les différentes fonctions qui se trouve dans l’item bloc comme c’est dans cette classe que le placement en haut ou en bas est géré.

        1 réponse Dernière réponse Répondre Citer 0
        • Mapper
          Mapper dernière édition par

          C’est bien ce que je pensais. Faut tout faire dans la classe de l’item.

          Par contre, je n’arrive pas à trouver où mettre la définition du metadata avec ces 3 fonctions que les dalles utilisent… En attendant, je vais juste créer les dalles tournées comme les dalles normales et ajouter un craft simple, et passer à autre chose histoire d’avancer un peu.

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Dans la fonction onItemUse

            1 réponse Dernière réponse Répondre Citer 0
            • Mapper
              Mapper dernière édition par

              Problème réglé (normalement, je dois encore tester mais à première vue tout est bon), merci à BrokenSwing pour la correction.

              Le code est ici https://github.com/KillerMapper/roadstuff/blob/master/src/main/java/net/killermapper/roadstuff/common/items/asphalt/ItemBlockSlabAsphaltLines01.java (j’ai pas encore commit la dernière version je crois, ça sera fait une fois mon problème de paquets résolu).

              1 réponse Dernière réponse Répondre Citer 0
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB