package com.bioxx.tfc2.rendering.bakedmodels; import java.util.List; import javax.vecmath.Matrix4f; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.block.model.ItemOverrideList; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.EnumFacing; import net.minecraftforge.client.model.IPerspectiveAwareModel; import net.minecraftforge.common.model.TRSRTransformation; import com.google.common.collect.ImmutableMap; import org.apache.commons.lang3.tuple.Pair; /** * This class was borrowed from TiCon, thanks! */ public class BakedWrapper implements IBakedModel { protected final IBakedModel parent; public BakedWrapper(IBakedModel parent) { this.parent = parent; } @Override public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) { return parent.getQuads(state, side, rand); } @Override public boolean isAmbientOcclusion() { return parent.isAmbientOcclusion(); } @Override public boolean isGui3d() { return parent.isGui3d(); } @Override public boolean isBuiltInRenderer() { return parent.isBuiltInRenderer(); } @Override public TextureAtlasSprite getParticleTexture() { return parent.getParticleTexture(); } @Override public ItemCameraTransforms getItemCameraTransforms() { return parent.getItemCameraTransforms(); } @Override public ItemOverrideList getOverrides() { return parent.getOverrides(); } public static class Perspective extends BakedWrapper implements IPerspectiveAwareModel { protected final ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transforms; public Perspective(IBakedModel parent, ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transforms) { super(parent); this.transforms = transforms; } @Override public Pair<? extends IBakedModel, Matrix4f> handlePerspective(ItemCameraTransforms.TransformType cameraTransformType) { return IPerspectiveAwareModel.MapWrapper.handlePerspective(this, transforms, cameraTransformType); } } }