private static List<BakedQuad> gatherQuads( IBakedModel model, IBlockState state, long rand ) { List<BakedQuad> modelQuads = new ArrayList<>(); for( EnumFacing face : EnumFacing.VALUES ) { modelQuads.addAll( model.getQuads( state, face, rand ) ); } modelQuads.addAll( model.getQuads( state, null, rand ) ); return modelQuads; }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { // This may be called for items on the ground, in which case we will always fall back to the pattern return ItemEncodedPatternBakedModel.this.baseModel.getQuads( state, side, rand ); }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { return this.baseModel.getQuads( state, side, rand ); }
@Nonnull @Override public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) { return originalModel.getQuads(state, side, rand); } @Override public boolean isAmbientOcclusion() { return originalModel.isAmbientOcclusion(); }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { List<BakedQuad> quads = this.baseModel.getQuads( state, side, rand ); if( side != null ) { return quads; } List<BakedQuad> result = new ArrayList<>( quads.size() + this.generalQuads.size() ); result.addAll( quads ); result.addAll( this.generalQuads ); return result; }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { List<BakedQuad> quads = this.baseModel.getQuads( state, side, rand ); if( side != null ) { return quads; } List<BakedQuad> result = new ArrayList<>( quads.size() + this.generalQuads.size() ); result.addAll( quads ); result.addAll( this.generalQuads ); return result; }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { if( side != null ) { return Collections.emptyList(); } if( quads == null ) { quads = new ArrayList<>(); quads.addAll( this.facadeBuilder.buildFacadeItemQuads( this.textureStack, EnumFacing.NORTH ) ); quads.addAll( this.getBaseModel().getQuads( state, side, rand ) ); quads = Collections.unmodifiableList( quads ); } return quads; }
@Override public List<BakedQuad> getQuads( @Nullable IBlockState state, @Nullable EnumFacing side, long rand ) { // Get the correct base model if( !( state instanceof IExtendedBlockState ) ) { return this.baseModel.getQuads( state, side, rand ); } IExtendedBlockState extendedBlockState = (IExtendedBlockState) state; QnbFormedState formedState = extendedBlockState.getValue( BlockQuantumBase.FORMED_STATE ); return this.getQuads( formedState, state, side, rand ); }
public CompositeBakedModel(IBakedModel flower, IBakedModel island) { this.flower = flower; this.island = island; ImmutableList.Builder<BakedQuad> genBuilder = ImmutableList.builder(); final TRSRTransformation transform = TRSRTransformation.blockCenterToCorner(new TRSRTransformation(new Vector3f(0F, 0.2F, 0F), null, new Vector3f(0.5F, 0.5F, 0.5F), null)); for(EnumFacing e : EnumFacing.VALUES) faceQuads.put(e, new ArrayList<>()); // Add flower quads, scaled and translated flower.getQuads(null, null, 0).stream().map(q -> transform(q, transform)).forEach(genBuilder::add); for(EnumFacing e : EnumFacing.VALUES) { List<BakedQuad> faceQ = faceQuads.get(e); flower.getQuads(null, e, 0).stream().map(input -> transform(input, transform)).forEach(faceQ::add); } // Add island quads genBuilder.addAll(island.getQuads(null, null, 0)); for(EnumFacing e : EnumFacing.VALUES) { faceQuads.get(e).addAll(island.getQuads(null, e, 0)); } genQuads = genBuilder.build(); }
CompositeBakedModel(IBakedModel lens, IBakedModel gun) { this.gun = gun; ImmutableList.Builder<BakedQuad> genBuilder = ImmutableList.builder(); final TRSRTransformation transform = TRSRTransformation.blockCenterToCorner(new TRSRTransformation(new Vector3f(-0.4F, 0.25F, 0), null, new Vector3f(0.625F, 0.625F, 0.625F), TRSRTransformation.quatFromXYZ(0, (float) Math.PI / 2, 0))); for(EnumFacing e : EnumFacing.VALUES) faceQuads.put(e, new ArrayList<>()); // Add lens quads, scaled and translated for(BakedQuad quad : lens.getQuads(null, null, 0)) { genBuilder.add(transform(quad, transform)); } for(EnumFacing e : EnumFacing.VALUES) { faceQuads.get(e).addAll(lens.getQuads(null, e, 0).stream().map(input -> transform(input, transform)).collect(Collectors.toList())); } // Add gun quads genBuilder.addAll(gun.getQuads(null, null, 0)); for(EnumFacing e : EnumFacing.VALUES) { faceQuads.get(e).addAll(gun.getQuads(null, e, 0)); } genQuads = genBuilder.build(); }
private void renderModel(IBakedModel model, ItemStack stack, int color) { Tessellator tessellator = Tessellator.getInstance(); BufferBuilder worldrenderer = tessellator.getBuffer(); worldrenderer.begin(7, DefaultVertexFormats.ITEM); for (EnumFacing enumfacing : EnumFacing.values()) { renderQuads(worldrenderer, model.getQuads(null, enumfacing, 0), color, stack); } renderQuads(worldrenderer, model.getQuads(null, null, 0), color, stack); tessellator.draw(); }
@Nonnull @Override public List<BakedQuad> getQuads(IBlockState state, EnumFacing face, long rand) { IExtendedBlockState extendedState = (IExtendedBlockState) state; String subtileId = extendedState.getValue(BotaniaStateProps.SUBTILE_ID); IBakedModel model = bakedBlockModels.get(subtileId == null ? "" : subtileId); if(model == null) model = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getMissingModel(); return model.getQuads(state, face, rand); }
@Override public List<BakedQuad> getQuads( IBlockState state, EnumFacing side, long rand ) { if( !( state instanceof IExtendedBlockState ) ) { return this.parent.getQuads( state, side, rand ); } IExtendedBlockState extState = (IExtendedBlockState) state; EnumFacing forward = extState.getValue( AEBaseTileBlock.FORWARD ); EnumFacing up = extState.getValue( AEBaseTileBlock.UP ); if( forward == null || up == null ) { return this.parent.getQuads( state, side, rand ); } // The model has other properties than just forward/up, so it would cause our cache to inadvertendly also cache // these // additional states, possibly leading to huge isseus if the other extended state properties do not implement // equals/hashCode correctly if( extState.getUnlistedProperties().size() != 2 ) { return this.getRotatedModel( extState, side, forward, up ); } AutoRotatingCacheKey key = new AutoRotatingCacheKey( extState.getClean(), forward, up, side ); return this.quadCache.getUnchecked( key ); }
partQuads = bakedModel.getQuads( state, null, rand );
private List<BakedQuad> fixQuadTint( EnumFacing facing, TextureAtlasSprite texDark, TextureAtlasSprite texMedium, TextureAtlasSprite texBright ) { List<BakedQuad> quads = this.baseModel.getQuads( null, facing, 0 ); List<BakedQuad> result = new ArrayList<>( quads.size() ); for( BakedQuad quad : quads ) { int tint; if( quad.getSprite() == texDark ) { tint = 1; } else if( quad.getSprite() == texMedium ) { tint = 2; } else if( quad.getSprite() == texBright ) { tint = 3; } else { result.add( quad ); continue; } BakedQuad newQuad = new BakedQuad( quad.getVertexData(), tint, quad.getFace(), quad.getSprite(), quad.shouldApplyDiffuseLighting(), quad .getFormat() ); result.add( newQuad ); } return result; }
return Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getMissingModel().getQuads(state, side, rand); return mc.getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(path).getQuads(state, side, rand); } else if(heldState != null) { return model.getQuads(extended, side, rand);
@Nonnull @Override public List<BakedQuad> getQuads(IBlockState state, EnumFacing face, long rand) { if(state.getBlock() != ModBlocks.floatingSpecialFlower && state.getBlock() != ModBlocks.floatingFlower) return Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getMissingModel().getQuads(state, face, rand); IExtendedBlockState realState = (IExtendedBlockState) state; IFloatingFlower.IslandType islandType = realState.getValue(BotaniaStateProps.ISLAND_TYPE); String identifier; if(state.getBlock() == ModBlocks.floatingSpecialFlower) { // Magic flower identifier = realState.getValue(BotaniaStateProps.SUBTILE_ID); } else { // Mundane flower identifier = MUNDANE_PREFIX + state.getValue(BotaniaStateProps.COLOR).getMetadata(); } return getModel(islandType, identifier).getQuads(state, face, rand); }
private List<BakedQuad> getRotatedModel( IBlockState state, EnumFacing side, EnumFacing forward, EnumFacing up ) List<BakedQuad> original = AutoRotatingModel.this.parent.getQuads( state, f2r.resultingRotate( side ), 0 ); List<BakedQuad> rotated = new ArrayList<>( original.size() ); for( BakedQuad quad : original )