Propriétés pour couper des arbres
-
world.getBlockState(testPos).getBlock().getMetaFromState(world.getBlockState(testPos))
-
Super, ça fonctionne, mon item est donc complètement terminé : Voilà à quoi ça ressemble :
Dans la classe de mon item, il y a ceci :
%(#7f0055)[[size=x-small]**public**] **%(#7f0055)[[color=#7f0055]boolean]** onBlockDestroyed(ItemStack %(#6a3e3e)[[color=#6a3e3e]stack], World %(#6a3e3e)[[color=#6a3e3e]worldIn], Block %(#6a3e3e)[[color=#6a3e3e]blockIn], BlockPos %(#6a3e3e)[[color=#6a3e3e]pos], EntityLivingBase %(#6a3e3e)[[color=#6a3e3e]playerIn]) { **%(#7f0055)[[color=#7f0055] if]**(%(#6a3e3e)[[color=#6a3e3e]worldIn].getBlockState(%(#6a3e3e)[[color=#6a3e3e]pos].up(7)).getBlock().isWood(%(#6a3e3e)[[color=#6a3e3e]worldIn], %(#6a3e3e)[[color=#6a3e3e]pos].up(7))) { **%(#7f0055)[[color=#7f0055] if]**(%(#6a3e3e)[[color=#6a3e3e]playerIn] **%(#7f0055)[[color=#7f0055]instanceof]** EntityPlayer && !%(#6a3e3e)[[color=#6a3e3e]worldIn].%(#0000c0)[[color=#0000c0]isRemote]) { } **%(#7f0055)[[color=#7f0055] return]** **%(#7f0055)[[color=#7f0055]super]**.onBlockDestroyed(%(#6a3e3e)[[color=#6a3e3e]stack], %(#6a3e3e)[[color=#6a3e3e]worldIn], %(#6a3e3e)[[color=#6a3e3e]blockIn], %(#6a3e3e)[[color=#6a3e3e]pos], %(#6a3e3e)[[color=#6a3e3e]playerIn]); } **%(#7f0055)[[color=#7f0055] for]** (**%(#7f0055)[[color=#7f0055]int]** %(#6a3e3e)[[color=#6a3e3e]i] = 0 ; %(#6a3e3e)[[color=#6a3e3e]i] < 7; %(#6a3e3e)[[color=#6a3e3e]i]++) { BlockPos %(#6a3e3e)[[color=#6a3e3e]testPos] = %(#6a3e3e)[[color=#6a3e3e]pos].up(%(#6a3e3e)[[color=#6a3e3e]i]); **%(#7f0055)[[color=#7f0055] if]** (%(#6a3e3e)[[color=#6a3e3e]worldIn].getBlockState(%(#6a3e3e)[[color=#6a3e3e]testPos]).getBlock().isWood(%(#6a3e3e)[[color=#6a3e3e]worldIn], %(#6a3e3e)[[color=#6a3e3e]testPos])) { %(#6a3e3e)[[color=#6a3e3e] stack].damageItem(1, %(#6a3e3e)[[color=#6a3e3e]playerIn]); **%(#7f0055)[[color=#7f0055] if]** (!%(#6a3e3e)[[color=#6a3e3e]worldIn].%(#0000c0)[[color=#0000c0]isRemote] && %(#6a3e3e)[[color=#6a3e3e]worldIn].getGameRules().getBoolean(%(#2a00ff)[[color=#2a00ff]"doTileDrops"])) { **%(#7f0055)[[color=#7f0055] float]** %(#6a3e3e)[[color=#6a3e3e]f] = 0.7F; **%(#7f0055)[[color=#7f0055] double]** %(#6a3e3e)[[color=#6a3e3e]d0] = (**%(#7f0055)[[color=#7f0055]double]**)(%(#6a3e3e)[[color=#6a3e3e]worldIn].%(#0000c0)[[color=#0000c0]rand].nextFloat() * %(#6a3e3e)[[color=#6a3e3e]f]) + (**%(#7f0055)[[color=#7f0055]double]**)(1.0F - %(#6a3e3e)[[color=#6a3e3e]f]) * 0.5D; **%(#7f0055)[[color=#7f0055] double]** %(#6a3e3e)[[color=#6a3e3e]d1] = (**%(#7f0055)[[color=#7f0055]double]**)(%(#6a3e3e)[[color=#6a3e3e]worldIn].%(#0000c0)[[color=#0000c0]rand].nextFloat() * %(#6a3e3e)[[color=#6a3e3e]f]) + (**%(#7f0055)[[color=#7f0055]double]**)(1.0F - %(#6a3e3e)[[color=#6a3e3e]f]) * 0.5D; **%(#7f0055)[[color=#7f0055] double]** %(#6a3e3e)[[color=#6a3e3e]d2] = (**%(#7f0055)[[color=#7f0055]double]**)(%(#6a3e3e)[[color=#6a3e3e]worldIn].%(#0000c0)[[color=#0000c0]rand].nextFloat() * %(#6a3e3e)[[color=#6a3e3e]f]) + (**%(#7f0055)[[color=#7f0055]double]**)(1.0F - %(#6a3e3e)[[color=#6a3e3e]f]) * 0.5D; EntityItem %(#6a3e3e)[[color=#6a3e3e]entityItem] = **%(#7f0055)[[color=#7f0055]new]** EntityItem(%(#6a3e3e)[[color=#6a3e3e]worldIn], (**%(#7f0055)[[color=#7f0055]double]**)%(#6a3e3e)[[color=#6a3e3e]testPos].getX() + %(#6a3e3e)[[color=#6a3e3e]d0], (**%(#7f0055)[[color=#7f0055]double]**)%(#6a3e3e)[[color=#6a3e3e]testPos].getY() + %(#6a3e3e)[[color=#6a3e3e]d1], (**%(#7f0055)[[color=#7f0055]double]**)%(#6a3e3e)[[color=#6a3e3e]testPos].getZ() + %(#6a3e3e)[[color=#6a3e3e]d2], **%(#7f0055)[[color=#7f0055]new]** ItemStack(Item.*getItemFromBlock*(%(#6a3e3e)[[color=#6a3e3e]blockIn]), 1,%(#6a3e3e)[[color=#6a3e3e] worldIn].getBlockState(%(#6a3e3e)[[color=#6a3e3e]testPos]).getBlock().getMetaFromState(%(#6a3e3e)[[color=#6a3e3e]worldIn].getBlockState(%(#6a3e3e)[[color=#6a3e3e]testPos])))); %(#6a3e3e)[[color=#6a3e3e] entityItem].setDefaultPickupDelay(); %(#6a3e3e)[[color=#6a3e3e] worldIn].spawnEntityInWorld(%(#6a3e3e)[[color=#6a3e3e]entityItem]); } %(#6a3e3e)[[color=#6a3e3e] worldIn].setBlockToAir(%(#6a3e3e)[[color=#6a3e3e]testPos]); } **%(#7f0055)[[color=#7f0055] else]** { **%(#7f0055)[[color=#7f0055] return]** **%(#7f0055)[[color=#7f0055]super]**.onBlockDestroyed(%(#6a3e3e)[[color=#6a3e3e]stack], %(#6a3e3e)[[color=#6a3e3e]worldIn], %(#6a3e3e)[[color=#6a3e3e]blockIn], %(#6a3e3e)[[color=#6a3e3e]pos], %(#6a3e3e)[[color=#6a3e3e]playerIn]); } } **%(#7f0055)[[color=#7f0055] return]** **%(#7f0055)[[color=#7f0055]super]**.onBlockDestroyed(%(#6a3e3e)[[color=#6a3e3e]stack], %(#6a3e3e)[[color=#6a3e3e]worldIn], %(#6a3e3e)[[color=#6a3e3e]blockIn], %(#6a3e3e)[[color=#6a3e3e]pos], %(#6a3e3e)[[color=#6a3e3e]playerIn]); }
Dans ma classe event, il y a ceci :
@SubscribeEvent **%(#7f0055)[[color=#7f0055]public]** **%(#7f0055)[[color=#7f0055]void]** breakBlock(BlockEvent.BreakEvent %(#6a3e3e)[[color=#6a3e3e]event]) { **%(#7f0055)[[color=#7f0055] if]** (%(#6a3e3e)[[color=#6a3e3e]event].%(#0000c0)[[color=#0000c0]world].getBlockState(%(#6a3e3e)[[color=#6a3e3e]event].%(#0000c0)[[color=#0000c0]pos].up(7)).getBlock().isWood(%(#6a3e3e)[[color=#6a3e3e]event].%(#0000c0)[[color=#0000c0]world], %(#6a3e3e)[[color=#6a3e3e]event].%(#0000c0)[[color=#0000c0]pos])) { %(#6a3e3e)[[color=#6a3e3e] event].setCanceled(**%(#7f0055)[[color=#7f0055]true]**); %(#6a3e3e)[[color=#6a3e3e] event].getPlayer().addChatMessage(**%(#7f0055)[[color=#7f0055]new]** ChatComponentText(%(#2a00ff)[[color=#2a00ff]"Cet arbre est trop grand pour pouvoir être coupé"])); } }
Je met la balise en résolu : )