Advertisement
Guest User

Untitled

a guest
Jun 14th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.57 KB | None | 0 0
  1.  
  2. public class TesselatorRenderer {
  3.    
  4.     private static final double MAX = 1.05;
  5.     private static final double MIN = -0.05;
  6.    
  7.     public void render(double x, double y, double z, Pos... markerPos) {
  8.        
  9.         GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_SRC_COLOR);
  10.         GL11.glDisable(GL11.GL_TEXTURE_2D);
  11.        
  12.         OpenGlHelper.glBlendFunc(774, 768, 1, 0);
  13.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F);
  14.         GL11.glPushMatrix();
  15.         GL11.glPolygonOffset(-3.0F, -3.0F);
  16.         GL11.glEnable(GL11.GL_POLYGON_OFFSET_FILL);
  17.         GL11.glEnable(GL11.GL_ALPHA_TEST);
  18.         final boolean hadBlend = GL11.glIsEnabled(GL11.GL_BLEND);
  19.         GL11.glEnable(GL11.GL_BLEND);
  20.         final Tessellator tessellator = Tessellator.instance;
  21.         tessellator.startDrawingQuads();
  22.         tessellator.setTranslation(-x, -y, -z);
  23.        
  24.         float redPart = 1.0f;
  25.         for (final Pos m : markerPos) {
  26.             tessellator.setColorRGBA_F(redPart, 0, 0, 0.5f);
  27.             if (m != null) {
  28.                 renderMarker(m, (int) x, (int) y, (int) z);
  29.             }
  30.             redPart *= 0.6;
  31.         }
  32.        
  33.         tessellator.draw();
  34.         tessellator.setTranslation(0.0D, 0.0D, 0.0D);
  35.         GL11.glDisable(GL11.GL_ALPHA_TEST);
  36.         GL11.glPolygonOffset(0.0F, 0.0F);
  37.         GL11.glDisable(GL11.GL_POLYGON_OFFSET_FILL);
  38.         GL11.glEnable(GL11.GL_ALPHA_TEST);
  39.         if (!hadBlend) {
  40.             GL11.glDisable(GL11.GL_BLEND);
  41.         }
  42.         GL11.glEnable(GL11.GL_TEXTURE_2D);
  43.         GL11.glDepthMask(true);
  44.         GL11.glPopMatrix();
  45.     }
  46.    
  47.     private void renderMarker(Pos m, int x, int y, int z) {
  48.         final Tessellator tessellator = Tessellator.instance;
  49.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MIN);
  50.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MAX);
  51.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MAX);
  52.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MIN);
  53.        
  54.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MIN);
  55.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MAX);
  56.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MAX);
  57.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MIN);
  58.        
  59.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MIN);
  60.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MAX);
  61.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MAX);
  62.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MIN);
  63.        
  64.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MIN);
  65.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MIN);
  66.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MIN);
  67.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MIN);
  68.        
  69.         tessellator.addVertex(m.x + x + MIN, m.y + y + MAX, m.z + z + MAX);
  70.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MAX);
  71.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MAX);
  72.         tessellator.addVertex(m.x + x + MAX, m.y + y + MAX, m.z + z + MAX);
  73.        
  74.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MAX);
  75.         tessellator.addVertex(m.x + x + MIN, m.y + y + MIN, m.z + z + MIN);
  76.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MIN);
  77.         tessellator.addVertex(m.x + x + MAX, m.y + y + MIN, m.z + z + MAX);
  78.     }
  79.    
  80.     /**
  81.      * Draws the position markers.
  82.      *
  83.      * @param event
  84.      */
  85.     @SubscribeEvent
  86.     public void drawMarkers(RenderWorldLastEvent event) {
  87.         if (CraftBot.bot) {
  88.             final EntityLivingBase player = Minecraft.getMinecraft().renderViewEntity;
  89.             final double x = player.lastTickPosX;
  90.             final double y = player.lastTickPosY;
  91.             final double z = player.lastTickPosZ;
  92.            
  93.             this.render(x, y, z, new Pos(1, 0, 0));
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement