Pioche qui mine en 5x5
-
Bonjjjjjour, je voudrait savoir comment faire un pioche(Sa je sait le faire -_-)mais qui mine en 5x5.
Merci à toutes les personnes qui vont m’aidez -
Déja traité sur le forum cherche un peu (3x3) mais c’est le meme principe
-
en gros tu utilise l’event BlockEvent.HarvestDropsEvent et la fonciton world.destroyBlock qui permet de les drops
et avec des boucle for tu fais en sorte que les blocks dans un rayon de 2 autour de la pioche soit cassé avec la fonction world.destroyBlock() -
Il n’y a pas besoin d’utiliser d’event …
-
Bah j’ai bien fait ma pioche et tous mais sa ne fonctionne pas j’ai du oublier d’apeller un event ou autres -_-
Voici les class qui on un rapport avec se que j’ai fait
package com.adamitemod.mod.init; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraftforge.common.util.EnumHelper; import com.adamitemod.mod.items.AxeMinotor; import com.adamitemod.mod.AdamiteMod; import com.adamitemod.mod.References; import com.adamitemod.mod.bushes.ItemExperienceBerry; import com.adamitemod.mod.bushes.ItemFissionBerry; import com.adamitemod.mod.items.ItemArmorMod; import com.adamitemod.mod.items.ItemAxeMod; import com.adamitemod.mod.items.ItemBackPack; import com.adamitemod.mod.items.ItemBowAdamite; import com.adamitemod.mod.items.ItemBowFisson; import com.adamitemod.mod.items.ItemBowRuby; import com.adamitemod.mod.items.ItemBowZectium; import com.adamitemod.mod.items.ItemDynamite; import com.adamitemod.mod.items.ItemFoodAple; import com.adamitemod.mod.items.ItemMod; import com.adamitemod.mod.items.ItemPickaxeMod; import com.adamitemod.mod.items.ItemSpadeMod; import com.adamitemod.mod.items.ItemSwordMod; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.registry.GameRegistry; public class ItemsMod { public static ToolMaterial ADAMITE = EnumHelper.addToolMaterial("ADAMITE", 5, 3000, 20.0F, 7.0F, 10); public static ToolMaterial Fission = EnumHelper.addToolMaterial("Fission", 7, 4000, 25.0F, 8.0F, 11); public static ToolMaterial Minotor = EnumHelper.addToolMaterial("Minotor",(int) 7.5, 4000, 25.0F, 8.0F, 11); public static ToolMaterial RUBY = EnumHelper.addToolMaterial("RUBY", 3, 1000, 7.0F, 3.0F, 10); public static ToolMaterial ZECTIUM = EnumHelper.addToolMaterial("ZECTIUM", 4, 2000, 10.0F, 5.0F, 10); public static ArmorMaterial ADAMITE_ARMOR = EnumHelper.addArmorMaterial("ADAMITE_ARMOR", 200, new int[]{4, 9, 7, 4}, 19); public static ArmorMaterial ZECTIUM_ARMOR = EnumHelper.addArmorMaterial("ZECTIUM_ARMOR", 160, new int[]{3, 7, 6, 3}, 21); public static ArmorMaterial Fission_ARMOR = EnumHelper.addArmorMaterial("Fission_ARMOR", 500, new int[]{4, 9, 7, 4}, 22); public static Item CrystalHelmet; public static Item RubyBow,ZectiumBow,AdamiteBow,FissonBow; public static Item adamite, rubyIngot, zectiumIngot, FissionSword, FissionPickaxe, fissionpomme; public static Item adamiteSword, rubySword, zectiumSword, FissionAxe; public static Item adamitePickaxe, rubyPickaxe, zectiumPickaxe; public static Item adamiteAxe, rubyAxe, zectiumAxe; public static Item adamiteShovel, rubyShovel, zectiumShovel; public static Item EnderStick, StickDeForce, SpeedStick, HealStick, Adasceptre, HealStone, EnderStone, StrengthStone, Speed; public static Item adamiteHelmet, zectiumHelmet, FissionHelmet; public static Item adamiteChestplate, zectiumChestplate, FissionChestplate; public static Item adamiteLeggings, zectiumLeggings, FissionLeggings; public static Item adamiteBoots, zectiumBoots, FissionBoots, adapo; public static Item fission; public static Item MarteauAda; public static ItemExperienceBerry experienceBerry; public static ItemFissionBerry fissionberry; public static Item AxeMinotor; public static Item rubyd, zectiumd, adamited, fissiond, ord, netherd, irond, diamantd, adamiteproxy; public static void init() { adamite = new ItemMod().setUnlocalizedName("adamite").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamite"); HealStone = new ItemMod().setUnlocalizedName("HealStone").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":He"); StickDeForce = new com.adamitemod.mod.items.StickDeForce().setUnlocalizedName("StickDeForce").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":SW"); EnderStick = new com.adamitemod.mod.items.EnderStick().setUnlocalizedName("EnderStick").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":EnderStick"); SpeedStick = new com.adamitemod.mod.items.SpeedStick().setUnlocalizedName("SpeedStick").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":SpeedStick"); MarteauAda = new com.adamitemod.mod.smelterie.Item3X3(ADAMITE, 100.0F).setUnlocalizedName("Pickaxe3x3").setTextureName("AdamiteMod:Pickaxe3x3"); HealStick = new com.adamitemod.mod.items.HealStick().setUnlocalizedName("HealStick").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":HealStick"); Adasceptre = new com.adamitemod.mod.items.Adasceptre().setUnlocalizedName("Adasceptre").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":M"); EnderStone = new ItemMod().setUnlocalizedName("EnderStone").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":En"); StrengthStone = new ItemMod().setUnlocalizedName("StrengthStone").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":St"); Speed = new ItemMod().setUnlocalizedName("Speed").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":sp"); experienceBerry = new ItemExperienceBerry(); fissionberry = new ItemFissionBerry(); /*Minotor*/ AxeMinotor = new AxeMinotor(Minotor); /*Bow*/ RubyBow = new ItemBowRuby().setUnlocalizedName("ruby_bow").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":ruby_bow"); ZectiumBow = new ItemBowZectium().setUnlocalizedName("zectium_bow").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectium_bow"); AdamiteBow = new ItemBowAdamite().setUnlocalizedName("adamite_bow").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamite_bow"); FissonBow = new ItemBowFisson().setUnlocalizedName("fission_bow").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fission_bow"); rubyIngot = new ItemMod().setUnlocalizedName("rubyIngot").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubyingot"); zectiumIngot = new ItemMod().setUnlocalizedName("zectiumIngot").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumIngot"); adamiteSword = new ItemSwordMod(ADAMITE).setUnlocalizedName("adamiteSword").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":Sword"); FissionSword = new ItemSwordMod(Fission).setUnlocalizedName("FissionSword").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionsword"); rubySword = new ItemSwordMod(RUBY).setUnlocalizedName("rubySword").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubysword"); zectiumSword = new ItemSwordMod(ZECTIUM).setUnlocalizedName("zectiumSword").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumsword"); adamitePickaxe = new ItemPickaxeMod(ADAMITE).setUnlocalizedName("adamitePickaxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamitepickaxe"); rubyPickaxe = new ItemPickaxeMod(RUBY).setUnlocalizedName("rubyPickaxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubypickaxe"); FissionPickaxe = new ItemPickaxeMod(Fission).setUnlocalizedName("FissionPickaxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":FissionPickaxe"); zectiumPickaxe = new ItemPickaxeMod(ZECTIUM).setUnlocalizedName("zectiumPickaxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumpickaxe"); FissionAxe = new ItemAxeMod(Fission).setUnlocalizedName("FissionAxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":Fissionaxe"); adamiteAxe = new ItemAxeMod(ADAMITE).setUnlocalizedName("adamiteAxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamiteaxe"); rubyAxe = new ItemAxeMod(RUBY).setUnlocalizedName("rubyAxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubyaxe"); zectiumAxe = new ItemAxeMod(ZECTIUM).setUnlocalizedName("zectiumAxe").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumaxe"); adamiteShovel = new ItemSpadeMod(ADAMITE).setUnlocalizedName("adamiteSpade").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamiteshovel"); rubyShovel = new ItemSpadeMod(RUBY).setUnlocalizedName("rubySpade").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubyshovel"); zectiumShovel = new ItemSpadeMod(ZECTIUM).setUnlocalizedName("zectiumSpade").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumshovel"); //armures fission FissionHelmet = new com.adamitemod.mod.items.ArmureFission(Fission_ARMOR, 0).setUnlocalizedName("FissionHelmet").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionhelmet"); FissionBoots = new com.adamitemod.mod.items.ArmureFission(Fission_ARMOR, 3).setUnlocalizedName("FissionBoots").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionboots"); FissionLeggings = new com.adamitemod.mod.items.ArmureFission(Fission_ARMOR, 2).setUnlocalizedName("FissionLeggings").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionleggings"); FissionChestplate = new com.adamitemod.mod.items.ArmureFission(Fission_ARMOR, 1).setUnlocalizedName("FissionChestplate").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionchestplate"); adamiteHelmet = new com.adamitemod.mod.items.ArmureAdamite(ADAMITE_ARMOR, 0).setUnlocalizedName("adamiteHelmet").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamitehelmet"); zectiumHelmet = new ItemArmorMod(ZECTIUM_ARMOR, 0).setUnlocalizedName("zectiumHelmet").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumhelmet"); adamiteChestplate = new com.adamitemod.mod.items.ArmureAdamite(ADAMITE_ARMOR, 1).setUnlocalizedName("adamiteChestplate").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamitechestplate"); zectiumChestplate = new ItemArmorMod(ZECTIUM_ARMOR, 1).setUnlocalizedName("zectiumChestplate").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumchestplate"); adamiteLeggings = new com.adamitemod.mod.items.ArmureAdamite(ADAMITE_ARMOR, 2).setUnlocalizedName("adamiteLeggings").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamiteleggings"); zectiumLeggings = new ItemArmorMod(ZECTIUM_ARMOR, 2).setUnlocalizedName("zectiumLeggings").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumleggings"); adamiteBoots = new com.adamitemod.mod.items.ArmureAdamite(ADAMITE_ARMOR, 3).setUnlocalizedName("adamiteBoots").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamiteboots"); zectiumBoots = new ItemArmorMod(ZECTIUM_ARMOR, 3).setUnlocalizedName("zectiumBoots").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumboots"); fission = new Item().setUnlocalizedName("fission").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fission"); fissionpomme = new ItemFoodAple(10, 10F, true).setAlwaysEdible().setUnlocalizedName("fissionpomme").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissionpomme"); adapo = new com.adamitemod.mod.items.adapo(10, 10F, true).setAlwaysEdible().setUnlocalizedName("adapo").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adapo"); rubyd = new ItemMod().setUnlocalizedName("rubyd").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":rubyd"); zectiumd = new ItemMod().setUnlocalizedName("zectiumd").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":zectiumd"); adamited = new ItemMod().setUnlocalizedName("adamited").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamited"); fissiond = new ItemMod().setUnlocalizedName("fissiond").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":fissiond"); ord = new ItemMod().setUnlocalizedName("ord").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":ord"); netherd = new ItemMod().setUnlocalizedName("netherd").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":netherd"); irond = new ItemMod().setUnlocalizedName("irond").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":irond"); diamantd = new ItemMod().setUnlocalizedName("diamantd").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":diamantd"); adamiteproxy = new ItemMod().setUnlocalizedName("adamiteproxy").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":adamiteproxy"); } public static void register() { GameRegistry.registerItem(adamite, "adamite"); GameRegistry.registerItem(rubyd, "rubyd"); GameRegistry.registerItem(zectiumd, "zectiumd"); GameRegistry.registerItem(adamited, "adamited"); GameRegistry.registerItem(fissiond, "fissiond"); GameRegistry.registerItem(ord, "ord"); GameRegistry.registerItem(netherd, "netherd"); GameRegistry.registerItem(irond, "irond"); GameRegistry.registerItem(AxeMinotor, "AxeMinotor"); GameRegistry.registerItem(diamantd, "diamantd"); GameRegistry.registerItem(adamiteproxy, "adamiteproxy"); GameRegistry.registerItem(FissionHelmet, "CasqueFission"); GameRegistry.registerItem(FissionChestplate, "PlastronFission"); GameRegistry.registerItem(FissionLeggings, "PantalonsFission"); GameRegistry.registerItem(experienceBerry, "experienceBerry"); GameRegistry.registerItem(fissionberry, "fissionberry"); GameRegistry.registerItem(RubyBow, "RubyBow"); GameRegistry.registerItem(ZectiumBow, "ZectiumBow"); GameRegistry.registerItem(AdamiteBow, "AdamiteBow"); GameRegistry.registerItem(FissonBow, "FissonBow"); GameRegistry.registerItem(FissionBoots, "BottesFission"); GameRegistry.registerItem(rubyIngot, "rubyIngot"); GameRegistry.registerItem(zectiumIngot, "zectiumIngot"); GameRegistry.registerItem(adamiteSword, "adamiteSword"); GameRegistry.registerItem(rubySword, "rubySword"); GameRegistry.registerItem(FissionSword, "FissionSword"); GameRegistry.registerItem(zectiumSword, "zectiumSword"); GameRegistry.registerItem(adamitePickaxe, "adamitePickaxe"); GameRegistry.registerItem(rubyPickaxe, "rubyPickaxe"); GameRegistry.registerItem(zectiumPickaxe, "zectiumPickaxe"); GameRegistry.registerItem(adamiteAxe, "adamiteAxe"); GameRegistry.registerItem(rubyAxe, "rubyAxe"); GameRegistry.registerItem(adamiteShovel, "adamiteShovel"); GameRegistry.registerItem(rubyShovel, "rubyShovel"); GameRegistry.registerItem(zectiumAxe, "zectiumAxe"); GameRegistry.registerItem(zectiumShovel, "zectiumShovel"); GameRegistry.registerItem(adamiteHelmet, "adamiteHelmet"); GameRegistry.registerItem(zectiumHelmet, "zectiumHelmet"); GameRegistry.registerItem(adamiteChestplate, "adamiteChestplate"); GameRegistry.registerItem(FissionPickaxe, "FissionPickaxe"); GameRegistry.registerItem(zectiumChestplate, "zectiumChestplate"); GameRegistry.registerItem(adamiteLeggings, "adamiteLeggings"); GameRegistry.registerItem(zectiumLeggings, "zectiumLeggings"); GameRegistry.registerItem(adamiteBoots, "adamiteBoots"); GameRegistry.registerItem(zectiumBoots, "zectiumBoots"); GameRegistry.registerItem(fission, "fission"); GameRegistry.registerItem(FissionAxe, "FissionAxe"); GameRegistry.registerItem(fissionpomme, "fissionpomme"); GameRegistry.registerItem(adapo, "adapo"); GameRegistry.registerItem(StickDeForce, "StickDeForce"); GameRegistry.registerItem(EnderStick, "EnderStick"); GameRegistry.registerItem(HealStick, "HealStick"); GameRegistry.registerItem(SpeedStick, "SpeedStick"); GameRegistry.registerItem(Adasceptre, "Adasceptre"); GameRegistry.registerItem(HealStone, "HealStone"); GameRegistry.registerItem(MarteauAda, "Pickaxe3x3"); GameRegistry.registerItem(EnderStone, "EnderStone"); GameRegistry.registerItem(StrengthStone, "StrengthStone"); GameRegistry.registerItem(Speed, "Speed"); } }
package com.adamitemod.mod.smelterie; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class ExtendsItem3x3 extends ToolPickaxe { protected static final Material[] MATERIALS = {Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.snow, Material.craftedSnow, Material.clay}; public ExtendsItem3x3(Item.ToolMaterial material) { super(material); } public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer player) { MovingObjectPosition raycast = HadlerTool.raytraceFromEntity(player.worldObj, player, true, 10.0D); if(raycast != null) { breakOtherBlock(player, stack, x, y, z, x, y, z, raycast.sideHit); stack.damageItem(1, player); } return false; } public int getItemEnchantability() { return 0; } public boolean isBookEnchantable(ItemStack stack, ItemStack book) { return true; } public float getDigSpeed(ItemStack stack, net.minecraft.block.Block block, int meta) { return super.getDigSpeed(stack, block, meta) / 9.0F; } public void breakOtherBlock(EntityPlayer player, ItemStack stack, int x, int y, int z, int originX, int originY, int originZ, int side) { World world = player.worldObj; Material mat = world.getBlock(x, y, z).getMaterial(); if(world.isAirBlock(x, y, z)) { return; } ForgeDirection direction = ForgeDirection.getOrientation(side); int range = Math.max(0, 1); int rangeY = Math.max(1, range); boolean doX = direction.offsetX == 0; boolean doY = direction.offsetY == 0; boolean doZ = direction.offsetZ == 0; HadlerTool.removeBlocksInIteration(player, stack, world, x, y, z, doX ? -range : 0, doY ? -1 : 0, doZ ? -range : 0, doX ? range + 1 : 1, doY ? rangeY * 2 : 1, doZ ? range + 1 : 1, null, MATERIALS, false, 0, true); } }
package com.adamitemod.mod.smelterie; import java.util.Arrays; import com.adamitemod.mod.init.BlocksMod; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class HadlerTool { public static Block[] minerals = {Blocks.stone, BlocksMod.adamiteOre, Blocks.coal_ore, Blocks.redstone_ore, Blocks.diamond_ore, Blocks.emerald_ore, Blocks.quartz_ore, Blocks.iron_ore, Blocks.lapis_ore, BlocksMod.rubyOre, BlocksMod.zectiumOre, BlocksMod.FissionOre, Blocks.gold_ore, Blocks.lit_redstone_ore, Blocks.obsidian}; private static HadlerTool handler; public static void removeBlocksInIteration(EntityPlayer player, ItemStack stack, World world, int x, int y, int z, int xs, int ys, int zs, int xe, int ye, int ze, Block block, Material[] materialsListing, boolean smelt, int fortune, boolean dispose) { float blockHardness = block == null ? 1.0F : block.getBlockHardness(world, x, y, z); for(int x1 = xs; x1 < xe; x1++) { for(int y1 = ys; y1 < ye; y1++) { for(int z1 = zs; z1 < ze; z1++) { removeBlockWithDrops(player, stack, world, x1 + x, y1 + y, z1 + z, x, y, z, block, materialsListing, smelt, fortune, blockHardness, dispose); } } } } public static void spawnItemAtPlayer(EntityPlayer player, ItemStack result) { } public static void removeBlockWithDrops(EntityPlayer player, ItemStack stack, World world, int x, int y, int z, int bx, int by, int bz, Block block, Material[] materialsListing, boolean smelt, int fortune, float blockHardness, boolean dispose) { removeBlockWithDrops(player, stack, world, x, y, z, bx, by, bz, block, materialsListing, smelt, fortune, blockHardness, dispose, true); } public static void removeBlockWithDrops(EntityPlayer player, ItemStack stack, World world, int x, int y, int z, int bx, int by, int bz, Block block, Material[] materialsListing, boolean smelt, int fortune, float blockHardness, boolean dispose, boolean particles) { if(!world.blockExists(x, y, z)) { return; } Block blk = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); if((block != null) && (blk != block)) { return; } Material mat = world.getBlock(x, y, z).getMaterial(); boolean flag = false; if((!world.isRemote) && (blk != null) && (!blk.isAir(world, x, y, z)) && (blk.getPlayerRelativeBlockHardness(player, world, x, y, z) > 0.0F)) { if((!blk.canHarvestBlock(player, meta)) || (!isRightMaterial(blk, materialsListing)) || (blk == Blocks.obsidian)) { return; } if(!player.capabilities.isCreativeMode) { int localMeta = world.getBlockMetadata(x, y, z); blk.onBlockHarvested(world, x, y, z, localMeta, player); if(blk.removedByPlayer(world, player, x, y, z, true)) { blk.onBlockDestroyedByPlayer(world, x, y, z, localMeta); } if(smelt) { float count = 1.0F; if(Arrays.asList(minerals).contains(blk)) { count = (float)(count + (fortune * 0.7D - world.rand.nextInt(fortune))); } if(count <= 0.0F) { count = 1.0F; } ItemStack result = FurnaceRecipes.smelting().getSmeltingResult((ItemStack)blk.getDrops(world, x, y, z, blk.getDamageValue(world, x, y, z), fortune).get(0)); if(result != null) { if(result.stackSize < 1) { result.stackSize = ((int)count); } handler.spawnItemAtPlayer(player, result); flag = true; } else { blk.dropBlockAsItem(world, x, y, z, localMeta, fortune); } } else { blk.dropBlockAsItem(world, x, y, z, localMeta, fortune); } int xpDrop = blk.getExpDrop(world, blk.getDamageValue(world, x, y, z), fortune); EntityXPOrb xp = new EntityXPOrb(world, x, y, z, xpDrop); if(xpDrop > 0) { world.spawnEntityInWorld(xp); } } else { world.setBlockToAir(x, y, z); } world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(blk) + (meta << 12)); } if(flag) { world.spawnParticle("flame", x + 0.5D + 0.5D * world.rand.nextDouble(), y - 0.1D, z + 0.5D * world.rand.nextDouble(), 0.0D, 0.0D, 0.0D); world.spawnParticle("flame", x + 0.5D + 0.5D * world.rand.nextDouble(), y - 0.1D, z + 0.5D * world.rand.nextDouble(), 0.0D, 0.0D, 0.0D); world.spawnParticle("smoke", x + 0.5D + 0.5D * world.rand.nextDouble(), y - 0.1D, z + 0.5D * world.rand.nextDouble(), 0.0D, 0.0D, 0.0D); } } public static boolean isRightMaterial(Block block, Material[] materialsListing) { Material material = block.getMaterial(); for(Material mat : materialsListing) { if(material == mat) { return true; } } return false; } public static boolean isRightBlock(Block block, Block[] list) { for(Block blk : list) { if(block == blk) { return false; } } return true; } public static MovingObjectPosition raytraceFromEntity(World world, Entity player, boolean par3, double range) { float f = 1.0F; float f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f; float f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f; double d0 = player.prevPosX + (player.posX - player.prevPosX) * f; double d1 = player.prevPosY + (player.posY - player.prevPosY) * f; if((!world.isRemote) && ((player instanceof EntityPlayer))) { d1 += ((EntityPlayer)player).eyeHeight; } double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * f; Vec3 vec3 = Vec3.createVectorHelper(d0, d1, d2); float f3 = MathHelper.cos(-f2 * 0.017453292F - 3.1415927F); float f4 = MathHelper.sin(-f2 * 0.017453292F - 3.1415927F); float f5 = -MathHelper.cos(-f1 * 0.017453292F); float f6 = MathHelper.sin(-f1 * 0.017453292F); float f7 = f4 * f5; float f8 = f3 * f5; double d3 = range; Vec3 vec31 = vec3.addVector(f7 * d3, f6 * d3, f8 * d3); return world.rayTraceBlocks(vec3, vec31, par3); } }
package com.adamitemod.mod.smelterie; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class Item3X3 extends ToolPickaxe { private boolean smelt; private int fortune; public Item3X3(ToolMaterial toolMaterial, float nombre) { super(toolMaterial); } public void breakOtherBlock(EntityPlayer player, ItemStack stack, int x, int y, int z, int originX, int originY, int originZ, int side) { World world = player.worldObj; Material mat = world.getBlock(x, y, z).getMaterial(); if(world.isAirBlock(x, y, z)) { return; } ForgeDirection direction = ForgeDirection.getOrientation(side); int range = Math.max(0, 1); int rangeY = Math.max(1, range); boolean doX = direction.offsetX == 0; boolean doY = direction.offsetY == 0; boolean doZ = direction.offsetZ == 0; HadlerTool.removeBlocksInIteration(player, stack, world, x, y, z, doX ? -range : 0, doY ? -1 : 0, doZ ? -range : 0, doX ? range + 1 : 1, doY ? rangeY * 2 : 1, doZ ? range + 1 : 1, null, ExtendsItem3x3.MATERIALS, smelt, fortune, true); } }
package com.adamitemod.mod.smelterie; import com.adamitemod.mod.blocks.BlockMod; import com.adamitemod.mod.init.ItemsMod; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; public class ToolPickaxe extends ItemPickaxe { public ToolPickaxe(ToolMaterial material) { super(material); } public boolean getIsRepairable(ItemStack input, ItemStack repair) { if(input.getItem() == this && repair.getItem() == ItemsMod.adamite) { return true; } return false; } public boolean hasEffect(ItemStack stack, int pass) { return false; } }
-
Up s’il vous plaît
-
Up please j’en est vraiment besoins
-
public class ItemPickaxeCustom extends ItemPickaxe { protected ItemPickaxeCustom(ToolMaterial tool) { super(tool); } public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase living) { if(living instanceof EntityPlayer) { for(int x1 = -2; x1 < 3; x1++) { for(int y1 = -2; y1 < 3; y1++) { for(int z1 = -2; z1 < 3; z1++) { world.getBlock(x + x1, y + y1, z + z1).harvestBlock(world, (EntityPlayer)living, x + x1, y + y1, z + z1, world.getBlockMetadata(x + x1, y + y1, z + z1)); world.setBlockToAir(x + x1, y + y1, z + z1); } } } } return super.onBlockDestroyed(stack, world, block, x, y, z, living); } }
3 boucles, une fonction pour drop et une fonction pour retirer le bloc et voila.
-
sa c’est la class de l’item ou pas ?
-
Sachant que c’est extends ItemPickaxe oui.
-
Ton code permet de détruire la bedrock non ?
-
Ah oui j’ai oublié de vérifier que la résistance est supérieur ou égal à 0.
-
Tu peux le rajouter s’il te plait
-
il faut juste ajouter if(world.getBlock(x + x1, y + y1, z + z1).getHardness() >= 0.0F) avant world.getBlock(x + x1, y + y1, z + z1).harvestBlock(world, (EntityPlayer)living, x + x1, y + y1, z + z1, world.getBlockMetadata(x + x1, y + y1, z + z1)); et world.setBlockToAir(x + x1, y + y1, z + z1);
-
Fonctionne pas erreur su getHardness il me dit The method getHardness() is undefined for the type Block
-
Dis-moi que t’as cherché un peu et que je ne vais pas aller voir pour rien
EDIT :
Ah bah si, tu n’as pas cherché :
Block.javapublic float getBlockHardness(World world, int x, int y, int z) { return this.blockHardness; }
-
excuse moi
en plus je l’avait fait
-
Il vient de te donner la solution, tu utilisais une mauvaise fonction (car robin n’a pas tout en tête).
Tu dois donc utiliser getBlockHardness() au lieu de getHardness()(Tu devrais te montrer plus reconnaissant, les gens ici ne te doivent rien et prennent sur leur temps pour t’aider. Si tu n’es pas satisfait -te montre ingrat - tu pourrais très bien ne plus recevoir d’aide)
-
Je t’ai donné la fonction qu’il fallait utiliser, avec les arguments, tu veux quoi de plus ? Ça ?
public class ItemPickaxeCustom extends ItemPickaxe { protected ItemPickaxeCustom(ToolMaterial tool) { super(tool); } public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase living) { if(living instanceof EntityPlayer) { for(int x1 = -2; x1 < 3; x1++) { for(int y1 = -2; y1 < 3; y1++) { for(int z1 = -2; z1 < 3; z1++) { if(world.getBlock(x + x1, y + y1, z + z1).getBlockHardness(world, x + x1, y + y1, z + z1) >= 0) { world.getBlock(x + x1, y + y1, z + z1).harvestBlock(world, (EntityPlayer)living, x + x1, y + y1, z + z1, world.getBlockMetadata(x + x1, y + y1, z + z1)); world.setBlockToAir(x + x1, y + y1, z + z1); } } } } } return super.onBlockDestroyed(stack, world, block, x, y, z, living); } }
-
Non c’est bon excuse moi c’est juste que j’etais fatiguer et que je ne trouvais pas mais j’avais trouvé et je m’excuse vraiment car je sait que si tu voulais tu ne m’aurais pas aidez et quand je relie ma phrase j’ai étais asser méchant au lieu de demander gentiment