evo/src/main/java/defpackage/wd.java

1415 lines
47 KiB
Java

package defpackage;
import com.mojang.blaze3d.PrimitiveTopology;
import com.mojang.blaze3d.textures.GpuTextureView;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack.Pose;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
import net.fabricmc.fabric.api.client.rendering.v1.level.LevelRenderContext;
import net.minecraft.client.Camera;
import net.minecraft.client.renderer.SubmitNodeCollector;
import net.minecraft.client.renderer.rendertype.RenderType;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.projectile.Projectile;
import net.minecraft.world.phys.Vec3;
@rn(name = "ProjectileTrails", description = "Draws fading trails behind arrows, pearls and other projectiles", category = rl.RENDER)
public final class wd extends rm {
private static final String FILL_NORMAL = "Normal";
private static final String FILL_SHADER = "Shader";
private static final String SHADER_NEBULA = "Nebula";
private static final String SHADER_COSMOS = "Cosmos";
private static final String SHADER_WEB = "Web";
private static final String SHADER_PLASMA = "Plasma";
private static final String SHADER_GLASS = "LiquidGlass";
private static final String SHADER_MATRIX = "Matrix";
private static final String SHADER_ARMOR = "LivingArmor";
private static final String SHADER_ALIEN = "AlienNebula";
private static final double MIN_STEP_SQ = 0.01;
private static final int MAX_POINTS = 256;
private static final float DEGENERATE_SQ = 1.0E-7F;
private static final float FILL_ALPHA = 0.5F;
private static final float LINE_ALPHA = 1.0F;
private static final float FADE_RAMP = 3.0F;
private static final int RIBBON_STRIPS = 3;
private static final float[] RIBBON_OFFSETS;
private static final float[] RIBBON_EDGE_ALPHA;
private static final float[] RIBBON_V;
private final sm durationSetting = new sm(
"Duration", 500.0F, 100.0F, 2000.0F, 50.0F
)
.description("How long the trail segments last in milliseconds");
private final sm widthSetting = new sm("Width", 0.15F, 0.05F, 1.5F, 0.05F)
.description(
"Width of the trail ribbon in blocks"
);
private final sm lineWidthSetting = new sm(
"Line width", 2.0F, 1.0F, 5.0F, 0.5F
)
.description("Thickness of the trail outline");
private final ru fillSetting = new ru(
"Fill", (boolean)((((-1835055499 ^ 1835055500) + ((-1835055499 & 1835055500) << 1))
) != 0))
.description(
"Fill the inside of the trail"
);
private final sg fillType;
private final sg shaderType;
private final sm shaderSpeed;
private final sm shaderAlpha;
private final sg shaderColorSetting;
private final rx shaderCustomColor;
private final ru linesSetting;
private final sg colorSetting;
private final rx customColorSetting;
private final Map<Integer, List<wc>> trails;
private final float[] frameCenter;
private final float[] frameSide;
private wd() {
String var10003 = "Fill type";
Supplier var10004 = this.fillSetting::isEnabled;
String[] var10005 = new String[2];
var10005[0] = "Normal";
var10005[1] = "Shader";
this.fillType = new sg(var10003, var10004, var10005)
.describe(
"Normal",
"Solid color fill"
)
.describe(
"Shader",
"Animated shader fill"
)
.description(
"Type of fill applied to the trail"
);
var10003 = "Shader";
var10004 = () -> {
int var2x = 0;
int var1x = -767466800;
while (true) {
switch (var1x) {
case -1466762694:
if (this.fillType.is("Shader")) {
var1x = -606020730;
} else {
var1x = 1077654320;
}
break;
case -767466800:
default:
if (this.fillSetting.isEnabled()) {
var1x = -1466762694;
} else {
var1x = 1077654320;
}
break;
case -606020730:
var2x = 1;
var1x = 778022059;
break;
case 778022059:
return Boolean.valueOf((boolean)((var2x) != 0));
case 1077654320:
var2x = 0;
var1x = 778022059;
}
}
};
var10005 = new String[8];
var10005[0] = "Nebula";
var10005[1] = "Cosmos";
var10005[2] = "Web";
var10005[3] = "Plasma";
var10005[4] = "LiquidGlass";
var10005[5] = "Matrix";
var10005[6] = "LivingArmor";
var10005[7] = "AlienNebula";
this.shaderType = new sg(var10003, var10004, var10005)
.describe(
"Nebula",
"Purple nebula effect"
)
.describe(
"Cosmos",
"Starry cosmos effect"
)
.describe(
"Web",
"Intertwined web effect"
)
.describe(
"Plasma",
"Flowing plasma effect"
)
.describe(
"LiquidGlass",
"Shiny glass effect"
)
.describe(
"Matrix",
"Falling code effect"
)
.describe(
"LivingArmor",
"Enchanted armor glint"
)
.describe(
"AlienNebula",
"Alien-like distorted effect"
)
.description(
"Shader effect for the trail fill"
);
this.shaderSpeed = new sm(
"Shader speed", 1.0F, 0.1F, 3.0F, 0.1F, () -> {
int var2x = 0;
int var1x = 261212318;
while (true) {
switch (var1x) {
case -1729595927:
var2x = 0;
var1x = 1959718781;
break;
case -1566453895:
var2x = 1;
var1x = 1959718781;
break;
case -674666271:
if (this.fillType.is("Shader")) {
var1x = -1566453895;
} else {
var1x = -1729595927;
}
break;
case 261212318:
default:
if (this.fillSetting.isEnabled()) {
var1x = -674666271;
} else {
var1x = -1729595927;
}
break;
case 1959718781:
return Boolean.valueOf((boolean)((var2x) != 0));
}
}
}
)
.description(
"Animation speed for the shader fill"
);
this.shaderAlpha = new sm(
"Shader opacity", 1.0F, 0.1F, 1.0F, 0.05F, () -> {
int var2x = 0;
int var1x = -1811510907;
while (true) {
switch (var1x) {
case -1811510907:
default:
if (this.fillSetting.isEnabled()) {
var1x = 242484447;
} else {
var1x = 158231874;
}
break;
case -1506562873:
return Boolean.valueOf((boolean)((var2x) != 0));
case -137455219:
var2x = 1;
var1x = -1506562873;
break;
case 158231874:
var2x = 0;
var1x = -1506562873;
break;
case 242484447:
if (this.fillType.is("Shader")) {
var1x = -137455219;
} else {
var1x = 158231874;
}
}
}
}
)
.description("Transparency of the shader fill");
var10003 = "Shader color";
var10004 = () -> {
int var2x = 0;
int var1x = -1841909050;
while (true) {
switch (var1x) {
case -1841909050:
default:
if (this.fillSetting.isEnabled()) {
var1x = -1486121667;
} else {
var1x = 1059889594;
}
break;
case -1486121667:
if (this.fillType.is("Shader")) {
var1x = 1946822530;
} else {
var1x = 1059889594;
}
break;
case 845275146:
return Boolean.valueOf((boolean)((var2x) != 0));
case 1059889594:
var2x = 0;
var1x = 845275146;
break;
case 1946822530:
var2x = 1;
var1x = 845275146;
}
}
};
var10005 = new String[3];
var10005[0] = "Client";
var10005[1] = "Rainbow";
var10005[2] = "Custom";
this.shaderColorSetting = new sg(var10003, var10004, var10005)
.describe(
"Client",
"Use the client theme color"
)
.describe(
"Rainbow",
"Rainbow shifting colors"
)
.describe(
"Custom",
"Use a custom chosen color"
)
.description("Color mode for the shader");
this.shaderCustomColor = new rx(
"Shader custom color",
bz.getInstance().getThemeManager().getCurrentTheme().getColor(),
() -> {
int var2x = 0;
int var1x = -969047128;
while (true) {
switch (var1x) {
case -969047128:
default:
if (this.fillSetting.isEnabled()) {
var1x = 940119081;
} else {
var1x = 437701366;
}
break;
case 5239551:
return Boolean.valueOf((boolean)((var2x) != 0));
case 292138910:
if (this.shaderColorSetting.is("Custom")) {
var1x = 1776320745;
} else {
var1x = 437701366;
}
break;
case 437701366:
var2x = 0;
var1x = 5239551;
break;
case 940119081:
if (this.fillType.is("Shader")) {
var1x = 292138910;
} else {
var1x = 437701366;
}
break;
case 1776320745:
var2x = 1;
var1x = 5239551;
}
}
}
)
.description(
"Custom color for the shader fill"
);
this.linesSetting = new ru(
"Lines",
(boolean)((((2038809336 ^ -2038809335) + ((2038809336 & -2038809335) << 1))
) != 0))
.description(
"Draw outlining lines on the edges of the trail"
);
var10003 = "Color";
String[] var6 = new String[3];
var6[0] = "Client";
var6[1] = "Rainbow";
var6[2] = "Custom";
this.colorSetting = new sg(var10003, var6)
.describe(
"Client",
"Use the client theme color"
)
.describe(
"Rainbow",
"Rainbow shifting colors"
)
.describe(
"Custom",
"Use a custom chosen color"
)
.description(
"Color mode for the trail"
);
this.customColorSetting = new rx(
"Custom color",
bz.getInstance().getThemeManager().getCurrentTheme().getColor(),
() -> this.colorSetting.is("Custom")
)
.description(
"Custom color for the trail"
);
this.trails = new HashMap<>();
this.frameCenter = new float[768];
this.frameSide = new float[768];
}
@Override
public void onEnable() {
super.onEnable();
this.trails.clear();
}
@Override
public void onDisable() {
super.onDisable();
this.trails.clear();
}
public void onWorldRender(LevelRenderContext var1) {
PoseStack var2 = null;
Camera var3 = null;
SubmitNodeCollector var4 = null;
int var5 = 0;
Vec3 var6 = null;
float var7 = 0.0F;
int var9 = 0;
int var8 = -1571585088;
while (true) {
switch (var8) {
case -1998598873:
if (this.fillSetting.isEnabled()) {
var8 = -1090114210;
} else {
var8 = 1899765082;
}
break;
case -1607756652:
if (var5 == 0) {
var8 = 128408944;
} else {
var8 = 1172466878;
}
break;
case -1571585088:
default:
if (this.isEnabled()) {
var8 = -221577796;
} else {
var8 = 2057896224;
}
break;
case -1090114210:
if (this.fillType.is("Shader")) {
var8 = 171369419;
} else {
var8 = 1899765082;
}
break;
case -945144871:
var4 = var1.submitNodeCollector();
if (var4 == null) {
var8 = 1866749795;
} else {
var8 = -1998598873;
}
break;
case -423060045:
var2 = var1.poseStack();
var3 = mc.getEntityRenderDispatcher().camera;
if (var2 != null) {
var8 = 676396969;
} else {
var8 = 685928468;
}
break;
case -221577796:
if (mc.player != null) {
var8 = 1868700952;
} else {
var8 = 2057896224;
}
break;
case -14739929:
this.renderLines(var4, var2, var6, var7);
var8 = 1629975497;
break;
case 128408944:
this.renderNormalFill(var4, var2, var6, var7);
var8 = 1172466878;
break;
case 171369419:
var9 = 1;
var8 = 1456227725;
break;
case 676396969:
if (var3 == null) {
var8 = 685928468;
} else {
var8 = 1289682637;
}
break;
case 685928468:
return;
case 1172466878:
if (this.linesSetting.isEnabled()) {
var8 = 1578045720;
} else {
var8 = 1629975497;
}
break;
case 1289682637:
this.updateTrails();
if (this.trails.isEmpty()) {
var8 = 1975360946;
} else {
var8 = -945144871;
}
break;
case 1456227725:
var5 = var9;
var6 = var3.position();
var7 = this.widthSetting.getCurrent();
if (this.fillSetting.isEnabled()) {
var8 = -1607756652;
} else {
var8 = 1172466878;
}
break;
case 1578045720:
if (var5 == 0) {
var8 = -14739929;
} else {
var8 = 1629975497;
}
break;
case 1629975497:
return;
case 1866749795:
return;
case 1868700952:
if (mc.level == null) {
var8 = 2057896224;
} else {
var8 = -423060045;
}
break;
case 1899765082:
var9 = 0;
var8 = 1456227725;
break;
case 1975360946:
return;
case 2057896224:
return;
}
}
}
public void onWorldDraw(LevelRenderContext var1) {
Camera var2 = null;
int var3 = 1457256363;
while (true) {
switch (var3) {
case -2102352518:
return;
case -1774515102:
return;
case -1321187869:
if (!this.fillType.is("Shader")) {
var3 = 1922395829;
} else {
var3 = 99740235;
}
break;
case -511077802:
return;
case -507890340:
if (this.fillSetting.isEnabled()) {
var3 = -1321187869;
} else {
var3 = 1922395829;
}
break;
case 54493499:
if (mc.player != null) {
var3 = 1422062373;
} else {
var3 = -2102352518;
}
break;
case 99740235:
if (this.trails.isEmpty()) {
var3 = -511077802;
} else {
var3 = 942313149;
}
break;
case 399209210:
this.renderShaderFill(var2.position(), this.widthSetting.getCurrent());
return;
case 942313149:
var2 = mc.getEntityRenderDispatcher().camera;
if (var2 == null) {
var3 = -1774515102;
} else {
var3 = 399209210;
}
break;
case 1422062373:
if (mc.level == null) {
var3 = -2102352518;
} else {
var3 = -507890340;
}
break;
case 1457256363:
default:
if (this.isEnabled()) {
var3 = 54493499;
} else {
var3 = -2102352518;
}
break;
case 1922395829:
return;
}
}
}
private void updateTrails() {
long var1 = System.currentTimeMillis();
long var3 = (long)this.durationSetting.getCurrent();
for (Entity var6 : mc.level.entitiesForRendering()) {
if (var6 instanceof Projectile) {
List var7 = this.trails.computeIfAbsent(var6.getId(), var0 -> new ArrayList<>());
Vec3 var8 = aqj.interpolate(var6);
if (var7.isEmpty() || ((wc)var7.get(var7.size() - ((783373370 ^ -783373369) + ((783373370 & -783373369) << 1)))).pos.distanceToSqr(var8) > 0.01) {
var7.add(new wc(var8, var1));
if (var7.size() > (-1140363555 ^ 1140363811) + ((-1140363555 & 1140363811) << 1)) {
var7.remove((-90405673 | 90405673) + (-90405673 & 90405673));
}
}
}
}
Iterator var9 = this.trails.values().iterator();
while (var9.hasNext()) {
List var10 = (List)var9.next();
while (!var10.isEmpty() && var1 - ((wc)var10.get((1804681884 | -1804681884) + (1804681884 & -1804681884))).time > var3) {
var10.remove((-1167521895 | 1167521895) + (-1167521895 & 1167521895));
}
if (var10.isEmpty()) {
var9.remove();
}
}
}
private int computeFrame(List<wc> var1, Vec3 var2) {
int var3 = Math.min(var1.size(), (-1335696726 ^ 1335696982) + ((-1335696726 & 1335696982) << 1));
for (int var4 = 0; var4 < var3; var4++) {
Vec3 var5 = ((wc)var1.get(var4)).pos;
int var6 = var4 * (3);
this.frameCenter[var6] = (float)(var5.x - var2.x);
this.frameCenter[var6 + 1] = (float)(var5.y - var2.y);
this.frameCenter[var6 + 2] = (float)(var5.z - var2.z);
}
for (int var20 = 0; var20 < var3; var20++) {
int var21 = var20 * (3);
int var22 = Math.max(
0, var20 - ((1330874759 ^ -1330874758) + ((1330874759 & -1330874758) << 1))
)
* ((1020571151 | -1020571148) + (1020571151 & -1020571148));
int var7 = Math.min(var3 - (1), var20 + (1495598724 | -1495598723) + (1495598724 & -1495598723))
* ((67689744 | -67689741) + (67689744 & -67689741));
float var8 = this.frameCenter[var7] - this.frameCenter[var22];
float var9 = this.frameCenter[var7 + 1]
- this.frameCenter[var22 + 1];
float var10 = this.frameCenter[var7 + 2]
- this.frameCenter[var22 + 2];
if (var8 * var8 + var9 * var9 + var10 * var10 < 1.0E-7F) {
var8 = 0.0F;
var9 = 0.0F;
var10 = 1.0F;
}
float var11 = this.frameCenter[var21];
float var12 = this.frameCenter[var21 + 1];
float var13 = this.frameCenter[var21 + 2];
float var14 = var11 * var11 + var12 * var12 + var13 * var13;
if (var14 < 1.0E-7F) {
var11 = 0.0F;
var12 = 0.0F;
var13 = 1.0F;
}
float var15 = var9 * var13 - var10 * var12;
float var16 = var10 * var11 - var8 * var13;
float var17 = var8 * var12 - var9 * var11;
float var18 = var15 * var15 + var16 * var16 + var17 * var17;
if (var18 < 1.0E-7F) {
var15 = -var10;
var16 = 0.0F;
var17 = var8;
var18 = var15 * var15 + var17 * var17;
if (var18 < 1.0E-7F) {
var15 = 1.0F;
var16 = 0.0F;
var17 = 0.0F;
var18 = 1.0F;
}
}
float var19 = Mth.invSqrt(var18);
this.frameSide[var21] = var15 * var19;
this.frameSide[var21 + 1] = var16 * var19;
this.frameSide[var21 + 2] = var17 * var19;
}
return var3;
}
private void renderNormalFill(SubmitNodeCollector var1, PoseStack var2, Vec3 var3, float var4) {
float var5 = var4 * 0.5F;
RenderType var6 = arj.positionColor();
var1.submitCustomGeometry(var2, var6, (var3x, var4x) -> {
Iterator var5x = null;
List var6x = null;
int var7 = 0;
int var8 = 0;
int var9 = 0;
int var10 = 0;
int var11 = 176915987;
while (true) {
switch (var11) {
case -1642704720:
var11 = -1622212356;
break;
case -1622212356:
if (var5x.hasNext()) {
var11 = 744634179;
} else {
var11 = 254831604;
}
break;
case -413984356:
var9 = this.color(var8, var7, 0.5F);
var10 = this.color(var8 + 1, var7, 0.5F);
this.framedVertex(var4x, var3x, var8, -var5, var9);
this.framedVertex(var4x, var3x, var8, var5, var9);
this.framedVertex(var4x, var3x, var8 + 1, var5, var10);
this.framedVertex(var4x, var3x, var8 + 1, -var5, var10);
var8++;
var11 = 391843045;
break;
case 176915987:
default:
var5x = this.trails.values().iterator();
var11 = -1622212356;
break;
case 254831604:
return;
case 391843045:
if (var8 < var7 - ((-1389266876 ^ 1389266877) + ((-1389266876 & 1389266877) << 1))) {
var11 = -413984356;
} else {
var11 = -1642704720;
}
break;
case 744634179:
var6x = (List)var5x.next();
var7 = this.computeFrame(var6x, var3);
var8 = 0;
var11 = 391843045;
}
}
});
}
private void renderLines(SubmitNodeCollector var1, PoseStack var2, Vec3 var3, float var4) {
float var5 = var4 * 0.5F;
float var6 = this.lineWidthSetting.getCurrent();
RenderType var7 = arj.lines();
var1.submitCustomGeometry(
var2,
var7,
(var4x, var5x) -> {
Iterator var6x = null;
List var7x = null;
int var8 = 0;
int var9 = 0;
float var10 = 0.0F;
int var11 = 0;
int var12 = 0;
int var13 = 0;
float var14 = 0.0F;
float var15 = 0.0F;
float var16 = 0.0F;
float var17 = 0.0F;
float var18 = 0.0F;
float var19 = 0.0F;
float var20 = 0.0F;
float var21 = 0.0F;
float var22 = 0.0F;
float var23 = 0.0F;
float var24 = 0.0F;
float var26 = 0.0F;
int var25 = 817383800;
while (true) {
switch (var25) {
case -1550107066:
var10 = var26;
var11 = 0;
var25 = -793246970;
break;
case -1486828875:
if (var6x.hasNext()) {
var25 = 1881891134;
} else {
var25 = -959131136;
}
break;
case -996122445:
var24 = Mth.invSqrt(var23);
var20 *= var24;
var21 *= var24;
var22 *= var24;
var25 = -389960731;
break;
case -959131136:
return;
case -793246970:
if (var11 < var8 - ((-1646283177 ^ 1646283178) + ((-1646283177 & 1646283178) << 1))) {
var25 = 1785937143;
} else {
var25 = 668106593;
}
break;
case -389960731:
var5x.addVertex(var4x, var14, var15, var16)
.setColor(this.color(var11, var8, 1.0F))
.setNormal(var4x, var20, var21, var22)
.setLineWidth(var6);
var5x.addVertex(var4x, var17, var18, var19)
.setColor(this.color(var11 + 1, var8, 1.0F))
.setNormal(var4x, var20, var21, var22)
.setLineWidth(var6);
var11++;
var25 = -793246970;
break;
case -374377480:
if (var9 == 0) {
var25 = 1135529971;
} else {
var25 = 1027752474;
}
break;
case -243189644:
if (var9 < (-372227962 | 372227964) + (-372227962 & 372227964)) {
var25 = -374377480;
} else {
var25 = 1064571878;
}
break;
case 668106593:
var9++;
var25 = -243189644;
break;
case 817383800:
default:
var6x = this.trails.values().iterator();
var25 = -1486828875;
break;
case 1027752474:
var26 = var5;
var25 = -1550107066;
break;
case 1064571878:
var25 = -1486828875;
break;
case 1135529971:
var26 = -var5;
var25 = -1550107066;
break;
case 1785937143:
var12 = var11 * (3);
var13 = (var11 + (2057690112 | -2057690111) + (2057690112 & -2057690111)) * ((-329797389 | 329797392) + (-329797389 & 329797392));
var14 = this.frameCenter[var12] + this.frameSide[var12] * var10;
var15 = this.frameCenter[var12 + 1]
+ this.frameSide[var12 + 1] * var10;
var16 = this.frameCenter[var12 + 2]
+ this.frameSide[var12 + 2] * var10;
var17 = this.frameCenter[var13] + this.frameSide[var13] * var10;
var18 = this.frameCenter[var13 + 1]
+ this.frameSide[var13 + 1] * var10;
var19 = this.frameCenter[var13 + 2]
+ this.frameSide[var13 + 2] * var10;
var20 = var17 - var14;
var21 = var18 - var15;
var22 = var19 - var16;
var23 = var20 * var20 + var21 * var21 + var22 * var22;
if (var23 > 0.0F) {
var25 = -996122445;
} else {
var25 = -389960731;
}
break;
case 1881891134:
var7x = (List)var6x.next();
var8 = this.computeFrame(var7x, var3);
var9 = 0;
var25 = -243189644;
}
}
}
);
}
private void renderShaderFill(Vec3 var1, float var2) {
atd var3 = null;
int var4 = 0;
int var5 = 0;
float var6 = 0.0F;
float var7 = 0.0F;
float var8 = 0.0F;
float var9 = 0.0F;
float var10 = 0.0F;
GpuTextureView var11 = null;
int var12 = 0;
int var13 = 0;
BufferBuilder var14 = null;
Iterator var15 = null;
List var16 = null;
int var17 = 0;
GpuTextureView var19 = null;
int var20 = 0;
int var18 = 1192270065;
while (true) {
switch (var18) {
case -2129513622:
var4 = (this.shaderType.is("LiquidGlass")) ? 1 : 0;
var5 = this.shaderTintColor();
var6 = (var5 >> (2066732930 | -2066732914) + (2066732930 & -2066732914) & (1345742626 ^ -1345742371) + ((1345742626 & -1345742371) << 1))
/ 255.0F;
var7 = (var5 >> (184094789 ^ -184094781) + ((184094789 & -184094781) << 1) & (1337584907 | -1337584652) + (1337584907 & -1337584652)) / 255.0F;
var8 = (var5 & (281486990 ^ -281486735) + ((281486990 & -281486735) << 1)) / 255.0F;
var9 = (float)(
System.currentTimeMillis() % ((-5203275026276854665L ^ 5203275026276954665L) + ((-5203275026276854665L & 5203275026276954665L) << 1))
)
/ 1000.0F
* this.shaderSpeed.getCurrent();
var10 = var2 * 0.5F;
if (var4 != 0) {
var18 = 1524616818;
} else {
var18 = -1226019624;
}
break;
case -1957136847:
var14 = arj.begin(PrimitiveTopology.QUADS, DefaultVertexFormat.POSITION_COLOR);
var15 = this.trails.values().iterator();
var18 = -1253122355;
break;
case -1702805762:
if (var13 < var12) {
var18 = 1121117735;
} else {
var18 = -1070021180;
}
break;
case -1563223399:
if (var4 != 0) {
var18 = 1930294807;
} else {
var18 = -8431082;
}
break;
case -1253122355:
if (var15.hasNext()) {
var18 = -172166605;
} else {
var18 = 27396462;
}
break;
case -1226019624:
var19 = null;
var18 = 753879135;
break;
case -1070021180:
return;
case -924609688:
this.emitGlassRibbon(var14, var17, var10);
var18 = 958404771;
break;
case -731881322:
if (this.shaderType.is("AlienNebula")) {
var18 = 203725011;
} else {
var18 = 854663748;
}
break;
case -172166605:
var16 = (List)var15.next();
var17 = this.computeFrame(var16, var1);
if (var4 != 0) {
var18 = -924609688;
} else {
var18 = 1059432532;
}
break;
case -8431082:
var20 = 2;
var18 = 1158133156;
break;
case 27396462:
arj.drawCurrent(var14);
var13++;
var18 = -1702805762;
break;
case 203725011:
var3.setCameraPos((float)var1.x, (float)var1.y, (float)var1.z);
var18 = 854663748;
break;
case 331711290:
return;
case 452712203:
if (var11 == null) {
var18 = 331711290;
} else {
var18 = -1563223399;
}
break;
case 753879135:
var11 = var19;
if (var4 != 0) {
var18 = 452712203;
} else {
var18 = -1563223399;
}
break;
case 854663748:
arj.setCurrentLayer(arj.positionColor());
if (var4 != 0) {
var18 = 1116591961;
} else {
var18 = -1957136847;
}
break;
case 958404771:
var18 = -1253122355;
break;
case 1059432532:
this.emitRibbon(var14, var17, var10);
var18 = 958404771;
break;
case 1116591961:
atd.bindTexture(var11, (boolean)((((1113389335 ^ -1113389334) + ((1113389335 & -1113389334) << 1))) != 0));
var18 = -1957136847;
break;
case 1121117735:
var3.use();
var3.setResolution(mc.getWindow().getWidth(), mc.getWindow().getHeight());
var3.setTime(var9);
var3.setTintColor(var6, var7, var8);
var3.setFade(this.shaderAlpha.getCurrent());
if (!this.shaderType.is("LivingArmor")) {
var18 = -731881322;
} else {
var18 = 203725011;
}
break;
case 1158133156:
var12 = var20;
var13 = 0;
var18 = -1702805762;
break;
case 1192270065:
default:
var3 = this.shaderProgram();
if (var3 == null) {
var18 = 1795913374;
} else {
var18 = -2129513622;
}
break;
case 1524616818:
var19 = atb.sceneSnapshot();
var18 = 753879135;
break;
case 1795913374:
return;
case 1930294807:
var20 = 1;
var18 = 1158133156;
}
}
}
private void emitRibbon(BufferBuilder var1, int var2, float var3) {
int var4 = 0;
float var5 = 0.0F;
float var6 = 0.0F;
int var7 = 0;
int var8 = 1098660214;
while (true) {
switch (var8) {
case -1181645957:
this.ribbonVertex(var1, var4, RIBBON_OFFSETS[var7] * var3, whiteAlpha(var5 * RIBBON_EDGE_ALPHA[var7]));
this.ribbonVertex(
var1,
var4,
RIBBON_OFFSETS[var7 + 1] * var3,
whiteAlpha(var5 * RIBBON_EDGE_ALPHA[var7 + 1])
);
this.ribbonVertex(
var1,
var4 + 1,
RIBBON_OFFSETS[var7 + 1] * var3,
whiteAlpha(var6 * RIBBON_EDGE_ALPHA[var7 + 1])
);
this.ribbonVertex(
var1, var4 + 1, RIBBON_OFFSETS[var7] * var3, whiteAlpha(var6 * RIBBON_EDGE_ALPHA[var7])
);
var7++;
var8 = 262894918;
break;
case -994912731:
if (var4 < var2 - ((1735334934 | -1735334933) + (1735334934 & -1735334933))) {
var8 = -687501945;
} else {
var8 = 741202183;
}
break;
case -687501945:
var5 = Math.min(1.0F, (float)var4 / (var2 - ((-1234487299 | 1234487300) + (-1234487299 & 1234487300))) * 3.0F);
var6 = Math.min(
1.0F,
(float)(var4 + (1432420421 ^ -1432420420) + ((1432420421 & -1432420420) << 1))
/ (var2 - ((813016744 | -813016743) + (813016744 & -813016743)))
* 3.0F
);
var7 = 0;
var8 = 262894918;
break;
case 262894918:
if (var7 < (-2049415358 | 2049415361) + (-2049415358 & 2049415361)) {
var8 = -1181645957;
} else {
var8 = 793853511;
}
break;
case 741202183:
return;
case 793853511:
var4++;
var8 = -994912731;
break;
case 1098660214:
default:
var4 = 0;
var8 = -994912731;
}
}
}
private void emitGlassRibbon(BufferBuilder var1, int var2, float var3) {
int var4 = 0;
float var5 = 0.0F;
float var6 = 0.0F;
float var7 = 0.0F;
float var8 = 0.0F;
int var9 = 0;
int var10 = -631551795;
while (true) {
switch (var10) {
case -1135202852:
this.ribbonVertex(var1, var4, RIBBON_OFFSETS[var9] * var3, glassColor(RIBBON_V[var9], var7, var5));
this.ribbonVertex(
var1,
var4,
RIBBON_OFFSETS[var9 + 1] * var3,
glassColor(RIBBON_V[var9 + 1], var7, var5)
);
this.ribbonVertex(
var1,
var4 + 1,
RIBBON_OFFSETS[var9 + 1] * var3,
glassColor(RIBBON_V[var9 + 1], var8, var6)
);
this.ribbonVertex(
var1,
var4 + 1,
RIBBON_OFFSETS[var9] * var3,
glassColor(RIBBON_V[var9], var8, var6)
);
var9++;
var10 = 421958508;
break;
case -706079704:
var4++;
var10 = 1182751768;
break;
case -631551795:
default:
var4 = 0;
var10 = 1182751768;
break;
case 421958508:
if (var9 < (-263021749 | 263021752) + (-263021749 & 263021752)) {
var10 = -1135202852;
} else {
var10 = -706079704;
}
break;
case 953909546:
return;
case 1182751768:
if (var4 < var2 - ((-394420389 ^ 394420390) + ((-394420389 & 394420390) << 1))) {
var10 = 1510750903;
} else {
var10 = 953909546;
}
break;
case 1510750903:
var5 = Math.min(1.0F, (float)var4 / (var2 - ((938784858 | -938784857) + (938784858 & -938784857))) * 3.0F);
var6 = Math.min(
1.0F,
(float)(var4 + (-1914325727 ^ 1914325728) + ((-1914325727 & 1914325728) << 1))
/ (var2 - ((-747573539 | 747573540) + (-747573539 & 747573540)))
* 3.0F
);
var7 = (float)var4 / (var2 - ((-2123565223 | 2123565224) + (-2123565223 & 2123565224)));
var8 = (float)(var4 + (250790144 ^ -250790143) + ((250790144 & -250790143) << 1))
/ (var2 - ((-115961918 | 115961919) + (-115961918 & 115961919)));
var9 = 0;
var10 = 421958508;
}
}
}
private void ribbonVertex(BufferBuilder var1, int var2, float var3, int var4) {
int var5 = var2 * (3);
var1.addVertex(
this.frameCenter[var5] + this.frameSide[var5] * var3,
this.frameCenter[var5 + 1]
+ this.frameSide[var5 + 1] * var3,
this.frameCenter[var5 + 2]
+ this.frameSide[var5 + 2] * var3
)
.setColor(var4);
}
private void framedVertex(VertexConsumer var1, Pose var2, int var3, float var4, int var5) {
int var6 = var3 * (3);
var1.addVertex(
var2,
this.frameCenter[var6] + this.frameSide[var6] * var4,
this.frameCenter[var6 + 1]
+ this.frameSide[var6 + 1] * var4,
this.frameCenter[var6 + 2]
+ this.frameSide[var6 + 2] * var4
)
.setColor(var5);
}
private static int glassColor(float var0, float var1, float var2) {
int var3 = Mth.clamp(
Math.round(var0 * 255.0F), 0, (-1468224704 | 1468224959) + (-1468224704 & 1468224959)
);
int var4 = Mth.clamp(
Math.round(var1 * 255.0F), 0, (-1864282489 | 1864282744) + (-1864282489 & 1864282744)
);
int var5 = Mth.clamp(
Math.round(var2 * 255.0F), 0, (111853830 | -111853575) + (111853830 & -111853575)
);
return var5 << (-1233315743 | 1233315767) + (-1233315743 & 1233315767)
| var3 << (730715310 | -730715294) + (730715310 & -730715294)
| var4 << 255;
}
private static int whiteAlpha(float var0) {
return Mth.clamp(
Math.round(var0 * 255.0F),
0,
(-2121720782 | 2121721037) + (-2121720782 & 2121721037)
)
<< (710617865 | -710617841) + (710617865 & -710617841)
| (1847445449 ^ -1830668234) + ((1847445449 & -1830668234) << 1);
}
private atd shaderProgram() {
String var1 = this.shaderType.get();
int var2 = -1;
switch (var1.hashCode()) {
case -1997372447:
if (var1.equals("Matrix")) {
var2 = 4;
}
break;
case -1901891230:
if (var1.equals("Plasma")) {
var2 = 2;
}
break;
case -1286538368:
if (var1.equals("LiquidGlass")) {
var2 = 3;
}
break;
case -949676042:
if (var1.equals("LivingArmor")) {
var2 = 5;
}
break;
case -289774394:
if (var1.equals("AlienNebula")) {
var2 = 6;
}
break;
case 86836:
if (var1.equals("Web")) {
var2 = 1;
}
break;
case 2024198218:
if (var1.equals("Cosmos")) {
var2 = 0;
}
}
return switch (var2) {
case 0 -> atb.worldStarfieldProgram;
case 1 -> atb.worldCobwebProgram;
case 2 -> atb.worldPlasmaProgram;
case 3 -> atb.trailGlassProgram;
case 4 -> atb.worldMatrixProgram;
case 5 -> atb.worldLivingArmorProgram;
case 6 -> atb.worldAlienNebulaProgram;
default -> atb.worldNebulaProgram;
};
}
private int shaderTintColor() {
String var2 = this.shaderColorSetting.get();
int var3 = -1;
switch (var2.hashCode()) {
case -1656737386:
if (var2.equals("Rainbow")) {
var3 = 1;
}
break;
case 2029746065:
if (var2.equals("Custom")) {
var3 = 0;
}
}
int var1 = switch (var3) {
case 0 -> this.shaderCustomColor.getIntColor();
case 1 -> asu.fromHSB(
(float)(System.currentTimeMillis() % ((-7103035932184928163L | 7103035932184932163L) + (-7103035932184928163L & 7103035932184932163L)))
/ 4000.0F,
0.85F,
1.0F
)
.getRGB();
default -> bz.getInstance().getThemeManager().getCurrentTheme().getColor().getRGB();
};
return var1 & 16777215;
}
private int color(int var1, int var2, float var3) {
float var4 = Math.min((float)(var1 + (1422235505 ^ -1422235504) + ((1422235505 & -1422235504) << 1)) / var2, 1.0F) * var3;
String var6 = this.colorSetting.get();
int var7 = -1;
switch (var6.hashCode()) {
case -1656737386:
if (var6.equals("Rainbow")) {
var7 = 0;
}
break;
case 2029746065:
if (var6.equals("Custom")) {
var7 = 1;
}
}
asu var5 = switch (var7) {
case 0 -> asu.fromHSB(
(float)(System.currentTimeMillis() % ((-8323496942240964915L | 8323496942240966915L) + (-8323496942240964915L & 8323496942240966915L))) / 2000.0F
+ (float)var1 / var2,
0.85F,
1.0F
);
case 1 -> this.customColorSetting.getColor(1.0F);
default -> bz.getInstance().getThemeManager().getClientColor(var1 * ((-394700769 | 394700773) + (-394700769 & 394700773)));
};
return var5.mulAlpha(Mth.clamp(var4, 0.0F, 1.0F)).getRGB();
}
static {
float[] var10000 = new float[4];
var10000[0] = -1.0F;
var10000[1] = -0.44F;
var10000[2] = 0.44F;
var10000[3] = 1.0F;
RIBBON_OFFSETS = var10000;
var10000 = new float[4];
var10000[0] = 0.0F;
var10000[1] = 1.0F;
var10000[2] = 1.0F;
var10000[3] = 0.0F;
RIBBON_EDGE_ALPHA = var10000;
var10000 = new float[4];
var10000[0] = 0.0F;
var10000[1] = 0.22F;
var10000[2] = 0.78F;
var10000[3] = 1.0F;
RIBBON_V = var10000;
}
public static final wd INSTANCE = new wd();
}