Визуальная часть FireFly exp 3.1 $$$elfcode

  • Автор темы Автор темы Relly2
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Янв 2025
Сообщения
693
Реакции
0
Выберите загрузчик игры
  1. ForgeOptiFine

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

ура
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
package im.eblan.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.eblan.events.EventDisplay;
import im.eblan.functions.api.Category;
import im.eblan.functions.api.Function;
import im.eblan.functions.api.FunctionRegister;
import im.eblan.utils.client.IMinecraft;
import im.eblan.utils.math.MathUtil;
import im.eblan.utils.projections.ProjectionUtil;
import im.eblan.utils.render.ColorUtils;
import im.eblan.utils.render.DisplayUtils;

import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;

import static net.minecraft.client.renderer.WorldRenderer.frustum;

@FunctionRegister(name = "FireFly", type = Category.Render)
public class FireFly extends Function {

private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
private static final ResourceLocation GLOW_TEXTURE = new ResourceLocation("eblan/images/glow.png");
private static final float MAX_LIFETIME = 5000f;
private static final float PART_SIZE = 8.5f;
private static final int SHADOW_COUNT = 9;

public FireFly() {
addSettings();
}

private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}

@Subscribe
    private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}

// Spawn a new particle
        particles.add(new Particle());

for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > MAX_LIFETIME) {
particles.remove(p);
continue;
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
continue;
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
continue;
}
p.update();
renderParticleWithShadows(p);
} else {
particles.remove(p);
}
}
}

private void renderParticleWithShadows(Particle particle) {
Vector2f screenPos = ProjectionUtil.project(particle.pos.x, particle.pos.y, particle.pos.z);
float lifetimeFraction = (System.currentTimeMillis() - particle.time) / MAX_LIFETIME;
float size = PART_SIZE * (1 - lifetimeFraction);

MatrixStack stack = new MatrixStack();
stack.push();

float shadowDistance = 0.2f;

for (int i = 0; i < SHADOW_COUNT; i++) {
float shadowAlpha = (1.0f - (float) i / SHADOW_COUNT) * particle.alpha;
float shadowFactor = 1.0f - lifetimeFraction;
Vector3d shadowPos = particle.pos.add(particle.velocity.scale(-shadowDistance * i * shadowFactor));
Vector2f shadowScreenPos = ProjectionUtil.project(shadowPos.x, shadowPos.y, shadowPos.z);

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, shadowScreenPos.x - size / 2, shadowScreenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)));
}

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, screenPos.x - size / 2, screenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)));

stack.pop();
}

private class Particle {
private Vector3d pos;
private final Vector3d end;
private final Vector3d velocity;
private final long time;
private float alpha;

public Particle() {

pos = mc.player.getPositionVec().add(
ThreadLocalRandom.current().nextDouble(-30, 30),
ThreadLocalRandom.current().nextDouble(-10, 30),
ThreadLocalRandom.current().nextDouble(-30, 30));
end = pos.add(
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3));
velocity = end.subtract(pos).normalize().scale(0.2);
time = System.currentTimeMillis();
alpha = 0.75f;
}

public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}

@Override
    public int onDisable() {
particles.clear();
super.onDisable();
return 0;
}
}
метод
Код:
Expand Collapse Copy
    public static void drawImage1(MatrixStack stack, ResourceLocation image, double x, double y, double z, double width, double height, int color1, int color2, int color3, int color4) {
        Minecraft minecraft = Minecraft.getInstance();
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE);
        glShadeModel(GL_SMOOTH);
        glAlphaFunc(GL_GREATER, 0);
        minecraft.getTextureManager().bindTexture(image);
        RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
        Tessellator tessellator = Tessellator.getInstance();
        BufferBuilder bufferBuilder = tessellator.getBuffer();
        bufferBuilder.begin(GL_QUADS, POSITION_COLOR_TEX_LIGHTMAP);
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) (y + height), (float) (z)).color((color1 >> 16) & 0xFF, (color1 >> 8) & 0xFF, color1 & 0xFF, color1 >>> 24).tex(0, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) (y + height), (float) (z)).color((color2 >> 16) & 0xFF, (color2 >> 8) & 0xFF, color2 & 0xFF, color2 >>> 24).tex(1, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) y, (float) z).color((color3 >> 16) & 0xFF, (color3 >> 8) & 0xFF, color3 & 0xFF, color3 >>> 24).tex(1, 0).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) y, (float) z).color((color4 >> 16) & 0xFF, (color4 >> 8) & 0xFF, color4 & 0xFF, color4 >>> 24).tex(0, 0).lightmap(0, 240).endVertex();

        tessellator.draw();
        disableBlend();
 
