protected static BakedQuad transform(BakedQuad quad, final TRSRTransformation transform) { UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(DefaultVertexFormats.ITEM); final IVertexConsumer consumer = new VertexTransformer(builder) { @Override public void put(int element, float... data) { VertexFormatElement formatElement = DefaultVertexFormats.ITEM.getElement(element); switch(formatElement.getUsage()) { case POSITION: { float[] newData = new float[4]; Vector4f vec = new Vector4f(data); transform.getMatrix().transform(vec); vec.get(newData); parent.put(element, newData); break; } default: { parent.put(element, data); break; } } } }; quad.pipe(consumer); return builder.build(); }
protected static BakedQuad transform(BakedQuad quad, final TRSRTransformation transform) { UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(DefaultVertexFormats.ITEM); final IVertexConsumer consumer = new VertexTransformer(builder) { @Override public void put(int element, float... data) { VertexFormatElement formatElement = DefaultVertexFormats.ITEM.getElement(element); switch(formatElement.getUsage()) { case POSITION: { float[] newData = new float[4]; Vector4f vec = new Vector4f(data); transform.getMatrix().transform(vec); vec.get(newData); parent.put(element, newData); break; } default: { parent.put(element, data); break; } } } }; quad.pipe(consumer); return builder.build(); }
itemConsumer.setAuxColor(r, g, b, a); quad.pipe(itemConsumer); iter.set(quadBuilder.build()); didColorQuads = true;
transformer.setParent( builder ); transformer.setVertexFormat( builder.getVertexFormat() ); bakedQuad.pipe( transformer ); result.add( builder.build() );
bakedQuad.pipe( transformer );
VertexRotator rot = new VertexRotator( f2r, quad.getFace() ); rot.setParent( builder ); quad.pipe( rot ); if( quad.getFace() != null )
quad.pipe( pipeline );
quad.pipe( trans ); builder.setQuadTint( quad.getTintIndex() ); builder.setQuadOrientation( quad.getFace() );
quad.pipe( pipeline );
private static void renderBreaking(IBlockState blockState, IBakedModel model, IVertexConsumer consumer) { for (EnumFacing face : EnumFacing.VALUES) { for (BakedQuad quad : model.getQuads(blockState, face, 0L)) { quad.pipe(consumer); } } } }
public static BakedQuad colorQuad(int color, BakedQuad quad) { ColorTransformer transformer = new ColorTransformer(color, quad.getFormat()); quad.pipe(transformer); return transformer.build(); }
quad.pipe( mqr ); final String newJSON = mqr.toString( quad.getFace() );
@Nonnull @Override public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) { // transform quads obtained from parent List<BakedQuad> quads = new ArrayList<>(); if (!original.isBuiltInRenderer()) { try { // adjust side to facing-rotation if (side != null && side.getHorizontalIndex() > -1) { side = EnumFacing.byHorizontalIndex((side.getHorizontalIndex() + faceOffset) % 4); } for (BakedQuad quad : original.getQuads(state, side, rand)) { Transformer transformer = new Transformer(transformation, quad.getFormat()); quad.pipe(transformer); quads.add(transformer.build()); } } catch (Exception e) { // do nothing. Seriously, why are you using immutable lists?! } } return quads; }
public TRSRBakedModel(IBakedModel original, TRSRTransformation transform) { this.original = original; ImmutableList.Builder<BakedQuad> builder; builder = ImmutableList.builder(); transform = TRSRTransformation.blockCenterToCorner(transform); // face quads EnumMap<EnumFacing, ImmutableList<BakedQuad>> faces = Maps.newEnumMap(EnumFacing.class); for (EnumFacing face : EnumFacing.values()) { if (!original.isBuiltInRenderer()) { for (BakedQuad quad : original.getQuads(null, face, 0)) { Transformer transformer = new Transformer(transform, quad.getFormat()); quad.pipe(transformer); builder.add(transformer.build()); } } //faces.put(face, builder.build()); faces.put(face, ImmutableList.of()); } // general quads //builder = ImmutableList.builder(); if (!original.isBuiltInRenderer()) { for (BakedQuad quad : original.getQuads(null, null, 0)) { Transformer transformer = new Transformer(transform, quad.getFormat()); quad.pipe(transformer); builder.add(transformer.build()); } } this.general = builder.build(); this.faces = Maps.immutableEnumMap(faces); }
public CompostModel(IBlockState flowerState, float height) { this.display = Minecraft.getMinecraft().getBlockRendererDispatcher().getModelForState(flowerState); TRSRTransformation transform = TRSRTransformation.blockCenterToCorner(new TRSRTransformation(new Vector3f(0, -.218F, 0), null, new Vector3f(0.75F, height / 1.81F, 0.75F), null)); ImmutableList.Builder<BakedQuad> builder; EnumMap<EnumFacing, ImmutableList<BakedQuad>> faces = new EnumMap<>(EnumFacing.class); for (EnumFacing face : EnumFacing.values()) { builder = ImmutableList.builder(); if (!display.isBuiltInRenderer()) { for (BakedQuad quad : display.getQuads(flowerState, face, 0)) { Transformer transformer = new Transformer(transform, quad.getFormat()); quad.pipe(transformer); builder.add(transformer.build()); } builder.addAll(compostBase.getQuads(null, face, 0)); } faces.put(face, builder.build()); } if (!display.isBuiltInRenderer()) { builder = ImmutableList.builder(); for (BakedQuad quad : display.getQuads(flowerState, null, 0)) { Transformer transformer = new Transformer(transform, quad.getFormat()); quad.pipe(transformer); builder.add(transformer.build()); } builder.addAll(compostBase.getQuads(null, null, 0)); this.general = builder.build(); } else general = ImmutableList.of(); this.faces = Maps.immutableEnumMap(faces); }
private static boolean hasFaces( final IBakedModel model, final IBlockState state, final EnumFacing f, final long weight ) { final List<BakedQuad> l = getModelQuads( model, state, f, weight ); if ( l == null || l.isEmpty() ) { return false; } TextureAtlasSprite texture = null; try { texture = findTexture( null, l, f ); } catch ( final Exception e ) { } final ModelVertexRange mvr = new ModelVertexRange(); for ( final BakedQuad q : l ) { q.pipe( mvr ); } return mvr.getLargestRange() > 0 && !isMissing( texture ); }
transformer.setParent(builder); transformer.setVertexFormat(builder.getVertexFormat()); bakedQuad.pipe(transformer); result.add(builder.build());
transformer.setParent(builder); transformer.setVertexFormat(builder.getVertexFormat()); bakedQuad.pipe(transformer); result.add(builder.build());
quad.pipe(trans);