Advertisement
Guest User

Untitled

a guest
Dec 28th, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.83 KB | None | 0 0
  1. package vazkii.botania.client.model;
  2.  
  3. import com.google.common.collect.ImmutableList;
  4. import net.minecraft.client.Minecraft;
  5. import net.minecraft.client.renderer.block.model.BakedQuad;
  6. import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
  7. import net.minecraft.client.renderer.texture.TextureAtlasSprite;
  8. import net.minecraft.client.resources.model.IBakedModel;
  9. import net.minecraft.client.resources.model.ModelManager;
  10. import net.minecraft.client.resources.model.ModelResourceLocation;
  11. import net.minecraft.item.ItemStack;
  12. import net.minecraft.util.EnumFacing;
  13. import net.minecraftforge.client.model.ISmartItemModel;
  14. import vazkii.botania.common.item.block.ItemBlockFloatingSpecialFlower;
  15. import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
  16.  
  17. import java.util.List;
  18.  
  19. public class FloatingFlowerModel implements ISmartItemModel {
  20.     @Override
  21.     public IBakedModel handleItemState(ItemStack stack) {
  22.         ModelManager modelManager = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getModelManager();
  23.  
  24.         // Item form always has island type grass.
  25.         IBakedModel islandType = modelManager.getModel(new ModelResourceLocation("botania:miniIsland", "variant=grass"));
  26.  
  27.         IBakedModel flowerModel = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getItemModel(ItemBlockSpecialFlower.ofType(ItemBlockFloatingSpecialFlower.getType(stack)));
  28.  
  29.  
  30.         return new CompositeBakedModel(flowerModel, islandType);
  31.     }
  32.  
  33.     private class CompositeBakedModel implements IBakedModel {
  34.  
  35.         private final IBakedModel base;
  36.         private final List<IBakedModel> compose;
  37.  
  38.         public CompositeBakedModel(IBakedModel base, IBakedModel... compose) {
  39.             this.base = base;
  40.             this.compose = ImmutableList.copyOf(compose);
  41.         }
  42.  
  43.         @Override
  44.         public List<BakedQuad> getFaceQuads(EnumFacing p_177551_1_) {
  45.             ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
  46.             builder.addAll(base.getFaceQuads(p_177551_1_));
  47.             for (IBakedModel model : compose) {
  48.                 builder.addAll(model.getFaceQuads(p_177551_1_));
  49.             }
  50.             return builder.build();
  51.         }
  52.  
  53.         @Override
  54.         public List<BakedQuad> getGeneralQuads() {
  55.             ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
  56.             builder.addAll(base.getGeneralQuads());
  57.             for (IBakedModel model : compose) {
  58.                 builder.addAll(model.getGeneralQuads());
  59.             }
  60.             return builder.build();
  61.  
  62.         }
  63.  
  64.         @Override
  65.         public boolean isAmbientOcclusion() {
  66.             return base.isAmbientOcclusion();
  67.         }
  68.  
  69.         @Override
  70.         public boolean isGui3d() {
  71.             return base.isGui3d();
  72.         }
  73.  
  74.         @Override
  75.         public boolean isBuiltInRenderer() {
  76.             return base.isBuiltInRenderer();
  77.         }
  78.  
  79.         @Override
  80.         public TextureAtlasSprite getParticleTexture() {
  81.             return base.getParticleTexture();
  82.         }
  83.  
  84.         @Override
  85.         public ItemCameraTransforms getItemCameraTransforms() {
  86.             return base.getItemCameraTransforms();
  87.         }
  88.     }
  89.  
  90.     @Override
  91.     public List<BakedQuad> getFaceQuads(EnumFacing p_177551_1_) { return ImmutableList.of(); }
  92.  
  93.     @Override
  94.     public List<BakedQuad> getGeneralQuads() { return ImmutableList.of(); }
  95.  
  96.     @Override
  97.     public boolean isAmbientOcclusion() { return false; }
  98.  
  99.     @Override
  100.     public boolean isGui3d() { return true; }
  101.  
  102.     @Override
  103.     public boolean isBuiltInRenderer() { return false; }
  104.  
  105.     @Override
  106.     public TextureAtlasSprite getParticleTexture() { return null; }
  107.  
  108.     @Override
  109.     public ItemCameraTransforms getItemCameraTransforms() { return ItemCameraTransforms.DEFAULT; }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement