Résolu Mon block n'explose pas
-
Bonsoir tout le monde, voilà je viens de créer un block avec une resistance de 30.0F donc environ 2 TNT pour l’exploser mais celui-ci ne s’explose pas
voici le code du block et de la classe principalepackage fr.lunarfight.mod.blocks.common; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import fr.lunarfight.mod.blocks.proxy.CommonProxy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; @Mod(modid= "Armor.MODID", name = "LunarFight Armors", version = "0.1") public class Armor { @Instance("MODID") public static Armor instance; public static final String MOD_ID = "armor"; @SidedProxy(clientSide = "fr.lunarfight.mod.blocks.proxy.ClientProxy", serverSide = "fr.lunarfight.mod.blocks.proxy.CommonProxy") public static CommonProxy proxy; public static Item itemMetaria, itemTion, itemAlyvine, itemObsidienne, itemLunarite, metariaHelmet, metariaMultiTools, metariaChestplate, TionSword, lunariteSword, lunariteSpade,MultiToolsLunarite, lunariteAxe, lunaritePickaxe, TionPickaxe, TionSpade, obsidienneAxe, obsidienneSpade, TionAxe, alyvineSword, alyvinePickaxe, alyvineSpade, alyvineAxe, obsidienneSword, obsidiennePickaxe, metariaLegs, metariaBoots,tionHelmet, tionChestplate, tionLegs, tionBoots, alyvineHelmet, alyvineChestplate, alyvineLegs, alyvineBoots, obsidienneHelmet, obsidienneChestplate, obsidienneLegs, obsidienneBoots, lunariteHelmet, lunariteChestplate, lunariteLegs, lunariteBoots, MetariaSword, MetariaPickaxe, MetariaSpade, MetariaAxe, MultiToolsMetaria, MultiToolsAlyvine, MultiToolsTion, MultiToolsObsidienne; public static ArmorMaterial armorMetaria = EnumHelper.addArmorMaterial("metaria", 41, new int[]{4, 10, 8, 4}, 13); public static ArmorMaterial armorTion = EnumHelper.addArmorMaterial("tion", 49, new int[]{4, 11, 9, 5}, 14); public static ArmorMaterial armorAlyvine = EnumHelper.addArmorMaterial("alyvine", 57, new int[]{5, 12, 10, 6}, 15); public static ArmorMaterial armorObsidienne = EnumHelper.addArmorMaterial("obsidienne", 65, new int[]{6, 12, 11, 6}, 16); public static ArmorMaterial armorLunarite = EnumHelper.addArmorMaterial("lunarite", 60, new int[]{7, 14, 12, 7}, 19); public static ToolMaterial toolMateria = EnumHelper.addToolMaterial("metaria", 3, 1999, 14.0F, 4, 13); public static ToolMaterial toolTion = EnumHelper.addToolMaterial("Tion", 3, 2799, 16.0F, 5, 14); public static ToolMaterial toolAlyvine = EnumHelper.addToolMaterial("Alyvine", 3, 3599, 18.0F, 6, 15); public static ToolMaterial toolObsidienne = EnumHelper.addToolMaterial("Obsidienne", 3, 4999, 20.0F, 7, 16); public static ToolMaterial toolLunarite = EnumHelper.addToolMaterial("Lunarite", 3, 4099, 24.0F, 9, 19); public static Block oreMetaria, renforcedStone, oreTion, oreAlyvine, oreLunarite, blockLunarite, blockAlyvine, blockTion, blockMetaria; @EventHandler public void preInit(FMLPreInitializationEvent event) { proxy.registerRender(); renforcedStone = new renforcedStone(Material.rock).setBlockName("RenforcedStone").setBlockTextureName(MOD_ID + ":renforced_stone").setCreativeTab(CreativeTabs.tabBlock).setResistance(30.0F); GameRegistry.registerBlock(renforcedStone, "renforced_stone"); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
Code de la classe renforced stone
package fr.lunarfight.mod.blocks.common; import net.minecraft.block.Block; import net.minecraft.block.material.Material; public class renforcedStone extends Block{ protected renforcedStone(Material material) { super(material); } }
Voilà j’aimerais qu’il explose en 8 coups de TNT mais celui-ci est invicible
P.S : J’ai mit que les code qui servait pour mon nouveau block pour éviter de vous encombrez avec 600 ligne -
Déjà résolu ?! Sinon la résistance est pour chaque TNT, donc avec 30 tu pourra mettre Integer.MAX_VALUE TNT il va pas se casser
-
Non, il n’est pas résolu je me suis trompé et comme je débute je ne comprends pas à quoi sert sa : Integer.MAX_VALUE TNT
-
C’est pas très grave si t’as pas compris, en gros il faut que tu fasse un système pour qu’il se casse avec 8 TNT
-
Ok j’essaye sa tout de suite, et j’édite le message, merci à toi
-
La puissance des tnt n’est pas une simple addition.
Si tu veux faire qu’au bout de plusieurs tnt le bloc casse, il faut faire un compteur. -
Ok, et je fais sa comment ? Avec un Enum?
-
Tu as une fonction qui est appelée lorsque ton block reçoit une explosion, tu utilises cette fonction pour incrémenter soit un metadata soit une valeur dans une TileEntity et tu mets aussi une condition pour qu’il explose une fois une certaine valeur atteinte
-
Merci de ta réponse je vais faire sa avec des metadata alors.