Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Сен 2025
- Сообщения
- 18
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
Писал от нехуй делать, увидел такую функцию в тик токе решил сделать
ss -
dw -
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.
dw -
Код:
package tech.javelin.client.modules.impl.render;
import com.darkmagician6.eventapi.EventTarget;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d;
import org.joml.Matrix4f;
import tech.javelin.base.events.impl.render.EventRender3D;
import tech.javelin.client.modules.api.Category;
import tech.javelin.client.modules.api.Module;
import tech.javelin.client.modules.api.ModuleAnnotation;
import tech.javelin.client.modules.api.setting.impl.NumberSetting;
import tech.javelin.utility.render.display.base.color.ColorRGBA;
@ModuleAnnotation(name = "MyDick", category = Category.RENDER, description = "У тебя будет писюн (18+)")
public class MyDick extends Module {
public static final MyDick INSTANCE = new MyDick();
private final NumberSetting length = new NumberSetting("Длина", 0.6f, 0.1f, 1.5f, 0.1f);
private final NumberSetting thickness = new NumberSetting("Толщина", 0.12f, 0.05f, 0.3f, 0.01f);
private final NumberSetting yOff = new NumberSetting("Смещение Y", 0.65f, 0.0f, 1.5f, 0.01f);
private final NumberSetting zOff = new NumberSetting("Смещение Z", -0.35f, -1.0f, 0.5f, 0.01f);
private final NumberSetting angle = new NumberSetting("Угол", 90f, 0f, 180f, 1f);
@EventTarget
public void onRender3D(EventRender3D e) {
if (mc.player == null) return;
MatrixStack ms = e.getMatrix(); float pt = e.getPartialTicks();
double ix = mc.player.prevX + (mc.player.getX() - mc.player.prevX) * pt;
double iy = mc.player.prevY + (mc.player.getY() - mc.player.prevY) * pt;
double iz = mc.player.prevZ + (mc.player.getZ() - mc.player.prevZ) * pt;
Vec3d p = new Vec3d(ix, iy, iz).subtract(mc.gameRenderer.getCamera().getPos());
double vx = (mc.player.getX() - mc.player.prevX), vz = (mc.player.getZ() - mc.player.prevZ);
float yaw = mc.player.bodyYaw, rad = (float)Math.toRadians(yaw);
float sideInertia = (float)(vx * Math.cos(rad) + vz * Math.sin(rad)) * 150f;
ms.push();
ms.translate(p.x, p.y + (mc.player.isSneaking() ? yOff.getCurrent() - 0.2f : yOff.getCurrent()), p.z);
ms.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-yaw));
ms.translate(0, 0, zOff.getCurrent());
ms.multiply(RotationAxis.POSITIVE_X.rotationDegrees(angle.getCurrent() + (float)Math.sin(System.currentTimeMillis()/400.0)*3f));
ms.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(sideInertia));
RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc();
RenderSystem.setShader(net.minecraft.client.gl.ShaderProgramKeys.POSITION_COLOR);
RenderSystem.disableCull(); RenderSystem.disableDepthTest();
BufferBuilder bb = RenderSystem.renderThreadTesselator().begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR);
ColorRGBA sC = new ColorRGBA(255, 200, 160, 255), hC = new ColorRGBA(255, 140, 180, 255);
float th = thickness.getCurrent();
drawS(ms, bb, -th * 0.7f, 0, 0, th*1.1f, sC); drawS(ms, bb, th * 0.7f, 0, 0, th*1.1f, sC);
drawC(ms, bb, th, length.getCurrent(), sC); drawS(ms, bb, 0, length.getCurrent(), 0, th * 1.2f, hC);
BufferRenderer.drawWithGlobalProgram(bb.end());
RenderSystem.enableDepthTest(); RenderSystem.enableCull(); ms.pop();
}
private void drawS(MatrixStack ms, VertexConsumer b, float x, float y, float z, float r, ColorRGBA c) {
Matrix4f m = ms.peek().getPositionMatrix(); int cl = c.getRGB();
for (int i = 0; i < 10; i++) for (int j = 0; j < 10; j++) {
float v0=(float)i/10*(float)Math.PI, v1=(float)(i+1)/10*(float)Math.PI, h0=(float)j/10*(float)Math.PI*2, h1=(float)(j+1)/10*(float)Math.PI*2;
vt(b,m,x,y,z,r,v0,h0,cl); vt(b,m,x,y,z,r,v1,h0,cl); vt(b,m,x,y,z,r,v1,h1,cl); vt(b,m,x,y,z,r,v0,h1,cl);
}
}
private void vt(VertexConsumer b, Matrix4f m, float x, float y, float z, float r, float v, float h, int c) {
float px=x+r*(float)(Math.sin(v)*Math.cos(h)), py=y+r*(float)Math.cos(v), pz=z+r*(float)(Math.sin(v)*Math.sin(h));
b.vertex(m,px,py,pz).color(c);
}
private void drawC(MatrixStack ms, VertexConsumer b, float r, float h, ColorRGBA c) {
Matrix4f m = ms.peek().getPositionMatrix(); int cl = c.getRGB();
for (int i = 0; i < 12; i++) {
float a0=(float)i/12*(float)Math.PI*2, a1=(float)(i+1)/12*(float)Math.PI*2, x0=(float)Math.cos(a0)*r, z0=(float)Math.sin(a0)*r, x1=(float)Math.cos(a1)*r, z1=(float)Math.sin(a1)*r;
b.vertex(m,x0,0,z0).color(cl); b.vertex(m,x0,h,z0).color(cl); b.vertex(m,x1,h,z1).color(cl); b.vertex(m,x1,0,z1).color(cl);
}
}
}