Customiser votre bloc
-
Ok merci beaucoup pour ton aide, je teste sa tout de suite___
MERCI BEAUCOUP
Sa marche !
Je vais enfin pouvoir finir ma salle de concert !!! -
Bonjour. est-ce quâil y a une fonction pour empĂȘcher que mon bloc puisse ĂȘtre poussĂ© par un piston ? Jâai dĂ©jĂ regardĂ© dans la class Block, et je nâai rien trouvĂ©.
-
En regardant dans le code du piston, on trouve :
private static boolean canPushBlock(int par0, World par1World, int par2, int par3, int par4, boolean par5) { if (par0 == Block.obsidian.blockID) { return false; }
-
public int getMobilityFlag(){ return X; }
X = 0 (laisse le bloc ĂȘtre poussĂ© par un piston) ou 1 (droppe le bloc lorsquâil est poussĂ©) ou 2 (Le bloc ne peut pas ĂȘtre poussĂ© par un piston).
-
+1 pour TheCreeper999, il te suffit de mettre cette fonction dans la classe du bloc alors quâavec la rĂ©ponse de Superloup10 tu aurai eu besoin de modifier la classe du piston.
-
A ma dĂ©charge, je nâai pas regardĂ© en dĂ©tail comment le piston dĂ©plaçait les blocs, mais je me doutais quâil y avait une fonction beaucoup plus simple.
-
Merci beaucoup jâavais bien entendu regardĂ© dans le code du piston. sauf que bien Ă©videment, je ne touche pas aux class existantes, et que jâai dĂ©jĂ tĂątonnĂ© un peu du cĂŽtĂ© des event sans pour autant trouver quelque chose dâintĂ©ressant. Cette fonction est tout de mĂȘme bien plus simple
-
Jâaimerai savoir comment donner un effet de potion (speed) quand on marche sur un bloc, jâai essayer avec ceci
public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity){ if(par5Entity instanceof EntityLiving){ ((EntityLiving)par5Entity).addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(),200,10)); }
Mais sa ne marche pas, alors si vous pouvez mâaider se serai super merci dâavance___
-
Je nâest jamais rĂ©ussi Ă faire fontionner cette fonction donc jâutilise ça:
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { float var5 = 0.125F; return AxisAlignedBB.getAABBPool().getAABB((double)x - var5, (double)y - var5, (double)z - var5, (double)(x + 1) - var5, (double)((float)(y + 1) - var5), (double)(z + 1) - var5); } public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)entity; player.addPotionEffect(new PotionEffect(Potion.confusion.id, 20, 10)); player.addPotionEffect(new PotionEffect(Potion.blindness.id, 200, 10)); player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200, 10)); player.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 200, 10)); player.addPotionEffect(new PotionEffect(Potion.hunger.id, 200, 10)); player.addPotionEffect(new PotionEffect(Potion.wither.id, 20, 10)); } }
-
@âfireblade51â:
Jâaimerai savoir comment donner un effet de potion (speed) quand on marche sur un bloc, jâai essayer avec ceci
public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity){ if(par5Entity instanceof EntityLiving){ ((EntityLiving)par5Entity).addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(),200,10)); }
Mais sa ne marche pas, alors si vous pouvez mâaider se serai super merci dâavance___
Quand tu es en créative apparemment ça ne marche pas.
-
Salut, jâai une erreur sur pickaxe dans le code :
MinecraftForge.setBlockHarvestLevel(blockore1, 0, pickaxe, 2);
Classe principale entiĂšre :
package alphis.common; import alphis.blocks.block1; import alphis.blocks.blockore1; import alphis.items.item1; import alphis.items.item2; import alphis.items.item3; import alphis.proxy.AlphisCommonProxy; import alphis.worldgen.WorldGeneratorCopper; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraftforge.common.MinecraftForge; 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.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = "AlphisMOD", name = "AlphisMOD", version = "1.0.0", acceptedMinecraftVersions = "[1.6.4,)") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class AlphisMOD { @SidedProxy(clientSide = "alphis.proxy.AlphisClientProxy", serverSide = "alphis.proxy.AlphisCommonProxy") public static AlphisCommonProxy proxy; @Instance("AlphisMOD") public static AlphisMOD instance; // Copper-Cuivre public static Block block1; public static Item item1; public static Block blockore1; // Sapphire-Saphir public static Block block2; public static Item item2; // Ruby-Rubis public static Block block3; public static Item item3; @EventHandler public void PreInit(FMLPreInitializationEvent event) { //Configuration //Blocks/Items - copper block1 = new block1(2001).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("CopperBlock").setTextureName("alphismod:copper_block"); item1 = new item1(10001).setUnlocalizedName("CopperIngot").setTextureName("alphismod:copper_ingot"); blockore1 = new blockore1(2004).setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("CopperOre").setTextureName("alphismod:copper_ore"); //Blocks/Items - sapphire block2 = new alphis.blocks.block2(2002).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("SapphireBlock").setTextureName("alphismod:sapphire_block"); item2 = new item2(10002).setUnlocalizedName("Sapphire").setTextureName("alphismod:sapphire"); //Blocks/Items - ruby block3 = new alphis.blocks.block3(2003).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("RubyBlock").setTextureName("alphismod:ruby_block"); item3 = new item3(10003).setUnlocalizedName("Ruby").setTextureName("alphismod:ruby"); //Items //Achievements } @EventHandler public void Init(FMLInitializationEvent event) { //Registry GameRegistry.registerBlock(block1, "block1"); GameRegistry.registerItem(item1, "item1", "AlphisMOD"); GameRegistry.registerBlock(blockore1, "blockore1"); GameRegistry.registerBlock(block2, "block2"); GameRegistry.registerItem(item2, "item2", "AlphisMOD"); GameRegistry.registerBlock(block3, "block3"); GameRegistry.registerItem(item3, "item3", "AlphisMOD"); //WorldGenerator GameRegistry.registerWorldGenerator(new WorldGeneratorCopper()); //MinecraftForge MinecraftForge.setBlockHarvestLevel(blockore1, 0, pickaxe, 2); //Mobs //Render proxy.registerRender(); //NetWork //Recipe } @EventHandler public void PostInit(FMLPostInitializationEvent event) { //Intégration avec les autres mods } }
Bye !
-
MinecraftForge.setBlockHarvestLevel(blockore1, 0, âpickaxeâ, 2);
-
@ârobin4002â:
MinecraftForge.setBlockHarvestLevel(blockore1, 0, âpickaxeâ, 2);
Merci sa marche trĂšs bien !
Je voudrais vous remercier pour lâaide que mâapport le forum dans mon mod mĂȘme si il y a deux trois trucs que je comprend pas (dalles & escaliers ainsi que le drop qui viens dâun bloc)
GRAND MERCI A VOUS !!
-
Câest encore moi ! Je voudrais que mon minerai de saphir drop une gemme de saphir sa jâai rĂ©ussi. Ce que jâarrive pas Ă faire câest que si la pioche est enchantĂ© fortune on drop plus, le rĂ©sultat est le mĂȘme, enchant ou non le bloc drop 1 gemme. Il y a cela mais il y autre chose, jâai cherchĂ© dans BlockOre.java, pour que mon minerai drop de lâexp sa câest Ă©galement fait, mon bloc drop de lâexp mais seulement quand il est cassĂ© avec une pioche fortune.
Classe de mon bloc :
package alphis.blocks; import java.util.Random; import alphis.common.AlphisMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class blockore2 extends Block { public blockore2(int id) { super(id, Material.rock); this.setCreativeTab(CreativeTabs.tabBlock); } public int idDropped(int par1, Random par2Random, int par3) { return AlphisMOD.item2.itemID; } public int getExpDrop(World par1World, int par5, int par7) { if (this.idDropped(par5, par1World.rand, par7) != this.blockID) { int j1 = 0; if (AlphisMOD.blockore2.blockID == AlphisMOD.item2.itemID) { j1 = MathHelper.getRandomIntegerInRange(par1World.rand, 3, 7); } } return par7; } }
Bye !
-
Ctrl + shift + F sâil te plait, ton code est pas vraiment lisible
-
Salut, jâai un problĂšme, quand je met ce code (adapter pour mon mod) :
MinecraftForge.setBlockHarvestLevel(Dragonite.dragoniteOre, 0, âpickaxeâ, 3);
pour que la DragoniteOre (mon minerai) se casse avec la pioche en diams . Mais il y a une erreur : setBlockHarvestLevel est souligner en rouge donc je passe ma souris dessus et il y a marqué : The method setBlockHarvestLevel(Block, int, String, int) is undefined for the type MinecraftForge
Merci Ă ce qui mâaideront
-
Essaie dans la classe de ton block (constructeur) : this.setHarvestLevel(âpickaxeâ, 3);
-
moi ça me met la mĂȘme erreur que MetaFire44800 et mĂȘme en faisant ce quâa dit Plaigon, lâerreur est toujours lĂ .
-
Entre 1.6 et 1.7.10 câest la mĂȘme?
-
Sur certains points oui, sur dâautre non.