MFF

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

    Créer un bateau

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    59 Messages 7 Publieurs 10.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.
    • EryahE Hors-ligne
      Eryah
      dernière édition par

      J’ai bien retirer donc la fonction registerGlobalEntityID, mais…

      • L’œuf disparait ( Wow… quelle surprise… )
      • Le nom de mes entités ne sont plus ‘goldenEggChicken’ et ‘motorizedBoat’, mais ‘ut.goldenEggChicken’
      • Je crash toujours

      C’est le m^me crash report, inutile de vous le redonner


      Register des mes entity

      Main Class

      EntityRegistry.registerModEntity(GoldenEggChicken.class, "goldenEggChicken", 420, this.instance, 40, 1, true);
      
      EntityRegistry.registerModEntity(MotorizedBoat.class, "motorizedBoat", 420, this.instance, 40, 1, true);​
      

      ClientProxy

      ​RenderingRegistry.registerEntityRenderingHandler(GoldenEggChicken.class, new RenderGoldenEggChicken(null, null, 0));
      
      RenderingRegistry.registerEntityRenderingHandler(MotorizedBoat.class, new RenderBoat(null));
      

      L’erreur vient de la, je m’en suis rendu compte en copier collant le code…
      Mais que faut-il mettre dans ‘null’

      Membre fantôme
      Je développe maintenant un jeu sur UnrealEngine4


      Contact :…

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

        çà dépend de tes classes.

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        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

          u_U
          Si tu enregistre des rendus avec un modèle null, faut pas s’étonner d’avoir des NPE …

          Il n’est pas possible de coder correctement sans apprendre le Java.
          http://fr.java.wikia.com/wiki/Java.lang.NullPointerException
          http://blog.octo.com/comment-ne-plus-avoir-de-nullpointerexception-en-java/
          http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it

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

            Déso de l’absence… Quelques problèmes… Enfin voila

            Pendent ce temps, j’ai codé mon bateau

            Classe du bateau (La MÊME que vanilla, légèrement modifié)

            ​package eryah.usefulthings.entity.item;
            
            import java.util.List;
            import net.minecraft.block.Block;
            import net.minecraft.block.material.Material;
            import net.minecraft.entity.Entity;
            import net.minecraft.entity.EntityLivingBase;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.init.Blocks;
            import net.minecraft.init.Items;
            import net.minecraft.item.Item;
            import net.minecraft.nbt.NBTTagCompound;
            import net.minecraft.util.AxisAlignedBB;
            import net.minecraft.util.BlockPos;
            import net.minecraft.util.DamageSource;
            import net.minecraft.util.EntityDamageSourceIndirect;
            import net.minecraft.util.EnumParticleTypes;
            import net.minecraft.util.MathHelper;
            import net.minecraft.world.World;
            import net.minecraftforge.fml.relauncher.Side;
            import net.minecraftforge.fml.relauncher.SideOnly;
            
            public class MotorizedBoat extends Entity
            {
                /** true if no player in boat */
                private boolean isBoatEmpty;
                private double speedMultiplier;
                private int boatPosRotationIncrements;
                private double boatX;
                private double boatY;
                private double boatZ;
                private double boatYaw;
                private double boatPitch;
                @SideOnly(Side.CLIENT)
                private double velocityX;
                @SideOnly(Side.CLIENT)
                private double velocityY;
                @SideOnly(Side.CLIENT)
                private double velocityZ;
                private static final String __OBFID = "CL_00001667";
            
                public MotorizedBoat(World worldIn)
                {
                    super(worldIn);
                    this.isBoatEmpty = true;
                    this.speedMultiplier = 0.07D;
                    this.preventEntitySpawning = true;
                    this.setSize(1.5F, 0.6F);
                }
            
                /**
                 * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
                 * prevent them from trampling crops
                 */
                protected boolean canTriggerWalking()
                {
                    return false;
                }
            
                protected void entityInit()
                {
                    this.dataWatcher.addObject(17, new Integer(0));
                    this.dataWatcher.addObject(18, new Integer(1));
                    this.dataWatcher.addObject(19, new Float(0.0F));
                }
            
                /**
                 * Returns a boundingBox used to collide the entity with other entities and blocks. This enables the entity to be
                 * pushable on contact, like boats or minecarts.
                 */
                public AxisAlignedBB getCollisionBox(Entity entityIn)
                {
                    return entityIn.getEntityBoundingBox();
                }
            
                /**
                 * returns the bounding box for this entity
                 */
                public AxisAlignedBB getBoundingBox()
                {
                    return this.getEntityBoundingBox();
                }
            
                /**
                 * Returns true if this entity should push and be pushed by other entities when colliding.
                 */
                public boolean canBePushed()
                {
                    return true;
                }
            
                public MotorizedBoat(World worldIn, double p_i1705_2_, double p_i1705_4_, double p_i1705_6_)
                {
                    this(worldIn);
                    this.setPosition(p_i1705_2_, p_i1705_4_, p_i1705_6_);
                    this.motionX = 0.0D;
                    this.motionY = 0.0D;
                    this.motionZ = 0.0D;
                    this.prevPosX = p_i1705_2_;
                    this.prevPosY = p_i1705_4_;
                    this.prevPosZ = p_i1705_6_;
                }
            
                /**
                 * Returns the Y offset from the entity's position for any entity riding this one.
                 */
                public double getMountedYOffset()
                {
                    return (double)this.height * 0.0D - 0.30000001192092896D;
                }
            
                /**
                 * Called when the entity is attacked.
                 */
                public boolean attackEntityFrom(DamageSource source, float amount)
                {
                    if (this.isEntityInvulnerable(source))
                    {
                        return false;
                    }
                    else if (!this.worldObj.isRemote && !this.isDead)
                    {
                        if (this.riddenByEntity != null && this.riddenByEntity == source.getEntity() && source instanceof EntityDamageSourceIndirect)
                        {
                            return false;
                        }
                        else
                        {
                            this.setForwardDirection(-this.getForwardDirection());
                            this.setTimeSinceHit(10);
                            this.setDamageTaken(this.getDamageTaken() + amount * 10.0F);
                            this.setBeenAttacked();
                            boolean flag = source.getEntity() instanceof EntityPlayer && ((EntityPlayer)source.getEntity()).capabilities.isCreativeMode;
            
                            if (flag || this.getDamageTaken() > 40.0F)
                            {
                                if (this.riddenByEntity != null)
                                {
                                    this.riddenByEntity.mountEntity(this);
                                }
            
                                if (!flag)
                                {
                                    this.dropItemWithOffset(Items.boat, 1, 0.0F);
                                }
            
                                this.setDead();
                            }
            
                            return true;
                        }
                    }
                    else
                    {
                        return true;
                    }
                }
            
                /**
                 * Setups the entity to do the hurt animation. Only used by packets in multiplayer.
                 */
                @SideOnly(Side.CLIENT)
                public void performHurtAnimation()
                {
                    this.setForwardDirection(-this.getForwardDirection());
                    this.setTimeSinceHit(10);
                    this.setDamageTaken(this.getDamageTaken() * 11.0F);
                }
            
                /**
                 * Returns true if other Entities should be prevented from moving through this Entity.
                 */
                public boolean canBeCollidedWith()
                {
                    return !this.isDead;
                }
            
                @SideOnly(Side.CLIENT)
                public void func_180426_a(double p_180426_1_, double p_180426_3_, double p_180426_5_, float p_180426_7_, float p_180426_8_, int p_180426_9_, boolean p_180426_10_)
                {
                    if (p_180426_10_ && this.riddenByEntity != null)
                    {
                        this.prevPosX = this.posX = p_180426_1_;
                        this.prevPosY = this.posY = p_180426_3_;
                        this.prevPosZ = this.posZ = p_180426_5_;
                        this.rotationYaw = p_180426_7_;
                        this.rotationPitch = p_180426_8_;
                        this.boatPosRotationIncrements = 0;
                        this.setPosition(p_180426_1_, p_180426_3_, p_180426_5_);
                        this.motionX = this.velocityX = 0.1D;
                        this.motionY = this.velocityY = 0.0D;
                        this.motionZ = this.velocityZ = 0.1D;
                    }
                    else
                    {
                        if (this.isBoatEmpty)
                        {
                            this.boatPosRotationIncrements = p_180426_9_ + 5;
                        }
                        else
                        {
                            double d3 = p_180426_1_ - this.posX;
                            double d4 = p_180426_3_ - this.posY;
                            double d5 = p_180426_5_ - this.posZ;
                            double d6 = d3 * d3 + d4 * d4 + d5 * d5;
            
                            if (d6 <= 1.0D)
                            {
                                return;
                            }
            
                            this.boatPosRotationIncrements = 3;
                        }
            
                        this.boatX = p_180426_1_;
                        this.boatY = p_180426_3_;
                        this.boatZ = p_180426_5_;
                        this.boatYaw = (double)p_180426_7_;
                        this.boatPitch = (double)p_180426_8_;
                        this.motionX = this.velocityX;
                        this.motionY = this.velocityY;
                        this.motionZ = this.velocityZ;
                    }
                }
            
                /**
                 * Sets the velocity to the args. Args: x, y, z
                 */
                @SideOnly(Side.CLIENT)
                public void setVelocity(double x, double y, double z)
                {
                    this.velocityX = this.motionX = x;
                    this.velocityY = this.motionY = y;
                    this.velocityZ = this.motionZ = z;
                }
            
                /**
                 * Called to update the entity's position/logic.
                 */
                public void onUpdate()
                {
                    super.onUpdate();
            
                    if (this.getTimeSinceHit() > 0)
                    {
                        this.setTimeSinceHit(this.getTimeSinceHit() - 1);
                    }
            
                    if (this.getDamageTaken() > 0.0F)
                    {
                        this.setDamageTaken(this.getDamageTaken() - 1.0F);
                    }
            
                    this.prevPosX = this.posX;
                    this.prevPosY = this.posY;
                    this.prevPosZ = this.posZ;
                    byte b0 = 5;
                    double d0 = 0.0D;
            
                    for (int i = 0; i < b0; ++i)
                    {
                        double d1 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 0) / (double)b0 - 0.125D;
                        double d3 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 1) / (double)b0 - 0.125D;
                        AxisAlignedBB axisalignedbb = new AxisAlignedBB(this.getEntityBoundingBox().minX, d1, this.getEntityBoundingBox().minZ, this.getEntityBoundingBox().maxX, d3, this.getEntityBoundingBox().maxZ);
            
                        if (this.worldObj.isAABBInMaterial(axisalignedbb, Material.water))
                        {
                            d0 += 1.0D / (double)b0;
                        }
                    }
            
                    double d9 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
                    double d2;
                    double d4;
                    int j;
            
                    if (d9 > 0.2975D)
                    {
                        d2 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D);
                        d4 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D);
            
                        for (j = 0; (double)j < 1.0D + d9 * 60.0D; ++j)
                        {
                            double d5 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
                            double d6 = (double)(this.rand.nextInt(2) * 2 - 1) * 0.7D;
                            double d7;
                            double d8;
            
                            if (this.rand.nextBoolean())
                            {
                                d7 = this.posX - d2 * d5 * 0.8D + d4 * d6;
                                d8 = this.posZ - d4 * d5 * 0.8D - d2 * d6;
                                this.worldObj.spawnParticle(EnumParticleTypes.WATER_SPLASH, d7, this.posY - 0.125D, d8, this.motionX, this.motionY, this.motionZ, new int[0]);
                            }
                            else
                            {
                                d7 = this.posX + d2 + d4 * d5 * 0.7D;
                                d8 = this.posZ + d4 - d2 * d5 * 0.7D;
                                this.worldObj.spawnParticle(EnumParticleTypes.WATER_SPLASH, d7, this.posY - 0.125D, d8, this.motionX, this.motionY, this.motionZ, new int[0]);
                            }
                        }
                    }
            
                    double d10;
                    double d11;
            
                    if (this.worldObj.isRemote && this.isBoatEmpty)
                    {
                        if (this.boatPosRotationIncrements > 0)
                        {
                            d2 = this.posX + (this.boatX - this.posX) / (double)this.boatPosRotationIncrements;
                            d4 = this.posY + (this.boatY - this.posY) / (double)this.boatPosRotationIncrements;
                            d10 = this.posZ + (this.boatZ - this.posZ) / (double)this.boatPosRotationIncrements;
                            d11 = MathHelper.wrapAngleTo180_double(this.boatYaw - (double)this.rotationYaw);
                            this.rotationYaw = (float)((double)this.rotationYaw + d11 / (double)this.boatPosRotationIncrements);
                            this.rotationPitch = (float)((double)this.rotationPitch + (this.boatPitch - (double)this.rotationPitch) / (double)this.boatPosRotationIncrements);
                            –this.boatPosRotationIncrements;
                            this.setPosition(d2, d4, d10);
                            this.setRotation(this.rotationYaw, this.rotationPitch);
                        }
                        else
                        {
                            d2 = this.posX + this.motionX;
                            d4 = this.posY + this.motionY;
                            d10 = this.posZ + this.motionZ;
                            this.setPosition(d2, d4, d10);
            
                            if (this.onGround)
                            {
                                this.motionX *= 0.5D;
                                this.motionY *= 0.5D;
                                this.motionZ *= 0.5D;
                            }
            
                            this.motionX *= 0.9900000095367432D;
                            this.motionY *= 0.949999988079071D;
                            this.motionZ *= 0.9900000095367432D;
                        }
                    }
                    else
                    {
                        if (d0 < 1.0D)
                        {
                            d2 = d0 * 2.0D - 1.0D;
                            this.motionY += 0.03999999910593033D * d2;
                        }
                        else
                        {
                            if (this.motionY < 0.0D)
                            {
                                this.motionY /= 2.0D;
                            }
            
                            this.motionY += 0.007000000216066837D;
                        }
            
                        if (this.riddenByEntity instanceof EntityLivingBase)
                        {
                            EntityLivingBase entitylivingbase = (EntityLivingBase)this.riddenByEntity;
                            float f = this.riddenByEntity.rotationYaw + -entitylivingbase.moveStrafing * 90.0F;
                            this.motionX += -Math.sin((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
                            this.motionZ += Math.cos((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
                        }
            
                        d2 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
            
                        if (d2 > 0.35D)
                        {
                            d4 = 0.35D / d2;
                            this.motionX *= d4;
                            this.motionZ *= d4;
                            d2 = 0.35D;
                        }
            
                        if (d2 > d9 && this.speedMultiplier < 0.35D)
                        {
                            this.speedMultiplier += (0.35D - this.speedMultiplier) / 35.0D;
            
                            if (this.speedMultiplier > 0.35D)
                            {
                                this.speedMultiplier = 0.35D;
                            }
                        }
                        else
                        {
                            this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D;
            
                            if (this.speedMultiplier < 0.07D)
                            {
                                this.speedMultiplier = 0.07D;
                            }
                        }
            
                        int l;
            
                        for (l = 0; l < 4; ++l)
                        {
                            int i1 = MathHelper.floor_double(this.posX + ((double)(l % 2) - 0.5D) * 0.8D);
                            j = MathHelper.floor_double(this.posZ + ((double)(l / 2) - 0.5D) * 0.8D);
            
                            for (int j1 = 0; j1 < 2; ++j1)
                            {
                                int k = MathHelper.floor_double(this.posY) + j1;
                                BlockPos blockpos = new BlockPos(i1, k, j);
                                Block block = this.worldObj.getBlockState(blockpos).getBlock();
            
                                if (block == Blocks.snow_layer)
                                {
                                    this.worldObj.setBlockToAir(blockpos);
                                    this.isCollidedHorizontally = false;
                                }
                                else if (block == Blocks.waterlily)
                                {
                                    this.worldObj.destroyBlock(blockpos, true);
                                    this.isCollidedHorizontally = false;
                                }
                            }
                        }
            
                        if (this.onGround)
                        {
                            this.motionX *= 0.6D;
                            this.motionY *= 0.5D;
                            this.motionZ *= 0.6D;
                        }
            
                        this.moveEntity(this.motionX, this.motionY, this.motionZ);
            
                        if (this.isCollidedHorizontally && d9 > 0.2D)
                        {
                            if (!this.worldObj.isRemote && !this.isDead)
                            {
                                this.setDead();
            
                                for (l = 0; l < 3; ++l)
                                {
                                    this.dropItemWithOffset(Item.getItemFromBlock(Blocks.planks), 1, 0.0F);
                                }
            
                                for (l = 0; l < 2; ++l)
                                {
                                    this.dropItemWithOffset(Items.stick, 1, 0.0F);
                                }
                            }
                        }
                        else
                        {
                            this.motionX *= 0.9900000095367432D;
                            this.motionY *= 0.949999988079071D;
                            this.motionZ *= 0.9900000095367432D;
                        }
            
                        this.rotationPitch = 0.0F;
                        d4 = (double)this.rotationYaw;
                        d10 = this.prevPosX - this.posX;
                        d11 = this.prevPosZ - this.posZ;
            
                        if (d10 * d10 + d11 * d11 > 0.001D)
                        {
                            d4 = (double)((float)(Math.atan2(d11, d10) * 180.0D / Math.PI));
                        }
            
                        double d12 = MathHelper.wrapAngleTo180_double(d4 - (double)this.rotationYaw);
            
                        if (d12 > 20.0D)
                        {
                            d12 = 20.0D;
                        }
            
                        if (d12 < -20.0D)
                        {
                            d12 = -20.0D;
                        }
            
                        this.rotationYaw = (float)((double)this.rotationYaw + d12);
                        this.setRotation(this.rotationYaw, this.rotationPitch);
            
                        if (!this.worldObj.isRemote)
                        {
                            List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().expand(0.20000000298023224D, 0.0D, 0.20000000298023224D));
            
                            if (list != null && !list.isEmpty())
                            {
                                for (int k1 = 0; k1 < list.size(); ++k1)
                                {
                                    Entity entity = (Entity)list.get(k1);
            
                                    if (entity != this.riddenByEntity && entity.canBePushed() && entity instanceof MotorizedBoat)
                                    {
                                        entity.applyEntityCollision(this);
                                    }
                                }
                            }
            
                            if (this.riddenByEntity != null && this.riddenByEntity.isDead)
                            {
                                this.riddenByEntity = null;
                            }
                        }
                    }
                }
            
                public void updateRiderPosition()
                {
                    if (this.riddenByEntity != null)
                    {
                        double d0 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
                        double d1 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
                        this.riddenByEntity.setPosition(this.posX + d0, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + d1);
                    }
                }
            
                /**
                 * (abstract) Protected helper method to write subclass entity data to NBT.
                 */
                protected void writeEntityToNBT(NBTTagCompound tagCompound) {}
            
                /**
                 * (abstract) Protected helper method to read subclass entity data from NBT.
                 */
                protected void readEntityFromNBT(NBTTagCompound tagCompund) {}
            
                /**
                 * First layer of player interaction
                 */
                public boolean interactFirst(EntityPlayer playerIn)
                {
                    if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != playerIn)
                    {
                        return true;
                    }
                    else
                    {
                        if (!this.worldObj.isRemote)
                        {
                            playerIn.mountEntity(this);
                        }
            
                        return true;
                    }
                }
            
                protected void func_180433_a(double p_180433_1_, boolean p_180433_3_, Block p_180433_4_, BlockPos p_180433_5_)
                {
                    if (p_180433_3_)
                    {
                        if (this.fallDistance > 3.0F)
                        {
                            this.fall(this.fallDistance, 1.0F);
            
                            if (!this.worldObj.isRemote && !this.isDead)
                            {
                                this.setDead();
                                int i;
            
                                for (i = 0; i < 3; ++i)
                                {
                                    this.dropItemWithOffset(Item.getItemFromBlock(Blocks.planks), 1, 0.0F);
                                }
            
                                for (i = 0; i < 2; ++i)
                                {
                                    this.dropItemWithOffset(Items.stick, 1, 0.0F);
                                }
                            }
            
                            this.fallDistance = 0.0F;
                        }
                    }
                    else if (this.worldObj.getBlockState((new BlockPos(this)).down()).getBlock().getMaterial() != Material.water && p_180433_1_ < 0.0D)
                    {
                        this.fallDistance = (float)((double)this.fallDistance - p_180433_1_);
                    }
                }
            
                /**
                 * Sets the damage taken from the last hit.
                 */
                public void setDamageTaken(float p_70266_1_)
                {
                    this.dataWatcher.updateObject(19, Float.valueOf(p_70266_1_));
                }
            
                /**
                 * Gets the damage taken from the last hit.
                 */
                public float getDamageTaken()
                {
                    return this.dataWatcher.getWatchableObjectFloat(19);
                }
            
                /**
                 * Sets the time to count down from since the last time entity was hit.
                 */
                public void setTimeSinceHit(int p_70265_1_)
                {
                    this.dataWatcher.updateObject(17, Integer.valueOf(p_70265_1_));
                }
            
                /**
                 * Gets the time since the last hit.
                 */
                public int getTimeSinceHit()
                {
                    return this.dataWatcher.getWatchableObjectInt(17);
                }
            
                /**
                 * Sets the forward direction of the entity.
                 */
                public void setForwardDirection(int p_70269_1_)
                {
                    this.dataWatcher.updateObject(18, Integer.valueOf(p_70269_1_));
                }
            
                /**
                 * Gets the forward direction of the entity.
                 */
                public int getForwardDirection()
                {
                    return this.dataWatcher.getWatchableObjectInt(18);
                }
            
                /**
                 * true if no player in boat
                 */
                @SideOnly(Side.CLIENT)
                public void setIsBoatEmpty(boolean p_70270_1_)
                {
                    this.isBoatEmpty = p_70270_1_;
                }
            }
            

            Classe du render

            ​package eryah.usefulthings.client.render;
            
            import net.minecraft.client.model.ModelBase;
            import net.minecraft.client.renderer.entity.RenderBoat;
            import net.minecraft.client.renderer.entity.RenderManager;
            import net.minecraft.entity.EntityLiving;
            import net.minecraft.util.ResourceLocation;
            import eryah.usefulthings.Reference;
            import eryah.usefulthings.entity.passive.GoldenEggChicken;
            
            public class RenderMotoBoat extends RenderBoat {
            
            public RenderMotoBoat(RenderManager p_i46188_1_,
            ModelBase p_i46188_2_, float p_i46188_3_) {
            super(p_i46188_1_);
            // TODO Auto-generated constructor stub
            }
            
            public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/motorized_boat.png"); 
            
            protected ResourceLocation getEntityTexture(EntityLiving living)
            {
            return this.getMobTexture((GoldenEggChicken)living);
            }
            
            private ResourceLocation getMobTexture(GoldenEggChicken mobTutoriel)
            {
            return texture;
            }
            
            }
            

            Classe du Chikhein (La même que vanilla, légèrement modifié)

            ​package eryah.usefulthings.entity.passive;
            
            import net.minecraft.block.Block;
            import net.minecraft.client.model.ModelChicken;
            import net.minecraft.entity.EntityAgeable;
            import net.minecraft.entity.EntityLiving;
            import net.minecraft.entity.EntityLivingBase;
            import net.minecraft.entity.SharedMonsterAttributes;
            import net.minecraft.entity.ai.EntityAIFollowParent;
            import net.minecraft.entity.ai.EntityAILookIdle;
            import net.minecraft.entity.ai.EntityAIMate;
            import net.minecraft.entity.ai.EntityAIPanic;
            import net.minecraft.entity.ai.EntityAISwimming;
            import net.minecraft.entity.ai.EntityAITempt;
            import net.minecraft.entity.ai.EntityAIWander;
            import net.minecraft.entity.ai.EntityAIWatchClosest;
            import net.minecraft.entity.monster.EntityMob;
            import net.minecraft.entity.passive.EntityAnimal;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.init.Items;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.nbt.NBTTagCompound;
            import net.minecraft.util.BlockPos;
            import net.minecraft.util.MathHelper;
            import net.minecraft.util.ResourceLocation;
            import net.minecraft.world.World;
            import eryah.usefulthings.Reference;
            import eryah.usefulthings.init.GoldenEgg;
            
            public class GoldenEggChicken extends EntityAnimal {
            
            public float field_70886_e;
               public float destPos;
               public float field_70884_g;
               public float field_70888_h;
               public float field_70889_i = 1.0F;
               /** The time until the next egg is spawned. */
               public int timeUntilNextEgg;
               public boolean chickenJockey;
               private static final String __OBFID = "CL_00001639";
               public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechiken.png");
            
               public GoldenEggChicken(World worldIn)
               {
                   super(worldIn);
                   this.setSize(0.4F, 0.7F);
                   this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000;
                   this.tasks.addTask(0, new EntityAISwimming(this));
                   this.tasks.addTask(1, new EntityAIPanic(this, 1.4D));
                   this.tasks.addTask(2, new EntityAIMate(this, 1.0D));
                   this.tasks.addTask(3, new EntityAITempt(this, 1.0D, Items.wheat_seeds, false));
                   this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D));
                   this.tasks.addTask(5, new EntityAIWander(this, 1.0D));
                   this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
                   this.tasks.addTask(7, new EntityAILookIdle(this));
               }
            
            public float getEyeHeight()
               {
                   return this.height;
               }
            
               protected void applyEntityAttributes()
               {
                   super.applyEntityAttributes();
                   this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(4.0D);
                   this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
               }
            
               /**
                * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
                * use this to react to sunlight and start to burn.
                */
               public void onLivingUpdate()
               {
                   super.onLivingUpdate();
                   this.field_70888_h = this.field_70886_e;
                   this.field_70884_g = this.destPos;
                   this.destPos = (float)((double)this.destPos + (double)(this.onGround ? -1 : 4) * 0.3D);
                   this.destPos = MathHelper.clamp_float(this.destPos, 0.0F, 1.0F);
            
                   if (!this.onGround && this.field_70889_i < 1.0F)
                   {
                       this.field_70889_i = 1.0F;
                   }
            
                   this.field_70889_i = (float)((double)this.field_70889_i * 0.9D);
            
                   if (!this.onGround && this.motionY < 0.0D)
                   {
                       this.motionY *= 0.6D;
                   }
            
                   this.field_70886_e += this.field_70889_i * 2.0F;
            
                   if (!this.worldObj.isRemote && !this.isChild() && --this.timeUntilNextEgg <= 0)
                   {
                       this.playSound("mob.chicken.plop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
                       this.dropItem(GoldenEgg.golden_egg, 1);
                       this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000;
                   }
               }
            
               public void fall(float distance, float damageMultiplier) {}
            
               /**
                * Returns the sound this mob makes while it's alive.
                */
               protected String getLivingSound()
               {
                   return "mob.chicken.say";
               }
            
               /**
                * Returns the sound this mob makes when it is hurt.
                */
               protected String getHurtSound()
               {
                   return "mob.chicken.hurt";
               }
            
               /**
                * Returns the sound this mob makes on death.
                */
               protected String getDeathSound()
               {
                   return "mob.chicken.hurt";
               }
            
               protected void playStepSound(BlockPos p_180429_1_, Block p_180429_2_)
               {
                   this.playSound("mob.chicken.step", 0.15F, 1.0F);
               }
            
               protected Item getDropItem()
               {
                   return Items.feather;
               }
            
               /**
                * Drop 0-2 items of this living's type
                */
               protected void dropFewItems(boolean p_70628_1_, int p_70628_2_)
               {
                   int j = this.rand.nextInt(3) + this.rand.nextInt(1 + p_70628_2_);
            
                   for (int k = 0; k < j; ++k)
                   {
                       this.dropItem(Items.feather, 1);
                   }
            
                   if (this.isBurning())
                   {
                       this.dropItem(Items.cooked_chicken, 1);
                   }
                   else
                   {
                       this.dropItem(Items.chicken, 1);
                       this.dropItem(GoldenEgg.golden_egg, 2);
                   }
               }
            
               public GoldenEggChicken createChild(EntityAgeable ageable)
               {
                   return new GoldenEggChicken(this.worldObj);
               }
            
               /**
                * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
                * the animal type)
                */
               public boolean isBreedingItem(ItemStack stack)
               {
                   return stack != null && stack.getItem() == Items.wheat_seeds;
               }
            
               /**
                * (abstract) Protected helper method to read subclass entity data from NBT.
                */
               public void readEntityFromNBT(NBTTagCompound tagCompund)
               {
                   super.readEntityFromNBT(tagCompund);
                   this.chickenJockey = tagCompund.getBoolean("IsChickenJockey");
            
                   if (tagCompund.hasKey("EggLayTime"))
                   {
                       this.timeUntilNextEgg = tagCompund.getInteger("EggLayTime");
                   }
               }
            
               /**
                * Get the experience points the entity currently has.
                */
            
               /**
                * (abstract) Protected helper method to write subclass entity data to NBT.
                */
               public void writeEntityToNBT(NBTTagCompound tagCompound)
               {
                   super.writeEntityToNBT(tagCompound);
                   tagCompound.setBoolean("IsChickenJockey", this.chickenJockey);
                   tagCompound.setInteger("EggLayTime", this.timeUntilNextEgg);
               }
            
               /**
                * Determines if an entity can be despawned, used on idle far away entities
                */    
            
               /**
                * Determines if this chicken is a jokey with a zombie riding it.
                */
            
               /**
                * Sets whether this chicken is a jockey or not.
                *  
                * @param jockey Whether this chicken is a jockey or not
                */
            
            }
            

            Classe du render poulet

            ​package eryah.usefulthings.client.render;
            
            import net.minecraft.client.model.ModelBase;
            import net.minecraft.client.renderer.entity.RenderChicken;
            import net.minecraft.client.renderer.entity.RenderManager;
            import net.minecraft.entity.EntityLiving;
            import net.minecraft.util.ResourceLocation;
            import eryah.usefulthings.Reference;
            import eryah.usefulthings.entity.passive.GoldenEggChicken;
            
            public class RenderGoldenEggChicken extends RenderChicken {
            
            public RenderGoldenEggChicken(RenderManager p_i46188_1_,
            ModelBase p_i46188_2_, float p_i46188_3_) {
            super(p_i46188_1_, p_i46188_2_, p_i46188_3_);
            // TODO Auto-generated constructor stub
            }
            
            public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechicken.png"); 
            
            protected ResourceLocation getEntityTexture(EntityLiving living)
            {
            return this.getMobTexture((GoldenEggChicken)living);
            }
            
            private ResourceLocation getMobTexture(GoldenEggChicken mobTutoriel)
            {
            return texture;
            }
            
            }
            

            Le but est donc de savoir il faut mettre quoi à la place des ‘null’ ici

            ​RenderingRegistry.registerEntityRenderingHandler(GoldenEggChicken.class, new RenderGoldenEggChicken(null, null, 0));
            
            RenderingRegistry.registerEntityRenderingHandler(MotorizedBoat.class, new RenderMotoBoat(null, null, 0));
            

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

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

              Pour le premier paramètre du RenderGoldenEggChicken, c’est Minecraft.getMinecraft().getRenderManager(), pour le 2ème c’est une nouvelle instance de ton model, et le 3ème c’est la taille de l’ombre (Il m’a fallut 30 secondes pour trouver ces infos, tu devrais chercher un peu plus par toi-même).

              Je te laisse chercher par toi même pour le RenderMotoBoat.

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Bon… Je sais que je vais me manger un -1… voire un -2, -3
                Mais, c’est quoi la nouvelle instance de mon model ?

                Membre fantôme
                Je développe maintenant un jeu sur UnrealEngine4


                Contact :…

                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

                  Premier null -> Minecraft.getMinecraft().getRenderManager()
                  Deuxième -> le modèle. Donc new ModelBoat() ou new NomDeTonModelCustom()

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

                    Mes mobs sont invisible
                    Une autre questions, comment faire en sorte qu’il y ai un oeuf pour la poule, et un item qui fait spawn le bowteuh

                    Membre fantôme
                    Je développe maintenant un jeu sur UnrealEngine4


                    Contact :…

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

                      Enregistrer une entité.

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

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

                        J’ai relu le topic du tutp, et j’ai check mon code, et je ne vois pas pourquoi mes mobs sont invisibles

                        Membre fantôme
                        Je développe maintenant un jeu sur UnrealEngine4


                        Contact :…

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

                          Il faut que tu fasses du debug : mets des logs (System.out.println ou logger.info si tu as un logger) dans tes fonctions de rendu est de mise à jour du mob (onEntityUpdate il me semble) et regarde à quel moment ces logs devraient apparaître mais n’apparaissent pas.

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

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

                            Je reprend ce topic, car j’aimerai avoir ls bateaux pour ma bêta. Bah ma platecrafter fonctionne, mais sert a rien

                            Donc ici on ne parlera plus donc plus de mon poulet, mais uniquement de mes bateaux 🙂
                            Donc contrairement à mon poulet, qui était invisible, mon bateau lui, n’existe pas.
                            Si on met de la lave, on ne le voit pas prendre feu. Et mon compteur d’entité na pas bougé.

                            MotorizedBoat.class ( Copier -coller du code vanilla )

                            ​package eryah.usefulthings.entity.item;
                            
                            import java.util.List;
                            
                            import net.minecraft.block.Block;
                            import net.minecraft.block.material.Material;
                            import net.minecraft.entity.Entity;
                            import net.minecraft.entity.EntityLivingBase;
                            import net.minecraft.entity.item.EntityBoat;
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.init.Blocks;
                            import net.minecraft.init.Items;
                            import net.minecraft.item.Item;
                            import net.minecraft.nbt.NBTTagCompound;
                            import net.minecraft.util.AxisAlignedBB;
                            import net.minecraft.util.BlockPos;
                            import net.minecraft.util.DamageSource;
                            import net.minecraft.util.EntityDamageSourceIndirect;
                            import net.minecraft.util.EnumParticleTypes;
                            import net.minecraft.util.MathHelper;
                            import net.minecraft.world.World;
                            import net.minecraftforge.fml.relauncher.Side;
                            import net.minecraftforge.fml.relauncher.SideOnly;
                            
                            public class MotorizedBoat extends EntityBoat
                            {
                                /** true if no player in boat */
                                private boolean isBoatEmpty;
                                private double speedMultiplier;
                                private int boatPosRotationIncrements;
                                private double boatX;
                                private double boatY;
                                private double boatZ;
                                private double boatYaw;
                                private double boatPitch;
                                @SideOnly(Side.CLIENT)
                                private double velocityX;
                                @SideOnly(Side.CLIENT)
                                private double velocityY;
                                @SideOnly(Side.CLIENT)
                                private double velocityZ;
                                private static final String __OBFID = "CL_00001667";
                            
                                public MotorizedBoat(World worldIn)
                                {
                                    super(worldIn);
                                    this.isBoatEmpty = true;
                                    this.speedMultiplier = 0.07D;
                                    this.preventEntitySpawning = true;
                                    this.setSize(1.5F, 0.6F);
                                }
                            
                                /**
                                 * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
                                 * prevent them from trampling crops
                                 */
                                protected boolean canTriggerWalking()
                                {
                                    return false;
                                }
                            
                                protected void entityInit()
                                {
                                    this.dataWatcher.addObject(17, new Integer(0));
                                    this.dataWatcher.addObject(18, new Integer(1));
                                    this.dataWatcher.addObject(19, new Float(0.0F));
                                }
                            
                                /**
                                 * Returns a boundingBox used to collide the entity with other entities and blocks. This enables the entity to be
                                 * pushable on contact, like boats or minecarts.
                                 */
                                public AxisAlignedBB getCollisionBox(Entity entityIn)
                                {
                                    return entityIn.getEntityBoundingBox();
                                }
                            
                                /**
                                 * returns the bounding box for this entity
                                 */
                                public AxisAlignedBB getBoundingBox()
                                {
                                    return this.getEntityBoundingBox();
                                }
                            
                                /**
                                 * Returns true if this entity should push and be pushed by other entities when colliding.
                                 */
                                public boolean canBePushed()
                                {
                                    return true;
                                }
                            
                                public MotorizedBoat(World worldIn, double p_i1705_2_, double p_i1705_4_, double p_i1705_6_)
                                {
                                    this(worldIn);
                                    this.setPosition(p_i1705_2_, p_i1705_4_, p_i1705_6_);
                                    this.motionX = 0.0D;
                                    this.motionY = 0.0D;
                                    this.motionZ = 0.0D;
                                    this.prevPosX = p_i1705_2_;
                                    this.prevPosY = p_i1705_4_;
                                    this.prevPosZ = p_i1705_6_;
                                }
                            
                                /**
                                 * Returns the Y offset from the entity's position for any entity riding this one.
                                 */
                                public double getMountedYOffset()
                                {
                                    return (double)this.height * 0.0D - 0.30000001192092896D;
                                }
                            
                                /**
                                 * Called when the entity is attacked.
                                 */
                                public boolean attackEntityFrom(DamageSource source, float amount)
                                {
                                    if (this.isEntityInvulnerable(source))
                                    {
                                        return false;
                                    }
                                    else if (!this.worldObj.isRemote && !this.isDead)
                                    {
                                        if (this.riddenByEntity != null && this.riddenByEntity == source.getEntity() && source instanceof EntityDamageSourceIndirect)
                                        {
                                            return false;
                                        }
                                        else
                                        {
                                            this.setForwardDirection(-this.getForwardDirection());
                                            this.setTimeSinceHit(10);
                                            this.setDamageTaken(this.getDamageTaken() + amount * 10.0F);
                                            this.setBeenAttacked();
                                            boolean flag = source.getEntity() instanceof EntityPlayer && ((EntityPlayer)source.getEntity()).capabilities.isCreativeMode;
                            
                                            if (flag || this.getDamageTaken() > 40.0F)
                                            {
                                                if (this.riddenByEntity != null)
                                                {
                                                    this.riddenByEntity.mountEntity(this);
                                                }
                            
                                                if (!flag)
                                                {
                                                    this.dropItemWithOffset(Items.boat, 1, 0.0F);
                                                }
                            
                                                this.setDead();
                                            }
                            
                                            return true;
                                        }
                                    }
                                    else
                                    {
                                        return true;
                                    }
                                }
                            
                                /**
                                 * Setups the entity to do the hurt animation. Only used by packets in multiplayer.
                                 */
                                @SideOnly(Side.CLIENT)
                                public void performHurtAnimation()
                                {
                                    this.setForwardDirection(-this.getForwardDirection());
                                    this.setTimeSinceHit(10);
                                    this.setDamageTaken(this.getDamageTaken() * 11.0F);
                                }
                            
                                /**
                                 * Returns true if other Entities should be prevented from moving through this Entity.
                                 */
                                public boolean canBeCollidedWith()
                                {
                                    return !this.isDead;
                                }
                            
                                @SideOnly(Side.CLIENT)
                                public void func_180426_a(double p_180426_1_, double p_180426_3_, double p_180426_5_, float p_180426_7_, float p_180426_8_, int p_180426_9_, boolean p_180426_10_)
                                {
                                    if (p_180426_10_ && this.riddenByEntity != null)
                                    {
                                        this.prevPosX = this.posX = p_180426_1_;
                                        this.prevPosY = this.posY = p_180426_3_;
                                        this.prevPosZ = this.posZ = p_180426_5_;
                                        this.rotationYaw = p_180426_7_;
                                        this.rotationPitch = p_180426_8_;
                                        this.boatPosRotationIncrements = 0;
                                        this.setPosition(p_180426_1_, p_180426_3_, p_180426_5_);
                                        this.motionX = this.velocityX = 0.1D;
                                        this.motionY = this.velocityY = 0.0D;
                                        this.motionZ = this.velocityZ = 0.1D;
                                    }
                                    else
                                    {
                                        if (this.isBoatEmpty)
                                        {
                                            this.boatPosRotationIncrements = p_180426_9_ + 5;
                                        }
                                        else
                                        {
                                            double d3 = p_180426_1_ - this.posX;
                                            double d4 = p_180426_3_ - this.posY;
                                            double d5 = p_180426_5_ - this.posZ;
                                            double d6 = d3 * d3 + d4 * d4 + d5 * d5;
                            
                                            if (d6 <= 1.0D)
                                            {
                                                return;
                                            }
                            
                                            this.boatPosRotationIncrements = 3;
                                        }
                            
                                        this.boatX = p_180426_1_;
                                        this.boatY = p_180426_3_;
                                        this.boatZ = p_180426_5_;
                                        this.boatYaw = (double)p_180426_7_;
                                        this.boatPitch = (double)p_180426_8_;
                                        this.motionX = this.velocityX;
                                        this.motionY = this.velocityY;
                                        this.motionZ = this.velocityZ;
                                    }
                                }
                            
                                /**
                                 * Sets the velocity to the args. Args: x, y, z
                                 */
                                @SideOnly(Side.CLIENT)
                                public void setVelocity(double x, double y, double z)
                                {
                                    this.velocityX = this.motionX = x;
                                    this.velocityY = this.motionY = y;
                                    this.velocityZ = this.motionZ = z;
                                }
                            
                                /**
                                 * Called to update the entity's position/logic.
                                 */
                                public void onUpdate()
                                {
                                    super.onUpdate();
                            
                                    if (this.getTimeSinceHit() > 0)
                                    {
                                        this.setTimeSinceHit(this.getTimeSinceHit() - 1);
                                    }
                            
                                    if (this.getDamageTaken() > 0.0F)
                                    {
                                        this.setDamageTaken(this.getDamageTaken() - 1.0F);
                                    }
                            
                                    this.prevPosX = this.posX;
                                    this.prevPosY = this.posY;
                                    this.prevPosZ = this.posZ;
                                    byte b0 = 5;
                                    double d0 = 0.0D;
                            
                                    for (int i = 0; i < b0; ++i)
                                    {
                                        double d1 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 0) / (double)b0 - 0.125D;
                                        double d3 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 1) / (double)b0 - 0.125D;
                                        AxisAlignedBB axisalignedbb = new AxisAlignedBB(this.getEntityBoundingBox().minX, d1, this.getEntityBoundingBox().minZ, this.getEntityBoundingBox().maxX, d3, this.getEntityBoundingBox().maxZ);
                            
                                        if (this.worldObj.isAABBInMaterial(axisalignedbb, Material.water))
                                        {
                                            d0 += 1.0D / (double)b0;
                                        }
                                    }
                            
                                    double d9 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
                                    double d2;
                                    double d4;
                                    int j;
                            
                                    if (d9 > 0.2975D)
                                    {
                                        d2 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D);
                                        d4 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D);
                            
                                        for (j = 0; (double)j < 1.0D + d9 * 60.0D; ++j)
                                        {
                                            double d5 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
                                            double d6 = (double)(this.rand.nextInt(2) * 2 - 1) * 0.7D;
                                            double d7;
                                            double d8;
                            
                                            if (this.rand.nextBoolean())
                                            {
                                                d7 = this.posX - d2 * d5 * 0.8D + d4 * d6;
                                                d8 = this.posZ - d4 * d5 * 0.8D - d2 * d6;
                                                this.worldObj.spawnParticle(EnumParticleTypes.WATER_SPLASH, d7, this.posY - 0.125D, d8, this.motionX, this.motionY, this.motionZ, new int[0]);
                                            }
                                            else
                                            {
                                                d7 = this.posX + d2 + d4 * d5 * 0.7D;
                                                d8 = this.posZ + d4 - d2 * d5 * 0.7D;
                                                this.worldObj.spawnParticle(EnumParticleTypes.WATER_SPLASH, d7, this.posY - 0.125D, d8, this.motionX, this.motionY, this.motionZ, new int[0]);
                                            }
                                        }
                                    }
                            
                                    double d10;
                                    double d11;
                            
                                    if (this.worldObj.isRemote && this.isBoatEmpty)
                                    {
                                        if (this.boatPosRotationIncrements > 0)
                                        {
                                            d2 = this.posX + (this.boatX - this.posX) / (double)this.boatPosRotationIncrements;
                                            d4 = this.posY + (this.boatY - this.posY) / (double)this.boatPosRotationIncrements;
                                            d10 = this.posZ + (this.boatZ - this.posZ) / (double)this.boatPosRotationIncrements;
                                            d11 = MathHelper.wrapAngleTo180_double(this.boatYaw - (double)this.rotationYaw);
                                            this.rotationYaw = (float)((double)this.rotationYaw + d11 / (double)this.boatPosRotationIncrements);
                                            this.rotationPitch = (float)((double)this.rotationPitch + (this.boatPitch - (double)this.rotationPitch) / (double)this.boatPosRotationIncrements);
                                            –this.boatPosRotationIncrements;
                                            this.setPosition(d2, d4, d10);
                                            this.setRotation(this.rotationYaw, this.rotationPitch);
                                        }
                                        else
                                        {
                                            d2 = this.posX + this.motionX;
                                            d4 = this.posY + this.motionY;
                                            d10 = this.posZ + this.motionZ;
                                            this.setPosition(d2, d4, d10);
                            
                                            if (this.onGround)
                                            {
                                                this.motionX *= 0.5D;
                                                this.motionY *= 0.5D;
                                                this.motionZ *= 0.5D;
                                            }
                            
                                            this.motionX *= 0.9900000095367432D;
                                            this.motionY *= 0.949999988079071D;
                                            this.motionZ *= 0.9900000095367432D;
                                        }
                                    }
                                    else
                                    {
                                        if (d0 < 1.0D)
                                        {
                                            d2 = d0 * 2.0D - 1.0D;
                                            this.motionY += 0.03999999910593033D * d2;
                                        }
                                        else
                                        {
                                            if (this.motionY < 0.0D)
                                            {
                                                this.motionY /= 2.0D;
                                            }
                            
                                            this.motionY += 0.007000000216066837D;
                                        }
                            
                                        if (this.riddenByEntity instanceof EntityLivingBase)
                                        {
                                            EntityLivingBase entitylivingbase = (EntityLivingBase)this.riddenByEntity;
                                            float f = this.riddenByEntity.rotationYaw + -entitylivingbase.moveStrafing * 90.0F;
                                            this.motionX += -Math.sin((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
                                            this.motionZ += Math.cos((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
                                        }
                            
                                        d2 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
                            
                                        if (d2 > 0.35D)
                                        {
                                            d4 = 0.35D / d2;
                                            this.motionX *= d4;
                                            this.motionZ *= d4;
                                            d2 = 0.35D;
                                        }
                            
                                        if (d2 > d9 && this.speedMultiplier < 0.35D)
                                        {
                                            this.speedMultiplier += (0.35D - this.speedMultiplier) / 35.0D;
                            
                                            if (this.speedMultiplier > 0.35D)
                                            {
                                                this.speedMultiplier = 0.35D;
                                            }
                                        }
                                        else
                                        {
                                            this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D;
                            
                                            if (this.speedMultiplier < 0.07D)
                                            {
                                                this.speedMultiplier = 0.07D;
                                            }
                                        }
                            
                                        int l;
                            
                                        for (l = 0; l < 4; ++l)
                                        {
                                            int i1 = MathHelper.floor_double(this.posX + ((double)(l % 2) - 0.5D) * 0.8D);
                                            j = MathHelper.floor_double(this.posZ + ((double)(l / 2) - 0.5D) * 0.8D);
                            
                                            for (int j1 = 0; j1 < 2; ++j1)
                                            {
                                                int k = MathHelper.floor_double(this.posY) + j1;
                                                BlockPos blockpos = new BlockPos(i1, k, j);
                                                Block block = this.worldObj.getBlockState(blockpos).getBlock();
                            
                                                if (block == Blocks.snow_layer)
                                                {
                                                    this.worldObj.setBlockToAir(blockpos);
                                                    this.isCollidedHorizontally = false;
                                                }
                                                else if (block == Blocks.waterlily)
                                                {
                                                    this.worldObj.destroyBlock(blockpos, true);
                                                    this.isCollidedHorizontally = false;
                                                }
                                            }
                                        }
                            
                                        if (this.onGround)
                                        {
                                            this.motionX *= 0.6D;
                                            this.motionY *= 0.5D;
                                            this.motionZ *= 0.6D;
                                        }
                            
                                        this.moveEntity(this.motionX, this.motionY, this.motionZ);
                            
                                        if (this.isCollidedHorizontally && d9 > 0.2D)
                                        {
                                            if (!this.worldObj.isRemote && !this.isDead)
                                            {
                                                this.setDead();
                            
                                                for (l = 0; l < 3; ++l)
                                                {
                                                    this.dropItemWithOffset(Item.getItemFromBlock(Blocks.planks), 1, 0.0F);
                                                }
                            
                                                for (l = 0; l < 2; ++l)
                                                {
                                                    this.dropItemWithOffset(Items.stick, 1, 0.0F);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            this.motionX *= 0.9900000095367432D;
                                            this.motionY *= 0.949999988079071D;
                                            this.motionZ *= 0.9900000095367432D;
                                        }
                            
                                        this.rotationPitch = 0.0F;
                                        d4 = (double)this.rotationYaw;
                                        d10 = this.prevPosX - this.posX;
                                        d11 = this.prevPosZ - this.posZ;
                            
                                        if (d10 * d10 + d11 * d11 > 0.001D)
                                        {
                                            d4 = (double)((float)(Math.atan2(d11, d10) * 180.0D / Math.PI));
                                        }
                            
                                        double d12 = MathHelper.wrapAngleTo180_double(d4 - (double)this.rotationYaw);
                            
                                        if (d12 > 20.0D)
                                        {
                                            d12 = 20.0D;
                                        }
                            
                                        if (d12 < -20.0D)
                                        {
                                            d12 = -20.0D;
                                        }
                            
                                        this.rotationYaw = (float)((double)this.rotationYaw + d12);
                                        this.setRotation(this.rotationYaw, this.rotationPitch);
                            
                                        if (!this.worldObj.isRemote)
                                        {
                                            List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().expand(0.20000000298023224D, 0.0D, 0.20000000298023224D));
                            
                                            if (list != null && !list.isEmpty())
                                            {
                                                for (int k1 = 0; k1 < list.size(); ++k1)
                                                {
                                                    Entity entity = (Entity)list.get(k1);
                            
                                                    if (entity != this.riddenByEntity && entity.canBePushed() && entity instanceof MotorizedBoat)
                                                    {
                                                        entity.applyEntityCollision(this);
                                                    }
                                                }
                                            }
                            
                                            if (this.riddenByEntity != null && this.riddenByEntity.isDead)
                                            {
                                                this.riddenByEntity = null;
                                            }
                                        }
                                    }
                                }
                            
                                public void updateRiderPosition()
                                {
                                    if (this.riddenByEntity != null)
                                    {
                                        double d0 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
                                        double d1 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
                                        this.riddenByEntity.setPosition(this.posX + d0, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + d1);
                                    }
                                }
                            
                                /**
                                 * (abstract) Protected helper method to write subclass entity data to NBT.
                                 */
                                protected void writeEntityToNBT(NBTTagCompound tagCompound) {}
                            
                                /**
                                 * (abstract) Protected helper method to read subclass entity data from NBT.
                                 */
                                protected void readEntityFromNBT(NBTTagCompound tagCompund) {}
                            
                                /**
                                 * First layer of player interaction
                                 */
                                public boolean interactFirst(EntityPlayer playerIn)
                                {
                                    if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != playerIn)
                                    {
                                        return true;
                                    }
                                    else
                                    {
                                        if (!this.worldObj.isRemote)
                                        {
                                            playerIn.mountEntity(this);
                                        }
                            
                                        return true;
                                    }
                                }
                            
                                protected void func_180433_a(double p_180433_1_, boolean p_180433_3_, Block p_180433_4_, BlockPos p_180433_5_)
                                {
                                    if (p_180433_3_)
                                    {
                                        if (this.fallDistance > 3.0F)
                                        {
                                            this.fall(this.fallDistance, 1.0F);
                            
                                            if (!this.worldObj.isRemote && !this.isDead)
                                            {
                                                this.setDead();
                                                int i;
                            
                                                for (i = 0; i < 3; ++i)
                                                {
                                                    this.dropItemWithOffset(Item.getItemFromBlock(Blocks.planks), 1, 0.0F);
                                                }
                            
                                                for (i = 0; i < 2; ++i)
                                                {
                                                    this.dropItemWithOffset(Items.stick, 1, 0.0F);
                                                }
                                            }
                            
                                            this.fallDistance = 0.0F;
                                        }
                                    }
                                    else if (this.worldObj.getBlockState((new BlockPos(this)).down()).getBlock().getMaterial() != Material.water && p_180433_1_ < 0.0D)
                                    {
                                        this.fallDistance = (float)((double)this.fallDistance - p_180433_1_);
                                    }
                                }
                            
                                /**
                                 * Sets the damage taken from the last hit.
                                 */
                                public void setDamageTaken(float p_70266_1_)
                                {
                                    this.dataWatcher.updateObject(19, Float.valueOf(p_70266_1_));
                                }
                            
                                /**
                                 * Gets the damage taken from the last hit.
                                 */
                                public float getDamageTaken()
                                {
                                    return this.dataWatcher.getWatchableObjectFloat(19);
                                }
                            
                                /**
                                 * Sets the time to count down from since the last time entity was hit.
                                 */
                                public void setTimeSinceHit(int p_70265_1_)
                                {
                                    this.dataWatcher.updateObject(17, Integer.valueOf(p_70265_1_));
                                }
                            
                                /**
                                 * Gets the time since the last hit.
                                 */
                                public int getTimeSinceHit()
                                {
                                    return this.dataWatcher.getWatchableObjectInt(17);
                                }
                            
                                /**
                                 * Sets the forward direction of the entity.
                                 */
                                public void setForwardDirection(int p_70269_1_)
                                {
                                    this.dataWatcher.updateObject(18, Integer.valueOf(p_70269_1_));
                                }
                            
                                /**
                                 * Gets the forward direction of the entity.
                                 */
                                public int getForwardDirection()
                                {
                                    return this.dataWatcher.getWatchableObjectInt(18);
                                }
                            
                                /**
                                 * true if no player in boat
                                 */
                                @SideOnly(Side.CLIENT)
                                public void setIsBoatEmpty(boolean p_70270_1_)
                                {
                                    this.isBoatEmpty = p_70270_1_;
                                }
                            }
                            

                            IMotorizedBoat.class (Item (Copier-Coller du code vanilla ))

                            ​package eryah.usefulthings.init;
                            
                            import java.util.List;
                            
                            import eryah.usefulthings.Reference;
                            import eryah.usefulthings.UsefulthingsMod;
                            import eryah.usefulthings.entity.item.MotorizedBoat;
                            import net.minecraft.client.Minecraft;
                            import net.minecraft.client.resources.model.ModelResourceLocation;
                            import net.minecraft.creativetab.CreativeTabs;
                            import net.minecraft.entity.Entity;
                            import net.minecraft.entity.item.EntityBoat;
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.init.Blocks;
                            import net.minecraft.item.Item;
                            import net.minecraft.item.ItemStack;
                            import net.minecraft.stats.StatList;
                            import net.minecraft.util.AxisAlignedBB;
                            import net.minecraft.util.BlockPos;
                            import net.minecraft.util.MathHelper;
                            import net.minecraft.util.MovingObjectPosition;
                            import net.minecraft.util.Vec3;
                            import net.minecraft.world.World;
                            import net.minecraftforge.fml.common.registry.GameRegistry;
                            
                            public class IMotorizedBoat extends Item
                            {
                                private static final String __OBFID = "CL_00001774";
                                public static Item motorized_boat;
                            
                                public IMotorizedBoat()
                                {
                                    this.maxStackSize = 1;
                                }
                            
                                public static void init(){
                                motorized_boat = new Engine().setUnlocalizedName("motorized_boat").setCreativeTab(UsefulthingsMod.UTTab);
                            }
                            
                            public static void register()
                            {
                            GameRegistry.registerItem(motorized_boat, motorized_boat.getUnlocalizedName().substring(5));
                            }
                            
                            public static void registerRenders()
                            {
                            registerRender(motorized_boat);
                            }
                            
                            public static void registerRender(Item item)
                            {
                            Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                            }
                            
                                /**
                                 * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
                                 */
                                public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                                {
                                    float f = 1.0F;
                                    float f1 = playerIn.prevRotationPitch + (playerIn.rotationPitch - playerIn.prevRotationPitch) * f;
                                    float f2 = playerIn.prevRotationYaw + (playerIn.rotationYaw - playerIn.prevRotationYaw) * f;
                                    double d0 = playerIn.prevPosX + (playerIn.posX - playerIn.prevPosX) * (double)f;
                                    double d1 = playerIn.prevPosY + (playerIn.posY - playerIn.prevPosY) * (double)f + (double)playerIn.getEyeHeight();
                                    double d2 = playerIn.prevPosZ + (playerIn.posZ - playerIn.prevPosZ) * (double)f;
                                    Vec3 vec3 = new Vec3(d0, d1, d2);
                                    float f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI);
                                    float f4 = MathHelper.sin(-f2 * 0.017453292F - (float)Math.PI);
                                    float f5 = -MathHelper.cos(-f1 * 0.017453292F);
                                    float f6 = MathHelper.sin(-f1 * 0.017453292F);
                                    float f7 = f4 * f5;
                                    float f8 = f3 * f5;
                                    double d3 = 5.0D;
                                    Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3);
                                    MovingObjectPosition movingobjectposition = worldIn.rayTraceBlocks(vec3, vec31, true);
                            
                                    if (movingobjectposition == null)
                                    {
                                        return itemStackIn;
                                    }
                                    else
                                    {
                                        Vec3 vec32 = playerIn.getLook(f);
                                        boolean flag = false;
                                        float f9 = 1.0F;
                                        List list = worldIn.getEntitiesWithinAABBExcludingEntity(playerIn, playerIn.getEntityBoundingBox().addCoord(vec32.xCoord * d3, vec32.yCoord * d3, vec32.zCoord * d3).expand((double)f9, (double)f9, (double)f9));
                            
                                        for (int i = 0; i < list.size(); ++i)
                                        {
                                            Entity entity = (Entity)list.get(i);
                            
                                            if (entity.canBeCollidedWith())
                                            {
                                                float f10 = entity.getCollisionBorderSize();
                                                AxisAlignedBB axisalignedbb = entity.getEntityBoundingBox().expand((double)f10, (double)f10, (double)f10);
                            
                                                if (axisalignedbb.isVecInside(vec3))
                                                {
                                                    flag = true;
                                                }
                                            }
                                        }
                            
                                        if (flag)
                                        {
                                            return itemStackIn;
                                        }
                                        else
                                        {
                                            if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
                                            {
                                                BlockPos blockpos = movingobjectposition.getBlockPos();
                            
                                                if (worldIn.getBlockState(blockpos).getBlock() == Blocks.snow_layer)
                                                {
                                                    blockpos = blockpos.down();
                                                }
                            
                                                MotorizedBoat motoboat = new MotorizedBoat(worldIn, (double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 1.0F), (double)((float)blockpos.getZ() + 0.5F));
                                                motoboat.rotationYaw = (float)(((MathHelper.floor_double((double)(playerIn.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) - 1) * 90);
                            
                                                if (!worldIn.getCollidingBoundingBoxes(motoboat, motoboat.getEntityBoundingBox().expand(-0.1D, -0.1D, -0.1D)).isEmpty())
                                                {
                                                    return itemStackIn;
                                                }
                            
                                                if (!worldIn.isRemote)
                                                {
                                                    worldIn.spawnEntityInWorld(motoboat);
                                                }
                            
                                                if (!playerIn.capabilities.isCreativeMode)
                                                {
                                                    --itemStackIn.stackSize;
                                                }
                            
                                                playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
                                            }
                            
                                            return itemStackIn;
                                        }
                                    }
                                }
                            }
                            
                            

                            RenderMotoBoat.class

                            ​package eryah.usefulthings.client.render;
                            
                            import net.minecraft.client.Minecraft;
                            import net.minecraft.client.model.ModelBoat;
                            import net.minecraft.client.model.ModelChicken;
                            import net.minecraft.client.renderer.entity.RenderBoat;
                            import net.minecraft.client.renderer.entity.RenderManager;
                            import net.minecraft.entity.EntityLiving;
                            import net.minecraft.util.ResourceLocation;
                            import eryah.usefulthings.Reference;
                            import eryah.usefulthings.entity.passive.GoldenEggChicken;
                            
                            public class RenderMotoBoat extends RenderBoat {
                            
                            public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechicken.png"); 
                            
                            public RenderMotoBoat(RenderManager renderManager, ModelBoat model, float shadow)
                            {
                            super(Minecraft.getMinecraft().getRenderManager());
                            }
                            
                            protected ResourceLocation getEntityTexture(EntityLiving living)
                            {
                            return this.getMobMotoBoatTexture((GoldenEggChicken)living);
                            }
                            
                            private ResourceLocation getMobMotoBoatTexture(GoldenEggChicken mobTutoriel)
                            {
                            return texture;
                            }
                            
                            }
                            
                            

                            Partie de la main class

                            ​EntityRegistry.registerModEntity(MotorizedBoat.class, "motorizedBoat", 21052, this.instance, 40, 1, true);
                            

                            Partie du ClientProxy

                            ​RenderingRegistry.registerEntityRenderingHandler(MotorizedBoat.class, new RenderMotoBoat(Minecraft.getMinecraft().getRenderManager(), new ModelBoat(), 0.3F));
                            

                            Membre fantôme
                            Je développe maintenant un jeu sur UnrealEngine4


                            Contact :…

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

                              C’est quoi çà :

                              public static void init(){
                              motorized_boat = new Engine().setUnlocalizedName("motorized_boat").setCreativeTab(UsefulthingsMod.UTTab);
                              }
                              

                              Pour ce qui est de ton entité, regarde le message au-dessus : fais du debug pour voir d’où vient le problème.

                              Site web contenant mes scripts : http://SCAREXgaming.github.io

                              Pas de demandes de support par MP ni par skype SVP.
                              Je n'accepte sur skype que l…

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

                                ah 2sec, j’ai vu une erreur assez grave faut que je la corrige avant que robin la voit et m’engeule 😞


                                Etrange… Je rajoute la méthode onEntityUpdate, et la, tous fonctionne.
                                Je peut rentrer dans le bateau et tout/
                                Manque plus qu’a lui mettre sa texture ( actuellement, il a la texture du bateau par défaut ) et son model custom ( Son moteur )

                                PS : Je ne passe pas le tuto en résolu, car si j’ai encore des problèmes sur par exemple, la vitesse…

                                Membre fantôme
                                Je développe maintenant un jeu sur UnrealEngine4


                                Contact :…

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

                                  Je m’excuse du double-post, mais pareil pour un autre topic, si je modfie le message précedent, il aurait fallu attendre quelques années avant que quelqu’un me réponde.

                                  Bref, j’ai voulu apliquer mon model custom, mais il ne s’apllique pas

                                  ClientProxy

                                  ​RenderingRegistry.registerEntityRenderingHandler(MotorizedBoat.class, new RenderMotoBoat(Minecraft.getMinecraft().getRenderManager(), new ModelMotoBoat(), 0.3F));
                                  

                                  Render

                                  ​package eryah.usefulthings.client.render;
                                  
                                  import net.minecraft.client.Minecraft;
                                  import net.minecraft.client.model.ModelBoat;
                                  import net.minecraft.client.model.ModelChicken;
                                  import net.minecraft.client.renderer.entity.Render;
                                  import net.minecraft.client.renderer.entity.RenderBoat;
                                  import net.minecraft.client.renderer.entity.RenderManager;
                                  import net.minecraft.entity.Entity;
                                  import net.minecraft.entity.EntityLiving;
                                  import net.minecraft.entity.item.EntityBoat;
                                  import net.minecraft.util.ResourceLocation;
                                  import eryah.usefulthings.Reference;
                                  import eryah.usefulthings.client.models.ModelMotoBoat;
                                  import eryah.usefulthings.entity.item.MotorizedBoat;
                                  import eryah.usefulthings.entity.passive.GoldenEggChicken;
                                  
                                  public class RenderMotoBoat extends RenderBoat {
                                  
                                  public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/motoboat.png"); 
                                  
                                  public RenderMotoBoat(RenderManager renderManager, ModelMotoBoat model, float shadow)
                                  {
                                  super(Minecraft.getMinecraft().getRenderManager());
                                  }
                                  
                                  protected ResourceLocation getEntityTexture(MotorizedBoat living)
                                  {
                                  return this.getMobMotoBoatTexture((MotorizedBoat)living);
                                  }
                                  
                                  private ResourceLocation getMobMotoBoatTexture(MotorizedBoat motoBoat)
                                  {
                                  return texture;
                                  }
                                  
                                  @Override
                                  protected ResourceLocation getEntityTexture(Entity entity) {
                                  return this.getEntityTexture((MotorizedBoat)entity);
                                  }
                                  
                                  }
                                  
                                  

                                  Membre fantôme
                                  Je développe maintenant un jeu sur UnrealEngine4


                                  Contact :…

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

                                    Tu ne remarques pas que ton model donné en paramètre ne sert absolument à rien ? Et que tu n’appelles jamais la méthode render de ton model ?

                                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                                    Pas de demandes de support par MP ni par skype SVP.
                                    Je n'accepte sur skype que l…

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

                                      J’ai regardé le tuto de robin, et d’après le tuto, il faut juste changer le model dans le client

                                      ​RenderingRegistry.registerEntityRenderingHandler(MotorizedBoat.class, new RenderMotoBoat(Minecraft.getMinecraft().getRenderManager(), new** ModelMotoBoat**(), 0.3F));
                                      

                                      Membre fantôme
                                      Je développe maintenant un jeu sur UnrealEngine4


                                      Contact :…

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

                                        Oui mais tu ne remarques pas que la méthode draw de ton model n’est jamais appelée ?

                                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                                        Pas de demandes de support par MP ni par skype SVP.
                                        Je n'accepte sur skype que l…

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

                                          Je reprend le topic.
                                          Quelle méthode draw ?
                                          J’ai regardé das la classe du render du bateau, sur internet, un peu partout.
                                          Rien.
                                          Pourrait-tu me donner un code ? j’ai passé trop de temps dessus déja 😞

                                          De plus, le problème de model custom meservira pour mes armes à feu, pour les balles, et les douilles qui tomberont à terre lors du tir

                                          Membre fantôme
                                          Je développe maintenant un jeu sur UnrealEngine4


                                          Contact :…

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

                                            PPlz, je trouve pas la methode qui permet d’appliquer le model 😞
                                            Render du MotorizedBoat

                                            package eryah.usefulthings.client.render;
                                            
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.model.ModelBase;
                                            import net.minecraft.client.renderer.entity.Render;
                                            import net.minecraft.client.renderer.entity.RenderBoat;
                                            import net.minecraft.client.renderer.entity.RenderManager;
                                            import net.minecraft.entity.Entity;
                                            import net.minecraft.util.ResourceLocation;
                                            import net.minecraftforge.fml.relauncher.Side;
                                            import net.minecraftforge.fml.relauncher.SideOnly;
                                            import eryah.usefulthings.Reference;
                                            import eryah.usefulthings.client.models.ModelMotoBoat;
                                            import eryah.usefulthings.entity.item.MotorizedBoat;
                                            
                                            @SideOnly(Side.CLIENT)
                                            public class RenderMotoBoat extends Render {
                                            
                                            public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/motoboat.png");
                                            protected ModelBase modelMotoBoat = new ModelMotoBoat();
                                            
                                            public RenderMotoBoat(RenderManager renderManager, ModelMotoBoat model, float shadow)
                                            {
                                            super(Minecraft.getMinecraft().getRenderManager());
                                            }
                                            
                                            protected ResourceLocation getEntityTexture(MotorizedBoat living)
                                            {
                                            return this.getMobMotoBoatTexture((MotorizedBoat)living);
                                            }
                                            
                                            private ResourceLocation getMobMotoBoatTexture(MotorizedBoat motoBoat)
                                            {
                                            return texture;
                                            }
                                            
                                            @Override
                                            protected ResourceLocation getEntityTexture(Entity entity) {
                                            return this.getEntityTexture((MotorizedBoat)entity);
                                            }
                                            
                                            }
                                            
                                            

                                            Membre fantôme
                                            Je développe maintenant un jeu sur UnrealEngine4


                                            Contact :…

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB