int TileSource::getIndirectPowerLevelTo(int x, int y, int z, int side) { int id = getTile(x, y, z).id; if(Tile::solid[id] && id != 152) return getBlockPowerInput(x, y, z); if(id == 0) return 0; int (*getDirectSignal)(Tile*, TileSource*, int, int, int, int) = (int (*)(Tile*, TileSource*, int, int, int, int)) Tile::tiles[id]->vtable[VT_TILE_GETDIRECT]; return getDirectSignal(Tile::tiles[id], this, x, y, z, side); }
int TileSource::getIndirectPowerLevelTo(int x, int y, int z, int side) { int id = getTile(x, y, z).id; if(id == 0) return 0; if(Tile::solid[id] && id != Tile::redstoneBlock->id) return getBlockPowerInput(x, y, z); else return Tile::tiles[id]->getDirectSignal(this, x, y, z, side); }