Начинающий
			
			
				
					
				
			
		- Статус
 - Оффлайн
 
- Регистрация
 - 22 Сен 2024
 
- Сообщения
 - 138
 
- Реакции
 - 0
 
цвет накладывается от гета цвета вашей темы
и эфектоm(дыхания) переливается с одного
цвета на другой, мне понравилось как он вы-
глядит поэтому слил также добавил блюр в
середину шляпы и он расплывается сс нету(
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
				
			и эфектоm(дыхания) переливается с одного
цвета на другой, мне понравилось как он вы-
глядит поэтому слил также добавил блюр в
середину шляпы и он расплывается сс нету(
			
				Код:
			
		
		
		package im.expensive.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import im.expensive.events.WorldEvent;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.render.ColorUtils;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
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;
@FunctionRegister(name = "ChinaHat", type = Category.Render)
public class ChinaHat extends Function {
    private final Tessellator tessellator = Tessellator.getInstance();
    private final BufferBuilder buffer = tessellator.getBuffer();
    private float hue = 0f;
    @Subscribe
    private void onRender(WorldEvent e) {
        if (mc.gameSettings.getPointOfView() == PointOfView.FIRST_PERSON) return;
        float radius = 0.6f;
        hue += 0.005f;
        if (hue > 1.0f) hue = 0f;
        GlStateManager.pushMatrix();
        RenderSystem.translated(-mc.getRenderManager().info.getProjectedView().x, -mc.getRenderManager().info.getProjectedView().y + 0.01, -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());
        interpolated.y -= 0.05f;
        RenderSystem.translated(interpolated.x, interpolated.y + mc.player.getHeight(), interpolated.z);
        final double yaw = mc.getRenderManager().info.getYaw();
        GL11.glRotatef((float) -yaw, 0f, 1f, 0f);
        RenderSystem.translated(-interpolated.x, -(interpolated.y + mc.player.getHeight()), -interpolated.z);
        RenderSystem.enableBlend();
        RenderSystem.depthMask(false);
        RenderSystem.disableTexture();
        RenderSystem.disableCull();
        RenderSystem.blendFunc(770, 771);
        RenderSystem.shadeModel(7425);
        RenderSystem.lineWidth(3);
        GL11.glEnable(GL11.GL_LINE_SMOOTH);
        GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);
        buffer.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR);
        float dynamicYPos = (float) (mc.player.getHeight() + 0.3);
        float dynamicYPosRound = (float) (mc.player.getHeight());
        float margin = 0.1F;
        int centerColor = HUD.getColor(0);
        buffer.pos(interpolated.x, interpolated.y + dynamicYPos, interpolated.z)
                .color((centerColor >> 16) & 0xFF, (centerColor >> 8) & 0xFF, centerColor & 0xFF, 128)
                .endVertex();
        for (int i = 0; i <= 360; i++) {
            float x = (float) (interpolated.x + MathHelper.sin((float) Math.toRadians(i)) * radius);
            float z = (float) (interpolated.z + -MathHelper.cos((float) Math.toRadians(i)) * radius);
            float individualHue = (hue + (i / 360f)) % 1.0f;
            int color = HUD.getColor(0);
            buffer.pos(x, interpolated.y + dynamicYPosRound, z)
                    .color((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, 128)
                    .endVertex();
        }
        tessellator.draw();
        buffer.begin(GL11.GL_LINE_LOOP, DefaultVertexFormats.POSITION_COLOR);
        for (int i = 0; i <= 360; i++) {
            float x = (float) (interpolated.x + MathHelper.sin((float) Math.toRadians(i)) * radius);
            float z = (float) (interpolated.z + -MathHelper.cos((float) Math.toRadians(i)) * radius);
            float individualHue = (hue + (i / 360f)) % 1.0f;
            int color = HUD.getColor(0);
            buffer.pos(x, interpolated.y + dynamicYPosRound, z)
                    .color((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, 255)
                    .endVertex();
        }
        tessellator.draw();
        GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_DONT_CARE);
        GL11.glDisable(GL11.GL_LINE_SMOOTH);
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.enableCull();
        RenderSystem.depthMask(true);
        RenderSystem.shadeModel(7424);
        GlStateManager.popMatrix();
    }
}