Résolu Drop d'item
-
Boujours,
J’ai un petit problème, je fais un outil qui doit faire spawn un item au sol quand on clic-(droit) sur un block, ça fonctionne mais il y a deux items qui tombent dont un qui est irrécupérable.
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entity, int par6, float pX, float pY, float pZ) { ItemStack itemStack = entity.getCurrentEquippedItem(); ItemStack drop = new ItemStack(Items.wheat, 1); if(itemStack != null) { Item item = itemStack.getItem(); if(item == ItemsH.Faux) { if(world.getBlockMetadata(x, y, z) >= 1) { EntityItem entityitem = new EntityItem(world, x, y + 0, z, drop); world.setBlockToAir(x, y, z); world.spawnEntityInWorld(entityitem); } } } return true; }
De plus mes items sont éjecté a 2 ou 3 blocs, j’aimerais bien savoir si l’on peu faire en sorte qu’ils soient plus près.
Merci pour votre aide.
Vebertedit : problème résolu plus vite que prévu
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entity, int par6, float pX, float pY, float pZ) { if(!world.isRemote) { ItemStack itemStack = entity.getCurrentEquippedItem(); ItemStack drop = new ItemStack(Items.wheat, 1); if(itemStack != null) { Item item = itemStack.getItem(); if(item == ItemsH.Faux) { if(world.getBlockMetadata(x, y, z) >= 1) { EntityItem entityitem = new EntityItem(world, x, y + 0, z, drop); world.setBlockToAir(x, y, z); world.spawnEntityInWorld(entityitem); } } } } return true; }
Il fallait rajouter le test !world.isRemote, mais je n’ais pas compris à quoi ça servait.
-
Salut,
EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 0.5D, z + 0.5D, drop);
Avec ça, ça devrait être centré au bloc.Pour les loots invisible, ajoute la condition !world.isRemote
ÉDIT : trop lent.
Explication :
world.isRemote = celui qui gère le rendu
!world.isRemote = world server, celui qui gère le reste