public static AbstractSubBaker CreateSubBaker(this Wearable wearable) { VisualParamsMapper.CompleteParams(wearable.Params); switch (wearable.Type) { case WearableType.Eyes: return(new EyeSubBaker(wearable)); case WearableType.Skin: return(new SkinSubBaker(wearable)); case WearableType.Hair: return(new HairSubBaker(wearable)); case WearableType.Shape: return(new ShapeSubBaker(wearable)); case WearableType.Tattoo: return(new TattooSubBaker(wearable)); case WearableType.Alpha: return(new AlphaMaskSubBaker(wearable)); case WearableType.Shirt: return(new ShirtSubBaker(wearable)); case WearableType.Jacket: return(new JacketSubBaker(wearable)); case WearableType.Socks: return(new SocksSubBaker(wearable)); case WearableType.Pants: return(new PantsSubBaker(wearable)); case WearableType.Underpants: return(new UnderpantsSubBaker(wearable)); case WearableType.Undershirt: return(new UndershirtSubBaker(wearable)); case WearableType.Shoes: return(new ShoesSubBaker(wearable)); case WearableType.Skirt: return(new SkirtSubBaker(wearable)); case WearableType.Gloves: return(new GlovesSubBaker(wearable)); case WearableType.Universal: return(new UniversalSubBaker(wearable)); default: return(null); /* intentionally returning null here */ } }