Des Radius et adaptations spécifiques ?
-
Si tu mets du code comme ça n’importe où c’est normal que ça ne fonctionne pas …
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { List entities = world.selectEntitiesWithinAABB(EntityPlayer.class, living.boundingBox.expand(15.0D, 15.0D, 15.0D), new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { return entity instanceof EntityPlayer; } }); for(Object o : entities) { if(o instanceof EntityPlayer) { ((EntityPlayer)o).addPotionEffect(new PotionEffect(Potion.poison.id, 1200, 0)); } } } -
Merci bien Robin ! Pour le radioactif ! Ca marche !
Alors, j’ai fais des recherches pour le GlassPane, j’ai trouver ça dans la classe BlockCactus :
public boolean canPlaceBlockAt(World world, int x, int y, int z) { return !super.canPlaceBlockAt(world, x, y, z) ? false : this.canBlockStay(world, x, y, z); }Mais, je ne sais pas comment je peux mettre le GlassPane, car on a pas d’énonciation de blocks !
-
Personne pour le Block GlassPane ?
-
@‘SquizzCraft’:
Personne pour le Block GlassPane ?
Il faut réécrire la fonction canBlockStay.
-
Comment ça ?
-
this.canBlockStay(world, x, y, z)
ctrl + clic dessus. ça va te ramener à la fonction, c’est elle qu’il faut reprendre et adapter. -
@‘SquizzCraft’:
Comment ça ?
Apprend le java et le code sous MinecraftForge en regardant des tutoriels parce que là tu ne sais pas faire de simples choses : regarde les tutoriels de Robin (il y a aussi la chaîne youtube MinecraftForgeFrance)
-
Ben, il me ramène là :
public boolean canBlockStay(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_) { return true; }Encore une fois, il n’y a pas de déclaration de bloc ^^’
-
Pas dans le cas du cactus :
public boolean canBlockStay(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_) { if (p_149718_1_.getBlock(p_149718_2_ - 1, p_149718_3_, p_149718_4_).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_ + 1, p_149718_3_, p_149718_4_).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_, p_149718_3_, p_149718_4_ - 1).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_, p_149718_3_, p_149718_4_ + 1).getMaterial().isSolid()) { return false; } else { Block block = p_149718_1_.getBlock(p_149718_2_, p_149718_3_ - 1, p_149718_4_); return block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this); } } -
Oui d’accord, mais il n’y a pas de Blocks.Sand dans cette fonction ?
-
return block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this);
C’est dans cette fonction que c’est géré. -
Il faut que je fasse un return block.GlassPane ?
-
@‘SquizzCraft’:
Il faut que je fasse un return block.GlassPane ?
Non, il faut juste regarder si le block en dessous est un glass pane.
-
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
-
@‘SquizzCraft’:
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
Essaie avec çà :
public boolean canBlockStay(World world, int x, int y, int z) { if (world.getBlock(x - 1, y, z) == Blocks.glass_pane) { return true; } return false; } -
@‘SCAREX’:
@‘SquizzCraft’:
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
Essaie avec çà :
public boolean canBlockStay(World world, int x, int y, int z) { if (world.getBlock(x - 1, y, z) == Blocks.glass_pane) { return true; } return false; }Ce serai pas y - 1 plutôt que x - 1 ?
-
Alors, j’ai essayé mais ça ne fonctionne pas, le block ne se pose nul part, même sur le sable
-
@‘SquizzCraft’:
Alors, j’ai essayé mais ça ne fonctionne pas, le block ne se pose nul part, même sur le sable
Quel code as-tu essayé ?
-
@‘bodri’:
@‘SquizzCraft’:
Alors, j’ai essayé mais ça ne fonctionne pas, le block ne se pose nul part, même sur le sable
Quel code as-tu essayé ?
Sa serait + ce code là je pense si tu veux que ton block ne soit pas posable sur le sable :
- public boolean canBlockStay(World world, int x, int y, int z)
- {
- if%(#646464)[1, y, z) == Blocks.sand)
- {
- return false;
- }
- return true;
- }
``` -
@‘bodri’:
@‘SCAREX’:
@‘SquizzCraft’:
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
Essaie avec çà :
public boolean canBlockStay(World world, int x, int y, int z) { if (world.getBlock(x - 1, y, z) == Blocks.glass_pane) { return true; } return false; }Ce serai pas y - 1 plutôt que x - 1 ?
Effectivement, j’ai fait ce code à l’arrache.