List of usage examples for net.minecraftforge.client.model.pipeline LightUtil putBakedQuad
public static void putBakedQuad(IVertexConsumer consumer, BakedQuad quad)
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; }