Последнее редактирование:
ура
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
package im.eblan.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.eblan.events.EventDisplay;
import im.eblan.functions.api.Category;
import im.eblan.functions.api.Function;
import im.eblan.functions.api.FunctionRegister;
import im.eblan.utils.client.IMinecraft;
import im.eblan.utils.math.MathUtil;
import im.eblan.utils.projections.ProjectionUtil;
import im.eblan.utils.render.ColorUtils;
import im.eblan.utils.render.DisplayUtils;

import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;

import static net.minecraft.client.renderer.WorldRenderer.frustum;

@FunctionRegister(name = "FireFly", type = Category.Render)
public class FireFly extends Function {

private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
private static final ResourceLocation GLOW_TEXTURE = new ResourceLocation("eblan/images/glow.png");
private static final float MAX_LIFETIME = 5000f;
private static final float PART_SIZE = 8.5f;
private static final int SHADOW_COUNT = 9;

public FireFly() {
addSettings();
}

private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}

@Subscribe
    private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}

// Spawn a new particle
        particles.add(new Particle());

for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > MAX_LIFETIME) {
particles.remove(p);
continue;
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
continue;
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
continue;
}
p.update();
renderParticleWithShadows(p);
} else {
particles.remove(p);
}
}
}

private void renderParticleWithShadows(Particle particle) {
Vector2f screenPos = ProjectionUtil.project(particle.pos.x, particle.pos.y, particle.pos.z);
float lifetimeFraction = (System.currentTimeMillis() - particle.time) / MAX_LIFETIME;
float size = PART_SIZE * (1 - lifetimeFraction);

MatrixStack stack = new MatrixStack();
stack.push();

float shadowDistance = 0.2f;

for (int i = 0; i < SHADOW_COUNT; i++) {
float shadowAlpha = (1.0f - (float) i / SHADOW_COUNT) * particle.alpha;
float shadowFactor = 1.0f - lifetimeFraction;
Vector3d shadowPos = particle.pos.add(particle.velocity.scale(-shadowDistance * i * shadowFactor));
Vector2f shadowScreenPos = ProjectionUtil.project(shadowPos.x, shadowPos.y, shadowPos.z);

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, shadowScreenPos.x - size / 2, shadowScreenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)));
}

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, screenPos.x - size / 2, screenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)));

stack.pop();
}

private class Particle {
private Vector3d pos;
private final Vector3d end;
private final Vector3d velocity;
private final long time;
private float alpha;

public Particle() {

pos = mc.player.getPositionVec().add(
ThreadLocalRandom.current().nextDouble(-30, 30),
ThreadLocalRandom.current().nextDouble(-10, 30),
ThreadLocalRandom.current().nextDouble(-30, 30));
end = pos.add(
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3));
velocity = end.subtract(pos).normalize().scale(0.2);
time = System.currentTimeMillis();
alpha = 0.75f;
}

public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}

@Override
    public int onDisable() {
particles.clear();
super.onDisable();
return 0;
}
}
сойдет
 
ура
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
package im.eblan.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.eblan.events.EventDisplay;
import im.eblan.functions.api.Category;
import im.eblan.functions.api.Function;
import im.eblan.functions.api.FunctionRegister;
import im.eblan.utils.client.IMinecraft;
import im.eblan.utils.math.MathUtil;
import im.eblan.utils.projections.ProjectionUtil;
import im.eblan.utils.render.ColorUtils;
import im.eblan.utils.render.DisplayUtils;

import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;

import static net.minecraft.client.renderer.WorldRenderer.frustum;

