Advertisement
MrScautHD

Untitled

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