public boolean tryBuild(Block startrails, Block startsign, BlockFace direction) {
final TrackMap map = new TrackMap(startrails, direction, TrainCarts.maxDetectorLength);
map.next();
//now try to find the end rails : find the other sign
Block endsign = null;
SignActionEvent info;
while (map.hasNext()) {
for (Block signblock : Util.getSignsFromRails(map.next())) {
info = new SignActionEvent(signblock);
if (match(info)) {
endsign = signblock;
//start and end found : add it
final DetectorSignPair detector = new DetectorSignPair(startsign, endsign);
detectors.put(startsign, detector);