@FunctionRegister(name = "FireFly", type = Category.Render)
public class FireFly extends Function {

private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
private static final ResourceLocation GLOW_TEXTURE = new ResourceLocation("eblan/images/glow.png");
private static final float MAX_LIFETIME = 5000f;
private static final float PART_SIZE = 8.5f;
private static final int SHADOW_COUNT = 9;

public FireFly() {
addSettings();
}

private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}

@Subscribe
    private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}

// Spawn a new particle
        particles.add(new Particle());

for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > MAX_LIFETIME) {
particles.remove(p);
continue;
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
continue;
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
continue;
}
p.update();
renderParticleWithShadows(p);
} else {
particles.remove(p);
}
}
}

private void renderParticleWithShadows(Particle particle) {
Vector2f screenPos = ProjectionUtil.project(particle.pos.x, particle.pos.y, particle.pos.z);
float lifetimeFraction = (System.currentTimeMillis() - particle.time) / MAX_LIFETIME;
float size = PART_SIZE * (1 - lifetimeFraction);

MatrixStack stack = new MatrixStack();
stack.push();

float shadowDistance = 0.2f;

for (int i = 0; i < SHADOW_COUNT; i++) {
float shadowAlpha = (1.0f - (float) i / SHADOW_COUNT) * particle.alpha;
float shadowFactor = 1.0f - lifetimeFraction;
Vector3d shadowPos = particle.pos.add(particle.velocity.scale(-shadowDistance * i * shadowFactor));
Vector2f shadowScreenPos = ProjectionUtil.project(shadowPos.x, shadowPos.y, shadowPos.z);

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, shadowScreenPos.x - size / 2, shadowScreenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)));
}

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, screenPos.x - size / 2, screenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)));

stack.pop();
}

private class Particle {
private Vector3d pos;
private final Vector3d end;
private final Vector3d velocity;
private final long time;
private float alpha;

public Particle() {

pos = mc.player.getPositionVec().add(
ThreadLocalRandom.current().nextDouble(-30, 30),
ThreadLocalRandom.current().nextDouble(-10, 30),
ThreadLocalRandom.current().nextDouble(-30, 30));
end = pos.add(
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3));
velocity = end.subtract(pos).normalize().scale(0.2);
time = System.currentTimeMillis();
alpha = 0.75f;
}

public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}

@Override
    public int onDisable() {
particles.clear();
super.onDisable();
return 0;
}
}
фризи уже спастил
 
дайте пж метод drawImage1
 
danq паста без обфы
+++, хуйня клиент. разработчик просто пастит югейм, сам ничего сделать не может (даже обф поставить ?)
danq паста без обфы
если без шуток то дев катилки может смело идти нахуй ?
у тя уже реально хуйня клиент в котором ты не то что какой то модуль написать не сможешь, ты координаты в ватермарке не можешь поставить так что бы это не криво было))
 
ура
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
package im.eblan.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.eblan.events.EventDisplay;
import im.eblan.functions.api.Category;
import im.eblan.functions.api.Function;
import im.eblan.functions.api.FunctionRegister;
import im.eblan.utils.client.IMinecraft;
import im.eblan.utils.math.MathUtil;
import im.eblan.utils.projections.ProjectionUtil;
import im.eblan.utils.render.ColorUtils;
import im.eblan.utils.render.DisplayUtils;

import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;

import static net.minecraft.client.renderer.WorldRenderer.frustum;

@FunctionRegister(name = "FireFly", type = Category.Render)
public class FireFly extends Function {

private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
private static final ResourceLocation GLOW_TEXTURE = new ResourceLocation("eblan/images/glow.png");
private static final float MAX_LIFETIME = 5000f;
private static final float PART_SIZE = 8.5f;
private static final int SHADOW_COUNT = 9;

public FireFly() {
addSettings();
}

private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}

@Subscribe
    private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}

// Spawn a new particle
        particles.add(new Particle());

for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > MAX_LIFETIME) {
particles.remove(p);
continue;
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
continue;
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
continue;
}
p.update();
renderParticleWithShadows(p);
} else {
particles.remove(p);
}
}
}

