Example usage for net.minecraftforge.client.model.pipeline LightUtil putBakedQuad

List of usage examples for net.minecraftforge.client.model.pipeline LightUtil putBakedQuad

Introduction

In this page you can find the example usage for net.minecraftforge.client.model.pipeline LightUtil putBakedQuad.

Prototype

public static void putBakedQuad(IVertexConsumer consumer, BakedQuad quad) 

Source Link

Usage

From source file:blusunrize.immersiveengineering.client.render.BakedModelTransformer.java

private static BakedQuad transform(BakedQuad quad, IVertexTransformer transformer,
        Function<VertexFormat, VertexFormat> formatRemapper) {
    VertexFormat format = quad.getFormat();
    VertexFormat newFormat = formatRemapper.apply(format);

    UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(newFormat);
    if (quad.hasTintIndex())
        builder.setQuadTint(quad.getTintIndex());
    builder.setQuadOrientation(quad.getFace());
    LightUtil.putBakedQuad(builder, quad);
    UnpackedBakedQuad unpackedQuad = builder.build();
    try {//from w w w  .ja  va 2s. co m
        float[][][] unpackedData = getUnpackedData(unpackedQuad);
        int count = newFormat.getElementCount();
        for (int v = 0; v < 4; v++) {
            for (int e = 0; e < count; e++) {
                VertexFormatElement element = newFormat.getElement(e);
                unpackedData[v][e] = transformer.transform(quad, element.getType(), element.getUsage(),
                        unpackedData[v][e]);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return unpackedQuad;
}

From source file:tech.flatstone.appliedlogistics.client.util.ModelTransformer.java

License:Open Source License

private static BakedQuad transform(BakedQuad quad, IVertexTransformer transformer,
        IVertexFormatTransformer vfTransformer, final VertexFormat original, final VertexFormat format) {

    // TODO: Optimize
    Field f = ReflectionHelper.findField(UnpackedBakedQuad.class, "unpackedData");
    f.setAccessible(true);/*from   w w w.  j a v  a 2 s.  co m*/
    UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format);
    if (quad.hasTintIndex())
        builder.setQuadTint(quad.getTintIndex());
    if (quad instanceof IColoredBakedQuad)
        builder.setQuadColored();
    builder.setQuadOrientation(quad.getFace());
    LightUtil.putBakedQuad(builder, quad);
    UnpackedBakedQuad unpackedQuad = builder.build();
    try {
        float[][][] unpackedData = (float[][][]) f.get(unpackedQuad);
        int count = format.getElementCount();
        for (int v = 0; v < 4; v++) {
            for (int e = 0; e < count; e++) {
                VertexFormatElement element = format.getElement(e);
                unpackedData[v][e] = transformer.transform(element.getType(), element.getUsage(),
                        unpackedData[v][e]);
            }
        }
        vfTransformer.remap(original, unpackedData);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return unpackedQuad;
}