Advertisement
MrScautHD

Untitled

Jan 26th, 2021
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.75 KB | None | 0 0
  1. package net.mcreator.boss_tools;
  2.  
  3. import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
  4. import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
  5. import net.minecraftforge.fml.common.Mod;
  6. import net.minecraftforge.eventbus.api.SubscribeEvent;
  7. import net.minecraftforge.eventbus.api.EventPriority;
  8. import net.minecraftforge.client.ISkyRenderHandler;
  9. import net.minecraftforge.api.distmarker.Dist;
  10.  
  11. import net.minecraft.util.math.vector.Vector3f;
  12. import net.minecraft.util.math.vector.Vector3d;
  13. import net.minecraft.util.math.vector.Matrix4f;
  14. import net.minecraft.util.math.MathHelper;
  15. import net.minecraft.util.ResourceLocation;
  16. import net.minecraft.client.world.DimensionRenderInfo.FogType;
  17. import net.minecraft.client.world.DimensionRenderInfo;
  18. import net.minecraft.client.world.ClientWorld;
  19. import net.minecraft.client.renderer.vertex.VertexBuffer;
  20. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  21. import net.minecraft.client.renderer.WorldVertexBufferUploader;
  22. import net.minecraft.client.renderer.Tessellator;
  23. import net.minecraft.client.renderer.FogRenderer;
  24. import net.minecraft.client.renderer.BufferBuilder;
  25. import net.minecraft.client.Minecraft;
  26.  
  27. import com.mojang.blaze3d.systems.RenderSystem;
  28. import com.mojang.blaze3d.platform.GlStateManager;
  29. import com.mojang.blaze3d.matrix.MatrixStack;
  30.  
  31. @Mod.EventBusSubscriber(modid = "boss_tools", bus = Bus.MOD, value = Dist.CLIENT)
  32. public class ClientEventBus {
  33. private static final ResourceLocation DIM_RENDER_INFO = new ResourceLocation("boss_tools", "moon");
  34. private static final ResourceLocation SUN_TEXTURES = new ResourceLocation("boss_tools", "textures/sky/sun.png");
  35. private static final ResourceLocation MOON_PHASES_TEXTURES = new ResourceLocation("boss_tools", "textures/sky/earth.png");
  36. private static final ResourceLocation SKY_TEXTURE = new ResourceLocation("boss_tools", "textures/sky/sky.png");
  37. @SubscribeEvent(priority = EventPriority.HIGHEST)
  38. public static void clientSetup(FMLClientSetupEvent event) {
  39. // public net.minecraft.client.world.DimensionRenderInfo field_239208_a_ #
  40. // field_239208_a_
  41. // public net.minecraft.client.renderer.Minecraft.getInstance().worldRenderer
  42. // field_175012_t # skyVBO
  43. // public net.minecraft.client.renderer.Minecraft.getInstance().worldRenderer
  44. // field_175014_r # skyVertexFormat
  45. // public net.minecraft.client.renderer.Minecraft.getInstance().worldRenderer
  46. // field_175013_s # starVBO
  47. // public net.minecraft.client.renderer.Minecraft.getInstance().worldRenderer
  48. // field_175011_u # sky2VBO
  49. DimensionRenderInfo.field_239208_a_.put(DIM_RENDER_INFO,
  50. // cloudHeight, alternate sky color, fog type, render sky, diffuse lighting
  51. new DimensionRenderInfo(999999999, false, FogType.NORMAL, false, false) {
  52. @Override
  53. // adjustSkyColor
  54. public Vector3d func_230494_a_(Vector3d fogColor, float partialTicks) {
  55. return fogColor;
  56. }
  57.  
  58. @Override
  59. // useThickFog
  60. public boolean func_230493_a_(int posX, int posY) {
  61. return false;
  62. }
  63.  
  64. @Override
  65. public ISkyRenderHandler getSkyRenderHandler() {
  66. return new ISkyRenderHandler() {
  67. @SuppressWarnings({"deprecation"})
  68. @Override
  69. public void render(int ticks, float partialTicks, MatrixStack matrixStack, ClientWorld world, Minecraft mc) {
  70. RenderSystem.disableTexture();
  71. Vector3d vector3d = world.getSkyColor(mc.gameRenderer.getActiveRenderInfo().getBlockPos(), partialTicks);
  72. float f = (float) vector3d.x;
  73. float f1 = (float) vector3d.y;
  74. float f2 = (float) vector3d.z;
  75. FogRenderer.applyFog();
  76. BufferBuilder bufferbuilder = Tessellator.getInstance().getBuffer();
  77. RenderSystem.depthMask(false);
  78. RenderSystem.enableFog();
  79. RenderSystem.color3f(f, f1, f2);
  80. mc.worldRenderer.skyVBO.bindBuffer();
  81. mc.worldRenderer.skyVertexFormat.setupBufferState(0L);
  82. mc.worldRenderer.skyVBO.draw(matrixStack.getLast().getMatrix(), 7);
  83. VertexBuffer.unbindBuffer();
  84. mc.worldRenderer.skyVertexFormat.clearBufferState();
  85. Matrix4f matrix4f1 = matrixStack.getLast().getMatrix();
  86. RenderSystem.enableAlphaTest();
  87. RenderSystem.enableTexture();
  88. RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE,
  89. GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
  90. RenderSystem.color4f(1f, 1f, 1f, 1f);
  91. mc.getTextureManager().bindTexture(SKY_TEXTURE);
  92. bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
  93. bufferbuilder.pos(matrix4f1, -100, 8f, -100).tex(0.0F, 0.0F).endVertex();
  94. bufferbuilder.pos(matrix4f1, 100, 8f, -100).tex(1.0F, 0.0F).endVertex();
  95. bufferbuilder.pos(matrix4f1, 100, 8f, 100).tex(1.0F, 1.0F).endVertex();
  96. bufferbuilder.pos(matrix4f1, -100, 8f, 100).tex(0.0F, 1.0F).endVertex();
  97. bufferbuilder.finishDrawing();
  98. WorldVertexBufferUploader.draw(bufferbuilder);
  99. RenderSystem.disableTexture();
  100. RenderSystem.disableFog();
  101. RenderSystem.disableAlphaTest();
  102. RenderSystem.enableBlend();
  103. RenderSystem.defaultBlendFunc();
  104. float[] afloat = world.func_239132_a_().func_230492_a_(world.func_242415_f(partialTicks), partialTicks);
  105. if (afloat != null) {
  106. RenderSystem.disableTexture();
  107. RenderSystem.shadeModel(7425);
  108. matrixStack.push();
  109. matrixStack.rotate(Vector3f.XP.rotationDegrees(90.0F));
  110. float f3 = MathHelper.sin(world.getCelestialAngleRadians(partialTicks)) < 0.0F ? 180.0F : 0.0F;
  111. matrixStack.rotate(Vector3f.ZP.rotationDegrees(f3));
  112. matrixStack.rotate(Vector3f.ZP.rotationDegrees(90.0F));
  113. float f4 = afloat[0];
  114. float f5 = afloat[1];
  115. float f6 = afloat[2];
  116. Matrix4f matrix4f = matrixStack.getLast().getMatrix();
  117. bufferbuilder.begin(6, DefaultVertexFormats.POSITION_COLOR);
  118. bufferbuilder.pos(matrix4f, 0.0F, 100.0F, 0.0F).color(f4, f5, f6, afloat[3]).endVertex();
  119. for (int j = 0; j <= 16; ++j) {
  120. float f7 = (float) j * ((float) Math.PI * 2F) / 16.0F;
  121. float f8 = MathHelper.sin(f7);
  122. float f9 = MathHelper.cos(f7);
  123. bufferbuilder.pos(matrix4f, f8 * 120.0F, f9 * 120.0F, -f9 * 40.0F * afloat[3])
  124. .color(afloat[0], afloat[1], afloat[2], 0.0F).endVertex();
  125. }
  126. bufferbuilder.finishDrawing();
  127. WorldVertexBufferUploader.draw(bufferbuilder);
  128. matrixStack.pop();
  129. RenderSystem.shadeModel(7424);
  130. }
  131. RenderSystem.enableTexture();
  132. RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE,
  133. GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
  134. matrixStack.push();
  135. float f11 = 100000.0F - world.getRainStrength(partialTicks);// Rrain basiss ist es auf
  136. // 1.0F
  137. RenderSystem.color4f(1.0F, 1.0F, 1.0F, f11);
  138. matrixStack.rotate(Vector3f.YP.rotationDegrees(-90.0F));
  139. matrixStack.rotate(Vector3f.XP.rotationDegrees(world.func_242415_f(partialTicks) * 360.0F));
  140. matrix4f1 = matrixStack.getLast().getMatrix();
  141. float f12 = 30.0F;
  142. mc.getTextureManager().bindTexture(SUN_TEXTURES);
  143. bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
  144. bufferbuilder.pos(matrix4f1, -f12, 100.0F, -f12).tex(0.0F, 0.0F).endVertex();
  145. bufferbuilder.pos(matrix4f1, f12, 100.0F, -f12).tex(1.0F, 0.0F).endVertex();
  146. bufferbuilder.pos(matrix4f1, f12, 100.0F, f12).tex(1.0F, 1.0F).endVertex();
  147. bufferbuilder.pos(matrix4f1, -f12, 100.0F, f12).tex(0.0F, 1.0F).endVertex();
  148. bufferbuilder.finishDrawing();
  149. WorldVertexBufferUploader.draw(bufferbuilder);
  150. f12 = 20.0F;
  151. mc.getTextureManager().bindTexture(MOON_PHASES_TEXTURES);
  152. int k = world.getMoonPhase();
  153. int l = k % 4;
  154. int i1 = k / 4 % 2;
  155. float f13 = (float) (l + 0) / 4.0F;
  156. float f14 = (float) (i1 + 0) / 2.0F;
  157. float f15 = (float) (l + 1) / 4.0F;
  158. float f16 = (float) (i1 + 1) / 2.0F;
  159. bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
  160. // bufferbuilder.pos(matrix4f1, -f12, -100.0F, f12).tex(f15, f16).endVertex();
  161. // bufferbuilder.pos(matrix4f1, f12, -100.0F, f12).tex(f13, f16).endVertex();
  162. // bufferbuilder.pos(matrix4f1, f12, -100.0F, -f12).tex(f13, f14).endVertex();
  163. // bufferbuilder.pos(matrix4f1, -f12, -100.0F, -f12).tex(f15, f14).endVertex();
  164. //New System
  165. bufferbuilder.pos(matrix4f1, -35, -100.0F, 35).tex(0.0F, 0.0F).endVertex();
  166. bufferbuilder.pos(matrix4f1, 35, -100.0F, 35).tex(1.0F, 0.0F).endVertex();
  167. bufferbuilder.pos(matrix4f1, 35, -100.0F, -35).tex(1.0F, 1.0F).endVertex();
  168. bufferbuilder.pos(matrix4f1, -35, -100.0F, -35).tex(0.0F, 1.0F).endVertex();
  169. bufferbuilder.finishDrawing();
  170. WorldVertexBufferUploader.draw(bufferbuilder);
  171. RenderSystem.disableTexture();
  172. // f11 = 1000.0F;// Star Brightness
  173. float f10 = 1.0F;// world.getStarBrightness(partialTicks) * f11;
  174. // f11
  175. if (f10 > 0.0F) {
  176. RenderSystem.color4f(f10, f10, f10, f10);
  177. mc.worldRenderer.starVBO.bindBuffer();
  178. mc.worldRenderer.skyVertexFormat.setupBufferState(0L);
  179. mc.worldRenderer.starVBO.draw(matrixStack.getLast().getMatrix(), 7);
  180. VertexBuffer.unbindBuffer();
  181. mc.worldRenderer.skyVertexFormat.clearBufferState();
  182. }
  183. RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
  184. RenderSystem.disableBlend();
  185. RenderSystem.enableAlphaTest();
  186. RenderSystem.enableFog();
  187. matrixStack.pop();
  188. RenderSystem.disableTexture();
  189. RenderSystem.color3f(0.0F, 0.0F, 0.0F);
  190. double d0 = mc.player.getEyePosition(partialTicks).y - world.getWorldInfo().getVoidFogHeight();
  191. if (d0 < 0.0D) {
  192. matrixStack.push();
  193. matrixStack.translate(0.0D, 12.0D, 0.0D);
  194. mc.worldRenderer.sky2VBO.bindBuffer();
  195. mc.worldRenderer.skyVertexFormat.setupBufferState(0L);
  196. mc.worldRenderer.sky2VBO.draw(matrixStack.getLast().getMatrix(), 7);
  197. VertexBuffer.unbindBuffer();
  198. mc.worldRenderer.skyVertexFormat.clearBufferState();
  199. matrixStack.pop();
  200. }
  201. if (world.func_239132_a_().func_239216_b_()) {
  202. RenderSystem.color3f(f * 0.2F + 0.04F, f1 * 0.2F + 0.04F, f2 * 0.6F + 0.1F);
  203. } else {
  204. RenderSystem.color3f(f, f1, f2);
  205. }
  206. RenderSystem.enableTexture();
  207. RenderSystem.depthMask(true);
  208. RenderSystem.disableFog();
  209. }
  210. };
  211. }
  212. });
  213. }
  214. }
  215.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement