Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.79 KB | None | 0 0
  1. package pl.xguard.modification;
  2.  
  3. import net.minecraft.client.Minecraft;
  4. import net.minecraft.client.gui.ScaledResolution;
  5. import net.minecraft.util.BlockPos;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.client.gui.FontRenderer;
  10. import net.minecraft.client.gui.Gui;
  11. import net.minecraft.client.gui.GuiOverlayDebug;
  12. import net.minecraft.client.gui.GuiScreen;
  13. import net.minecraft.client.gui.ScaledResolution;
  14. import net.minecraft.client.renderer.GlStateManager;
  15. import net.minecraft.client.renderer.Tessellator;
  16. import net.minecraft.client.renderer.WorldRenderer;
  17. import net.minecraft.client.settings.KeyBinding;
  18. import net.minecraft.entity.Entity;
  19. import net.minecraft.entity.player.EntityPlayer;
  20. import net.minecraft.util.BlockPos;
  21. import net.minecraft.util.EnumFacing;
  22. import net.minecraft.util.MathHelper;
  23. import pl.xguard.modules.FPS;
  24. import java.awt.Color;
  25. import org.lwjgl.input.Keyboard;
  26. import org.lwjgl.opengl.GL11;
  27.  
  28.  
  29. import net.minecraft.client.Minecraft;
  30. import net.minecraft.client.gui.FontRenderer;
  31. import net.minecraft.client.gui.ScaledResolution;
  32. import net.minecraft.client.renderer.GlStateManager;
  33. import net.minecraft.client.renderer.Tessellator;
  34. import net.minecraft.client.renderer.WorldRenderer;
  35. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  36. import org.lwjgl.opengl.GL11;
  37.  
  38. public class Compass {
  39. private FontRenderer fontRenderer;
  40. private ScaledResolution scaledResolution;
  41. private static int offY = 0;
  42. private static int cwidth = 500;
  43. private int clientWidth;
  44. private static int offsetAll = 0;
  45. private static int centerX = 0;
  46. private static int colorMarker = 0;
  47. private static int colorDirection = 0;
  48. public static int width = 184;
  49. public static int height = 20;
  50.  
  51. private Minecraft mc = Minecraft.getMinecraft();
  52. private FontRenderer fr;
  53.  
  54. private static int getRainbow(int speed, int offset) {
  55. float hue = (float)((System.currentTimeMillis() + offset) % speed);
  56. hue /= speed;
  57. return Color.getHSBColor(hue, 1.0F, 1.0F).getRGB();
  58. }
  59.  
  60. public void drawCompass() {
  61. int speed = 2;
  62. int color = getRainbow(6000, -15 * speed);
  63. speed += 12;
  64. fontRenderer = Minecraft.getMinecraft().fontRendererObj;
  65. scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
  66. clientWidth = scaledResolution.getScaledWidth();
  67. centerX = clientWidth / 2;
  68. int direction = normalize((int) Minecraft.getMinecraft().thePlayer.rotationYaw);
  69. offsetAll = (clientWidth * direction / 360);
  70. Gui.drawRect(centerX - width / 2, offY, centerX + width / 2, offY + height, -1442840576);
  71. this.renderMarker();
  72. this.drawDirection("S", 0, 1.4D);
  73. this.drawDirection("15", 15, 0.6D);
  74. this.drawDirection("30", 30, 0.6D);
  75. this.drawDirection("SW", 45, 1.4D);
  76. this.drawDirection("60", 60, 0.6D);
  77. this.drawDirection("75", 75, 0.6D);
  78. this.drawDirection("W", 90, 1.4D);
  79. this.drawDirection("105", 105, 0.6D);
  80. this.drawDirection("120", 120, 0.6D);
  81. this.drawDirection("NW", 135, 1.4D);
  82. this.drawDirection("195", 195, 0.6D);
  83. this.drawDirection("210", 210, 0.6D);
  84. this.drawDirection("N", 180, 1.4D);
  85. this.drawDirection("150", 150, 0.6D);
  86. this.drawDirection("165", 165, 0.6D);
  87. this.drawDirection("NE", 225, 1.4D);
  88. this.drawDirection("240", 240, 0.6D);
  89. this.drawDirection("255", 255, 0.6D);
  90. this.drawDirection("E", 270, 1.4D);
  91. this.drawDirection("285", 285, 0.6D);
  92. this.drawDirection("300", 300, 0.6D);
  93. this.drawDirection("SE", 315, 1.4D);
  94. this.drawDirection("330", 330, 0.6D);
  95. this.drawDirection("345", 345, 0.6D);
  96. }
  97.  
  98.  
  99. private void renderMarker() {
  100. Tessellator tessellator = Tessellator.getInstance();
  101. WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  102. GlStateManager.enableBlend();
  103. GlStateManager.disableTexture2D();
  104. GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
  105. worldrenderer.begin(6, DefaultVertexFormats.POSITION);
  106. worldrenderer.pos(centerX, offY + 3, 0.0D).endVertex();
  107. worldrenderer.pos(centerX + 3, offY, 0.0D).endVertex();
  108. worldrenderer.pos(centerX - 3, offY, 0.0D).endVertex();
  109. tessellator.draw();
  110. GlStateManager.enableTexture2D();
  111. GlStateManager.disableBlend();
  112. }
  113.  
  114.  
  115.  
  116.  
  117. private void drawDirection(String dir, int degrees, double scale) {
  118. int offset = this.clientWidth * degrees / 360 - this.offsetAll;
  119. if (offset > this.clientWidth / 2) {
  120. offset -= this.clientWidth;
  121. }
  122.  
  123. if (offset < -this.clientWidth / 2) {
  124. offset += this.clientWidth;
  125. }
  126.  
  127. double opacity = 1.0D - (double)Math.abs(offset) / ((double)this.width / 2.0D);
  128. if (opacity > 0.1D) {
  129. int speed = 2;
  130. int color = getRainbow(6000, -15 * speed);
  131. speed += 12;
  132. int posX = this.centerX + offset - (int)((double)this.fontRenderer.getStringWidth(dir) * scale / 2.0D);
  133. int posY = this.offY + this.height / 2 - (int)((double)this.fontRenderer.FONT_HEIGHT * scale / 2.0D);
  134. GL11.glEnable(3042);
  135. GL11.glPushMatrix();
  136. GL11.glTranslated((double)(-posX) * (scale - 1.0D), (double)(-posY) * (scale - 1.0D), 0.0D);
  137. GL11.glScaled(scale, scale, 1.0D);
  138. this.fontRenderer.drawStringWithShadow(dir, (float)posX, (float)posY, color);
  139. GL11.glPopMatrix();
  140. GL11.glDisable(3042);
  141. }
  142.  
  143. }
  144. private int normalize(int direction) {
  145. if (direction > 360) {
  146. direction %= 360;
  147. }
  148. while (direction < 0) {
  149. direction += 360;
  150. }
  151. return direction;
  152. }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement