Advertisement
Guest User

Untitled

a guest
Feb 24th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 5.35 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 rendererDispatcherY: Float = this.field_147501_a.field_147561_k.toFloat
  36.     val rendererDispatcherZ: 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 = 1.0F
  45.     GL11.glEnable(GL11.GL_BLEND)
  46.     GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA)
  47.     val worldY: Float = (-(y + height.toDouble)).toFloat
  48.     var renderY: Float = worldY + ActiveRenderInfo.objectY
  49.     val fakeCameraY: Float = worldY + renderDistance + ActiveRenderInfo.objectY
  50.     var ytrans: Float = renderY / fakeCameraY
  51.     ytrans += (y + height.toDouble).toFloat
  52.     GL11.glTranslatef(rendererDispatcherX, ytrans, rendererDispatcherZ)
  53.     GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  54.     GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  55.     GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR)
  56.     GL11.glTexGeni(GL11.GL_Q, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR)
  57.     GL11.glTexGen(GL11.GL_S, GL11.GL_OBJECT_PLANE, this.func_147525_a(1.0F, 0.0F, 0.0F, 0.0F))
  58.     GL11.glTexGen(GL11.GL_T, GL11.GL_OBJECT_PLANE, this.func_147525_a(0.0F, 0.0F, 1.0F, 0.0F))
  59.     GL11.glTexGen(GL11.GL_R, GL11.GL_OBJECT_PLANE, this.func_147525_a(0.0F, 0.0F, 0.0F, 1.0F))
  60.     GL11.glTexGen(GL11.GL_Q, GL11.GL_EYE_PLANE, this.func_147525_a(0.0F, 1.0F, 0.0F, 0.0F))
  61.     GL11.glEnable(GL11.GL_TEXTURE_GEN_S)
  62.     GL11.glEnable(GL11.GL_TEXTURE_GEN_T)
  63.     GL11.glEnable(GL11.GL_TEXTURE_GEN_R)
  64.     GL11.glEnable(GL11.GL_TEXTURE_GEN_Q)
  65.     GL11.glPopMatrix()
  66.     GL11.glMatrixMode(GL11.GL_TEXTURE)
  67.     GL11.glPushMatrix()
  68.     GL11.glLoadIdentity()
  69.     GL11.glTranslatef(0.0F, (Minecraft.getSystemTime % 700000L).toFloat / 700000.0F, 0.0F)
  70.     GL11.glTranslatef(-rendererDispatcherX, -rendererDispatcherZ, -rendererDispatcherY)
  71.     renderY = worldY + ActiveRenderInfo.objectY
  72.     GL11.glTranslatef(ActiveRenderInfo.objectX * renderDistance / renderY, ActiveRenderInfo.objectZ * renderDistance / renderY, -rendererDispatcherY)
  73.     val tessellator = Tessellator.instance
  74.     tessellator.startDrawingQuads()
  75.     val blue = 1.0F
  76.     val green = 1.0F
  77.     val red = 1.0F
  78.     tessellator.setColorRGBA_F(red * greyScaleColorAmount, green * greyScaleColorAmount, blue * greyScaleColorAmount, 1.0F)
  79.     //render top
  80.     tessellator.addVertex(x, y + height.toDouble, z)
  81.     tessellator.addVertex(x, y + height.toDouble, z + 1.0D)
  82.     tessellator.addVertex(x + 1.0D, y + height.toDouble, z + 1.0D)
  83.     tessellator.addVertex(x + 1.0D, y + height.toDouble, z)
  84.     //render bot
  85.     //      tessellator.addVertex(p_147500_2_ + 1.0D, p_147500_4_ , p_147500_6_)
  86.     //      tessellator.addVertex(p_147500_2_ + 1.0D, p_147500_4_ , p_147500_6_ + 1.0D)
  87.     //      tessellator.addVertex(p_147500_2_, p_147500_4_ , p_147500_6_ + 1.0D)
  88.     //      tessellator.addVertex(p_147500_2_, p_147500_4_ , p_147500_6_)
  89.     tessellator.draw()
  90.     GL11.glPopMatrix()
  91.     GL11.glMatrixMode(GL11.GL_MODELVIEW)
  92.     GL11.glDisable(GL11.GL_BLEND)
  93.     GL11.glDisable(GL11.GL_TEXTURE_GEN_S)
  94.     GL11.glDisable(GL11.GL_TEXTURE_GEN_T)
  95.     GL11.glDisable(GL11.GL_TEXTURE_GEN_R)
  96.     GL11.glDisable(GL11.GL_TEXTURE_GEN_Q)
  97.     GL11.glEnable(GL11.GL_LIGHTING)
  98.  
  99.   }
  100.  
  101.   private def func_147525_a(p_147525_1_ : Float, p_147525_2_ : Float, p_147525_3_ : Float, p_147525_4_ : Float): FloatBuffer = {
  102.     this.field_147528_b.clear
  103.     this.field_147528_b.put(p_147525_1_).put(p_147525_2_).put(p_147525_3_).put(p_147525_4_)
  104.     this.field_147528_b.flip
  105.     this.field_147528_b
  106.   }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement