MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Porte avec un modèle custom

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    14 Messages 5 Publieurs 3.0k Vues 1 Watching
    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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Salut,
      Pour un TESR il faut obligatoirement un tile entity.

      Si tu ne veux pas de tile entity, il faut passé par un rendu ISRBH : https://www.minecraftforgefrance.fr/showthread.php?tid=205 (qui ne te permettra pas d’utiliser un modèle techne, il faut faire le modèle directement dans le code).

      Ensuite pour le fonctionnement même de ta porte, la façon dont elle est va demander une logique de fonctionnement complexe.

      Minecraft n’est pas prévu pour avoir des blocs plus grand que 1x1x1, la porte par exemple utilise deux blocs.
      Le mieux dans ton cas sera donc d’avoir 4 blocs pour représenter la porte. Il faut que lorsqu’un des 4 blocs est détruit, les 3 soient détruit avec (tu peux regarder le code de la porte pour voir comment faire).
      Ensuite, il faudrait utiliser 5 metadata différent. 4 premiers metadata pour les 4 différents bloc (pour pouvoir les différencier) et 1 metadata différent pour l’un des deux blocs pour savoir si la porte est ouverte ou pas (par exemple le bloc en bas à gauche sur ton image).
      Ton bloc en bas à gauche aura donc une collision null si son metadata est celui que tu as défini pour représenter l’état ouvert. Pour le bloc en haut à gauche, pas besoin de faire un metadata supplémentaire, vérifie simplement le metadata de world.getMetadata(x, y -1, z) pour savoir s’il faut lui mettre une collision null ou pas.
      Pour le code du rendu, même principe que pour la collision pour savoir comment faire le rendu.

      Si tu veux en plus avoir 4 directions pour ta porte, il faut prévois des metadata supplémentaires pour indiquer la direction. (et je ne suis pas sûr que les 16 metadata que permet minecraft suffira :/).

      1 réponse Dernière réponse Répondre Citer 1
      • LeBossMax2L Hors-ligne
        LeBossMax2
        dernière édition par

        Salut, les 16 méta data peuvent suffire pour ta porte : tu en à besoin de 4 par direction : deux pour dire que la porte est ouverte ou fermée( comme l’a expliqué Robin) , une qui va regarder la block à sa gauche et une pour dire de regarder le block en dessous. Si le block du dessous est le block qui porte l’info ouvert/fermé c’est qu’il est en haut à gauche sinon, il est en haut à droite et va chercher l’info ouvert/fermé en x-1, y-1. Et tu fais ça pour toutes les directions.

        1 réponse Dernière réponse Répondre Citer 1
        • FolganskyF Hors-ligne
          Folgansky Correcteurs
          dernière édition par

          Vous oubliez qu’il semble vouloir un block qui a une animation d’ouverture.

          1 réponse Dernière réponse Répondre Citer 0
          • Maxx_QcM Hors-ligne
            Maxx_Qc
            dernière édition par

            Merci de vos réponses
            En vrai c’est chaud, mais pour les metadatas 16 devrait suffirent comme le dit LeBossMax2, 1-4 pour le metadata du bloc, 5-9 pour la direction (état ouvert), 10-14 pour la direction (état fermé) et on vérifie le metadata du bloc coin gauche en bas pour vérifier l’état et la direction

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

              Non, ça ne va pas. Tu vas vite rencontrer un problème avec cette méthode.
              5 à 9 pour la direction de quel bloc ?

              Depuis n’importe quel bloc tu dois être capable de trouver les 3 autres blocs associés à la porte.
              Or en fonction de la direction, les autres blocs ne seront pas au même endroit.

              La gauche d’un bloc, ça va être soit x + 1, soit x - 1 soit z + 1 soit z - 1 en fonction de si ta porte pointe le nord, le sud, l’est ou l’ouest.

              Ah et si en effet tu veux animer l’ouverture de la porte, TESR obligatoire.

              1 réponse Dernière réponse Répondre Citer 0
              • Maxx_QcM Hors-ligne
                Maxx_Qc
                dernière édition par

                @‘robin4002’:

                Non, ça ne va pas. Tu vas vite rencontrer un problème avec cette méthode.
                5 à 9 pour la direction de quel bloc ?

                Depuis n’importe quel bloc tu dois être capable de trouver les 3 autres blocs associés à la porte.
                Or en fonction de la direction, les autres blocs ne seront pas au même endroit.

                La gauche d’un bloc, ça va être soit x + 1, soit x - 1 soit z + 1 soit z - 1 en fonction de si ta porte pointe le nord, le sud, l’est ou l’ouest.

                Ah et si en effet tu veux animer l’ouverture de la porte, TESR obligatoire.

                Du coup si on oublie l’animation de la porte et que je veux seulement deux direction (nord sud ou bien est ouest), c’est possible ? En plus pas besoin de metadata pour l’ouverture, quand tu fais clique droit sur la porte tu peux déplacer le bloc sur le bloc à sa droite/ gauche en fonction de la direction non? Sinon je fais un bloc pour la porte ouverte et un bloc pour la porte fermée et si quelqu’un fait clic droit sur la porte fermée le bloc disparaît et le bloc porte ouverte apparaît à côté en fonction de la direction encore une fois

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

                  Pour les 4 directions * 4 blocs * 2 états ça donne 32 metadata, il faut 2 blocs différents.
                  Avec 2 directions on passe à 16, donc passe sur un bloc.

                  Après au prix de quelques vérifications de plus, il y a moyen de faire rentrer le premier cas dans 4*3+4 = 16 metadatas de la façon suivante :
                  4 metadatas pour le bloc en bas à droite
                  4 metadatas pour le bloc en haut à droite
                  4 metadatas pour les blocs de gauche (il faudrait check le bloc à droite pour savoir si c’est le bloc du bas où celui du haut)
                  4 metadatas pour les blocs de gauche à l’état ouvert (les blocs de droite devront regarder le metadata des blocs à gauche pour savoir si c’est ouvert ou pas)

                  Un peu plus complexe à gérer niveau code, mais moins gourmand en metadata.

                  1 réponse Dernière réponse Répondre Citer 0
                  • Maxx_QcM Hors-ligne
                    Maxx_Qc
                    dernière édition par

                    @‘robin4002’:

                    Pour les 4 directions * 4 blocs * 2 états ça donne 32 metadata, il faut 2 blocs différents.
                    Avec 2 directions on passe à 16, donc passe sur un bloc.

                    Après au prix de quelques vérifications de plus, il y a moyen de faire rentrer le premier cas dans 4*3+4 = 16 metadatas de la façon suivante :
                    4 metadatas pour le bloc en bas à droite
                    4 metadatas pour le bloc en haut à droite
                    4 metadatas pour les blocs de gauche (il faudrait check le bloc à droite pour savoir si c’est le bloc du bas où celui du haut)
                    4 metadatas pour les blocs de gauche à l’état ouvert (les blocs de droite devront regarder le metadata des blocs à gauche pour savoir si c’est ouvert ou pas)

                    Un peu plus complexe à gérer niveau code, mais moins gourmand en metadata.

                    Puisque les portes pourront seulement être ouvertes par un joueur avec le clic droit, je peux faire le truc de deux blocs dont j’ai parlé non?

                    1 bloc avec 8 metadata (direction, ouvert/fermé, haut/bas) (partie de gauche), un autre avec 8 metadata (direction, ouvert/fermé, haut/bas), et si on clic sur un bloc et que la porte est ouverte alors on la met à ferme en changeant le metadata et le collision box, on vérifie à droite ou à gauche en fonction de la position et on met le bloc à ouvert/fermé.

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

                      Même dans le cas où ça aurait été géré par redstone, ça n’empèche pas de passer par deux blocs.

                      1 réponse Dernière réponse Répondre Citer 0
                      • Maxx_QcM Hors-ligne
                        Maxx_Qc
                        dernière édition par

                        @‘robin4002’:

                        Même dans le cas où ça aurait été géré par redstone, ça n’empèche pas de passer par deux blocs.

                        Ok, c’est juste que depuis le début vous parler d’un seul blocs avec plein de metadata alors j’ai conclu qu’on pouvait pas utiliser plusieurs blocs ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          On peut faire les deux, soit utiliser plein de meta data (ou même avoir une variable dans un tile entity si on passe par un TESR), ou utiliser un block pour chaque partie (ce qui est plus simple je pense)

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                            Rester sur un bloc à l’avantage d’éviter d’utiliser plusieurs id de bloc (qui existe toujours en interne).
                            Après il y en a 4096 au total, donc ça fait de la marge.

                            1 réponse Dernière réponse Répondre Citer 1
                            • Maxx_QcM Hors-ligne
                              Maxx_Qc
                              dernière édition par

                              Très bien merci à vous pour votre aide =]

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

                              MINECRAFT FORGE FRANCE © 2024

                              Powered by NodeBB