Spawner a Entité Custom



  • Bonjour a tous,

    Je viens vous trouver aujourd'hui car j'ai un souci,
    Je voudrais bien créer un Spawner a Entité Custom que j'ai créer dans mon mod
    Est ce que quelqu'un pourrais m'apporter son aide ?

    Merci beaucoup.  ❤



  • UP please les gars



  • Tu as regardé la classe du block de mob spawner ? Je pense qu'il faut juste que tu reprennes cette classe et tu changes l'entité qui spawn en la remplaçant par la tienne.



  • @'elx9000':

    Tu as regardé la classe du block de mob spawner ? Je pense qu'il faut juste que tu reprennes cette classe et tu changes l'entité qui spawn en la remplaçant par la tienne.

    J'ai essayé mais je trouve pas l'élément de spawn car sa englobe TOUT les mobs de minecraft 😕


  • Rédacteurs

    En soit le mob spawner de Minecraft devrait être capable de faire spawner ton mob



  • Oui en fait tu pourrais faire un item qui pose un mob spawner, et qui met ton entité à l'intérieur (va voir le code de quand on clique avec un oeuf sur un spawner pour ça).



  • Mais je suis en 1.7.10, et quand on clique droit sur un spawner avec un oeuf sa ne le change pas 😕



  • Ah oui c'est vrai effectivement, mais ça n'empèche pas que tu peux chercher dans le code de Minecraft car c'est pas bien compliqué :

    TileEntityMobSpawner s = null; //tu get la tile entity du block spawner que tu viens de placer
    s.func_145881_a().setEntityName("NomDeRegistreDeTonEntite");
    

    Sachant "NomDeRegistreDeTonEntite" = le nom avec lequel tu l'enregistres.



  • @'AymericRed':

    Ah oui c'est vrai effectivement, mais ça n'empèche pas que tu peux chercher dans le code de Minecraft car c'est pas bien compliqué :

    TileEntityMobSpawner s = null; //tu get la tile entity du block spawner que tu viens de placer
    s.func_145881_a().setEntityName("NomDeRegistreDeTonEntite");
    

    Sachant "NomDeRegistreDeTonEntite" = le nom avec lequel tu l'enregistres.

    D'accord, merci beaucoup, je vais essayer ça, et je te dit quoi apres ! 🙂



  • @'AymericRed':

    Ah oui c'est vrai effectivement, mais ça n'empèche pas que tu peux chercher dans le code de Minecraft car c'est pas bien compliqué :

    TileEntityMobSpawner s = null; //tu get la tile entity du block spawner que tu viens de placer
    s.func_145881_a().setEntityName("NomDeRegistreDeTonEntite");
    

    Sachant "NomDeRegistreDeTonEntite" = le nom avec lequel tu l'enregistres.

    Je trouve pas la bonne classe sur la quell prendre exemple, pourrais tu m'éclairer ?



  • Tiens, ce n'était quand même pas compliqué, on t'avait donné toutes les infos nécessaires plus haut :

    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityList;
    import net.minecraft.entity.monster.EntityCreeper;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntityMobSpawner;
    import net.minecraft.world.World;
    
    public class ItemSpawnerPlacer extends Item
    {
    
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int xCoord, int yCoord, int zCoord, int side, float hitX, float hitY, float hitZ)
    {
    world.setBlock(xCoord, yCoord, zCoord, Blocks.mob_spawner);
    TileEntityMobSpawner tileentitymobspawner = new TileEntityMobSpawner();
           world.setTileEntity(xCoord, yCoord, zCoord, tileentitymobspawner);
           tileentitymobspawner.func_145881_a().setEntityName(this.getEntityString(EntityCreeper.class));//Remplacer EntityCreeper.class par la classe de ton mob à spawner
    return true;
    }
    
       public static String getEntityString(Class entityClass)
       {
           return (String)EntityList.classToStringMapping.get(entityClass);
       }
    }
    
    


  • @'Plaigon':

    Tiens, ce n'était quand même pas compliqué, on t'avait donné toutes les infos nécessaires plus haut :

    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityList;
    import net.minecraft.entity.monster.EntityCreeper;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntityMobSpawner;
    import net.minecraft.world.World;
    
    public class ItemSpawnerPlacer extends Item
    {
    
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int xCoord, int yCoord, int zCoord, int side, float hitX, float hitY, float hitZ)
    {
    world.setBlock(xCoord, yCoord, zCoord, Blocks.mob_spawner);
    TileEntityMobSpawner tileentitymobspawner = new TileEntityMobSpawner();
           world.setTileEntity(xCoord, yCoord, zCoord, tileentitymobspawner);
           tileentitymobspawner.func_145881_a().setEntityName(this.getEntityString(EntityCreeper.class));//Remplacer EntityCreeper.class par la classe de ton mob à spawner
    return true;
    }
    
       public static String getEntityString(Class entityClass)
       {
           return (String)EntityList.classToStringMapping.get(entityClass);
       }
    }
    
    

    En fait j'avais pas comprit, je restais basé sur le block du spawner, donc je prenais la class BlockMobSpawner et du coup voila, merci beaucoup de ton aide!