- Выберите загрузчик игры
- Vanilla
- OptiFine
Java:
private float angle = 0;
@SuppressWarnings(value = "all")
private final EventListener<EventRender> eventRenderEventListener = event -> {
if (mc.world == null || mc.player == null) {
return;
}
if (KillAura.target == null) {
return;
}
EntityLivingBase entityLivingBase = KillAura.target;
float partialTicks = Minecraft.getMinecraft().getRenderPartialTicks();
Vec3d position = new Vec3d(entityLivingBase.posX, entityLivingBase.posY, entityLivingBase.posZ);
Vec3d lastPosition = entityLivingBase.getLastPositionVector();
angle += 0.2f;
double radius = 0.1;
float animate = angle * (1f * 0.5f);
double x = Math.cos(Math.toRadians(animate)) * radius;
double z = Math.sin(Math.toRadians(animate)) * radius;
render(lastPosition, position, cameraPosition(), playerView(), x, z, partialTicks);
};
private void render(Vec3d lastPosition,
Vec3d position,
Vec3d camera,
Vec2d playerView,
double rotateX,
double rotateZ,
float tick)
{
Vec3d location = location(lastPosition, position, camera, tick);
float pulse = (float) ((Math.sin(angle * 0.1) + 1) * 0.1 + 0.5);
glPushMatrix();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glTranslated(location.xCoord, location.yCoord + 1.7, location.zCoord);
glRotated(-playerView.y, 0, 1,0);
glRotated(playerView.x, mc.gameSettings.thirdPersonView == 2 ? -1 : 1, 0,0);
glTranslated(rotateX, 1, rotateZ);
glScaled(pulse, pulse, pulse);
GlStateManager.disableDepth();
GlStateManager.disableCull();
glDepthMask(false);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder builder = tessellator.getBuffer();
int color = Color.RED.getRGB();
Minecraft.getMinecraft()
.getTextureManager()
.bindTexture(new ResourceLocation("info.png"));
builder.begin(6, DefaultVertexFormats
.POSITION_TEX_COLOR);
builder.pos(-.5, -.5).tex(0, 0).color(color).endVertex();
builder.pos(.5, -.5).tex(1, 0).color(color).endVertex();
builder.pos(.5, .5).tex(1, 1).color(color).endVertex();
builder.pos(-.5, .5).tex(0, 1).color(color).endVertex();
tessellator.draw();
glDepthMask(true);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.enableDepth();
GlStateManager.enableCull();
glPopMatrix();
}
private Vec3d cameraPosition() {
return new Vec3d(
Minecraft.getMinecraft().getRenderManager().renderPosX,
Minecraft.getMinecraft().getRenderManager().renderPosY,
Minecraft.getMinecraft().getRenderManager().renderPosZ);
}
private Vec3d location(Vec3d lastPos, Vec3d pos, Vec3d camera, float tick) {
return new Vec3d(
lastPos.xCoord + (pos.xCoord - lastPos.xCoord) * tick - camera.xCoord,
lastPos.yCoord + (pos.yCoord - lastPos.yCoord) * tick - camera.yCoord,
lastPos.zCoord + (pos.zCoord - lastPos.zCoord) * tick - camera.zCoord);
}
private Vec2d playerView() {
return new Vec2d(
Minecraft.getMinecraft().getRenderManager().playerViewX,
Minecraft.getMinecraft().getRenderManager().playerViewY
);
}
}
ну типо восклицательный знак над игроком,
знак анимированный двигается чуток
Вложения
Последнее редактирование: