MFF

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

    [EN COURS] Créer un bloc translucide et des vitres

    Planifier Épinglé Verrouillé Déplacé Archives
    1.6.2
    19 Messages 5 Publieurs 9.2k 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

      Je prévois de faire un tutoriel ou je vais faire le tour de tout les méthodes qui se trouve dans Block.java et un autre pour Item.java.
      Mais ça va mettre du temps. Pour les interactions avec redstone, tu peux le faire avec n’importe quel fonction qui possède les arguments world x y et z :
      world.isBlockIndirectlyGettingPowered(x, y, z)
      Soit true soit false, à toi de voir ce que tu en fais après. Le mieux est de l’utiliser dans le tickupdate.

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

        Désolé la dernière phrase est pour moi du chinois. Je connais bien le Java mais je suis nouveau en modding, sois indulgent 😛
        Comment utilise-tu la fonction ? :S

        Mais –> Le noteblock se sert d’une fonction pour update les blocs autour de lui. N’est-ce pas nécessaire pour détecter les alimentation en courant indirectes comme les repeaters ou les torches de redstone à travers les blocs ?

        (Ca fait beaucoup de questions mais je te casse plus les pieds, promis é_é)

        Travaille sur un super serveur, Wirestone.

        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

          Ha oui, c’est plus intelligent de le mettre dans le onNeighborBlockChange, ça évite d’avoir un tick update sur le bloc (donc moins de lag)
          Du coup dans la classe de ton bloc :
          [code_java] public void onNeighborBlockChange(World world, int x, int y, int z, int changedblockid)
          {
          if(world.isBlockIndirectlyGettingPowered(x, y, z))
          {
          //le bloc est alimenté en redstone
          }
          else
          {
          //il n’est pas alimenté en redstone
          }
          }[/code_java]
          (il faudrait arrêter de pourrir ce tutoriel avec quelque qui n’est même pas dans le sujet ><)

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

            Ah oui sympa ! 😄
            Une dernière question sans vouloir abuser, comment je peux faire pour sélectionner de quel côté mon bloc doit être alimenté en redstone ?
            (C’est mon tuto je fais ce que je veux :P)
            Nan plus sérieusement, au pire quand il sera fini je ferai un post clean tu pourra supprimer celui là si tu veux.

            Travaille sur un super serveur, Wirestone.

            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

              Impossible de vérifie ça directement avec la fonction, mais il suffit juste de s’intéresser au fonctionnement de la redstone.
              Lorsqu’il est actif, le metadata du bloc de redstone change. Il me semble que c’est 0 lorsqu’il est éteint, et ensuite de 1 à 15 pour la force du signal, en revanche je ne sais pas dans quel sens. Mais c’est pas grave, puisqu’on veut juste savoir si elle est actif ou pas. Donc :
              [code_java] public void onNeighborBlockChange(World world, int x, int y, int z, int changedblockid)
              {
              if(world.isBlockIndirectlyGettingPowered(x, y, z))
              {
              // le bloc est alimenté en redstone
              if(world.getBlockId(x + 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z) > 0)
              {
              //Le bloc est alimenté en redstone par le bloc de coordonné x + 1
              }
              if(world.getBlockId(x, y, z + 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x, y, z + 1) > 0)
              {
              //Le bloc est alimenté en redstone par le bloc de coordonné z + 1
              }
              if(world.getBlockId(x - 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x - 1, y, z) > 0)
              {
              //Le bloc est alimenté en redstone par le bloc de coordonné x - 1
              }
              if(world.getBlockId(x, y, z - 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z - 2) > 0)
              {
              //Le bloc est alimenté en redstone par le bloc de coordonné z - 1
              }
              }
              else
              {
              // il n’est pas alimenté en redstone
              }
              }[/code_java]
              Ce code ne check que les 4 blocs autour, tu peux encore l’améliorer pour vérifier au dessus. Et il ne fait que la redstone, il faudrait aussi vérifier les leviers et les torches donc ça fait un très long code 😉

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

                @‘robin4002’:

                Impossible de vérifie ça directement avec la fonction, mais il suffit juste de s’intéresser au fonctionnement de la redstone.
                Lorsqu’il est actif, le metadata du bloc de redstone change. Il me semble que c’est 0 lorsqu’il est éteint, et ensuite de 1 à 15 pour la force du signal, en revanche je ne sais pas dans quel sens. Mais c’est pas grave, puisqu’on veut juste savoir si elle est actif ou pas. Donc :
                Ce code ne check que les 4 blocs autour, tu peux encore l’améliorer pour vérifier au dessus. Et il ne fait que la redstone, il faudrait aussi vérifier les leviers et les torches donc ça fait un très long code 😉

                D’accord je comprend ! Merci beaucoup de ton aide ! Bon pour les leviers je vais essayer de me renseigner mais peut-on vérifier ça de la même manière ou c’est une fonction particulière ?

                Travaille sur un super serveur, Wirestone.

                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

                  Exactement le même principe oui, si c’était pas pareil je t’aurais donné le code ^^

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

                    @‘robin4002’:

                    Exactement le même principe oui, si c’était pas pareil je t’aurais donné le code ^^

                    Super merci beaucoup !!

                    Travaille sur un super serveur, Wirestone.

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

                      @EclipseOnFire:

                      L’idée de prendre l’héritage “BlockBreakable” est bonne, je ne connais pas les effets de cette classe.

                      Cette classe permet de rendre invisible ce bloc s’il est posé à coté d’un autre bloc du même type, en tout cas chez moi si j’extend Block au lieu de BlockBreakable et bien on verra mes autres blocs a travers et c’est très moche 😕

                      ps : Désolé de répondre aussi tard, j’espère que tu pourras finir ton tuto ça en aidera quelques uns je pense 🙂

                      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

                        Plus de nouvelle ? Tutoriel abandonné ?

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

                          Je pourrais le reprendre si tu veux 🙂

                          Mes tutos :

                          >! Un item mangeable
                          [url=http://www.minecraftforgefranc…

                          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

                            Je considère ce tutoriel comme abandonné.
                            En passant, oubliez ce que j’ai dis ici :

                            @‘robin4002’:

                            Impossible de vérifie ça directement avec la fonction, mais il suffit juste de s’intéresser au fonctionnement de la redstone.
                            Lorsqu’il est actif, le metadata du bloc de redstone change. Il me semble que c’est 0 lorsqu’il est éteint, et ensuite de 1 à 15 pour la force du signal, en revanche je ne sais pas dans quel sens. Mais c’est pas grave, puisqu’on veut juste savoir si elle est actif ou pas. Donc :
                            [code_java] public void onNeighborBlockChange(World world, int x, int y, int z, int changedblockid)
                            {
                            if(world.isBlockIndirectlyGettingPowered(x, y, z))
                            {
                            // le bloc est alimenté en redstone
                            if(world.getBlockId(x + 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z) > 0)
                            {
                            //Le bloc est alimenté en redstone par le bloc de coordonné x + 1
                            }
                            if(world.getBlockId(x, y, z + 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x, y, z + 1) > 0)
                            {
                            //Le bloc est alimenté en redstone par le bloc de coordonné z + 1
                            }
                            if(world.getBlockId(x - 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x - 1, y, z) > 0)
                            {
                            //Le bloc est alimenté en redstone par le bloc de coordonné x - 1
                            }
                            if(world.getBlockId(x, y, z - 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z - 2) > 0)
                            {
                            //Le bloc est alimenté en redstone par le bloc de coordonné z - 1
                            }
                            }
                            else
                            {
                            // il n’est pas alimenté en redstone
                            }
                            }[/code_java]
                            Ce code ne check que les 4 blocs autour, tu peux encore l’améliorer pour vérifier au dessus. Et il ne fait que la redstone, il faudrait aussi vérifier les leviers et les torches donc ça fait un très long code 😉

                            Car il y a beaucoup plus simple, world.getIndirectPowerLevelTo(x, y, z, direction)
                            (du coup c’est moi qui fait du hors-sujet x) )

                            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