Probleme résolu + explication a bush à XP
-
Perso j’ai un problème avec l’EntityItem, je vais régler ça
-
J’ai aucune erreur dans la console et le hammer a le meme comportement qu’une pioche
-
Je sais … OMG
public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entity) { for(int i = -1; i <= 1; i++) { for(int k = -1; k <= 1; k++) { Block b = world.getBlock(x + i, y, z + k); int meta = world.getBlockMetadata(x + i, y, z + k); if(stack.getItemDamage() > 0) { world.setBlockToAir(x + i, y, z + k); EntityItem item = new EntityItem(world, x + i, y, z + k, new ItemStack(b, 1, meta)); world.spawnEntityInWorld(item); stack.damageItem(i, entity); } } } return true; } -
Je vais essayer en tout cas merci les gars

EDIT : Marche toujours pas
-
Fait ça ```java
public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entity) {for(int i = -1; i <= 1; i++) {
for(int k = -1; k <= 1; k++) {
System.out.println(Math.addExact(x, i) + " " + y + " " + Math.addExact(z, k));
Block b = world.getBlock(x + i, y, z + k);
int meta = world.getBlockMetadata(x + i, y, z + k);
System.out.println(stack.getItemDamage());
if(stack.getItemDamage() > 0) {
System.out.println("Breaking " + b.getLocalizedName());
world.setBlockToAir(x + i, y, z + k);
EntityItem item = new EntityItem(world, x + i, y, z + k, new ItemStack(b, 1, meta));
world.spawnEntityInWorld(item);
stack.damageItem(i, entity);
}
}
}
return true;
} -
Tien voila :
[17:25:34] [Server thread/INFO]: Player443 has just earned the achievement [Taking Inventory] [17:25:34] [Client thread/INFO]: [CHAT] Player443 has just earned the achievement [Taking Inventory] [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 359 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 360 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 361 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 359 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 360 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 361 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 359 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 360 0 [17:25:40] [Client thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 361 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 359 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 360 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -275 74 361 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 359 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 360 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -274 74 361 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 359 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 360 0 [17:25:40] [Server thread/INFO] [STDOUT]: [fr.xperiaonline.xperiamod.common.ItemXperiteHammer:onBlockDestroyed:25]: -273 74 361 0 -
Remplace ```java
if(stack.getItemDamage() > 0)Par ```java if(!stack.getItemDamage() > stack.getMaxDamage()) -
Sa marche ! mais pas de direction lol sa mine de façon horizontale

-
Oui je sais, 2 sec
-
C’est ce que fait le code que BrokenSwing t’a donné, tu veux miner dans quelles directions ?
-
désolé

-
Peut toujours être amélioré, j’ai ajouté des trucs et changé d’autres pour être + cohérent
@Override public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entity) { if(!world.isRemote) { for(int i = -1; i <= 1; i++) { for(int k = -1; k <= 1; k++) { for(int l = -1; l <= 1; l++) { int blockX = x + i; int blockY = y + l; int blockZ = z + k; Vec3 look = entity.getLookVec(); double direction = Math.max(Math.max(Math.abs(look.xCoord), Math.abs(look.yCoord)), Math.abs(look.zCoord)); if(direction == Math.abs(look.xCoord)) { blockX = x; } else if(direction == Math.abs(look.yCoord)) { blockY = y; } else { blockZ = z; } Block blockBreakingIn = world.getBlock(blockX, blockY, blockZ); int meta = world.getBlockMetadata(blockX, blockY, blockZ); if(!(stack.getItemDamage() > stack.getMaxDamage())) { List <itemstack>drops = blockBreakingIn.getDrops(world, blockX, blockY, blockZ, meta, 0); int exp = blockBreakingIn.getExpDrop(world, meta, 0); world.setBlockToAir(blockX, blockY, blockZ); for(int j = 0; j < drops.size(); j++) { EntityItem item = new EntityItem(world, blockX, blockY, blockZ, drops.get(j)); world.spawnEntityInWorld(item); } if(exp > 0) { EntityXPOrb expOrb = new EntityXPOrb(world, blockX, blockY, blockZ, exp); world.spawnEntityInWorld(expOrb); } stack.damageItem(i, entity); } } } } } return true; } ```</itemstack> -
Super ! Merci beaucoup ! Comment je peux te remercier ?
-
+2 ? ^^
EDIT : Mais comme je l’ai dit tu peux améliorer le code surtout au niveau des directions -
Bah je ne le peux pas xD j’ai aucune connaissance en java
Bon … j’ai reussi a faire
-Minerais (5 en tout) + la generation dans l’overworld
-les lingot
-les bloc de lingot
-les armures
-les armes et outils
-et tout les craft qui en découlent ! -
Pas mal pour quelqu’un qui n’a “aucune” connaissance en java
-
bah j’ai suivie des tuto p’y c’est de la logique en faite donc plutot facile je devrais apprendre pck rien qu’a faire ça je me suis eclater xD
Sinon pour faire un bush genre (Oreberry bush de TC)
C’est un block avec des meta datas qui arriver a un certain stade laisse la posibilité de clic droit ? -
C’est ça en gros
-
oki je suis en train de regarder le tuto de robin

Mais j’aurais surment besoin d’aide pour laisser l’acces au clic droit + l’action -
ça y est je viens de fini j’ai mon block avec mes 4 metadata !
Maintenant je doit faire quoi pour lui dire que tout les “X” tick le block change de metadata ?
Et ensuite pour lui dire que a la 4 eme metadata on peux faire un clic droit dessus( ET PAS AVANT !) pour recuperer un item ?
Et ensuite dire au block de repartir a la metadata numero 1 ?Merci de votre aides !