Начинающий
- Статус
- Оффлайн
- Регистрация
- 26 Авг 2024
- Сообщения
- 8
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
Написал на пианино чуть похоже ну и всё
На всё про всё было потрачено 5-10 минут
На всё про всё было потрачено 5-10 минут
Таргетесп:
package wtf.expensive.modules.impl.render;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.vector.Matrix4f;
import net.minecraft.util.math.vector.Quaternion;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.player.EventUpdate;
import wtf.expensive.events.impl.render.EventRender;
import wtf.expensive.managment.Managment;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.util.animations.Animation;
import wtf.expensive.util.animations.Direction;
import wtf.expensive.util.animations.impl.DecelerateAnimation;
import wtf.expensive.util.math.MathUtil;
import wtf.expensive.util.misc.TimerUtil;
import wtf.expensive.util.render.ColorUtil;
import wtf.expensive.util.render.animation.AnimationMath;
import java.util.concurrent.ThreadLocalRandom;
@FunctionAnnotation(name = "TargetESP", type = Type.Render)
public class TargetESP extends Function {
private final Animation animation = new DecelerateAnimation(250, 1);
private LivingEntity target;
private TimerUtil time = new TimerUtil();
private float animpenisa;
private boolean ispenis = false;
@Override
public void onEvent(Event event) {
if (event instanceof EventUpdate) {
// Анимки кароче
if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() != null) target = Managment.FUNCTION_MANAGER.auraFunction.getTarget();
animation.setDirection(Managment.FUNCTION_MANAGER.auraFunction.getTarget() != null ? Direction.FORWARDS : Direction.BACKWARDS);
}
if (event instanceof EventRender eventRender && eventRender.isWorld3D()) {
if (animation.finished(Direction.BACKWARDS)) return;
if (target != null && target != mc.player) {
//рендер таргетес
renderWex(eventRender);
}
}
}
public void renderWex(EventRender eventRender) {
MatrixStack matrixStack = eventRender.matrixStack;
//Анимация пульса типо пон?
if (time.hasTimeElapsed(1000,true)) {
// самая тупая система дадада
ispenis = !ispenis;
}
// эта штука короче раз в секунду пульсирует больше
animpenisa = AnimationMath.fast(animpenisa, ispenis ? 20 : 0, 2);
// Тута короче получаем где находится таргет пон?
Vector3d vector3d = getEntityPosition(target, eventRender.partialTicks);
// Это тут мы делаем размеры с анимкой крута
float size = (float) (40 * animation.getOutput() + animpenisa);
// Это цвет просто белый ez
int color1 = ColorUtil.rgba(255,255,255,155*animation.getOutput());
// Матриксстак типо йоу кароче да
matrixStack.push();
matrixStack.translate(vector3d.x, vector3d.y + target.getHeight() / 2f, vector3d.z);
matrixStack.scale(0.025f,0.025f,0.025f);
matrixStack.rotate(mc.getRenderManager().getCameraOrientation());
matrixStack.rotate(new Quaternion(new Vector3f(0, 0, 1), 3.1F, false));
int HP = (int) target.getHealth();
RenderSystem.disableDepthTest();
// Эээ рендер черепочков
if (HP >= 15)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_0.png"), -size / 2f, -size / 2f, size, size, color1, color1, color1, color1);
if (HP == 14)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_0.png"), -size / 2f + ThreadLocalRandom.current().nextInt(-5,5), -size / 2f+ ThreadLocalRandom.current().nextInt(-5,5), size, size, color1, color1, color1, color1);
if (HP == 13 || HP == 12)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_1.png"), -size / 2f + ThreadLocalRandom.current().nextInt(-5,5), -size / 2f+ ThreadLocalRandom.current().nextInt(-5,5), size, size, color1, color1, color1, color1);
if (HP == 11 || HP == 10 || HP == 9 || HP == 8)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_1.png"), -size / 2f, -size / 2f, size, size, color1, color1, color1, color1);
if (HP == 7 || HP == 6)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_2.png"), -size / 2f + ThreadLocalRandom.current().nextInt(-5,5), -size / 2f+ ThreadLocalRandom.current().nextInt(-5,5), size, size, color1, color1, color1, color1);
if (HP == 5 || HP == 4 || HP == 3 || HP == 2 || HP == 1 || HP == 0)
drawTexture(matrixStack, new ResourceLocation("expensive/images/skull_state_2.png"), -size / 2f, -size / 2f, size, size, color1, color1, color1, color1);
RenderSystem.enableDepthTest();
matrixStack.pop();
}
// Кароче утилка RenderUtil перенёс сюда какбы
public static Vector3d getEntityPosition(Entity entity, float interpolationFactor) {
double interpolatedX = MathUtil.interpolate(entity.getPosX(), entity.lastTickPosX, interpolationFactor) - mc.getRenderManager().renderPosX();
double interpolatedY = MathUtil.interpolate(entity.getPosY(), entity.lastTickPosY, interpolationFactor) - mc.getRenderManager().renderPosY();
double interpolatedZ = MathUtil.interpolate(entity.getPosZ(), entity.lastTickPosZ, interpolationFactor) - mc.getRenderManager().renderPosZ();
return new Vector3d(interpolatedX, interpolatedY, interpolatedZ);
}
// Эта тоже
public static void drawTexture(MatrixStack matrixStack, ResourceLocation resourceLocation, float x, float y, float width, float height, int color1, int color2, int color3, int color4) {
RenderSystem.pushMatrix();
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(770, 1, 0, 1);
RenderSystem.shadeModel(7425);
RenderSystem.disableAlphaTest();
RenderSystem.depthMask(false);
Matrix4f matrix4f = matrixStack.getLast().getMatrix();
mc.getTextureManager().bindTexture(resourceLocation);
buffer.begin(7, DefaultVertexFormats.POSITION_COLOR_TEX);
buffer.pos(matrix4f, x, y, 0).color(color1).tex(0, 0).endVertex();
buffer.pos(matrix4f, x, y + height, 0).color(color2).tex(0, 1).endVertex();
buffer.pos(matrix4f, x + width, y + height, 0).color(color3).tex(1, 1).endVertex();
buffer.pos(matrix4f, x + width, y, 0).color(color4).tex(1, 0).endVertex();
tessellator.draw();
RenderSystem.depthMask(true);
RenderSystem.enableAlphaTest();
RenderSystem.shadeModel(7424);
RenderSystem.defaultBlendFunc();
RenderSystem.disableBlend();
RenderSystem.popMatrix();
}
}
EventRender:
package wtf.expensive.events.impl.render;
import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.MainWindow;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.util.math.vector.Matrix4f;
import wtf.expensive.events.Event;
public class EventRender extends Event {
public float partialTicks;
public MainWindow scaledResolution;
public Type type;
public MatrixStack matrixStack;
public Matrix4f matrix;
public Matrix4f matrix4f;
public ActiveRenderInfo activeRenderInfo;
public EventRender(float partialTicks, MatrixStack matrixStack, MainWindow mainWindow, Type type, Matrix4f matrix4f, ActiveRenderInfo activeRenderInfo) {
this.partialTicks = partialTicks;
this.matrixStack = matrixStack;
this.scaledResolution = mainWindow;
this.type = type;
this.matrix4f = matrix4f;
this.activeRenderInfo = activeRenderInfo;
}
public EventRender(float partialTicks, MatrixStack stack, MainWindow scaledResolution, Type type,Matrix4f matrix) {
this.partialTicks = partialTicks;
this.scaledResolution = scaledResolution;
this.matrixStack = stack;
this.type = type;
this.matrix = matrix;
}
public boolean isRender3D() {
return this.type == Type.RENDER3D;
}
public boolean isRender2D() {
return this.type == Type.RENDER2D;
}
public boolean isWorld3D() {
return type == Type.WORLD3D;
}
public enum Type {
RENDER3D, WORLD3D ,RENDER2D
}
}
GameRenderer метод:
public void renderWorld(float partialTicks, long finishTimeNano, MatrixStack matrixStackIn) {
this.lightmapTexture.updateLightmap(partialTicks);
if (this.mc.getRenderViewEntity() == null) {
this.mc.setRenderViewEntity(this.mc.player);
}
this.getMouseOver(partialTicks);
if (Config.isShaders()) {
Shaders.beginRender(this.mc, this.activeRender, partialTicks, finishTimeNano);
}
this.mc.getProfiler().startSection("center");
boolean flag = Config.isShaders();
if (flag) {
Shaders.beginRenderPass(partialTicks, finishTimeNano);
}
boolean flag1 = this.isDrawBlockOutline();
this.mc.getProfiler().endStartSection("camera");
ActiveRenderInfo activerenderinfo = this.activeRender;
this.farPlaneDistance = (float) (this.mc.gameSettings.renderDistanceChunks * 16);
if (Config.isFogFancy()) {
this.farPlaneDistance *= 0.95F;
}
if (Config.isFogFast()) {
this.farPlaneDistance *= 0.83F;
}
MatrixStack matrixstack = new MatrixStack();
matrixstack.getLast().getMatrix().mul(this.getProjectionMatrix(activerenderinfo, partialTicks, true));
MatrixStack matrixstack1 = matrixstack;
if (Shaders.isEffectsModelView()) {
matrixstack = matrixStackIn;
}
if (this.mc.gameSettings.viewBobbing) {
this.applyBobbing(matrixstack, partialTicks);
}
float f = MathHelper.lerp(partialTicks, this.mc.player.prevTimeInPortal, this.mc.player.timeInPortal) * this.mc.gameSettings.screenEffectScale * this.mc.gameSettings.screenEffectScale;
if (f > 0.0F) {
int i = this.mc.player.isPotionActive(Effects.NAUSEA) ? 7 : 20;
float f1 = 5.0F / (f * f + 5.0F) - f * 0.04F;
f1 = f1 * f1;
Vector3f vector3f = new Vector3f(0.0F, MathHelper.SQRT_2 / 2.0F, MathHelper.SQRT_2 / 2.0F);
matrixstack.rotate(vector3f.rotationDegrees(((float) this.rendererUpdateCount + partialTicks) * (float) i));
matrixstack.scale(1.0F / f1, 1.0F, 1.0F);
float f2 = -((float) this.rendererUpdateCount + partialTicks) * (float) i;
matrixstack.rotate(vector3f.rotationDegrees(f2));
}
if (Shaders.isEffectsModelView()) {
matrixstack = matrixstack1;
}
Matrix4f matrix4f = matrixstack.getLast().getMatrix();
this.resetProjectionMatrix(matrix4f);
activerenderinfo.update(this.mc.world, (Entity) (this.mc.getRenderViewEntity() == null ? this.mc.player : this.mc.getRenderViewEntity()), !this.mc.gameSettings.getPointOfView().func_243192_a(), this.mc.gameSettings.getPointOfView().func_243193_b(), partialTicks);
if (Reflector.ForgeHooksClient_onCameraSetup.exists()) {
Object object = Reflector.ForgeHooksClient_onCameraSetup.call(this, activerenderinfo, partialTicks);
float f4 = Reflector.callFloat(object, Reflector.EntityViewRenderEvent_CameraSetup_getYaw);
float f5 = Reflector.callFloat(object, Reflector.EntityViewRenderEvent_CameraSetup_getPitch);
float f3 = Reflector.callFloat(object, Reflector.EntityViewRenderEvent_CameraSetup_getRoll);
activerenderinfo.setAnglesInternal(f4, f5);
matrixStackIn.rotate(Vector3f.ZP.rotationDegrees(f3));
}
matrixStackIn.rotate(Vector3f.XP.rotationDegrees(activerenderinfo.getPitch()));
matrixStackIn.rotate(Vector3f.YP.rotationDegrees(activerenderinfo.getYaw() + 180.0F));
this.mc.worldRenderer.updateCameraAndRender(matrixStackIn, partialTicks, finishTimeNano, flag1, activerenderinfo, this, this.lightmapTexture, matrix4f);
for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) {
ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks, matrixStackIn, matrix4f));
}
EventManager.call(new EventRender(partialTicks, matrixStackIn, mc.getMainWindow(), EventRender.Type.WORLD3D, matrix4f, activerenderinfo));
if (Reflector.ForgeHooksClient_dispatchRenderLast.exists()) {
this.mc.getProfiler().endStartSection("forge_render_last");
Reflector.callVoid(Reflector.ForgeHooksClient_dispatchRenderLast, this.mc.worldRenderer, matrixStackIn, partialTicks, matrix4f, finishTimeNano);
}
this.mc.getProfiler().endStartSection("hand");
if (this.renderHand && !Shaders.isShadowPass) {
if (flag) {
ShadersRender.renderHand1(this, matrixStackIn, activerenderinfo, partialTicks);
Shaders.renderCompositeFinal();
}
RenderSystem.clear(256, Minecraft.IS_RUNNING_ON_MAC);
if (flag) {
ShadersRender.renderFPOverlay(this, matrixStackIn, activerenderinfo, partialTicks);
} else {
this.renderHand(matrixStackIn, activerenderinfo, partialTicks);
}
}
if (flag) {
Shaders.endRender();
}
this.mc.getProfiler().endSection();
}
Вложения
Последнее редактирование: