package electroblob.wizardry.client.model; import electroblob.wizardry.block.BlockBookshelf; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.client.renderer.block.model.ItemOverrideList; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.property.IExtendedBlockState; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; public class BakedModelBookshelf implements IBakedModel { private final IBakedModel bookshelf; private final IBakedModel[][] books; public BakedModelBookshelf(IBakedModel bookshelf, IBakedModel[][] books){ this.bookshelf = bookshelf; this.books = books; } @Override public List getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand){ IBakedModel fallback = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getMissingModel(); if(state == null) return fallback.getQuads(null, side, rand); // It took me waaay too long to realise I needed a new list here List quads = new ArrayList<>(bookshelf.getQuads(state, side, rand)); // Lists ain't immutable, chief IExtendedBlockState extendedState = (IExtendedBlockState)state; for(int i = 0; i