всех с новым годом☃❄⛄⛄❄☃⛄ вот вам говна от меня, есть баги но мало (ss) люби меня как розы воду, а я тебя как вор свободу package fun.astral.modules.impl.render; import com.google.common.eventbus.Subscribe; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import fun.astral.client.events.WorldEvent; import fun.astral.modules.api.Category; import fun.astral.modules.api.Module; import fun.astral.modules.api.ModuleAnnotation; import fun.astral.desing.themes.Theme; import fun.astral.system.math.MathUtil; import fun.astral.system.render.color.ColorUtils; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.settings.PointOfView; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; import org.lwjgl.opengl.GL11; @ModuleAnnotation(name = "SantaHat", category = Category.Render) public class SantaHat extends Module { @Subscribe private void onRender(WorldEvent e) { if (mc.gameSettings.getPointOfView() == PointOfView.FIRST_PERSON) return; GlStateManager.pushMatrix(); RenderSystem.translated(-mc.getRenderManager().info.getProjectedView().x, -mc.getRenderManager().info.getProjectedView().y + 0.25, -mc.getRenderManager().info.getProjectedView().z); Vector3d interpolated = MathUtil.interpolate(mc.player.getPositionVec(), new Vector3d(mc.player.lastTickPosX, mc.player.lastTickPosY, mc.player.lastTickPosZ), e.getPartialTicks()); RenderSystem.translated(interpolated.x, interpolated.y + mc.player.getHeight(), interpolated.z); GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glBegin(GL11.GL_TRIANGLE_STRIP); float height = 0.4f; float baseRadius = 0.25f; int segments = 36; for (int i = 0; i <= segments; i++) { float angle = (float) (i * 2 * Math.PI / segments); float x = (float) Math.cos(angle) * baseRadius; float z = (float) Math.sin(angle) * baseRadius; GL11.glColor4f(0.8f, 0.1f, 0.1f, 0.9f); GL11.glVertex3f(x, 0, z); GL11.glColor4f(0.9f, 0.2f, 0.2f, 0.9f); GL11.glVertex3f(0, height, 0); } GL11.glEnd(); GL11.glBegin(GL11.GL_QUAD_STRIP); float trimHeight = 0.15f; for (int i = 0; i <= segments; i++) { float angle = (float) (i * 2 * Math.PI / segments); float x = (float) Math.cos(angle); float z = (float) Math.sin(angle); GL11.glColor4f(1.0f, 1.0f, 1.0f, 0.9f); GL11.glVertex3f(x * (baseRadius + 0.05f), -trimHeight, z * (baseRadius + 0.05f)); GL11.glVertex3f(x * baseRadius, 0, z * baseRadius); } GL11.glEnd(); GL11.glTranslatef(0, height, 0); GL11.glColor4f(1.0f, 1.0f, 1.0f, 0.9f); float pomRadius = 0.10f; int sphereSegments = 32; for (int i = 0; i < sphereSegments; i++) { float lat0 = (float) (Math.PI * (-0.5 + (double) (i) / sphereSegments)); float lat1 = (float) (Math.PI * (-0.5 + (double) (i + 1) / sphereSegments)); GL11.glBegin(GL11.GL_TRIANGLE_STRIP); for (int j = 0; j <= sphereSegments; j++) { float lng = (float) (2 * Math.PI * (double) (j - 1) / sphereSegments); float x, y, z; x = (float) (Math.cos(lat0) * Math.cos(lng)); y = (float) Math.sin(lat0); z = (float) (Math.cos(lat0) * Math.sin(lng)); GL11.glVertex3f(x * pomRadius, y * pomRadius, z * pomRadius); x = (float) (Math.cos(lat1) * Math.cos(lng)); y = (float) Math.sin(lat1); z = (float) (Math.cos(lat1) * Math.sin(lng)); GL11.glVertex3f(x * pomRadius, y * pomRadius, z * pomRadius); } GL11.glEnd(); } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); GL11.glDisable(GL11.GL_BLEND); GlStateManager.popMatrix(); } }