Advertisement
KnightMiner

RetexturedModel

Aug 6th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.87 KB | None | 0 0
  1. import java.util.List;
  2.  
  3. import javax.annotation.Nonnull;
  4.  
  5. import com.google.common.collect.ImmutableList;
  6. import com.google.common.collect.ImmutableMap;
  7.  
  8. import net.minecraft.block.Block;
  9. import net.minecraft.block.state.IBlockState;
  10. import net.minecraft.client.renderer.block.model.BakedQuad;
  11. import net.minecraft.client.renderer.block.model.IBakedModel;
  12. import net.minecraft.client.renderer.block.model.ItemOverrideList;
  13. import net.minecraft.client.renderer.vertex.VertexFormat;
  14. import net.minecraft.entity.EntityLivingBase;
  15. import net.minecraft.item.Item;
  16. import net.minecraft.item.ItemStack;
  17. import net.minecraft.util.EnumFacing;
  18. import net.minecraft.world.World;
  19. import net.minecraftforge.client.model.BakedModelWrapper;
  20. import net.minecraftforge.client.model.IModel;
  21. import net.minecraftforge.client.model.ModelLoader;
  22. import net.minecraftforge.common.property.IExtendedBlockState;
  23.  
  24. public class RetexturedModel extends BakedModelWrapper<IBakedModel> {
  25.  
  26.     private IModel model;
  27.     private final VertexFormat format;
  28.     private final String textureKey;
  29.     public RetexturedModel(IBakedModel originalModel, IModel model, VertexFormat format, String textureKey) {
  30.         super(originalModel);
  31.         this.model = model;
  32.         this.format = format;
  33.         this.textureKey = textureKey;
  34.     }
  35.  
  36.     @Override
  37.     public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
  38.         IBakedModel bakedModel = this.originalModel;
  39.         if(state instanceof IExtendedBlockState) {
  40.             IExtendedBlockState extendedState = (IExtendedBlockState) state;
  41.  
  42.             String texture = extendedState.getValue(TextureBlockUtil.TEXTURE_PROP);
  43.             if(texture != null) {
  44.                 IModel retextured = model.retexture(ImmutableMap.of(textureKey, texture));
  45.                 bakedModel = retextured.bake(retextured.getDefaultState(), format, ModelLoader.defaultTextureGetter());
  46.             }
  47.         }
  48.         return bakedModel.getQuads(state, side, rand);
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement