/**
  * @param $memberByValue string Type to be created.
  * @param $basicType TES5BasicType You might override the basic type for this custom type created.
  * @return \Eloquent\Enumeration\ValueMultitonInterface|TES5CustomType|TES5VoidType
  */
 public static function memberByValue($memberByValue, TES5BasicType $basicType = null)
 {
     if ($memberByValue == "void") {
         return new TES5VoidType();
     }
     try {
         return TES5BasicType::memberByValue(ucwords($memberByValue));
     } catch (\Exception $e) {
         //Ugly - todo: REFACTOR THIS TO NON-STATIC CLASS AND MOVE THIS TO DI
         if ($basicType === null) {
             $analyzer = ESMAnalyzer::instance();
             $basicType = $analyzer->getScriptType($memberByValue);
         }
         return new TES5CustomType(TES5NameTransformer::transform($memberByValue, self::$scriptsPrefix), self::$scriptsPrefix, $basicType);
     }
 }