Je considère ce tutoriel comme abandonné.
En passant, oubliez ce que j’ai dis ici :
@‘robin4002’:
Impossible de vérifie ça directement avec la fonction, mais il suffit juste de s’intéresser au fonctionnement de la redstone.
Lorsqu’il est actif, le metadata du bloc de redstone change. Il me semble que c’est 0 lorsqu’il est éteint, et ensuite de 1 à 15 pour la force du signal, en revanche je ne sais pas dans quel sens. Mais c’est pas grave, puisqu’on veut juste savoir si elle est actif ou pas. Donc :
[code_java] public void onNeighborBlockChange(World world, int x, int y, int z, int changedblockid)
{
if(world.isBlockIndirectlyGettingPowered(x, y, z))
{
// le bloc est alimenté en redstone
if(world.getBlockId(x + 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z) > 0)
{
//Le bloc est alimenté en redstone par le bloc de coordonné x + 1
}
if(world.getBlockId(x, y, z + 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x, y, z + 1) > 0)
{
//Le bloc est alimenté en redstone par le bloc de coordonné z + 1
}
if(world.getBlockId(x - 1, y, z) == Block.redstoneWire.blockID && world.getBlockMetadata(x - 1, y, z) > 0)
{
//Le bloc est alimenté en redstone par le bloc de coordonné x - 1
}
if(world.getBlockId(x, y, z - 1) == Block.redstoneWire.blockID && world.getBlockMetadata(x + 1, y, z - 2) > 0)
{
//Le bloc est alimenté en redstone par le bloc de coordonné z - 1
}
}
else
{
// il n’est pas alimenté en redstone
}
}[/code_java]
Ce code ne check que les 4 blocs autour, tu peux encore l’améliorer pour vérifier au dessus. Et il ne fait que la redstone, il faudrait aussi vérifier les leviers et les torches donc ça fait un très long code 😉
Car il y a beaucoup plus simple, world.getIndirectPowerLevelTo(x, y, z, direction)
(du coup c’est moi qui fait du hors-sujet x) )