private void renderParticleWithShadows(Particle particle) {
Vector2f screenPos = ProjectionUtil.project(particle.pos.x, particle.pos.y, particle.pos.z);
float lifetimeFraction = (System.currentTimeMillis() - particle.time) / MAX_LIFETIME;
float size = PART_SIZE * (1 - lifetimeFraction);

MatrixStack stack = new MatrixStack();
stack.push();

float shadowDistance = 0.2f;

for (int i = 0; i < SHADOW_COUNT; i++) {
float shadowAlpha = (1.0f - (float) i / SHADOW_COUNT) * particle.alpha;
float shadowFactor = 1.0f - lifetimeFraction;
Vector3d shadowPos = particle.pos.add(particle.velocity.scale(-shadowDistance * i * shadowFactor));
Vector2f shadowScreenPos = ProjectionUtil.project(shadowPos.x, shadowPos.y, shadowPos.z);

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, shadowScreenPos.x - size / 2, shadowScreenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)));
}

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, screenPos.x - size / 2, screenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)));

stack.pop();
}

private class Particle {
private Vector3d pos;
private final Vector3d end;
private final Vector3d velocity;
private final long time;
private float alpha;

public Particle() {

pos = mc.player.getPositionVec().add(
ThreadLocalRandom.current().nextDouble(-30, 30),
ThreadLocalRandom.current().nextDouble(-10, 30),
ThreadLocalRandom.current().nextDouble(-30, 30));
end = pos.add(
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3));
velocity = end.subtract(pos).normalize().scale(0.2);
time = System.currentTimeMillis();
alpha = 0.75f;
}

public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}

@Override
    public int onDisable() {
particles.clear();
super.onDisable();
return 0;
}
}
А метод?
 
Код:
Expand Collapse Copy
    public static void drawImage1(MatrixStack stack, ResourceLocation image, double x, double y, double z, double width, double height, int color1, int color2, int color3, int color4) {
        Minecraft minecraft = Minecraft.getInstance();
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE);
        glShadeModel(GL_SMOOTH);
        glAlphaFunc(GL_GREATER, 0);
        minecraft.getTextureManager().bindTexture(image);
        RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
        Tessellator tessellator = Tessellator.getInstance();
        BufferBuilder bufferBuilder = tessellator.getBuffer();
        bufferBuilder.begin(GL_QUADS, POSITION_COLOR_TEX_LIGHTMAP);
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) (y + height), (float) (z)).color((color1 >> 16) & 0xFF, (color1 >> 8) & 0xFF, color1 & 0xFF, color1 >>> 24).tex(0, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) (y + height), (float) (z)).color((color2 >> 16) & 0xFF, (color2 >> 8) & 0xFF, color2 & 0xFF, color2 >>> 24).tex(1, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) y, (float) z).color((color3 >> 16) & 0xFF, (color3 >> 8) & 0xFF, color3 & 0xFF, color3 >>> 24).tex(1, 0).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) y, (float) z).color((color4 >> 16) & 0xFF, (color4 >> 8) & 0xFF, color4 & 0xFF, color4 >>> 24).tex(0, 0).lightmap(0, 240).endVertex();

        tessellator.draw();
        disableBlend();
дайте пж метод drawImage1
 
ура
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
package im.eblan.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.eblan.events.EventDisplay;
import im.eblan.functions.api.Category;
import im.eblan.functions.api.Function;
import im.eblan.functions.api.FunctionRegister;
import im.eblan.utils.client.IMinecraft;
import im.eblan.utils.math.MathUtil;
import im.eblan.utils.projections.ProjectionUtil;
import im.eblan.utils.render.ColorUtils;
import im.eblan.utils.render.DisplayUtils;

import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;

import static net.minecraft.client.renderer.WorldRenderer.frustum;

@FunctionRegister(name = "FireFly", type = Category.Render)
public class FireFly extends Function {

private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
private static final ResourceLocation GLOW_TEXTURE = new ResourceLocation("eblan/images/glow.png");
private static final float MAX_LIFETIME = 5000f;
private static final float PART_SIZE = 8.5f;
private static final int SHADOW_COUNT = 9;

public FireFly() {
addSettings();
}

private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}

@Subscribe
    private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}

// Spawn a new particle
        particles.add(new Particle());

