public static bool Milkable( this PawnKindDef pawnKind )
{
if ( pawnKind == null )
return false;
var ret = false;
if ( _milkablePawnkind.ContainsKey( pawnKind ) )
{
if ( _milkablePawnkind[pawnKind].TryGetValue( out ret ) )
{
return ret;
}
ret = pawnKind.race.comps.OfType<CompProperties_Milkable>().Any( cp => cp.milkDef != null );
_milkablePawnkind[pawnKind].Update( ret );
return ret;
}
ret = pawnKind.race.comps.OfType<CompProperties_Milkable>().Any( cp => cp.milkDef != null );
_milkablePawnkind.Add( pawnKind, new Utilities.CachedValue<bool>( ret, Int32.MaxValue ) );
return ret;
}