Animer simplement un mob



  • Bonjour a tous !
    Je vais vous apprendre a faire une animation simple pour un mob.

    Ce n'est pas un tutoriel pour faire un mob , donc si vous ne comprenez pas les codes , demandez de l'aide !

    1) Prérequis

    Les proxies
    Les classe de votre mob

    Pour faire court , je vous donnerai les miens , a savoir notre cher Liquid Ocelot :

    Et la texture :

    Liquid.java :

    // Date: 20/07/2013 18:39:15
    // Template version 1.1
    // Java generated by Techne
    // Keep in mind that you still need to fill in some blanks
    // - ZeuX
    
    package mods.nono.MGSmod.client;
    
    import net.minecraft.client.model.ModelBase;
    import net.minecraft.client.model.ModelRenderer;
    import net.minecraft.entity.Entity;
    import net.minecraft.util.MathHelper;
    
    public class Liquid extends ModelBase
    {
        //fields
        ModelRenderer head;
        ModelRenderer body;
        ModelRenderer rightarm;
        ModelRenderer leftarm;
        ModelRenderer rightleg;
        ModelRenderer leftleg;
        ModelRenderer HairA;
        ModelRenderer HairD;
        ModelRenderer HairG;
    
        public Liquid()
        {
            textureWidth = 128;
            textureHeight = 128;
    
            head = new ModelRenderer(this, 0, 0);
            head.addBox(-4F, -8F, -4F, 8, 8, 8);
            head.setRotationPoint(0F, 0F, 0F);
            head.setTextureSize(128, 128);
            head.mirror = true;
            setRotation(head, 0F, 0F, 0F);
            body = new ModelRenderer(this, 16, 16);
            body.addBox(-4F, 0F, -2F, 8, 12, 4);
            body.setRotationPoint(0F, 0F, 0F);
            body.setTextureSize(128, 128);
            body.mirror = true;
            setRotation(body, 0F, 0F, 0F);
            rightarm = new ModelRenderer(this, 40, 16);
            rightarm.addBox(-3F, -2F, -2F, 4, 12, 4);
            rightarm.setRotationPoint(-5F, 2F, 0F);
            rightarm.setTextureSize(128, 128);
            rightarm.mirror = true;
            setRotation(rightarm, 0F, 0F, 0F);
            leftarm = new ModelRenderer(this, 40, 16);
            leftarm.addBox(-1F, -2F, -2F, 4, 12, 4);
            leftarm.setRotationPoint(5F, 2F, 0F);
            leftarm.setTextureSize(128, 128);
            leftarm.mirror = true;
            setRotation(leftarm, 0F, 0F, 0F);
            rightleg = new ModelRenderer(this, 0, 16);
            rightleg.addBox(-2F, 0F, -2F, 4, 12, 4);
            rightleg.setRotationPoint(-2F, 12F, 0F);
            rightleg.setTextureSize(128, 128);
            rightleg.mirror = true;
            setRotation(rightleg, 0F, 0F, 0F);
            leftleg = new ModelRenderer(this, 0, 16);
            leftleg.addBox(-2F, 0F, -2F, 4, 12, 4);
            leftleg.setRotationPoint(2F, 12F, 0F);
            leftleg.setTextureSize(128, 128);
            leftleg.mirror = true;
            setRotation(leftleg, 0F, 0F, 0F);
            HairA = new ModelRenderer(this, 0, 38);
            HairA.addBox(-4F, 0F, 0F, 8, 8, 1);
            HairA.setRotationPoint(0F, -3F, 3F);
            HairA.setTextureSize(128, 128);
            HairA.mirror = true;
            setRotation(HairA, 0.2094395F, 0F, 0F);
            HairD = new ModelRenderer(this, 0, 65);
            HairD.addBox(0F, 0F, 0F, 1, 7, 1);
            HairD.setRotationPoint(3F, -1F, -3F);
            HairD.setTextureSize(128, 128);
            HairD.mirror = true;
            setRotation(HairD, 0F, 0F, 0F);
            HairG = new ModelRenderer(this, 0, 65);
            HairG.addBox(0F, 0F, 0F, 1, 7, 1);
            HairG.setRotationPoint(-4F, -1F, -3F);
            HairG.setTextureSize(128, 128);
            HairG.mirror = true;
            setRotation(HairG, 0F, 0F, 0F);
        }
    
        public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
        {
            super.render(entity, f, f1, f2, f3, f4, f5);
            setRotationAngles(f, f1, f2, f3, f4, f5, entity);
            head.render(f5);
            body.render(f5);
            rightarm.render(f5);
            leftarm.render(f5);
            rightleg.render(f5);
            leftleg.render(f5);
            HairA.render(f5);
            HairD.render(f5);
            HairG.render(f5);
        }
    
        private void setRotation(ModelRenderer model, float x, float y, float z)
        {
            model.rotateAngleX = x;
            model.rotateAngleY = y;
            model.rotateAngleZ = z;
        }
    
        public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
        {
            super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    
        }
    }
    

    LiquidRender.java

    package mods.nono.MGSmod.client;
    
    import net.minecraft.client.model.ModelBase;
    import net.minecraft.client.renderer.entity.Render;
    import net.minecraft.client.renderer.entity.RenderLiving;
    import net.minecraft.entity.Entity;
    
    public class LiquidRender extends RenderLiving {
    
        private Liquid LiquidRender = new Liquid();
    
        public LiquidRender(Liquid LiquidRender, float par2)
        {
        super(new Liquid(), 0.5F);
        }
    }
    

    LiquidMob.Java

    package mods.nono.MGSmod.common;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EnumCreatureAttribute;
    import net.minecraft.entity.monster.EntityMob;
    import net.minecraft.world.World;
    
    public class LiquidMob extends EntityMob
    {
        public LiquidMob(World par1World)
        {
            super(par1World);
            this.texture = "/mods/nono/MGSmod/textures/mob/Liquid.png";
            this.moveSpeed = 0.15F;
        }
    
        public int getMaxHealth()
        {
            return 100;
        }
    
        public int getAttackStrength(Entity par1Entity)
        {
            return 10;
        }
    
        public EnumCreatureAttribute getCreatureAttribute()
        {
            return EnumCreatureAttribute.UNDEFINED;
        }
    }
    

    A placer dans votre ClientProxy.java :

    public void registerRenderEntity()
    {
        RenderingRegistry.registerEntityRenderingHandler(LiquidMob.class, new LiquidRender(new Liquid(), 0.5F));
    }
    

    Et dans votre classe principale , partie @Init :

    EntityRegistry.registerGlobalEntityID(LiquidMob.class, "Liquid", EntityRegistry.findGlobalUniqueEntityId(), 74, 38);
    EntityRegistry.registerModEntity(LiquidMob.class, "Liquid", 6, this, 40, 1, true);
    LanguageRegistry.instance().addStringLocalization("entity.Liquid.name","Liquid Ocelot");
    proxy.registerRenderEntity();
    
    

    Vous pouvez tester , vous verrez que Liquid N'est pas animé , que c'est juste une planche.

    2) L'animation

    Dans votre classe Liquid.Java , rendez vous à cette ligne :
    Code (java):
    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    Puis ajoutez :

    this.Membre.rotateAngleX
    

    Ou Membre est à remplacer par le membre en question , ici on va le remplacer rightleg.
    Vous pouvez changer X par Y ou par Z.
    Ensuite , au bout de cette ligne , rajoutez :

    = MathHelper.cos((180F / (float)Math.PI)) * -xF * f1;
    

    Pour avoir une animation de balancement ( ? ) sinon :

    = MathHelper.cos((180F / (float)y)) * -xF * f1;
    

    Pour l'animation que d'un coté.
    Remplacez X et Y par une valeur quelconque. ( pour X j'ai mis 3.8 )
    Ensuite testez. Vous verrez que Liquid ne bouge qu'une seule jambe.
    Refaites la même opération pour chacun des membres qui bougent !
    Vous devriez avoir ça :

    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    

    Testez. Vous verrez que le mouvement n'est pas naturel …
    Enlevez tout simplement le - devant un membre inférieur ( les jambes ) et supérieur ( les bras ) :

    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
    this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
    this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    

    Vous pouvez diminuer 3.8 ou l'augmenter si cela ne vous convient pas.

    3) Copyright

    le tuto + le model + la texture sont de moi
    Libre a vous de le mettre sur n'importe quel site , du moment que vous me citez.


  • Moddeurs confirmés Rédacteurs Administrateurs

    Intéressant, je vais tester tout ça demain, j'ai pas trop le temps ce soir.


  • Administrateurs

    Très bon tutoriel. Moi qui ne comprenait pas trop le système d'animation. 😉


  • Moddeurs confirmés Rédacteurs Administrateurs

    Je valide.


  • Administrateurs

    Petit soucis : les liens d'images que tu fais sont 404. Penses à corriger cela. 🙂



  • Moi je les vois parfaitement ?



  • Essaie un autre hébergeur 😉

    Très bon tutoriel, malgré les images invisibles a nos yeux !


  • Moddeurs confirmés Rédacteurs Administrateurs

    Idem. Le problème c'est que tu as utiliser les pièces jointes depuis minecraft-france, donc il faut être connecté sur minecraft-france pour les voir.
    Réupload en pièce jointe ici ou sur un hébergeur comme imgur.



  • Bonjour, très bon tuto"s" ! C'est peut être le seul qui marche sur tous ce que j'ai vu ^^
    Cependant, je voudrais savoir comment serait-il possible de faire une animation sur block quand on clique dessus, un peu comme le coffre ?

    Merci d'avance.


  • Moddeurs confirmés Rédacteurs Administrateurs

    http://www.minecraftforgefrance.fr/showthread.php?tid=375
    (d'ailleurs tu me fais penser qu'il faut que je rédige la deuxième partie).



  • Merci, je l'ai trouvé entre temps 😛 J'ai une question encore, j'ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ?



  • @'JackCarterSmith':

    Merci, je l'ai trouvé entre temps 😛 J'ai une question encore, j'ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ?

    http://www.minecraftforgefrance.fr/forumdisplay.php?fid=56



  • Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?



  • @'UnknowOrigin':

    Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?

    tu as du te tromper a un endroit regarde bien ton code ^^.



  • Bonjour a tous j'ai suivie les étapes je pense comme il faut mais je n'arrive pas a faire bouger les ailes a mon mob (ailes droite et gauche) cela me torture pouvez vous me mettre sur la vois ?

    
    public static class ModelDimorphodon extends ModelBase
    {
    
    ModelRenderer aile_gauche;
    ModelRenderer corps;
    ModelRenderer bras_sous_aile_droite;
    ModelRenderer bras_sous_aile_gauche;
    ModelRenderer cou;
    ModelRenderer tete;
    ModelRenderer queue;
    ModelRenderer queu;
    ModelRenderer jambe_droite;
    ModelRenderer jambe_gauche;
    ModelRenderer aile_droite;
    
    public ModelDimorphodon()
    {
    textureWidth = 64;
    textureHeight = 64;
    
    aile_gauche = new ModelRenderer(this, 1, 48);
    aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7);
    aile_gauche.setRotationPoint(2F, 0F, 0F);
    aile_gauche.setTextureSize(64, 64);
    aile_gauche.mirror = true;
    setRotation(aile_gauche, 0F, 0F, 0F);
    corps = new ModelRenderer(this, 20, 35);
    corps.addBox(0F, 0F, 0F, 4, 4, 8);
    corps.setRotationPoint(-2F, -1F, 0F);
    corps.setTextureSize(64, 64);
    corps.mirror = true;
    setRotation(corps, 0F, 0F, 0F);
    bras_sous_aile_droite = new ModelRenderer(this, 41, 51);
    bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1);
    bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F);
    bras_sous_aile_droite.setTextureSize(64, 64);
    bras_sous_aile_droite.mirror = true;
    setRotation(bras_sous_aile_droite, 0F, 0F, 0F);
    bras_sous_aile_gauche = new ModelRenderer(this, 13, 59);
    bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1);
    bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F);
    bras_sous_aile_gauche.setTextureSize(64, 64);
    bras_sous_aile_gauche.mirror = true;
    setRotation(bras_sous_aile_gauche, 0F, 0F, 0F);
    cou = new ModelRenderer(this, 26, 27);
    cou.addBox(0F, 0F, 0F, 2, 2, 4);
    cou.setRotationPoint(-1F, 0F, -4F);
    cou.setTextureSize(64, 64);
    cou.mirror = true;
    setRotation(cou, 0F, 0F, 0F);
    tete = new ModelRenderer(this, 24, 16);
    tete.addBox(0F, 0F, 0F, 3, 4, 5);
    tete.setRotationPoint(-1.5F, -1F, -9F);
    tete.setTextureSize(64, 64);
    tete.mirror = true;
    setRotation(tete, 0F, 0F, 0F);
    queue = new ModelRenderer(this, 35, 3);
    queue.addBox(0F, 0F, 0F, 3, 2, 3);
    queue.setRotationPoint(-1.5F, -1F, 8F);
    queue.setTextureSize(64, 64);
    queue.mirror = true;
    setRotation(queue, 0F, 0F, 0F);
    queu = new ModelRenderer(this, 16, 2);
    queu.addBox(0F, 0F, 0F, 1, 1, 7);
    queu.setRotationPoint(-0.5F, -1F, 11F);
    queu.setTextureSize(64, 64);
    queu.mirror = true;
    setRotation(queu, 0F, 0F, 0F);
    jambe_droite = new ModelRenderer(this, 43, 15);
    jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1);
    jambe_droite.setRotationPoint(-2.3F, 3F, 5F);
    jambe_droite.setTextureSize(64, 64);
    jambe_droite.mirror = true;
    setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F);
    jambe_gauche = new ModelRenderer(this, 17, 15);
    jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1);
    jambe_gauche.setRotationPoint(1.3F, 3F, 5F);
    jambe_gauche.setTextureSize(64, 64);
    jambe_gauche.mirror = true;
    setRotation(jambe_gauche, 1.047198F, 0F, 0F);
    aile_droite = new ModelRenderer(this, 25, 56);
    aile_droite.addBox(0F, 0F, 0F, 12, 1, 7);
    aile_droite.setRotationPoint(-14F, 0F, 0F);
    aile_droite.setTextureSize(64, 64);
    aile_droite.mirror = true;
    setRotation(aile_droite, 0F, 0F, 0F);
    }
    
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    
    aile_gauche.render(f5);
    corps.render(f5);
    bras_sous_aile_droite.render(f5);
    bras_sous_aile_gauche.render(f5);
    cou.render(f5);
    tete.render(f5);
    queue.render(f5);
    queu.render(f5);
    jambe_droite.render(f5);
    jambe_gauche.render(f5);
    aile_droite.render(f5);
    }
    
    private void setRotation(ModelRenderer model, float x, float y, float z)
    {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
    
    }
    
    public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity e)
    
    {
    super.setRotationAngles(f, f1, f2, f3, f4, f5, e);
    }
    
    }
    
    }
    
    


  • Ca ne me semble pas compliquer pourtant il est bien écrit

    1. L'animation :
      Dans votre classe Liquid.Java , rendez vous à cette ligne :
      Code (java):
      super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
      Puis ajoutez :
      Code Java : (Tout sélectionner)
      this.Membre.rotateAngleX

    Ou Membre est à remplacer par le membre en question , ici on va le remplacer rightleg.
    Vous pouvez changer X par Y ou par Z.
    Ensuite , au bout de cette ligne , rajoutez :
    Code Java : (Tout sélectionner)
    = MathHelper.cos((180F / (float)Math.PI)) * -xF * f1;

    Pour avoir une animation de balancement ( ? ) sinon :
    Code Java : (Tout sélectionner)
    = MathHelper.cos((180F / (float)y)) * -xF * f1;

    Pour l'animation que d'un coté.
    Remplacez X et Y par une valeur quelconque. ( pour X j'ai mis 3.8 )
    Ensuite testez. Vous verrez que Liquid ne bouge qu'une seule jambe.
    Refaites la même opération pour chacun des membres qui bougent !
    Vous devriez avoir ça :

    Code Java : (Tout sélectionner)
    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;

    Testez. Vous verrez que le mouvement n'est pas naturel …
    Enlevez tout simplement le - devant un membre inférieur ( les jambes ) et supérieur ( les bras ) :

    Code Java : (Tout sélectionner)
    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
    this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
    this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    Vous pouvez diminuer 3.8 ou l'augmenter si cela ne vous convient pas.

    Dans cette fonction

    super.setRotationAngles(f, f1, f2, f3, f4, f5, e);
    }
    
    }
    
    

    tu ajoute soit pour les déplacement de l'axe X: - this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    ou pour un déplacement de l'axe Y : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
    et un déplacement de l'axe Z : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;

    A toi ensuite de changer la valeur -3.8F par quelque chose qui te convient 🙂

    Il me semble que la chauve souris c'est +1.0F quelque chose comme ca 😃

    –----------------------------------

    N'hésite pas si je t'ai aider le petit bouton +/-



  • Désoler de Re déranger mais cela ne marche pas je dois vraiment être stupide voici ma class :

    
    import cpw.mods.fml.client.*;
    import cpw.mods.fml.client.registry.*;
    import cpw.mods.fml.common.*;
    import cpw.mods.fml.common.asm.*;
    import cpw.mods.fml.common.asm.transformers.*;
    import cpw.mods.fml.common.discovery.*;
    import cpw.mods.fml.common.discovery.asm.*;
    import cpw.mods.fml.common.event.*;
    import cpw.mods.fml.common.functions.*;
    import cpw.mods.fml.common.network.*;
    import cpw.mods.fml.common.registry.*;
    import cpw.mods.fml.common.toposort.*;
    import cpw.mods.fml.common.versioning.*;
    import cpw.mods.fml.relauncher.*;
    import cpw.mods.fml.server.*;
    import net.minecraft.block.*;
    import net.minecraft.block.material.*;
    import net.minecraft.client.*;
    import net.minecraft.client.audio.*;
    import net.minecraft.client.entity.*;
    import net.minecraft.client.gui.*;
    import net.minecraft.client.gui.achievement.*;
    import net.minecraft.client.gui.inventory.*;
    import net.minecraft.client.model.*;
    import net.minecraft.client.multiplayer.*;
    import net.minecraft.client.particle.*;
    import net.minecraft.client.renderer.*;
    import net.minecraft.client.renderer.culling.*;
    import net.minecraft.client.renderer.entity.*;
    import net.minecraft.client.renderer.tileentity.*;
    import net.minecraft.client.settings.*;
    import net.minecraft.command.*;
    import net.minecraft.crash.*;
    import net.minecraft.creativetab.*;
    import net.minecraft.dispenser.*;
    import net.minecraft.enchantment.*;
    import net.minecraft.entity.*;
    import net.minecraft.entity.ai.*;
    import net.minecraft.entity.boss.*;
    import net.minecraft.entity.effect.*;
    import net.minecraft.entity.item.*;
    import net.minecraft.entity.monster.*;
    import net.minecraft.entity.passive.*;
    import net.minecraft.entity.player.*;
    import net.minecraft.entity.projectile.*;
    import net.minecraft.inventory.*;
    import net.minecraft.item.*;
    import net.minecraft.item.crafting.*;
    import net.minecraft.nbt.*;
    import net.minecraft.network.*;
    import net.minecraft.network.rcon.*;
    import net.minecraft.pathfinding.*;
    import net.minecraft.potion.*;
    import net.minecraft.profiler.*;
    import net.minecraft.server.*;
    import net.minecraft.server.dedicated.*;
    import net.minecraft.server.gui.*;
    import net.minecraft.server.integrated.*;
    import net.minecraft.server.management.*;
    import net.minecraft.src.*;
    import net.minecraft.stats.*;
    import net.minecraft.tileentity.*;
    import net.minecraft.util.*;
    import net.minecraft.village.*;
    import net.minecraft.world.*;
    import net.minecraft.world.biome.*;
    import net.minecraft.world.chunk.*;
    import net.minecraft.world.chunk.storage.*;
    import net.minecraft.world.demo.*;
    import net.minecraft.world.gen.*;
    import net.minecraft.world.gen.feature.*;
    import net.minecraft.world.gen.layer.*;
    import net.minecraft.world.gen.structure.*;
    import net.minecraft.world.storage.*;
    import net.minecraftforge.classloading.*;
    import net.minecraftforge.client.*;
    import net.minecraftforge.client.event.*;
    import net.minecraftforge.client.event.sound.*;
    import net.minecraftforge.common.*;
    import net.minecraftforge.event.*;
    import net.minecraftforge.event.entity.*;
    import net.minecraftforge.event.entity.item.*;
    import net.minecraftforge.event.entity.living.*;
    import net.minecraftforge.event.entity.minecart.*;
    import net.minecraftforge.event.entity.player.*;
    import net.minecraftforge.event.terraingen.*;
    import net.minecraftforge.event.world.*;
    import net.minecraftforge.oredict.*;
    import net.minecraftforge.transformers.*;
    import net.minecraft.init.*;
    
    import java.util.Random;
    
    @SuppressWarnings("unchecked")
    public class mcreator_dimorphodon {
    
    public static int mobid = 0;
    public Object instance;
    
    public void load(){}
    
    public void generateNether(World world, Random random, int chunkX, int chunkZ){}
    public void generateSurface(World world, Random random, int chunkX, int chunkZ){}
    public int addFuel(ItemStack fuel){
    return 0;
    }
    public void registerRenderers(){
    RenderingRegistry.registerEntityRenderingHandler(mcreator_dimorphodon.Entitydimorphodon.class, new RenderLiving(new mcreator_dimorphodon.ModelDimorphodon(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("Dimorphodon texture.png");}});
    }
    public void serverLoad(FMLServerStartingEvent event){}
    public void preInit(FMLPreInitializationEvent event){
    int entityID = EntityRegistry.findGlobalUniqueEntityId();
    mobid = entityID;
    EntityRegistry.registerGlobalEntityID(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID);
    EntityRegistry.registerModEntity(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID, instance, 64, 1, true);
    EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 0, (255 << 16) + (51 << 8) + 51));
    
    DungeonHooks.addDungeonMob("dimorphodon", 180);
    }
    
    /*public Entity spawnEntity(int var1, World var2, double var3, double var5, double var7)
    {
    if(var1==mobid)
    return new mcreator_dimorphodon.Entitydimorphodon(var2);
    else
    return null;
    }*/
    
    public static class Entitydimorphodon extends EntityFlying
    {
    World world = null;
    public Entitydimorphodon(World var1)
    {
    super(var1);
    world = var1;
    experienceValue = 5;
    this.isImmuneToFire = false;
    addRandomArmor();
    
    }
    
    protected void applyEntityAttributes(){
    super.applyEntityAttributes();
    this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(2.0D);
    this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
    if(this.getEntityAttribute(SharedMonsterAttributes.attackDamage)!=null)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3D);
    }
    
    protected void addRandomArmor(){
    
    }
    
    protected void dropRareDrop(int par1){
    this.dropItem(Items.bone, 1);
    }
    
    public boolean isAIEnabled()
    {
    return false;
    }
    
    /**
    * Drop 0-2 items of this living's type
    */
    protected void dropFewItems(boolean var1, int var2)
    {
    this.entityDropItem(new ItemStack(Items.feather), 0.0F);
    }
    
    /**
    * Returns the sound this mob makes while it's alive.
    */
    protected String getLivingSound()
    {
    return "";
    }
    
    /**
    * Returns the sound this mob makes when it is hurt.
    */
    protected String getHurtSound()
    {
    return "";
    }
    
    /**
    * Returns the sound this mob makes on death.
    */
    protected String getDeathSound()
    {
    return "";
    }
    
    public void onStruckByLightning(EntityLightningBolt entityLightningBolt){
    int i = (int)this.posX;
    int j = (int)this.posY;
    int k = (int)this.posZ;
    
    }
    
    protected void fall(float l){
    int i = (int)this.posX;
    int j = (int)this.posY;
    int k = (int)this.posZ;
    super.fall(l);
    
    }
    
    public void onCriticalHit(Entity entity) {
    int i = (int)this.posX;
    int j = (int)this.posY;
    int k = (int)this.posZ;
    
    }
    
    public void onKillEntity(EntityLiving entityLiving){
    int i = (int)this.posX;
    int j = (int)this.posY;
    int k = (int)this.posZ;
    
    }
    
    public boolean interact(EntityPlayer entity){
    int i = (int)this.posX;
    int j = (int)this.posY;
    int k = (int)this.posZ;
    
    return true;
    }
    
    public String getEntityName(){
    return "dimorphodon";
    }
    
    }
    
    // Date: 02/09/2014 12:59:32
    // Template version 1.1
    // Java generated by Techne
    // Keep in mind that you still need to fill in some blanks
    // - ZeuX
    
    public static class ModelDimorphodon extends ModelBase
    {
    //fields
    ModelRenderer aile_gauche;
    ModelRenderer corps;
    ModelRenderer bras_sous_aile_droite;
    ModelRenderer bras_sous_aile_gauche;
    ModelRenderer cou;
    ModelRenderer tete;
    ModelRenderer queue;
    ModelRenderer queu;
    ModelRenderer jambe_droite;
    ModelRenderer jambe_gauche;
    ModelRenderer aile_droite;
    
    public ModelDimorphodon()
    {
    textureWidth = 64;
    textureHeight = 64;
    
    aile_gauche = new ModelRenderer(this, 1, 48);
    aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7);
    aile_gauche.setRotationPoint(2F, 0F, 0F);
    aile_gauche.setTextureSize(64, 64);
    aile_gauche.mirror = true;
    setRotation(aile_gauche, 0F, 0F, 0F);
    corps = new ModelRenderer(this, 20, 35);
    corps.addBox(0F, 0F, 0F, 4, 4, 8);
    corps.setRotationPoint(-2F, -1F, 0F);
    corps.setTextureSize(64, 64);
    corps.mirror = true;
    setRotation(corps, 0F, 0F, 0F);
    bras_sous_aile_droite = new ModelRenderer(this, 41, 51);
    bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1);
    bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F);
    bras_sous_aile_droite.setTextureSize(64, 64);
    bras_sous_aile_droite.mirror = true;
    setRotation(bras_sous_aile_droite, 0F, 0F, 0F);
    bras_sous_aile_gauche = new ModelRenderer(this, 13, 59);
    bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1);
    bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F);
    bras_sous_aile_gauche.setTextureSize(64, 64);
    bras_sous_aile_gauche.mirror = true;
    setRotation(bras_sous_aile_gauche, 0F, 0F, 0F);
    cou = new ModelRenderer(this, 26, 27);
    cou.addBox(0F, 0F, 0F, 2, 2, 4);
    cou.setRotationPoint(-1F, 0F, -4F);
    cou.setTextureSize(64, 64);
    cou.mirror = true;
    setRotation(cou, 0F, 0F, 0F);
    tete = new ModelRenderer(this, 24, 16);
    tete.addBox(0F, 0F, 0F, 3, 4, 5);
    tete.setRotationPoint(-1.5F, -1F, -9F);
    tete.setTextureSize(64, 64);
    tete.mirror = true;
    setRotation(tete, 0F, 0F, 0F);
    queue = new ModelRenderer(this, 35, 3);
    queue.addBox(0F, 0F, 0F, 3, 2, 3);
    queue.setRotationPoint(-1.5F, -1F, 8F);
    queue.setTextureSize(64, 64);
    queue.mirror = true;
    setRotation(queue, 0F, 0F, 0F);
    queu = new ModelRenderer(this, 16, 2);
    queu.addBox(0F, 0F, 0F, 1, 1, 7);
    queu.setRotationPoint(-0.5F, -1F, 11F);
    queu.setTextureSize(64, 64);
    queu.mirror = true;
    setRotation(queu, 0F, 0F, 0F);
    jambe_droite = new ModelRenderer(this, 43, 15);
    jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1);
    jambe_droite.setRotationPoint(-2.3F, 3F, 5F);
    jambe_droite.setTextureSize(64, 64);
    jambe_droite.mirror = true;
    setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F);
    jambe_gauche = new ModelRenderer(this, 17, 15);
    jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1);
    jambe_gauche.setRotationPoint(1.3F, 3F, 5F);
    jambe_gauche.setTextureSize(64, 64);
    jambe_gauche.mirror = true;
    setRotation(jambe_gauche, 1.047198F, 0F, 0F);
    aile_droite = new ModelRenderer(this, 25, 56);
    aile_droite.addBox(0F, 0F, 0F, 12, 1, 7);
    aile_droite.setRotationPoint(-14F, 0F, 0F);
    aile_droite.setTextureSize(64, 64);
    aile_droite.mirror = true;
    setRotation(aile_droite, 0F, 0F, 0F);
    }
    
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    
    aile_gauche.render(f5);
    corps.render(f5);
    bras_sous_aile_droite.render(f5);
    bras_sous_aile_gauche.render(f5);
    cou.render(f5);
    tete.render(f5);
    queue.render(f5);
    queu.render(f5);
    jambe_droite.render(f5);
    jambe_gauche.render(f5);
    aile_droite.render(f5);
    }
    
    private void setRotation(ModelRenderer model, float x, float y, float z)
    {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
    
    }
    
    public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity e)
    
    {
    super.setRotationAngles(f, f1, f2, f3, f4, f5, e);
    
    this.aile_droite.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1;
    
    this.aile_gauche.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1;
    
    this.tete.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1;
    
    this.tete.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1;
    
    this.tete.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1;
    }
    
    }
    
    }
    


  • Les balises, les balises mon petit … Car la c'est du viol d’œil



  • Désoler je me suis prit un avertissement pour cela mais je ne sais pas comme le faire pouvait vous m'expliquer que cela n'arrive plus



  • C'est pas compliqué. Si tu veux mettre du code java, tu mets : [java ] code ici [/java] (pas d'étoile dans les balises bien sûr). Si c'est pour u code qui est autre que java (ex : crash report, JSON….), tu mets [code] code ici [/code] (toujours sans les étoiles :p).


Log in to reply