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);
}
Beispiel #2
0
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);
}