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

    Résolu Utilisation d'un mod externe dans son propre mod

    1.7.x
    1.7.10
    4
    13
    1711
    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.
    • T
      TheWolf dernière édition par

      Bonjour, excusez moi pour mes nombreux problèmes / bugs / questions…
      J’aimerais savoir comment utiliser un bloc d’un mod externe dans son propre mod (si c’est possible).

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

        
        Block f;
        if(Loader.isModLoaded("leModID"))
        f = GameRegistry.findBlock("leModID", "leNomUnlocaliséDuBlock");
        else
        System.out.println("L'utilisateur n'a pas le mod contenant le block.");
        
        
        1 réponse Dernière réponse Répondre Citer 0
        • T
          TentaiTaiga dernière édition par

          Comment ça ? Tu veux l’utiliser comme si il était placé dans le dossier mods pour le tester avec ton mod ? Si c’est ça regarde http://www.minecraftforgefrance.fr/showthread.php?tid=1425 , j’ai jamais essayé mais tente. Et si c’est pour utiliser les classes du bloc regarde si son créateur propose une api et/ou si c’est open source avec un lien pour les classes, et regarde ça http://www.minecraftforgefrance.fr/showthread.php?tid=875 , la pareil jamais testé mais bon je pense qu’il aide pour les apis.

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

            Plaigon ce que tu m’as passé marche mais quand je le met dans la partie init de ma classe principale et quand j’utilises la variable F définissant mon block dans une méthode d’une autre classe, F est souligné en rouge en me disant f cannot be resolved to a variable 😕

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

              Il faut que tu déplaces mon code hors de init() de manière à le rajouter là où t’en as besoin. C’est logique 😃
              Sinon file ton code et on t’explique plus en détail ce qui ne va pas…

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

                
                protected void onImpact(MovingObjectPosition movingObjectPosition) 
                {
                    { 
                    Block f;
                    if(Loader.isModLoaded("TeNNoX_KeyAndCodeLock"))
                    f = GameRegistry.findBlock("TeNNoX_KeyAndCodeLock", "keylockeddoor");
                    else
                    System.out.println("L'utilisateur n'a pas le mod contenant le block.");
                    }
                
                    if (this.worldObj.getBlock((movingObjectPosition.blockX), (movingObjectPosition.blockY), (movingObjectPosition.blockZ)) == Blocks.obsidian) 
                {
                for (int x = -1; x < 1; x++)
                for (int y = -1; y < 1; y++)
                for (int z = -1; z < 2; z++)
                this.worldObj.setBlockToAir(movingObjectPosition.blockX + x,movingObjectPosition.blockY + y,movingObjectPosition.blockZ + z);
                }
                    if (this.worldObj.getBlock( movingObjectPosition.blockX,movingObjectPosition.blockY, movingObjectPosition.blockZ) == f) 
                {
                this.worldObj.setBlockToAir(movingObjectPosition.blockX, movingObjectPosition.blockY, movingObjectPosition.blockZ);
                }
                
                1 réponse Dernière réponse Répondre Citer 0
                • Deleted
                  Deleted dernière édition par

                  Ton code est vraiment mauvais….As-tu au moins remarqué que la moitié des parenthèses étaient mal placées ?! Corrige tout ceci et puis ensuite on pourra t’aider…

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

                    Enlève les accolades qui entourent le bloc que Plaigon t’a donné

                    Moddeur 1.8

                    Développeur Java

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

                      Toujours pas bon ça me demande d’initialiser la variable f 😕

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

                        Mets
                        Block f = null;

                        Moddeur 1.8

                        Développeur Java

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

                          Bon le problème persiste je mets à jour la classe de l’entité :```java
                          package fr.freshblock.freshrocket.entity.projectile;

                          import java.util.List;

                          import cpw.mods.fml.common.Loader;
                          import cpw.mods.fml.common.network.handshake.FMLHandshakeMessage.ModIdData;
                          import cpw.mods.fml.common.registry.EntityRegistry;
                          import cpw.mods.fml.common.registry.GameRegistry;
                          import cpw.mods.fml.relauncher.Side;
                          import cpw.mods.fml.relauncher.SideOnly;
                          import net.minecraft.block.Block;
                          import net.minecraft.block.material.Material;
                          import net.minecraft.enchantment.EnchantmentHelper;
                          import net.minecraft.entity.Entity;
                          import net.minecraft.entity.EntityLivingBase;
                          import net.minecraft.entity.IProjectile;
                          import net.minecraft.entity.monster.EntityBlaze;
                          import net.minecraft.entity.monster.EntityEnderman;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.entity.player.EntityPlayerMP;
                          import net.minecraft.entity.projectile.EntityThrowable;
                          import net.minecraft.init.Blocks;
                          import net.minecraft.nbt.NBTTagCompound;
                          import net.minecraft.nbt.NBTTagList;
                          import net.minecraft.network.play.server.S2BPacketChangeGameState;
                          import net.minecraft.util.AxisAlignedBB;
                          import net.minecraft.util.DamageSource;
                          import net.minecraft.util.IProgressUpdate;
                          import net.minecraft.util.MathHelper;
                          import net.minecraft.util.MovingObjectPosition;
                          import net.minecraft.util.Vec3;
                          import net.minecraft.util.MovingObjectPosition.MovingObjectType;
                          import net.minecraft.world.Explosion;
                          import net.minecraft.world.World;
                          import net.minecraftforge.client.gui.ForgeGuiFactory.ForgeConfigGui.ModIDEntry;

                          public class EntityFreshRocket extends Entity implements IProjectile {

                          private Block inTile;
                          private int ticksAlive;
                          private int inData;
                          private boolean inGround;
                          public int arrowShake;
                          public Entity shootingEntity;
                          private int ticksInGround;
                          private int ticksInAir;
                          private double damage = 6.0D;
                          private int knockbackStrength;
                          public int canBePickedUp;
                          private int field_145795_e = -1;
                          private int field_145793_f = -1;
                          private int field_145794_g = -1;

                          @Override
                          protected void entityInit() {

                          }

                          @Override
                          protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {

                          }

                          @Override
                          protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {

                          }

                          public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_,
                          float p_70186_8_) {
                          float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
                          p_70186_1_ /= (double) f2;
                          p_70186_3_ /= (double) f2;
                          p_70186_5_ /= (double) f2;
                          p_70186_1_ *= (double) p_70186_7_;
                          p_70186_3_ *= (double) p_70186_7_;
                          p_70186_5_ *= (double) p_70186_7_;
                          this.motionX = p_70186_1_;
                          this.motionY = p_70186_3_;
                          this.motionZ = p_70186_5_;
                          this.ticksInGround = 0;
                          this.worldObj.playSound(5D, 5D, 5D, “random.fizz”, distanceWalkedModified, distanceWalkedModified, true);
                          }

                          public EntityFreshRocket(World worldIn) {
                          super(worldIn);
                          this.setSize(0.5F, 0.5F);
                          this.renderDistanceWeight = 10.0D;
                          }

                          public EntityFreshRocket(World worldIn, double x, double y, double z) {
                          super(worldIn);
                          this.setSize(0.5F, 0.5F);
                          this.setPosition(x, y, z);
                          this.renderDistanceWeight = 10.0D;
                          this.yOffset = 0.0F;
                          }

                          @SideOnly(Side.CLIENT)
                          public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_,
                          float p_70056_8_, int p_70056_9_) {
                          this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
                          this.setRotation(p_70056_7_, p_70056_8_);
                          }

                          @SideOnly(Side.CLIENT)
                          public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) {
                          this.motionX = p_70016_1_;
                          this.motionY = p_70016_3_;
                          this.motionZ = p_70016_5_;

                          if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
                          float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
                          this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
                          this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70016_3_, (double) f) * 180.0D
                          / Math.PI);
                          this.prevRotationPitch = this.rotationPitch;
                          this.prevRotationYaw = this.rotationYaw;
                          this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
                          this.ticksInGround = 0;
                          }
                          }

                          protected void onImpact(MovingObjectPosition movingObjectPosition) 
                          {    
                             if (this.worldObj.getBlock((movingObjectPosition.blockX), (movingObjectPosition.blockY), (movingObjectPosition.blockZ)) == Blocks.obsidian) 
                          {
                              for (int x = -1; x < 1; x++)
                              for (int y = -1; y < 1; y++)
                              for (int z = -1; z < 2; z++)
                              this.worldObj.setBlockToAir(movingObjectPosition.blockX + x,movingObjectPosition.blockY + y,movingObjectPosition.blockZ + z);

                          Block f = null;

                          if(Loader.isModLoaded(“TeNNoX_KeyAndCodeLock”))
                              f = GameRegistry.findBlock(“TeNNoX_KeyAndCodeLock”, “keylockeddoor”);
                              else
                              System.out.println(“L’utilisateur n’a pas le mod contenant le block.”);

                          if (this.worldObj.getBlock((movingObjectPosition.blockX), (movingObjectPosition.blockY), (movingObjectPosition.blockZ)) == f)
                          {
                          this.worldObj.setBlockToAir(movingObjectPosition.blockX,movingObjectPosition.blockY,movingObjectPosition.blockZ);
                          }
                          }

                          if (movingObjectPosition.typeOfHit == MovingObjectType.BLOCK) 
                          {
                          switch (movingObjectPosition.sideHit) 
                          {
                          case 0:
                          movingObjectPosition.blockY–;
                          case 1:
                          movingObjectPosition.blockY++;
                          break;
                          case 2:
                          movingObjectPosition.blockZ–;
                          break;
                          case 3:
                          movingObjectPosition.blockZ++;
                          break;
                          case 4: // NORTH
                          movingObjectPosition.blockX–;
                          break;
                          case 5: // SOUTH
                          movingObjectPosition.blockX++;
                          break;
                          }

                          this.worldObj.spawnParticle(“largeexplode”, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);

                          this.setDead();
                          }
                          if (!this.worldObj.isRemote) 
                          {
                          this.worldObj.newExplosion(this, movingObjectPosition.blockX, movingObjectPosition.blockY, movingObjectPosition.blockZ, 2F, false, true);
                          }
                          }

                          public void onUpdate() 
                          {
                          if (this.ticksInAir == 12
                          || !this.worldObj.isRemote && (this.shootingEntity != null && this.shootingEntity.isDead
                          || !this.worldObj.blockExists((int) this.posX, (int) this.posY, (int) this.posZ))) {
                          this.setDead();
                          } else {
                          super.onUpdate();

                          if (this.inGround) {
                          if (this.worldObj.getBlock(this.field_145795_e, this.field_145793_f,
                          this.field_145794_g) == this.inTile) {
                          ++this.ticksAlive;

                          if (this.ticksAlive == 600) {
                          this.setDead();
                          }

                          return;
                          }

                          this.inGround = false;
                          this.ticksAlive = 0;
                          this.ticksInAir = 0;
                          } else {
                          ++this.ticksInAir;
                          }

                          Vec3 vec3 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
                          Vec3 vec31 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY,
                          this.posZ + this.motionZ);
                          MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks(vec3, vec31);
                          vec3 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
                          vec31 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY,
                          this.posZ + this.motionZ);

                          if (movingobjectposition != null) {
                          vec31 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord,
                          movingobjectposition.hitVec.zCoord);
                          }

                          Entity entity = null;
                          List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this,
                          this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
                          double d0 = 0.0D;

                          for (int i = 0; i < list.size(); ++i) {
                          Entity entity1 = (Entity) list.get(i);

                          if (entity1.canBeCollidedWith()
                          && (!entity1.isEntityEqual(this.shootingEntity) || this.ticksInAir >= 25)) {
                          float f = 0.3F;
                          AxisAlignedBB axisalignedbb = entity1.boundingBox.expand((double) f, (double) f, (double) f);
                          MovingObjectPosition movingobjectposition1 = axisalignedbb.calculateIntercept(vec3, vec31);

                          if (movingobjectposition1 != null) {
                          double d1 = vec3.distanceTo(movingobjectposition1.hitVec);

                          if (d1 < d0 || d0 == 0.0D) {
                          entity = entity1;
                          d0 = d1;
                          }
                          }
                          }
                          }

                          if (entity != null) {
                          movingobjectposition = new MovingObjectPosition(entity);
                          }

                          if (movingobjectposition != null) {
                          this.onImpact(movingobjectposition);
                          }

                          this.posX += this.motionX;
                          this.posZ += this.motionZ;

                          float f2 = 1.0F;

                          if (this.isInWater()) {
                          for (int j = 0; j < 4; ++j) {
                          float f3 = 0.25F;
                          this.worldObj.spawnParticle(“bubble”, this.posX, this.posY, this.posZ, this.motionX, this.motionY,
                          this.motionZ);
                          }

                          f2 = 0.8F;
                          }
                          this.motionX *= (double) f2;
                          this.motionZ *= (double) f2;
                          this.worldObj.spawnParticle(“explode”, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D);
                          this.setPosition(this.posX, this.posY, this.posZ);
                          }
                          }
                          }

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

                            Ok le code ne marche toujours pas malgré toutes les aides reçues et le message println “…” n’est pas pas dans les logs donc il y a un problème : ```java
                            package fr.freshblock.freshrocket.entity.projectile;

                            import java.util.List;

                            import cpw.mods.fml.common.Loader;
                            import cpw.mods.fml.common.network.handshake.FMLHandshakeMessage.ModIdData;
                            import cpw.mods.fml.common.registry.EntityRegistry;
                            import cpw.mods.fml.common.registry.GameRegistry;
                            import cpw.mods.fml.relauncher.Side;
                            import cpw.mods.fml.relauncher.SideOnly;
                            import net.minecraft.block.Block;
                            import net.minecraft.block.material.Material;
                            import net.minecraft.enchantment.EnchantmentHelper;
                            import net.minecraft.entity.Entity;
                            import net.minecraft.entity.EntityLivingBase;
                            import net.minecraft.entity.IProjectile;
                            import net.minecraft.entity.monster.EntityBlaze;
                            import net.minecraft.entity.monster.EntityEnderman;
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.entity.player.EntityPlayerMP;
                            import net.minecraft.entity.projectile.EntityThrowable;
                            import net.minecraft.init.Blocks;
                            import net.minecraft.nbt.NBTTagCompound;
                            import net.minecraft.nbt.NBTTagList;
                            import net.minecraft.network.play.server.S2BPacketChangeGameState;
                            import net.minecraft.util.AxisAlignedBB;
                            import net.minecraft.util.DamageSource;
                            import net.minecraft.util.IProgressUpdate;
                            import net.minecraft.util.MathHelper;
                            import net.minecraft.util.MovingObjectPosition;
                            import net.minecraft.util.Vec3;
                            import net.minecraft.util.MovingObjectPosition.MovingObjectType;
                            import net.minecraft.world.Explosion;
                            import net.minecraft.world.World;
                            import net.minecraftforge.client.gui.ForgeGuiFactory.ForgeConfigGui.ModIDEntry;

                            public class EntityFreshRocket extends Entity implements IProjectile {

                            private Block inTile;
                            private int ticksAlive;
                            private int inData;
                            private boolean inGround;
                            public int arrowShake;
                            public Entity shootingEntity;
                            private int ticksInGround;
                            private int ticksInAir;
                            private double damage = 6.0D;
                            private int knockbackStrength;
                            public int canBePickedUp;
                            private int field_145795_e = -1;
                            private int field_145793_f = -1;
                            private int field_145794_g = -1;

                            @Override
                            protected void entityInit() {

                            }

                            @Override
                            protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {

                            }

                            @Override
                            protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {

                            }

                            public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_,
                            float p_70186_8_) {
                            float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
                            p_70186_1_ /= (double) f2;
                            p_70186_3_ /= (double) f2;
                            p_70186_5_ /= (double) f2;
                            p_70186_1_ *= (double) p_70186_7_;
                            p_70186_3_ *= (double) p_70186_7_;
                            p_70186_5_ *= (double) p_70186_7_;
                            this.motionX = p_70186_1_;
                            this.motionY = p_70186_3_;
                            this.motionZ = p_70186_5_;
                            this.ticksInGround = 0;
                            this.worldObj.playSound(5D, 5D, 5D, “random.fizz”, distanceWalkedModified, distanceWalkedModified, true);
                            }

                            public EntityFreshRocket(World worldIn) {
                            super(worldIn);
                            this.setSize(0.5F, 0.5F);
                            this.renderDistanceWeight = 10.0D;
                            }

                            public EntityFreshRocket(World worldIn, double x, double y, double z) {
                            super(worldIn);
                            this.setSize(0.5F, 0.5F);
                            this.setPosition(x, y, z);
                            this.renderDistanceWeight = 10.0D;
                            this.yOffset = 0.0F;
                            }

                            @SideOnly(Side.CLIENT)
                            public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_,
                            float p_70056_8_, int p_70056_9_) {
                            this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
                            this.setRotation(p_70056_7_, p_70056_8_);
                            }

                            @SideOnly(Side.CLIENT)
                            public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) {
                            this.motionX = p_70016_1_;
                            this.motionY = p_70016_3_;
                            this.motionZ = p_70016_5_;

                            if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
                            float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
                            this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
                            this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70016_3_, (double) f) * 180.0D
                            / Math.PI);
                            this.prevRotationPitch = this.rotationPitch;
                            this.prevRotationYaw = this.rotationYaw;
                            this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
                            this.ticksInGround = 0;
                            }
                            }

                            protected void onImpact(MovingObjectPosition movingObjectPosition) 
                            {    
                               if (this.worldObj.getBlock((movingObjectPosition.blockX), (movingObjectPosition.blockY), (movingObjectPosition.blockZ)) == Blocks.obsidian) 
                            {
                                for (int x = -1; x < 1; x++)
                                for (int y = -1; y < 1; y++)
                                for (int z = -1; z < 2; z++)
                                this.worldObj.setBlockToAir(movingObjectPosition.blockX + x,movingObjectPosition.blockY + y,movingObjectPosition.blockZ + z);

                            Block f = null;

                            if(Loader.isModLoaded(“TeNNoX_KeyAndCodeLock”))
                                f = GameRegistry.findBlock(“TeNNoX_KeyAndCodeLock”, “keylockeddoor”);
                                else
                                System.out.println(“L’utilisateur n’a pas le mod contenant le block.”);

                            if (this.worldObj.getBlock((movingObjectPosition.blockX), (movingObjectPosition.blockY), (movingObjectPosition.blockZ)) == f)
                            {
                            for (int x = -1; x < 1; x++)
                                for (int y = -1; y < 1; y++)
                                for (int z = -1; z < 2; z++)
                                this.worldObj.setBlockToAir(movingObjectPosition.blockX + x,movingObjectPosition.blockY + y,movingObjectPosition.blockZ + z);
                            }
                            }

                            if (movingObjectPosition.typeOfHit == MovingObjectType.BLOCK) 
                            {
                            switch (movingObjectPosition.sideHit) 
                            {
                            case 0:
                            movingObjectPosition.blockY–;
                            case 1:
                            movingObjectPosition.blockY++;
                            break;
                            case 2:
                            movingObjectPosition.blockZ–;
                            break;
                            case 3:
                            movingObjectPosition.blockZ++;
                            break;
                            case 4: // NORTH
                            movingObjectPosition.blockX–;
                            break;
                            case 5: // SOUTH
                            movingObjectPosition.blockX++;
                            break;
                            }

                            this.worldObj.spawnParticle(“largeexplode”, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);

                            this.setDead();
                            }
                            if (!this.worldObj.isRemote) 
                            {
                            this.worldObj.newExplosion(this, movingObjectPosition.blockX, movingObjectPosition.blockY, movingObjectPosition.blockZ, 2F, false, true);
                            }
                            }

                            public void onUpdate() 
                            {
                            if (this.ticksInAir == 12
                            || !this.worldObj.isRemote && (this.shootingEntity != null && this.shootingEntity.isDead
                            || !this.worldObj.blockExists((int) this.posX, (int) this.posY, (int) this.posZ))) {
                            this.setDead();
                            } else {
                            super.onUpdate();

                            if (this.inGround) {
                            if (this.worldObj.getBlock(this.field_145795_e, this.field_145793_f,
                            this.field_145794_g) == this.inTile) {
                            ++this.ticksAlive;

                            if (this.ticksAlive == 600) {
                            this.setDead();
                            }

                            return;
                            }

                            this.inGround = false;
                            this.ticksAlive = 0;
                            this.ticksInAir = 0;
                            } else {
                            ++this.ticksInAir;
                            }

                            Vec3 vec3 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
                            Vec3 vec31 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY,
                            this.posZ + this.motionZ);
                            MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks(vec3, vec31);
                            vec3 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
                            vec31 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY,
                            this.posZ + this.motionZ);

                            if (movingobjectposition != null) {
                            vec31 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord,
                            movingobjectposition.hitVec.zCoord);
                            }

                            Entity entity = null;
                            List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this,
                            this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
                            double d0 = 0.0D;

                            for (int i = 0; i < list.size(); ++i) {
                            Entity entity1 = (Entity) list.get(i);

                            if (entity1.canBeCollidedWith()
                            && (!entity1.isEntityEqual(this.shootingEntity) || this.ticksInAir >= 25)) {
                            float f = 0.3F;
                            AxisAlignedBB axisalignedbb = entity1.boundingBox.expand((double) f, (double) f, (double) f);
                            MovingObjectPosition movingobjectposition1 = axisalignedbb.calculateIntercept(vec3, vec31);

                            if (movingobjectposition1 != null) {
                            double d1 = vec3.distanceTo(movingobjectposition1.hitVec);

                            if (d1 < d0 || d0 == 0.0D) {
                            entity = entity1;
                            d0 = d1;
                            }
                            }
                            }
                            }

                            if (entity != null) {
                            movingobjectposition = new MovingObjectPosition(entity);
                            }

                            if (movingobjectposition != null) {
                            this.onImpact(movingobjectposition);
                            }

                            this.posX += this.motionX;
                            this.posZ += this.motionZ;

                            float f2 = 1.0F;

                            if (this.isInWater()) {
                            for (int j = 0; j < 4; ++j) {
                            float f3 = 0.25F;
                            this.worldObj.spawnParticle(“bubble”, this.posX, this.posY, this.posZ, this.motionX, this.motionY,
                            this.motionZ);
                            }

                            f2 = 0.8F;
                            }
                            this.motionX *= (double) f2;
                            this.motionZ *= (double) f2;
                            this.worldObj.spawnParticle(“explode”, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D);
                            this.setPosition(this.posX, this.posY, this.posZ);
                            }
                            }
                            }

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

                              Déjà est-ce que ta condition est valide ? (Ton projectile est dans l’obsidienne à l’impact)
                              Fort peu probable. Nésite pas à, dans éclipse, sélectionner ton onImpact et faire CTRL+I pour mieux comprendre.

                              Moddeur 1.8

                              Développeur Java

                              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