Advertisement
Guest User

Untitled

a guest
Feb 24th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 5.31 KB | None | 0 0
  1. package net.minecraft.client.renderer.tileentity
  2.  
  3. import java.nio.FloatBuffer
  4. import java.util.Random
  5.  
  6. import com.itszuvalex.femtocraft.core.tiles.TileEntityDimensionalTear
  7. import cpw.mods.fml.relauncher.{Side, SideOnly}
  8. import net.minecraft.client.Minecraft
  9. import net.minecraft.client.renderer.tileentity.RenderDimensionalTear._
  10. import net.minecraft.client.renderer.{ActiveRenderInfo, GLAllocation, Tessellator}
  11. import net.minecraft.tileentity.TileEntity
  12. import net.minecraft.util.ResourceLocation
  13. import org.lwjgl.opengl.GL11
  14.  
  15. @SideOnly(Side.CLIENT) object RenderDimensionalTear {
  16.   private val skyLocation    : ResourceLocation = new ResourceLocation("textures/environment/end_sky.png")
  17.   private val pictureLocation: ResourceLocation = new ResourceLocation("textures/entity/end_portal.png")
  18.   private val random         : Random           = new Random(31100L)
  19. }
  20.  
  21. @SideOnly(Side.CLIENT) class RenderDimensionalTear extends TileEntitySpecialRenderer {
  22.   private val field_147528_b: FloatBuffer = GLAllocation.createDirectFloatBuffer(16)
  23.  
  24.   def renderTileEntityAt(p_147500_1_ : TileEntity, p_147500_2_ : Double, p_147500_4_ : Double, p_147500_6_ : Double, p_147500_8_ : Float) {
  25.     this.renderTileEntityAt(p_147500_1_.asInstanceOf[TileEntityDimensionalTear], p_147500_2_, p_147500_4_, p_147500_6_, p_147500_8_)
  26.   }
  27.  
  28.   def renderTileEntityAt(tileEntity: TileEntityDimensionalTear, x: Double, y: Double, z: Double, p_147500_8_ : Float) {
  29.  
  30.     drawTopFace(tileEntity, x, y, z, p_147500_8_)
  31.   }
  32.  
  33.   def drawTopFace(tileEntity: TileEntityDimensionalTear, x: Double, y: Double, z: Double, p_147500_8_ : Float): Unit = {
  34.     val rendererDispatcherX: Float = this.field_147501_a.field_147560_j.toFloat
  35.     val rendererDispatcherZ: Float = this.field_147501_a.field_147561_k.toFloat
  36.     val rendererDispatcherY: Float = this.field_147501_a.field_147558_l.toFloat
  37.     GL11.glDisable(GL11.GL_LIGHTING)
  38.     random.setSeed(31100L)
  39.     val height: Float = 1
  40.  
  41.     GL11.glPushMatrix()
  42.     this.bindTexture(skyLocation)
  43.     val greyScaleColorAmount = 0.1F
  44.     val renderDistance = 5.0F
  45.     GL11.glEnable(GL11.GL_BLEND)
  46.     GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA)
  47.     val worldY = (-(y + height.toDouble)).toFloat
  48.     val renderY = worldY + ActiveRenderInfo.objectY
  49.     val fakeCameraY: Float = worldY + renderDistance + ActiveRenderInfo.objectY
  50.     var ytrans: Float = renderY / fakeCameraY
  51.     ytrans += (y + height.toDouble).toFloat
  52.  
  53.     /*
  54.      * Distance of the texture from the camera is difference in ytrans and rendererDispatcherY
  55.      */
  56.     GL11.glTranslatef(rendererDispatcherX, ytrans, rendererDispatcherZ)
  57.     GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  58.     GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  59.     GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  60.     GL11.glTexGeni(GL11.GL_Q, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR)
  61.     GL11.glTexGen(GL11.GL_S, GL11.GL_OBJECT_PLANE, this.func_147525_a(1.0F, 0.0F, 0.0F, 0.0F))
  62.     GL11.glTexGen(GL11.GL_T, GL11.GL_OBJECT_PLANE, this.func_147525_a(0.0F, 0.0F, 1.0F, 0.0F))
  63.     GL11.glTexGen(GL11.GL_R, GL11.GL_OBJECT_PLANE, this.func_147525_a(0.0F, 0.0F, 0.0F, 1.0F))
  64.     GL11.glTexGen(GL11.GL_Q, GL11.GL_EYE_PLANE, this.func_147525_a(0.0F, 1.0F, 0.0F, 0.0F))
  65.     GL11.glEnable(GL11.GL_TEXTURE_GEN_S)
  66.     GL11.glEnable(GL11.GL_TEXTURE_GEN_T)
  67.     GL11.glEnable(GL11.GL_TEXTURE_GEN_R)
  68.     GL11.glEnable(GL11.GL_TEXTURE_GEN_Q)
  69.     GL11.glPopMatrix()
  70.     GL11.glMatrixMode(GL11.GL_TEXTURE)
  71.     GL11.glPushMatrix()
  72.     GL11.glLoadIdentity()
  73.     GL11.glTranslatef(-rendererDispatcherX, -rendererDispatcherY, -rendererDispatcherZ)
  74.     GL11.glTranslatef(ActiveRenderInfo.objectX * renderDistance / renderY, ActiveRenderInfo.objectZ * renderDistance / renderY, -rendererDispatcherZ)
  75.     val tessellator = Tessellator.instance
  76.     tessellator.startDrawingQuads()
  77.     val blue = 1.0F
  78.     val green = 1.0F
  79.     val red = 1.0F
  80.     tessellator.setColorRGBA_F(red * greyScaleColorAmount, green * greyScaleColorAmount, blue * greyScaleColorAmount, 1.0F)
  81.     //render top
  82.     tessellator.addVertex(x, y + height.toDouble, z)
  83.     tessellator.addVertex(x, y + height.toDouble, z + 1.0D)
  84.     tessellator.addVertex(x + 1.0D, y + height.toDouble, z + 1.0D)
  85.     tessellator.addVertex(x + 1.0D, y + height.toDouble, z)
  86.     //render bot
  87.     //      tessellator.addVertex(p_147500_2_ + 1.0D, p_147500_4_ , p_147500_6_)
  88.     //      tessellator.addVertex(p_147500_2_ + 1.0D, p_147500_4_ , p_147500_6_ + 1.0D)
  89.     //      tessellator.addVertex(p_147500_2_, p_147500_4_ , p_147500_6_ + 1.0D)
  90.     //      tessellator.addVertex(p_147500_2_, p_147500_4_ , p_147500_6_)
  91.     tessellator.draw()
  92.     GL11.glPopMatrix()
  93.     GL11.glMatrixMode(GL11.GL_MODELVIEW)
  94.     GL11.glDisable(GL11.GL_BLEND)
  95.     GL11.glDisable(GL11.GL_TEXTURE_GEN_S)
  96.     GL11.glDisable(GL11.GL_TEXTURE_GEN_T)
  97.     GL11.glDisable(GL11.GL_TEXTURE_GEN_R)
  98.     GL11.glDisable(GL11.GL_TEXTURE_GEN_Q)
  99.     GL11.glEnable(GL11.GL_LIGHTING)
  100.  
  101.   }
  102.  
  103.   private def func_147525_a(p_147525_1_ : Float, p_147525_2_ : Float, p_147525_3_ : Float, p_147525_4_ : Float): FloatBuffer = {
  104.     this.field_147528_b.clear
  105.     this.field_147528_b.put(p_147525_1_).put(p_147525_2_).put(p_147525_3_).put(p_147525_4_)
  106.     this.field_147528_b.flip
  107.     this.field_147528_b
  108.   }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement