@Override
public List<BakedQuad> bakeLayerFace(EnumFacing face, BlockRenderLayer layer, IExtendedBlockState state) {
List<BakedQuad> quads = new ArrayList<>();
if (face != null && state != null) {
Block block = state.getBlock();
IWorldBlockTextureProvider provider = (IWorldBlockTextureProvider) block;
TileMachineBase tile = state.getValue(TEProps.TILE_MACHINE);
IBlockAccess world = state.getValue(TEProps.BAKERY_WORLD);
boolean creative = tile.isCreative;
int level = tile.getLevel();
BakingVertexBuffer buffer = BakingVertexBuffer.create();
buffer.begin(0x07, DefaultVertexFormats.ITEM);
CCRenderState ccrs = CCRenderState.instance();
ccrs.reset();
ccrs.bind(buffer);
renderFace(ccrs, face, provider.getTexture(face, state, layer, world, tile.getPos()), tile.getColorMask(layer, face));
if (layer == BlockRenderLayer.CUTOUT && TEProps.renderMachineOverlay && level > 0) {
renderFace(ccrs, face, creative ? TETextures.MACHINE_OVERLAY_C : getOverlaySprite(face, level), 0xFFFFFFFF);
}
buffer.finishDrawing();
quads.addAll(buffer.bake());
}
return quads;
}