public void updateAsScheduled(int numUpdates) {
    super.updateAsScheduled(numUpdates) ;
    if (! structure.intact()) return ;
    
    int numModes = 0 ;
    for (boolean b : drillOrders) if (b) numModes++ ;
    if (numModes > 0) {
      final int mode = (int) (world.currentTime() / DRILL_INTERVAL) ;
      for (int i = 0, d = 0 ; i < drillOrders.length ; i++) {
        if (! drillOrders[i]) continue ;
        if (d == mode % numModes) {
          nextDrill = DRILL_STATES[i] ;
          break ;
        }
        else d++ ;
      }
    }
  }