private void consumeMaterials() {
    //
    //  Decrement stocks and update demands-
    final float wear = Structure.WEAR_PER_DAY / World.STANDARD_DAY_LENGTH ;
    final int maxPop = HoldingUpgrades.OCCUPANCIES[upgradeLevel] ;
    float count = 0 ;
    for (Actor r : personnel.residents()) if (r.aboard() == this) count++ ;
    count = 0.5f + (count / maxPop) ;
    //
    //  Power, water and life support are consumed at a fixed rate, but other
    //  materials wear out depending on use (and more slowly.)
    for (Item i : HoldingUpgrades.materials(upgradeLevel).raw) {
      if (i.type.form == FORM_PROVISION) {
        stocks.bumpItem(i.type, i.amount * -0.1f) ;
      }
      else {
        stocks.bumpItem(i.type, i.amount * count * -wear) ;
      }
    }
  }