static Smelter[] siteSmelterStrip(
      final ExcavationSite site, final Service mined
  ) {
    final World world = site.world() ;
    final Tile init = Spacing.pickRandomTile(site.origin(), 4, world) ;
    final Smelter strip[] = new Smelter[2] ;
    
    final TileSpread spread = new TileSpread(init) {
      protected boolean canAccess(Tile t) {
        if (t.owner() == site) return true ;
        if (t.owningType() >= Element.FIXTURE_OWNS) return false ;
        return true ;
      }
      
      protected boolean canPlaceAt(Tile t) {
        final int off = Rand.index(4) ;
        for (int n = 4 ; n-- > 0 ;) {
          final int dir = STRIP_DIRS[(n + off) % 4] ;
          strip[0] = new Smelter(site, mined, dir, strip) ;
          strip[1] = new Smelter(site, mined, dir, strip) ;
          strip[0].setPosition(t.x, t.y, world) ;
          strip[1].setPosition(
            t.x + (N_X[dir] * 3), t.y + (N_Y[dir] * 3), world
          ) ;
          if (! Placement.checkPlacement(strip, world)) continue ;
          return true ;
        }
        return false ;
      }
    } ;
    spread.doSearch() ;
    if (spread.success()) {
      I.say("Total tiles searched: "+spread.allSearched(Tile.class).length) ;
      for (Smelter s : strip) {
        s.doPlace(s.origin(), null) ;
        s.updateSprite(0) ;
      }
      return strip ;
    }
    return null ;
  }