Résolu Créer un spawner personalisé
-
Bonjour a tous ! j’essaye de créer un spawner personnalisé , CAD comme les œufs du mod mo’creatures si vous conaissez , pour les autres c’est un objet qui fait spawner un mob a l’endroit du curseur
J’ai cherché la classe des oeufs de mob , je ne l’ai pas trouvé , donc j’ai été voir dans EntityEgg
voila mon code actuel :
package mods.nono.MGSmod.items; import mods.nono.MGSmod.common.D_Tabs; import mods.nono.MGSmod.mobs.DwarfMob; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class S_Dwarf extends Item { private static final World worldObj = null; private double posX; private double posY; private double posZ; private float rotationYaw; public S_Dwarf(int par1) { super(par1); this.maxStackSize = 64; this.setCreativeTab(D_Tabs.MGSSpawn); } public ItemStack onItemRightClick(ItemStack stack, World world, World player) { DwarfMob DwarfMob = new DwarfMob(this.worldObj); DwarfMob.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F); this.worldObj.spawnEntityInWorld(DwarfMob); return stack; } @Override public void registerIcons(IconRegister iconRegister) { itemIcon = iconRegister.registerIcon("nono/MGSmod:Dwarf"); } }
Merci d’avance de vos réponses.
-
Regarde le tuto sur les création d’entitées de base en 1.5.2, il n’y pas de différences concernant l’oeuf.
-
@‘Superloup10’:
Regarde le tuto sur les création d’entitées de base en 1.5.2, il n’y pas de différences concernant l’oeuf.
Le tutoriel que tu me donnes n’a rien a voir avec ma demande …
-
Premièrement la méthode public ItemStack onItemRightClick(ItemStack stack, World world, World player) n’existe pas, c’est public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
Ensuite tu essaye de faire spawn un entité dans un monde null !private static final World worldObj = null;
DwarfMob DwarfMob = new DwarfMob(this.worldObj);Utilise plutôt DwarfMob DwarfMob = new DwarfMob(world);, comme ça il utilisera la variable world de la fonction qui lui est défini.
Et ensuite pour :
DwarfMob.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F);
Même problème, les coordonnés sont null (donc 0), j’utiliserai plutôt la fonction onItemEat (qui est aussi exécuté lors du clic droit) qui possède aussi les paramètres x, y et z. -
@‘robin4002’:
Premièrement la méthode public ItemStack onItemRightClick(ItemStack stack, World world, World player) n’existe pas, c’est public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
Ensuite tu essaye de faire spawn un entité dans un monde null !private static final World worldObj = null;
DwarfMob DwarfMob = new DwarfMob(this.worldObj);Utilise plutôt DwarfMob DwarfMob = new DwarfMob(world);, comme ça il utilisera la variable world de la fonction qui lui est défini.
Et ensuite pour :
DwarfMob.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F);
Même problème, les coordonnés sont null (donc 0), j’utiliserai plutôt la fonction onItemEat (qui est aussi exécuté lors du clic droit) qui possède aussi les paramètres x, y et z.ça ne marche pas non plus …
-
Fait voir ton code ?
-
@‘robin4002’:
Fait voir ton code ?
package mods.nono.MGSmod.items; import mods.nono.MGSmod.common.D_Tabs; import mods.nono.MGSmod.mobs.DwarfMob; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class S_Dwarf extends Item { private static final World worldObj = null; private double posX; private double posY; private double posZ; private float rotationYaw; public S_Dwarf(int par1) { super(par1); this.maxStackSize = 64; this.setCreativeTab(D_Tabs.MGSSpawn); } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { DwarfMob DwarfMob = new DwarfMob(world); return stack; } @Override public void registerIcons(IconRegister iconRegister) { itemIcon = iconRegister.registerIcon("nono/MGSmod:Dwarf"); } }
-
Si tu enlever le code qui fait spawner le mob c’est normal que ça marche pas.
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) { EntityCreeper creeper = new EntityCreeper(world); creeper.setLocationAndAngles(x, y, z, 0, 0.0F); world.spawnEntityInWorld(creeper); } return true; }
Adapte juste par le nom de ton mob.