MFF

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

    Fonction onBlockPlacedBy et TileEntity

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.4
    17 Messages 3 Publieurs 3.8k 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

      C’est pas compliqué.
      Lors que le bloc est posé, on cherche l’objet du tileentity. Si il n’est pas null est qu’il est d’instance TileEntityTeleportBlock, alors je cast TileEntityTeleportBlock pour avoir une variable de type TileEntityTeleportBlock, puis j’attribue la valeur de l’owner avec teTeleport.setOwner(entity.getEntityName());

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

        Oui sa j’avais compris,
        ce que je comprend pas, c’est qu’il est justement instancié alors que la fonction createNewTileEntity() est appelé après la fonction onBlockPlacedBy()

        Edit:

        Voici l’erreur

        
        2014-01-31 22:37:06 [Infos] [STDERR] java.lang.InstantiationException: com.yvelis.mtpblocks.tileentity.TileEntityDurability
        2014-01-31 22:37:06 [Infos] [STDERR] at java.lang.Class.newInstance(Unknown Source)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.tileentity.TileEntity.createAndLoadEntity(TileEntity.java:140)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.readChunkFromNBT(AnvilChunkLoader.java:440)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.checkedReadChunkFromNBT(AnvilChunkLoader.java:103)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadChunk(AnvilChunkLoader.java:83)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.gen.ChunkProviderServer.safeLoadChunk(ChunkProviderServer.java:182)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:118)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.MinecraftServer.initialWorldChunkLoad(MinecraftServer.java:294)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:90)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.integrated.IntegratedServer.startServer(IntegratedServer.java:107)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
        2014-01-31 22:37:06 [Avertissement] [Minecraft-Server] Skipping TileEntity with id TileEntityDurability
        2014-01-31 22:37:06 [Infos] [STDERR] java.lang.InstantiationException: com.yvelis.mtpblocks.tileentity.TileEntityTeleportBlock
        2014-01-31 22:37:06 [Infos] [STDERR] at java.lang.Class.newInstance(Unknown Source)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.tileentity.TileEntity.createAndLoadEntity(TileEntity.java:140)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.readChunkFromNBT(AnvilChunkLoader.java:440)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.checkedReadChunkFromNBT(AnvilChunkLoader.java:103)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadChunk(AnvilChunkLoader.java:83)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.gen.ChunkProviderServer.safeLoadChunk(ChunkProviderServer.java:182)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:118)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.MinecraftServer.initialWorldChunkLoad(MinecraftServer.java:294)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:90)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.integrated.IntegratedServer.startServer(IntegratedServer.java:107)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
        2014-01-31 22:37:06 [Infos] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
        2014-01-31 22:37:06 [Avertissement] [Minecraft-Server] Skipping TileEntity with id tileEntityTeleportBlock
        
        

        Edit 2:
        Raison possible n°1: J’utilise un constructeur pour le TileEntity

        
        @Override
        public TileEntity createNewTileEntity(World world)
        {
        return new TileEntityTeleportBlock(m_durability);
        }
        
        

        Raison possible n°2: J’utilise le même TileEntity pour plusieurs blocs différents

        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

          Les deux, les tile entity ne doivent pas avoir de constructeur, et c’est 1 bloc = 1 tile entity.

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

            Super, merci, tout fonctionne, j’ai supprimé le constructeur du TileEntity et j’ai plus l’erreur
            Par contre pour le TileEntity en commun a plusieurs blocs j’ai laissé et ça à l’air de fonctionner pour le moment, ça m’embêterai énormément d’en créer un pour chaque blocs, voila comment sa se passe:

            TileEntityDurability (durabilité du bloc)
            -> block1
            -> block2
            -> block3
            -> block4

            Et j’utilise le même pour tous

            Sa pose problème quelque part ???

            1 réponse Dernière réponse Répondre Citer 0
            • Superloup10S Hors-ligne
              Superloup10 Modérateurs
              dernière édition par

              Si tu souhaites utiliser une durabilité différente selon les blocs, tu n’as pas besoin d’un tileEntity pour cela. Un simple Enum devrait suffire.

              Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

              Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                Oula ! C’est quelque chose d’iper intéressant à savoir ça !
                Et comment je fait ?
                (sachant qu’il faut stocker la durabilité actuelle quelque part)

                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

                  Ta durabilité correspond à quoi ? Une variable dans ton tile entity ? Si oui, tu fais comme avec l’owner. Tu fais un setter dans ton tile entity, et avec la fonction onBlockPlacedBy tu mets la variable à la valeur voulu.

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

                    A ba ça je suis bien d’accord, mais comme dit, j’ai utilisé un seul tileEntity pour des blocs différents
                    Tout fonctionne très très bien, le problème est d’ailleurs résolut depuis quelques post

                    J’ai juste pas compris la réponse de Superloup10, comment faire un compteur sans tilesEntity ??

                    1 réponse Dernière réponse Répondre Citer 0
                    • Superloup10S Hors-ligne
                      Superloup10 Modérateurs
                      dernière édition par

                      Désolé, j’avais pas compris ce que tu entendais pas durabilité.

                      Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                        Ok ^^
                        Jpensais que c’était une solution plus facile

                        Merci à vous pour votre aide !

                        Problème résolut

                        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