Advertisement
Guest User

Untitled

a guest
May 29th, 2019
1,046
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.93 KB | None | 0 0
  1. package com.TheRPGAdventurer.ROTD.client.render.dragon.layer;
  2.  
  3. import com.TheRPGAdventurer.ROTD.client.model.dragon.DragonModel;
  4. import com.TheRPGAdventurer.ROTD.client.render.dragon.DragonRenderer;
  5. import com.TheRPGAdventurer.ROTD.client.render.dragon.breeds.DefaultDragonBreedRenderer;
  6. import com.TheRPGAdventurer.ROTD.entity.entitytameabledragon.EntityTameableDragon;
  7. import com.TheRPGAdventurer.ROTD.util.math.Interpolation;
  8. import net.minecraft.client.model.ModelBanner;
  9. import net.minecraft.client.renderer.BannerTextures;
  10. import net.minecraft.client.renderer.GlStateManager;
  11. import net.minecraft.init.Items;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.tileentity.TileEntityBanner;
  14. import net.minecraft.util.ResourceLocation;
  15.  
  16. public class LayerRendererDragonBanner extends LayerRendererDragon {
  17.  
  18. private final ModelBanner bannerModel=new ModelBanner();
  19. private final TileEntityBanner banner1=new TileEntityBanner();
  20. private final TileEntityBanner banner2=new TileEntityBanner();
  21. private final TileEntityBanner banner3=new TileEntityBanner();
  22. private final TileEntityBanner banner4=new TileEntityBanner();
  23.  
  24. public LayerRendererDragonBanner(DragonRenderer renderer, DefaultDragonBreedRenderer breedRenderer, DragonModel model) {
  25. super(renderer, breedRenderer, model);
  26.  
  27. }
  28.  
  29. @Override
  30. public void doRenderLayer(EntityTameableDragon dragon, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
  31. ItemStack itemstack1=dragon.getBanner1();
  32. ItemStack itemstack2=dragon.getBanner2();
  33. ItemStack itemstack3=dragon.getBanner3();
  34. ItemStack itemstack4=dragon.getBanner4();
  35.  
  36. GlStateManager.pushMatrix();
  37.  
  38. if (itemstack1!=null && itemstack1.getItem()==Items.BANNER && banner1!=null) {
  39. banner1.setItemValues(itemstack1, false);
  40. model.body.postRender(0.0625F);
  41. ResourceLocation resourcelocation1=this.getBannerResourceLocation(banner1);
  42. GlStateManager.translate(1.0F, 0.4F, -0.5F);
  43. GlStateManager.translate(0.0F, 0.0, Interpolation.smoothStep(-2.5F, 0.0F, dragon.getAnimator().getSpeed()));
  44. GlStateManager.translate(0, Interpolation.smoothStep(0.3F, dragon.getAnimator().getModelOffsetY() + 1.5F, dragon.getAnimator().getSpeed()), 0);
  45. GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
  46. GlStateManager.rotate(-dragon.getBodyPitch(), 0.0F, 0.0F, 1.0F);
  47. GlStateManager.scale(0.625F, -0.625F, -0.625F);
  48.  
  49. GlStateManager.color(1.0F, 1.0F, 1.0F, 1);
  50. // mc.getItemRenderer().renderItem(dragon, itemstack1, ItemCameraTransforms.TransformType.HEAD);
  51. renderer.bindTexture(resourcelocation1);
  52. bannerModel.bannerStand.showModel=false;
  53.  
  54.  
  55. }
  56.  
  57. GlStateManager.popMatrix();
  58.  
  59. GlStateManager.pushMatrix();
  60.  
  61. if (itemstack2!=null && itemstack2.getItem()==Items.BANNER && banner2!=null) {
  62. banner2.setItemValues(itemstack2, false);
  63. model.body.postRender(0.0625F);
  64. ResourceLocation resourcelocation2=this.getBannerResourceLocation(banner2);
  65. GlStateManager.translate(-1.0F, 0.4, -0.5F);
  66. GlStateManager.translate(0.0F, 0.0, Interpolation.smoothStep(-2.5F, 0.0F, dragon.getAnimator().getSpeed()));
  67. GlStateManager.translate(0, Interpolation.smoothStep(0.3F, dragon.getAnimator().getModelOffsetY() + 1.5F, dragon.getAnimator().getSpeed()), 0);
  68. GlStateManager.rotate(-90.0F, 0.0F, 1.0F, 0.0F);
  69. GlStateManager.rotate(dragon.getBodyPitch(), 0.0F, 0.0F, 1.0F);
  70. GlStateManager.scale(0.625F, -0.625F, -0.625F);
  71. GlStateManager.color(1.0F, 1.0F, 1.0F, 1);
  72. // mc.getItemRenderer().renderItem(dragon, itemstack2, ItemCameraTransforms.TransformType.HEAD);
  73. renderer.bindTexture(resourcelocation2);
  74. bannerModel.bannerStand.showModel=false;
  75.  
  76. }
  77.  
  78. GlStateManager.popMatrix();
  79.  
  80. GlStateManager.pushMatrix();
  81.  
  82. if (itemstack3!=null && itemstack3.getItem()==Items.BANNER && banner3!=null) {
  83. banner3.setItemValues(itemstack3, false);
  84. model.body.postRender(0.0625F);
  85. ResourceLocation resourcelocation3=this.getBannerResourceLocation(banner3);
  86. GlStateManager.translate(-0.4F, -1.7F, 1.7F);
  87. GlStateManager.translate(0.0F, 0.0, Interpolation.smoothStep(0F, 0.0F, dragon.getAnimator().getSpeed()));
  88. GlStateManager.translate(0, Interpolation.smoothStep(3.2F, dragon.getAnimator().getModelOffsetY() + 1.5F, dragon.getAnimator().getSpeed()), 0);
  89. GlStateManager.translate(0, 0, Interpolation.smoothStep(-1.9F, dragon.getAnimator().getModelOffsetZ() + 1.5F, dragon.getAnimator().getSpeed()));
  90. GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
  91. GlStateManager.rotate(-dragon.getBodyPitch() - 5, 1.0F, 0.0F, 0.0F);
  92. GlStateManager.scale(0.525F, -0.625F, -0.625F);
  93. // mc.getItemRenderer().renderItem(dragon, itemstack3, ItemCameraTransforms.TransformType.HEAD);
  94. GlStateManager.color(1.0F, 1.0F, 1.0F, 1);
  95. renderer.bindTexture(resourcelocation3);
  96. bannerModel.bannerStand.showModel=false;
  97. }
  98.  
  99. GlStateManager.popMatrix();
  100.  
  101. GlStateManager.pushMatrix();
  102.  
  103. if (itemstack4!=null && itemstack4.getItem()==Items.BANNER && banner4!=null) {
  104. banner4.setItemValues(itemstack4, false);
  105. model.body.postRender(0.0625F);
  106. ResourceLocation resourcelocation4=this.getBannerResourceLocation(banner4);
  107. GlStateManager.translate(0.4F, -1.7F, 1.7F);
  108. GlStateManager.translate(0, Interpolation.smoothStep(3.2F, dragon.getAnimator().getModelOffsetY() + 1.5F, dragon.getAnimator().getSpeed()), 0);
  109. GlStateManager.translate(0, 0, Interpolation.smoothStep(-1.9F, dragon.getAnimator().getModelOffsetZ() + 1.5F, dragon.getAnimator().getSpeed()));
  110. GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
  111. GlStateManager.rotate(-dragon.getBodyPitch() - 5, 1.0F, 0.0F, 0.0F);
  112. GlStateManager.scale(0.525F, -0.625F, -0.625F);
  113. // mc.getItemRenderer().renderItem(dragon, itemstack4, ItemCameraTransforms.TransformType.HEAD);
  114. GlStateManager.color(1.0F, 1.0F, 1.0F, 1);
  115. renderer.bindTexture(resourcelocation4);
  116. bannerModel.bannerStand.showModel=false;
  117.  
  118. }
  119.  
  120. GlStateManager.popMatrix();
  121. }
  122.  
  123. private ResourceLocation getBannerResourceLocation(TileEntityBanner bannerObj) {
  124. return BannerTextures.BANNER_DESIGNS.getResourceLocation(bannerObj.getPatternResourceLocation(), bannerObj.getPatternList(), bannerObj.getColorList());
  125. }
  126.  
  127. @Override
  128. public boolean shouldCombineTextures() {
  129. return true;
  130. }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement