@Override
 public IFlexibleBakedModel bake(
     IModelState state,
     VertexFormat format,
     Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {
   ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
   Optional<TRSRTransformation> transform = state.apply(Optional.<IModelPart>absent());
   for (int i = 0; i < textures.size(); i++) {
     TextureAtlasSprite sprite = bakedTextureGetter.apply(textures.get(i));
     builder.addAll(getQuadsForSprite(i, sprite, format, transform));
   }
   TextureAtlasSprite particle =
       bakedTextureGetter.apply(
           textures.isEmpty() ? new ResourceLocation("missingno") : textures.get(0));
   ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transforms =
       IPerspectiveAwareModel.MapWrapper.getTransforms(state);
   IFlexibleBakedModel ret = new CustomBakedModel(builder.build(), particle, format, transforms);
   if (transforms.isEmpty()) {
     return ret;
   }
   return new IPerspectiveAwareModel.MapWrapper(ret, transforms);
 }