@Override
	public boolean consumeFuel(int amount)
	{
		final List<Item> fuel=getFuel();
		boolean didSomething =false;
		for(final Item I : fuel)
		{
			if((I instanceof RawMaterial)
			&&(!I.amDestroyed())
			&&CMParms.contains(this.getConsumedFuelTypes(), ((RawMaterial)I).material()))
			{
				amount-=CMLib.materials().destroyResourcesAmt(fuel, amount, ((RawMaterial)I).material(),this);
				if(!I.amDestroyed()) // why is this necessary
					I.recoverPhyStats();
				didSomething=true;
				if(amount<=0)
					break;
			}
		}
		if(amount>0)
			engineShutdown();
		if(didSomething)
			clearFuelCache();
		return amount<=0;
	}