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> 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 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(); }