for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > MAX_LIFETIME) {
particles.remove(p);
continue;
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
continue;
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
continue;
}
p.update();
renderParticleWithShadows(p);
} else {
particles.remove(p);
}
}
}

private void renderParticleWithShadows(Particle particle) {
Vector2f screenPos = ProjectionUtil.project(particle.pos.x, particle.pos.y, particle.pos.z);
float lifetimeFraction = (System.currentTimeMillis() - particle.time) / MAX_LIFETIME;
float size = PART_SIZE * (1 - lifetimeFraction);

MatrixStack stack = new MatrixStack();
stack.push();

float shadowDistance = 0.2f;

for (int i = 0; i < SHADOW_COUNT; i++) {
float shadowAlpha = (1.0f - (float) i / SHADOW_COUNT) * particle.alpha;
float shadowFactor = 1.0f - lifetimeFraction;
Vector3d shadowPos = particle.pos.add(particle.velocity.scale(-shadowDistance * i * shadowFactor));
Vector2f shadowScreenPos = ProjectionUtil.project(shadowPos.x, shadowPos.y, shadowPos.z);

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, shadowScreenPos.x - size / 2, shadowScreenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * shadowAlpha)));
}

DisplayUtils.drawImage1(stack, GLOW_TEXTURE, screenPos.x - size / 2, screenPos.y - size / 2, 0,
size, size,
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)),
ColorUtils.setAlpha(HUD.getColor(particles.indexOf(particle), 1), (int) (255 * particle.alpha)));

stack.pop();
}

private class Particle {
private Vector3d pos;
private final Vector3d end;
private final Vector3d velocity;
private final long time;
private float alpha;

public Particle() {

pos = mc.player.getPositionVec().add(
ThreadLocalRandom.current().nextDouble(-30, 30),
ThreadLocalRandom.current().nextDouble(-10, 30),
ThreadLocalRandom.current().nextDouble(-30, 30));
end = pos.add(
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3),
ThreadLocalRandom.current().nextFloat(-3, 3));
velocity = end.subtract(pos).normalize().scale(0.2);
time = System.currentTimeMillis();
alpha = 0.75f;
}

public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}

@Override
    public int onDisable() {
particles.clear();
super.onDisable();
return 0;
}
}
метод
Код:
Expand Collapse Copy
    public static void drawImage1(MatrixStack stack, ResourceLocation image, double x, double y, double z, double width, double height, int color1, int color2, int color3, int color4) {
        Minecraft minecraft = Minecraft.getInstance();
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE);
        glShadeModel(GL_SMOOTH);
        glAlphaFunc(GL_GREATER, 0);
        minecraft.getTextureManager().bindTexture(image);
        RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
        Tessellator tessellator = Tessellator.getInstance();
        BufferBuilder bufferBuilder = tessellator.getBuffer();
        bufferBuilder.begin(GL_QUADS, POSITION_COLOR_TEX_LIGHTMAP);
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) (y + height), (float) (z)).color((color1 >> 16) & 0xFF, (color1 >> 8) & 0xFF, color1 & 0xFF, color1 >>> 24).tex(0, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) (y + height), (float) (z)).color((color2 >> 16) & 0xFF, (color2 >> 8) & 0xFF, color2 & 0xFF, color2 >>> 24).tex(1, 1 - 0.01f).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) (x + width), (float) y, (float) z).color((color3 >> 16) & 0xFF, (color3 >> 8) & 0xFF, color3 & 0xFF, color3 >>> 24).tex(1, 0).lightmap(0, 240).endVertex();
        bufferBuilder.pos(stack.getLast().getMatrix(), (float) x, (float) y, (float) z).color((color4 >> 16) & 0xFF, (color4 >> 8) & 0xFF, color4 & 0xFF, color4 >>> 24).tex(0, 0).lightmap(0, 240).endVertex();

        tessellator.draw();
        disableBlend();
вроде нормалек, жалко что 2д
 
удали нахуй браузер и не скачивай его больше
1745869058984.png
тише пж
 
я уже думал, что люди додумались на 1.8 хуярить приколы с фаер-болами, а нет.
очередная визуалка :roflanBuldiga:
 
Назад
Сверху Снизу