Advertisement
PaleoCrafter

Untitled

Jan 1st, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.35 KB | None | 0 0
  1. // RenderUtils
  2.  
  3. def applyCamera(cam: Camera, eye: Vector3): Unit = {
  4.   GL11.glViewport(cam.viewport.x, mc.displayHeight - cam.viewport.end.y, cam.viewport.width, cam.viewport.height)
  5.   GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT)
  6.   GL11.glMatrixMode(GL11.GL_PROJECTION)
  7.   loadMatrix(cam.transposedProjectionMatrix)
  8.   GL11.glMatrixMode(GL11.GL_MODELVIEW)
  9.   loadMatrix(cam.transposedViewMatrix)
  10.   GL11.glTranslated(-eye.x, -eye.y, -eye.z)
  11. }
  12.  
  13. // cam (custom view entity)
  14.  
  15. class CameraEntity extends Entity(snapshot) {
  16.   val camera = new Camera(null, null, null)
  17.  
  18.   def updateCamera(viewport: Rectangle): Boolean = {
  19.     camera.viewport = viewport
  20.     camera.projectionMatrix = MathUtils.createProjectionMatrixAsPerspective(30, 0.05, 50, viewport.width, viewport.height)
  21.     camera.viewMatrix = MathUtils.createMatrixAsLookAt(getPositionVector, Vector3.Zero, Vector3(0, 1, 0))
  22.     camera.isValid
  23.   }
  24.  
  25.   override def entityInit(): Unit = ()
  26.  
  27.   override def writeEntityToNBT(tagCompound: NBTTagCompound): Unit = ()
  28.  
  29.   override def readEntityFromNBT(tagCompound: NBTTagCompound): Unit = ()
  30. }
  31.  
  32. // draw
  33. GlStateManager.pushMatrix()
  34. if (cam.updateCamera(utils.revertScale(screenBounds))) {
  35.   RenderUtils.applyCamera(cam.camera, cam.getPositionVector)
  36.   MFWorldRenderer.renderWorld(cam, snapshot)
  37.   RenderUtils.setupOverlayRendering()
  38. }
  39. GlStateManager.popMatrix()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement