3403 lines
120 KiB
Java
3403 lines
120 KiB
Java
package defpackage;
|
|
|
|
import com.mojang.authlib.GameProfile;
|
|
import com.mojang.blaze3d.PrimitiveTopology;
|
|
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.UUID;
|
|
import java.util.Map.Entry;
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
import java.util.function.Supplier;
|
|
import net.fabricmc.fabric.api.client.rendering.v1.level.LevelRenderContext;
|
|
import net.minecraft.client.Camera;
|
|
import net.minecraft.client.multiplayer.ClientLevel;
|
|
import net.minecraft.client.player.AbstractClientPlayer;
|
|
import net.minecraft.client.player.RemotePlayer;
|
|
import net.minecraft.client.renderer.SubmitNodeCollector;
|
|
import net.minecraft.client.renderer.rendertype.RenderType;
|
|
import net.minecraft.client.renderer.rendertype.RenderTypes;
|
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.sounds.SoundEvents;
|
|
import net.minecraft.sounds.SoundSource;
|
|
import net.minecraft.util.LightCoordsUtil;
|
|
import net.minecraft.util.Mth;
|
|
import net.minecraft.world.entity.Entity;
|
|
import net.minecraft.world.entity.player.PlayerModelType;
|
|
import net.minecraft.world.entity.player.PlayerSkin;
|
|
import net.minecraft.world.phys.Vec3;
|
|
import org.joml.Quaternionf;
|
|
import org.joml.Vector3f;
|
|
|
|
@rn(name = "DeathEffects", description = "Players shatter into body parts on death", category = rl.RENDER)
|
|
public final class up extends rm {
|
|
private static final String MODE_SHATTER = "Shatter";
|
|
private static final String MODE_ASCEND = "Ascend";
|
|
private static final String MODE_EXPLOSION = "Explosion";
|
|
private static final String MODE_LIGHTNING = "Lightning";
|
|
private static final String MODE_DISINTEGRATE = "Disintegrate";
|
|
private static final String BLAST_COLOR_NATURAL = "Natural";
|
|
private static final String BLAST_COLOR_CLIENT = "Client";
|
|
private static final String BLAST_COLOR_CUSTOM = "Custom";
|
|
private static final int FIRE_TINT = 16741152;
|
|
private static final int ELECTRIC_TINT = 10471679;
|
|
private static final float BLAST_QUAD_HALF_SIZE = 2.3F;
|
|
private static final float BLAST_CENTER_HEIGHT_FACTOR = 0.55F;
|
|
private static final float BOLT_HEIGHT = 26.0F;
|
|
private static final float BOLT_START_DRIFT = 7.0F;
|
|
private static final int BOLT_SUBDIVISIONS = 6;
|
|
private static final float BOLT_JITTER = 0.16F;
|
|
private static final int BOLT_VARIANTS = 3;
|
|
private static final int BOLT_BRANCHES = 5;
|
|
private static final float BOLT_CORE_WIDTH = 0.045F;
|
|
private static final float BOLT_GLOW_WIDTH = 0.3F;
|
|
private static final float IMPACT_CARD_HALF_SIZE = 1.7F;
|
|
private static final float IMPACT_HEIGHT_FACTOR = 0.5F;
|
|
private static final long[] STROBE_STARTS_MS;
|
|
private static final float[] STROBE_AMPLITUDES;
|
|
private static final float STROBE_DECAY_MS = 55.0F;
|
|
private static final float THUNDER_VOLUME = 1.8F;
|
|
private static final float SOUL_START_PROGRESS = 0.22F;
|
|
private static final float SOUL_RISE_HEIGHT = 3.5F;
|
|
private static final float SOUL_MAX_ALPHA = 0.38F;
|
|
private static final int SOUL_TINT = 11128831;
|
|
private static final float SOUL_FADE_IN = 0.18F;
|
|
private static final float SOUL_FADE_OUT_START = 0.6F;
|
|
private static final float SOUL_END_SCALE = 0.85F;
|
|
private static final float SOUL_PIVOT_Y = 0.9F;
|
|
private static final int WISP_COUNT = 10;
|
|
private static final float WISP_SPIN_TURNS = 1.6F;
|
|
private static final float WISP_WIDTH = 0.045F;
|
|
private static final long SHAKE_DURATION_MS = 650L;
|
|
private static final float SHAKE_MAX_DEGREES = 1.6F;
|
|
private static final float SHAKE_FALLOFF_DISTANCE = 20.0F;
|
|
private static final float SHAKE_YAW_FREQUENCY = 0.055F;
|
|
private static final float SHAKE_PITCH_FREQUENCY = 0.041F;
|
|
private static final long CHAR_DURATION_MS = 350L;
|
|
private static final float CHAR_MIN_BRIGHTNESS = 0.12F;
|
|
private static final int SKY_FLASH_TICKS = 2;
|
|
private static final float SCREEN_FLASH_MAX_ALPHA = 0.22F;
|
|
private static final float SCREEN_FLASH_FALLOFF_DISTANCE = 40.0F;
|
|
private static final int SCREEN_FLASH_RGB = 15397631;
|
|
private static final float ASH_CELL_PX = 2.0F;
|
|
private static final float ASH_SWEEP_END_PROGRESS = 0.55F;
|
|
private static final float ASH_DETACH_JITTER = 0.12F;
|
|
private static final float ASH_EDGE_TINT_WINDOW = 0.07F;
|
|
private static final int ASH_EDGE_TINT = 13209442;
|
|
private static final float ASH_WIND_SPEED = 1.3F;
|
|
private static final float ASH_LIFT_SPEED = 0.45F;
|
|
private static final float ASH_TURBULENCE = 0.5F;
|
|
private static final float ASH_DRAG = 0.995F;
|
|
private static final long ASH_LIFE_MIN_MS = 800L;
|
|
private static final long ASH_LIFE_MAX_MS = 1700L;
|
|
private static final float ASH_FADE_START = 0.45F;
|
|
private static final int GRAINS_PER_CUBE = 4;
|
|
private static final float GRAIN_MIN_SIZE = 0.015F;
|
|
private static final float GRAIN_MAX_SIZE = 0.045F;
|
|
private static final int GRAIN_COLOR_LIGHT = 14269588;
|
|
private static final int GRAIN_COLOR_DARK = 8284754;
|
|
private static final float GRAIN_SPAWN_JITTER = 0.08F;
|
|
private static final float SPARK_GRAVITY = 9.0F;
|
|
private static final float SPARK_DRAG = 0.985F;
|
|
private static final float SPARK_STREAK_SECONDS = 0.045F;
|
|
private static final int BLOOD_PER_BLAST = 48;
|
|
private static final float BLOOD_GRAVITY = 16.0F;
|
|
private static final float BLOOD_DRAG = 0.99F;
|
|
private static final float BLOOD_MIN_SPEED = 1.5F;
|
|
private static final float BLOOD_MAX_SPEED = 7.0F;
|
|
private static final double BLOOD_UP_MIN = -0.35;
|
|
private static final float BLOOD_MIN_SIZE = 0.03F;
|
|
private static final float BLOOD_MAX_SIZE = 0.085F;
|
|
private static final int BLOOD_COLOR_BRIGHT = 10357515;
|
|
private static final int BLOOD_COLOR_DARK = 4981250;
|
|
private static final long BLOOD_LIFE_MIN_MS = 900L;
|
|
private static final long BLOOD_LIFE_MAX_MS = 2200L;
|
|
private static final float BLOOD_FADE_START = 0.55F;
|
|
private static final float BLOOD_SPLAT_SCALE = 2.4F;
|
|
private static final float BLOOD_SPLAT_Y_OFFSET = 0.02F;
|
|
private static final float BLOOD_STREAK_SECONDS = 0.03F;
|
|
private static final float TEXTURE_SIZE = 64.0F;
|
|
private static final float PIXEL = 0.0625F;
|
|
private static final float OVERLAY_DILATION_PX = 0.25F;
|
|
private static final float GRAVITY = 14.0F;
|
|
private static final float BOUNCE_RESTITUTION = 0.45F;
|
|
private static final float BOUNCE_FRICTION = 0.6F;
|
|
private static final float MAX_FRAME_DELTA = 0.05F;
|
|
private static final float SHATTER_FADE_START = 0.6F;
|
|
private static final float ASCEND_FADE_START = 0.3F;
|
|
private static final float ASCEND_SHRINK = 0.35F;
|
|
private static final int MAX_CAPTURE_DEATH_TICKS = 3;
|
|
private static final int DUMMY_ID_BASE = 2130706432;
|
|
private static final long DUMMY_KILL_DELAY_MS = 1500L;
|
|
private static final double DUMMY_SPAWN_DISTANCE = 8.0;
|
|
private static final String DUMMY_NAME = "DeadBot";
|
|
private static final um HEAD = new um(
|
|
8.0F,
|
|
8.0F,
|
|
8.0F,
|
|
0,
|
|
0,
|
|
32,
|
|
0,
|
|
0.0F,
|
|
28.0F
|
|
);
|
|
private static final um BODY = new um(
|
|
8.0F,
|
|
12.0F,
|
|
4.0F,
|
|
16,
|
|
16,
|
|
16,
|
|
32,
|
|
0.0F,
|
|
18.0F
|
|
);
|
|
private static final um RIGHT_LEG = new um(
|
|
4.0F,
|
|
12.0F,
|
|
4.0F,
|
|
0,
|
|
16,
|
|
0,
|
|
32,
|
|
-2.0F,
|
|
6.0F
|
|
);
|
|
private static final um LEFT_LEG = new um(
|
|
4.0F,
|
|
12.0F,
|
|
4.0F,
|
|
16,
|
|
48,
|
|
0,
|
|
48,
|
|
2.0F,
|
|
6.0F
|
|
);
|
|
private final sg modeSetting;
|
|
private final sm powerSetting;
|
|
private final sm durationSetting;
|
|
private final sm spinSetting;
|
|
private final ru bounceSetting;
|
|
private final sm sparkCountSetting;
|
|
private final sg blastColorSetting;
|
|
private final rx blastCustomColor;
|
|
private final ru thunderSetting;
|
|
private final ru bloodSetting;
|
|
private final Map<Integer, uj> active;
|
|
private ClientLevel trackedWorld;
|
|
private RemotePlayer dummy;
|
|
private long dummyKillAtMillis;
|
|
private long lastFrameNanos;
|
|
private int dummyIdCounter;
|
|
private final Vector3f scratchRight;
|
|
private final Vector3f scratchUp;
|
|
private final Quaternionf scratchQuat;
|
|
private atd cachedBlastProgram;
|
|
private ate blastResolution;
|
|
private ate blastTime;
|
|
private ate blastProgress;
|
|
private ate blastTintColor;
|
|
private ate blastFade;
|
|
public static final up INSTANCE = new up();
|
|
|
|
private up() {
|
|
String var10003 = "Mode";
|
|
String[] var10004 = new String[5];
|
|
var10004[0] = "Shatter";
|
|
var10004[1] = "Ascend";
|
|
var10004[2] = "Explosion";
|
|
var10004[3] = "Lightning";
|
|
var10004[4] = "Disintegrate";
|
|
this.modeSetting = new sg(var10003, var10004)
|
|
.describe(
|
|
"Shatter",
|
|
"Entity shatters into pieces"
|
|
)
|
|
.describe(
|
|
"Ascend",
|
|
"Entity floats upwards"
|
|
)
|
|
.describe(
|
|
"Explosion",
|
|
"Entity explodes visually"
|
|
)
|
|
.describe(
|
|
"Lightning",
|
|
"Lightning strikes the entity"
|
|
)
|
|
.describe(
|
|
"Disintegrate",
|
|
"Entity fades away"
|
|
)
|
|
.description(
|
|
"Type of effect played on death"
|
|
);
|
|
this.powerSetting = new sm("Power", 1.0F, 0.3F, 3.0F, 0.1F)
|
|
.description("Intensity of the death effect");
|
|
this.durationSetting = new sm("Duration", 2.5F, 1.0F, 6.0F, 0.5F)
|
|
.description("How long the effect lasts");
|
|
this.spinSetting = new sm("Spin", 1.0F, 0.2F, 3.0F, 0.1F, () -> {
|
|
int var2x = 0;
|
|
int var1x = -635057968;
|
|
|
|
while (true) {
|
|
switch (var1x) {
|
|
case -1310586916:
|
|
var2x = 0;
|
|
var1x = -282409517;
|
|
break;
|
|
case -659378216:
|
|
var2x = 1;
|
|
var1x = -282409517;
|
|
break;
|
|
case -635057968:
|
|
default:
|
|
if (!this.modeSetting.is("Shatter")) {
|
|
var1x = -507880628;
|
|
} else {
|
|
var1x = -659378216;
|
|
}
|
|
break;
|
|
case -507880628:
|
|
if (this.modeSetting.is("Ascend")) {
|
|
var1x = -659378216;
|
|
} else {
|
|
var1x = -1310586916;
|
|
}
|
|
break;
|
|
case -282409517:
|
|
return Boolean.valueOf((boolean)((var2x) != 0));
|
|
}
|
|
}
|
|
})
|
|
.description(
|
|
"Rotation speed of the effect particles"
|
|
);
|
|
this.bounceSetting = new ru(
|
|
"Bounce",
|
|
(boolean)(((1)) != 0),
|
|
() -> this.modeSetting.is("Shatter")
|
|
)
|
|
.description(
|
|
"Make shattered particles bounce on the ground"
|
|
);
|
|
this.sparkCountSetting = new sm(
|
|
"Sparks", 70.0F, 20.0F, 150.0F, 5.0F, this::isBlastMode
|
|
)
|
|
.description("Number of sparks emitted on death");
|
|
var10003 = "Blast color";
|
|
Supplier var2 = this::isBlastMode;
|
|
String[] var10005 = new String[3];
|
|
var10005[0] = "Natural";
|
|
var10005[1] = "Client";
|
|
var10005[2] = "Custom";
|
|
this.blastColorSetting = new sg(var10003, var2, var10005)
|
|
.describe(
|
|
"Natural",
|
|
"Use default explosion colors"
|
|
)
|
|
.describe(
|
|
"Client",
|
|
"Use client theme color"
|
|
)
|
|
.describe(
|
|
"Custom",
|
|
"Use a custom chosen color"
|
|
)
|
|
.description(
|
|
"Color mode for the explosion effect"
|
|
);
|
|
this.blastCustomColor = new rx(
|
|
"Blast custom color",
|
|
bz.getInstance().getThemeManager().getCurrentTheme().getColor(),
|
|
() -> {
|
|
int var2x = 0;
|
|
int var1x = -1846240852;
|
|
|
|
while (true) {
|
|
switch (var1x) {
|
|
case -1846240852:
|
|
default:
|
|
if (this.isBlastMode()) {
|
|
var1x = 1095980743;
|
|
} else {
|
|
var1x = -761614132;
|
|
}
|
|
break;
|
|
case -761614132:
|
|
var2x = 0;
|
|
var1x = 1111530765;
|
|
break;
|
|
case -392263454:
|
|
var2x = 1;
|
|
var1x = 1111530765;
|
|
break;
|
|
case 1095980743:
|
|
if (this.blastColorSetting.is("Custom")) {
|
|
var1x = -392263454;
|
|
} else {
|
|
var1x = -761614132;
|
|
}
|
|
break;
|
|
case 1111530765:
|
|
return Boolean.valueOf((boolean)((var2x) != 0));
|
|
}
|
|
}
|
|
}
|
|
)
|
|
.description(
|
|
"Custom color for the explosion effect"
|
|
);
|
|
this.thunderSetting = new ru(
|
|
"Thunder sound",
|
|
(boolean)(((1)) != 0),
|
|
() -> this.modeSetting.is("Lightning")
|
|
)
|
|
.description("Play a thunder sound upon death");
|
|
this.bloodSetting = new ru(
|
|
"Blood",
|
|
(boolean)(((1)) != 0),
|
|
() -> this.modeSetting.is("Explosion")
|
|
)
|
|
.description(
|
|
"Emit blood particles when an entity dies"
|
|
);
|
|
this.active = new HashMap<>();
|
|
this.scratchRight = new Vector3f();
|
|
this.scratchUp = new Vector3f();
|
|
this.scratchQuat = new Quaternionf();
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
super.onDisable();
|
|
this.active.clear();
|
|
this.discardDummy();
|
|
}
|
|
|
|
public boolean shouldHideEntity(int var1) {
|
|
uj var2 = null;
|
|
int var4 = 0;
|
|
int var3 = 1813257986;
|
|
|
|
while (true) {
|
|
switch (var3) {
|
|
case -1782680470:
|
|
return (boolean)((var4) != 0);
|
|
case -1734205134:
|
|
var4 = 0;
|
|
var3 = -1782680470;
|
|
break;
|
|
case -1222602738:
|
|
var2 = this.active.get(var1);
|
|
if (var2 != null) {
|
|
var3 = -447284353;
|
|
} else {
|
|
var3 = -1734205134;
|
|
}
|
|
break;
|
|
case -447284353:
|
|
if (var2.kind != ul.LIGHTNING) {
|
|
var3 = 1317844731;
|
|
} else {
|
|
var3 = -1734205134;
|
|
}
|
|
break;
|
|
case -234808336:
|
|
return (boolean)(((0)) != 0);
|
|
case 1317844731:
|
|
var4 = 1;
|
|
var3 = -1782680470;
|
|
break;
|
|
case 1813257986:
|
|
default:
|
|
if (!this.isEnabled()) {
|
|
var3 = -234808336;
|
|
} else {
|
|
var3 = -1222602738;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private boolean isBlastMode() {
|
|
int var2 = 0;
|
|
int var1 = 865518364;
|
|
|
|
while (true) {
|
|
switch (var1) {
|
|
case -1796016825:
|
|
var2 = 0;
|
|
var1 = -1303753076;
|
|
break;
|
|
case -1303753076:
|
|
return var2 != 0;
|
|
case 798413488:
|
|
if (this.modeSetting.is("Lightning")) {
|
|
var1 = 882100356;
|
|
} else {
|
|
var1 = -1796016825;
|
|
}
|
|
break;
|
|
case 865518364:
|
|
default:
|
|
if (!this.modeSetting.is("Explosion")) {
|
|
var1 = 798413488;
|
|
} else {
|
|
var1 = 882100356;
|
|
}
|
|
break;
|
|
case 882100356:
|
|
var2 = 1;
|
|
var1 = -1303753076;
|
|
}
|
|
}
|
|
}
|
|
|
|
public int charredBodyTint(int var1, int var2) {
|
|
uj var3 = null;
|
|
float var4 = 0.0F;
|
|
float var5 = 0.0F;
|
|
int var6 = 0;
|
|
int var7 = 0;
|
|
int var8 = 0;
|
|
int var9 = 1052770710;
|
|
|
|
while (true) {
|
|
switch (var9) {
|
|
case -1201544732:
|
|
return var2;
|
|
case -876448803:
|
|
if (var3.kind != ul.LIGHTNING) {
|
|
var9 = 124411195;
|
|
} else {
|
|
var9 = 497291803;
|
|
}
|
|
break;
|
|
case -121987848:
|
|
if (this.active.isEmpty()) {
|
|
var9 = -1201544732;
|
|
} else {
|
|
var9 = 2116649409;
|
|
}
|
|
break;
|
|
case 124411195:
|
|
return var2;
|
|
case 497291803:
|
|
var4 = Mth.clamp((float)(System.currentTimeMillis() - var3.startMillis) / 350.0F, 0.0F, 1.0F);
|
|
var5 = Mth.lerp(var4, 1.0F, 0.12F);
|
|
var6 = (int)((var2 >> (-231766691 | 231766707) + (-231766691 & 231766707) & (-1943492997 | 1943493252) + (-1943492997 & 1943493252)) * var5);
|
|
var7 = (int)(
|
|
(var2 >> (-1073696627 ^ 1073696635) + ((-1073696627 & 1073696635) << 1) & (-363804149 ^ 363804404) + ((-363804149 & 363804404) << 1)) * var5
|
|
);
|
|
var8 = (int)((var2 & (-1383009991 ^ 1383010246) + ((-1383009991 & 1383010246) << 1)) * var5);
|
|
return var2 & (2030759019 ^ -2047536235) + ((2030759019 & -2047536235) << 1)
|
|
| var6 << (-975311728 | 975311744) + (-975311728 & 975311744)
|
|
| var7 << (-298766398 | 298766406) + (-298766398 & 298766406)
|
|
| var8;
|
|
case 1052770710:
|
|
default:
|
|
if (this.isEnabled()) {
|
|
var9 = -121987848;
|
|
} else {
|
|
var9 = -1201544732;
|
|
}
|
|
break;
|
|
case 2116649409:
|
|
var3 = this.active.get(var1);
|
|
if (var3 != null) {
|
|
var9 = -876448803;
|
|
} else {
|
|
var9 = 124411195;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public float cameraShakeYaw() {
|
|
float var1 = 0.0F;
|
|
float var3 = 0.0F;
|
|
int var2 = -586598781;
|
|
|
|
while (true) {
|
|
switch (var2) {
|
|
case -586598781:
|
|
default:
|
|
var1 = this.shakeAmplitude();
|
|
if (var1 == 0.0F) {
|
|
var2 = -533150281;
|
|
} else {
|
|
var2 = 1773290623;
|
|
}
|
|
break;
|
|
case -533150281:
|
|
var3 = 0.0F;
|
|
var2 = 1211995778;
|
|
break;
|
|
case 1211995778:
|
|
return var3;
|
|
case 1773290623:
|
|
var3 = var1 * Mth.sin((float)System.currentTimeMillis() * 0.055F);
|
|
var2 = 1211995778;
|
|
}
|
|
}
|
|
}
|
|
|
|
public float cameraShakePitch() {
|
|
float var1 = 0.0F;
|
|
float var3 = 0.0F;
|
|
int var2 = 966330649;
|
|
|
|
while (true) {
|
|
switch (var2) {
|
|
case -1931918044:
|
|
return var3;
|
|
case 966330649:
|
|
default:
|
|
var1 = this.shakeAmplitude();
|
|
if (var1 == 0.0F) {
|
|
var2 = 1148513324;
|
|
} else {
|
|
var2 = 1015383840;
|
|
}
|
|
break;
|
|
case 1015383840:
|
|
var3 = var1 * Mth.cos((float)System.currentTimeMillis() * 0.041F);
|
|
var2 = -1931918044;
|
|
break;
|
|
case 1148513324:
|
|
var3 = 0.0F;
|
|
var2 = -1931918044;
|
|
}
|
|
}
|
|
}
|
|
|
|
@k
|
|
public void onHudRender(fs var1) {
|
|
if (this.isEnabled() && !this.active.isEmpty() && mc.player != null && mc.level != null) {
|
|
long var2 = System.currentTimeMillis();
|
|
float var4 = 0.0F;
|
|
|
|
for (uj var6 : this.active.values()) {
|
|
if (var6.kind == ul.LIGHTNING) {
|
|
long var7 = var2 - var6.startMillis;
|
|
float var9 = 0.0F;
|
|
|
|
for (int var10 = 0; var10 < STROBE_STARTS_MS.length; var10++) {
|
|
if (var7 >= STROBE_STARTS_MS[var10]) {
|
|
var9 += STROBE_AMPLITUDES[var10] * (float)Math.exp((float)(-(var7 - STROBE_STARTS_MS[var10])) / 55.0F);
|
|
}
|
|
}
|
|
|
|
double var14 = mc.player.position().distanceTo(new Vec3(var6.centerX, var6.centerY, var6.centerZ));
|
|
float var12 = Mth.clamp(1.0F - (float)var14 / 40.0F, 0.0F, 1.0F);
|
|
var4 = Math.max(var4, Math.min(1.0F, var9) * var12);
|
|
}
|
|
}
|
|
|
|
if (!(var4 <= 0.02F)) {
|
|
int var13 = Mth.clamp(
|
|
(int)(var4 * 0.22F * 255.0F),
|
|
0,
|
|
(1562503655 | -1562503400) + (1562503655 & -1562503400)
|
|
);
|
|
var1.getContext()
|
|
.drawRect(
|
|
0.0F,
|
|
0.0F,
|
|
mc.getWindow().getGuiScaledWidth(),
|
|
mc.getWindow().getGuiScaledHeight(),
|
|
new asu(var13 << (1011213918 ^ -1011213894) + ((1011213918 & -1011213894) << 1) | (21480117 | -6082486) + (21480117 & -6082486))
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
private float shakeAmplitude() {
|
|
long var1 = (-294027982355871474L | 294027982355871474L) + (-294027982355871474L & 294027982355871474L);
|
|
float var3 = 0.0F;
|
|
Iterator var4 = null;
|
|
uj var5 = null;
|
|
long var6 = (-7229496936396274894L | 7229496936396274894L) + (-7229496936396274894L & 7229496936396274894L);
|
|
float var8 = 0.0F;
|
|
double var9 = 0.0;
|
|
float var11 = 0.0F;
|
|
int var12 = 1815219720;
|
|
|
|
while (true) {
|
|
switch (var12) {
|
|
case -2085763444:
|
|
if (mc.player == null) {
|
|
var12 = 1668992028;
|
|
} else {
|
|
var12 = 647567687;
|
|
}
|
|
break;
|
|
case -2053388428:
|
|
var5 = (uj)var4.next();
|
|
if (var5.kind != ul.LIGHTNING) {
|
|
var12 = 1370417298;
|
|
} else {
|
|
var12 = -2027926825;
|
|
}
|
|
break;
|
|
case -2027926825:
|
|
var6 = var1 - var5.startMillis;
|
|
if (var6 >= (-1627844833489147356L ^ 1627844833489147356L) + ((-1627844833489147356L & 1627844833489147356L) << 1)) {
|
|
var12 = -476407787;
|
|
} else {
|
|
var12 = -1788464224;
|
|
}
|
|
break;
|
|
case -1788464224:
|
|
if (var4.hasNext()) {
|
|
var12 = -2053388428;
|
|
} else {
|
|
var12 = 1013619347;
|
|
}
|
|
break;
|
|
case -476407787:
|
|
if (var6 >= (1398449456515873580L ^ -1398449456515872930L) + ((1398449456515873580L & -1398449456515872930L) << 1)) {
|
|
var12 = 2138945993;
|
|
} else {
|
|
var12 = 914706295;
|
|
}
|
|
break;
|
|
case 272692240:
|
|
if (!this.active.isEmpty()) {
|
|
var12 = -2085763444;
|
|
} else {
|
|
var12 = 1668992028;
|
|
}
|
|
break;
|
|
case 647567687:
|
|
var1 = System.currentTimeMillis();
|
|
var3 = 0.0F;
|
|
var4 = this.active.values().iterator();
|
|
var12 = -1788464224;
|
|
break;
|
|
case 914706295:
|
|
var8 = 1.0F - (float)var6 / 650.0F;
|
|
var9 = mc.player.position().distanceTo(new Vec3(var5.centerX, var5.centerY, var5.centerZ));
|
|
var11 = Mth.clamp(1.0F - (float)var9 / 20.0F, 0.0F, 1.0F);
|
|
var3 = Math.max(var3, 1.6F * var8 * var8 * var11);
|
|
var12 = -1788464224;
|
|
break;
|
|
case 1013619347:
|
|
return var3;
|
|
case 1370417298:
|
|
var12 = -1788464224;
|
|
break;
|
|
case 1668992028:
|
|
return 0.0F;
|
|
case 1815219720:
|
|
default:
|
|
if (this.isEnabled()) {
|
|
var12 = 272692240;
|
|
} else {
|
|
var12 = 1668992028;
|
|
}
|
|
break;
|
|
case 2138945993:
|
|
var12 = -1788464224;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void spawnDummy(boolean var1) {
|
|
if (mc.level != null && mc.player != null) {
|
|
this.discardDummy();
|
|
Vec3 var2 = mc.player.getLookAngle();
|
|
Vec3 var3 = mc.player.position().add(var2.x * 8.0, 0.0, var2.z * 8.0);
|
|
RemotePlayer var4 = new RemotePlayer(
|
|
mc.level, new GameProfile(UUID.randomUUID(), "DeadBot")
|
|
);
|
|
int var10001 = 2130706432;
|
|
int var10002 = this.dummyIdCounter;
|
|
this.dummyIdCounter += 1;
|
|
var4.setId(var10001 + var10002);
|
|
float var5 = mc.player.getYRot() + 180.0F;
|
|
var4.snapTo(var3.x, var3.y, var3.z, var5, 0.0F);
|
|
var4.setYHeadRot(var5);
|
|
var4.yBodyRot = var5;
|
|
var4.setHealth(var4.getMaxHealth());
|
|
mc.level.addEntity(var4);
|
|
this.dummy = var4;
|
|
this.dummyKillAtMillis = var1
|
|
? System.currentTimeMillis() + (5736468981539465191L | -5736468981539463691L) + (5736468981539465191L & -5736468981539463691L)
|
|
: (-8508437137390485775L ^ 8508437137390485775L) + ((-8508437137390485775L & 8508437137390485775L) << 1);
|
|
}
|
|
}
|
|
|
|
public void killDummy() {
|
|
int var1 = -1399650332;
|
|
|
|
while (true) {
|
|
switch (var1) {
|
|
case -1399650332:
|
|
default:
|
|
if (this.dummy != null) {
|
|
var1 = -238538117;
|
|
} else {
|
|
var1 = 367810893;
|
|
}
|
|
break;
|
|
case -238538117:
|
|
if (mc.level == null) {
|
|
var1 = 367810893;
|
|
} else {
|
|
var1 = 1533113370;
|
|
}
|
|
break;
|
|
case 367810893:
|
|
return;
|
|
case 1533113370:
|
|
this.dummy.setHealth(0.0F);
|
|
this.capture(this.dummy);
|
|
this.dummyKillAtMillis = (-8123650612613951L | 8123650612613951L) + (-8123650612613951L & 8123650612613951L);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void onWorldRender(LevelRenderContext var1) {
|
|
long var2 = System.nanoTime();
|
|
float var4 = Mth.clamp((float)(var2 - this.lastFrameNanos) / 1.0E9F, 0.0F, 0.05F);
|
|
this.lastFrameNanos = var2;
|
|
if (this.isEnabled() && mc.level != null && mc.player != null) {
|
|
if (this.trackedWorld != mc.level) {
|
|
this.trackedWorld = mc.level;
|
|
this.active.clear();
|
|
this.dummy = null;
|
|
this.dummyKillAtMillis = (-1959788421799415442L ^ 1959788421799415442L) + ((-1959788421799415442L & 1959788421799415442L) << 1);
|
|
}
|
|
|
|
if (this.dummy != null
|
|
&& this.dummyKillAtMillis != (7287366817423193985L ^ -7287366817423193985L) + ((7287366817423193985L & -7287366817423193985L) << 1)
|
|
&& System.currentTimeMillis() >= this.dummyKillAtMillis) {
|
|
this.killDummy();
|
|
}
|
|
|
|
for (AbstractClientPlayer var6 : mc.level.players()) {
|
|
if (var6 != mc.player
|
|
&& var6 != this.dummy
|
|
&& var6.isDeadOrDying()
|
|
&& var6.deathTime <= (1103144680 | -1103144677) + (1103144680 & -1103144677)
|
|
&& !this.active.containsKey(var6.getId())) {
|
|
this.capture(var6);
|
|
}
|
|
}
|
|
|
|
PoseStack var20 = var1.poseStack();
|
|
SubmitNodeCollector var21 = var1.submitNodeCollector();
|
|
Camera var7 = mc.getEntityRenderDispatcher().camera;
|
|
if (var20 != null && var21 != null && var7 != null) {
|
|
long var8 = System.currentTimeMillis();
|
|
long var10 = (long)(this.durationSetting.getCurrent() * 1000.0F);
|
|
boolean var12 = this.modeSetting.is("Shatter");
|
|
boolean var13 = this.bounceSetting.isEnabled();
|
|
Vec3 var14 = var7.position();
|
|
Iterator var15 = this.active.entrySet().iterator();
|
|
|
|
while (var15.hasNext()) {
|
|
uj var16 = (uj)((Entry)var15.next()).getValue();
|
|
Entity var17 = mc.level.getEntity(var16.entityId);
|
|
int var18 = var17 != null && !var17.isRemoved() && !(var17 instanceof AbstractClientPlayer var19 && !var19.isDeadOrDying())
|
|
? 0: 1;
|
|
float var22 = Mth.clamp((float)(var8 - var16.startMillis) / (float)var10, 0.0F, 1.0F);
|
|
if (var22 >= 1.0F) {
|
|
var16.finished = (boolean)(((1)) != 0);
|
|
}
|
|
|
|
if (var16.finished) {
|
|
if (this.dummy != null && var16.entityId == this.dummy.getId()) {
|
|
this.discardDummy();
|
|
var15.remove();
|
|
} else if (var18 != 0) {
|
|
var15.remove();
|
|
}
|
|
} else {
|
|
switch (var16.kind) {
|
|
case EXPLOSION:
|
|
this.simulateSparks(var16, var4);
|
|
this.simulateBlood(var16, var4, var8);
|
|
this.renderExplosion(var16, var20, var21, var7, var14, var22, var10, var8);
|
|
break;
|
|
case LIGHTNING:
|
|
this.simulateSparks(var16, var4);
|
|
this.renderLightning(var16, var20, var21, var7, var14, var22, var10, var8);
|
|
break;
|
|
case DISINTEGRATE:
|
|
this.renderDisintegrate(var16, var20, var21, var7, var14, var22, var4, var8);
|
|
break;
|
|
default:
|
|
this.simulate(var16, var4, var12, var13);
|
|
this.render(var16, var20, var21, var14, var22, var12);
|
|
}
|
|
|
|
if (var16.finished && var18 != 0) {
|
|
var15.remove();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void capture(AbstractClientPlayer var1) {
|
|
if (this.modeSetting.is("Explosion")) {
|
|
this.captureExplosion(var1);
|
|
} else if (this.modeSetting.is("Lightning")) {
|
|
this.captureLightning(var1);
|
|
} else if (this.modeSetting.is("Disintegrate")) {
|
|
this.captureDisintegrate(var1);
|
|
} else {
|
|
PlayerSkin var2 = var1.getSkin();
|
|
int var3 = var2.model() == PlayerModelType.SLIM
|
|
? 1: 0;
|
|
um[] var4 = bodyParts((boolean)((var3) != 0));
|
|
ThreadLocalRandom var5 = ThreadLocalRandom.current();
|
|
boolean var6 = this.modeSetting.is("Shatter");
|
|
float var7 = this.powerSetting.getCurrent();
|
|
float var8 = this.spinSetting.getCurrent();
|
|
float var9 = (float)Math.toRadians(var1.yBodyRot);
|
|
float var10 = Mth.sin(var9);
|
|
float var11 = Mth.cos(var9);
|
|
ArrayList var12 = new ArrayList(var4.length);
|
|
um[] var13 = var4;
|
|
int var14 = var13.length;
|
|
|
|
for (int var15 = 0; var15 < var14; var15++) {
|
|
um var16 = var13[var15];
|
|
uk var17 = new uk(var16);
|
|
float var18 = var16.centerXPx() * 0.0625F;
|
|
float var19 = var16.centerYPx() * 0.0625F;
|
|
double var20 = -(var18 * var11);
|
|
double var22 = -(var18 * var10);
|
|
var17.x = var1.getX() + var20;
|
|
var17.y = var1.getY() + var19;
|
|
var17.z = var1.getZ() + var22;
|
|
double var24 = var20 + var5.nextDouble(-0.35, 0.35);
|
|
double var26 = var22 + var5.nextDouble(-0.35, 0.35);
|
|
double var28 = Math.sqrt(var24 * var24 + var26 * var26);
|
|
if (var28 < 1.0E-4) {
|
|
double var30 = var5.nextDouble(Math.PI * 2);
|
|
var24 = Math.cos(var30);
|
|
var26 = Math.sin(var30);
|
|
var28 = 1.0;
|
|
}
|
|
|
|
if (var6) {
|
|
double var35 = var7 * var5.nextDouble(1.2, 2.5);
|
|
var17.velX = var24 / var28 * var35;
|
|
var17.velZ = var26 / var28 * var35;
|
|
var17.velY = var7 * var5.nextDouble(2.2, 3.8);
|
|
} else {
|
|
var17.velX = var24 / var28 * var7 * 0.25;
|
|
var17.velZ = var26 / var28 * var7 * 0.25;
|
|
var17.velY = var7 * var5.nextDouble(0.8, 1.4);
|
|
}
|
|
|
|
float var36 = (float)var5.nextDouble(-1.0, 1.0);
|
|
float var31 = (float)var5.nextDouble(-1.0, 1.0);
|
|
float var32 = (float)var5.nextDouble(-1.0, 1.0);
|
|
float var33 = Math.max(1.0E-4F, (float)Math.sqrt(var36 * var36 + var31 * var31 + var32 * var32));
|
|
var17.axisX = var36 / var33;
|
|
var17.axisY = var31 / var33;
|
|
var17.axisZ = var32 / var33;
|
|
var17.angle = (float)var5.nextDouble(Math.PI * 2);
|
|
float var34 = var6 ? 6.0F : 1.5F;
|
|
var17.angularSpeed = var8 * (float)var5.nextDouble(0.5, 1.0) * var34 * (var5.nextBoolean() ? 1.0F : -1.0F);
|
|
var12.add(var17);
|
|
}
|
|
|
|
this.active
|
|
.put(
|
|
var1.getId(),
|
|
new uj(
|
|
var1.getId(),
|
|
var2.body().texturePath(),
|
|
var1.getY(),
|
|
System.currentTimeMillis(),
|
|
var12,
|
|
List.of(),
|
|
ul.PARTS,
|
|
var1.getX(),
|
|
var1.getY(),
|
|
var1.getZ(),
|
|
0.0F,
|
|
List.of(),
|
|
(boolean)((var3) != 0),
|
|
var1.yBodyRot
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
private void captureDisintegrate(AbstractClientPlayer var1) {
|
|
ThreadLocalRandom var2 = ThreadLocalRandom.current();
|
|
PlayerSkin var3 = var1.getSkin();
|
|
int var4 = var3.model() == PlayerModelType.SLIM
|
|
? 1: 0;
|
|
float var5 = (float)Math.toRadians(var1.yBodyRot);
|
|
float var6 = Mth.sin(var5);
|
|
float var7 = Mth.cos(var5);
|
|
double var8 = var1.getX();
|
|
double var10 = var1.getY();
|
|
double var12 = var1.getZ();
|
|
float var14 = 32.0F;
|
|
ArrayList var15 = new ArrayList();
|
|
um[] var16 = bodyParts((boolean)((var4) != 0));
|
|
int var17 = var16.length;
|
|
|
|
for (int var18 = 0; var18 < var17; var18++) {
|
|
um var19 = var16[var18];
|
|
int var20 = (int)Math.ceil(var19.widthPx() / 2.0F);
|
|
int var21 = (int)Math.ceil(var19.heightPx() / 2.0F);
|
|
|
|
for (int var22 = 0; var22 < var20; var22++) {
|
|
for (int var23 = 0; var23 < var21; var23++) {
|
|
float var24 = Math.min(2.0F, var19.widthPx() - var22 * 2.0F);
|
|
float var25 = Math.min(2.0F, var19.heightPx() - var23 * 2.0F);
|
|
float var26 = var19.centerXPx() - var19.widthPx() * 0.5F + var22 * 2.0F + var24 * 0.5F;
|
|
float var27 = var19.centerYPx() - var19.heightPx() * 0.5F + var23 * 2.0F + var25 * 0.5F;
|
|
float var28 = var19.u() + var19.depthPx() + var22 * 2.0F;
|
|
float var29 = var19.v() + var19.depthPx() + (var19.heightPx() - var25 - var23 * 2.0F);
|
|
float var30 = var19.overlayU() + var19.depthPx() + var22 * 2.0F;
|
|
float var31 = var19.overlayV() + var19.depthPx() + (var19.heightPx() - var25 - var23 * 2.0F);
|
|
float var32 = Mth.clamp(var27 / var14 + (var2.nextFloat() - 0.5F) * 0.12F, 0.0F, 1.0F);
|
|
var15.add(
|
|
new ug(
|
|
var8 - var26 * 0.0625F * var7,
|
|
var10 + var27 * 0.0625F,
|
|
var12 - var26 * 0.0625F * var6,
|
|
var24 * 0.0625F * 0.5F,
|
|
var25 * 0.0625F * 0.5F,
|
|
Math.min(var19.depthPx(), 4.0F) * 0.0625F * 0.5F,
|
|
var28,
|
|
var29,
|
|
var28 + var24,
|
|
var29 + var25,
|
|
var30,
|
|
var31,
|
|
var30 + var24,
|
|
var31 + var25,
|
|
var32,
|
|
var2.nextFloat() * (float) (Math.PI * 2),
|
|
var2.nextLong(
|
|
(1625626743376293880L | -1625626743376293080L) + (1625626743376293880L & -1625626743376293080L),
|
|
(9192073547034033646L | -9192073547034031946L) + (9192073547034033646L & -9192073547034031946L)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
Vec3 var33 = mc.player != null ? mc.player.getLookAngle() : new Vec3(0.0, 0.0, 1.0);
|
|
double var34 = Math.atan2(var33.x, -var33.z) + var2.nextDouble(-Math.PI / 9, Math.PI / 9);
|
|
uj var35 = new uj(
|
|
var1.getId(),
|
|
var3.body().texturePath(),
|
|
var10,
|
|
System.currentTimeMillis(),
|
|
List.of(),
|
|
List.of(),
|
|
ul.DISINTEGRATE,
|
|
var8,
|
|
var10,
|
|
var12,
|
|
var2.nextFloat() * 100.0F,
|
|
List.of(),
|
|
(boolean)((var4) != 0),
|
|
var1.yBodyRot
|
|
);
|
|
var35.ashCubes = var15;
|
|
var35.grains = new ArrayList<>();
|
|
var35.windX = Math.cos(var34);
|
|
var35.windZ = Math.sin(var34);
|
|
this.active.put(var1.getId(), var35);
|
|
}
|
|
|
|
private void renderDisintegrate(uj var1, PoseStack var2, SubmitNodeCollector var3, Camera var4, Vec3 var5, float var6, float var7, long var8) {
|
|
float var10 = this.powerSetting.getCurrent();
|
|
float var11 = Mth.clamp(var6 / 0.55F, 0.0F, 1.0F);
|
|
int var12 = LightCoordsUtil.getLightCoords(mc.level, BlockPos.containing(var1.centerX, var1.centerY + 1.0, var1.centerZ));
|
|
ThreadLocalRandom var13 = ThreadLocalRandom.current();
|
|
double var14 = var8 / 1000.0;
|
|
|
|
for (ug var17 : var1.ashCubes) {
|
|
if (!var17.consumed && var11 >= var17.detachThreshold) {
|
|
var17.consumed = (boolean)(((1)) != 0);
|
|
this.spawnGrains(var1, var17, var10, var13, var8);
|
|
}
|
|
}
|
|
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
RenderTypes.entityTranslucent(var1.skin),
|
|
(var5x, var6x) -> {
|
|
Iterator var7x = null;
|
|
ug var8x = null;
|
|
float var9 = 0.0F;
|
|
int var10x = 0;
|
|
float var11x = 0.0F;
|
|
float var12x = 0.0F;
|
|
float var13x = 0.0F;
|
|
int var14x = -1466215515;
|
|
|
|
while (true) {
|
|
switch (var14x) {
|
|
case -1914357204:
|
|
var11x = (float)(var8x.baseX - var5.x);
|
|
var12x = (float)(var8x.baseY - var5.y);
|
|
var13x = (float)(var8x.baseZ - var5.z);
|
|
this.drawTexturedCube(
|
|
var6x, var5x, var8x, var10x, var12, (boolean)(((0)) != 0), var11x, var12x, var13x
|
|
);
|
|
this.drawTexturedCube(
|
|
var6x, var5x, var8x, var10x, var12, (boolean)(((1)) != 0), var11x, var12x, var13x
|
|
);
|
|
var14x = 886888551;
|
|
break;
|
|
case -1828706438:
|
|
var14x = 886888551;
|
|
break;
|
|
case -1466215515:
|
|
default:
|
|
var7x = var1.ashCubes.iterator();
|
|
var14x = 886888551;
|
|
break;
|
|
case -1284576391:
|
|
var11x = 1.0F - Mth.clamp(var9 / 0.07F, 0.0F, 1.0F);
|
|
var10x = mixRgb(
|
|
16777215, 13209442, var11x
|
|
)
|
|
| -16777216;
|
|
var14x = -1914357204;
|
|
break;
|
|
case -424768255:
|
|
return;
|
|
case 223251946:
|
|
var8x = (ug)var7x.next();
|
|
if (var8x.consumed) {
|
|
var14x = -1828706438;
|
|
} else {
|
|
var14x = 1311698862;
|
|
}
|
|
break;
|
|
case 886888551:
|
|
if (var7x.hasNext()) {
|
|
var14x = 223251946;
|
|
} else {
|
|
var14x = -424768255;
|
|
}
|
|
break;
|
|
case 1311698862:
|
|
var9 = var8x.detachThreshold - var11;
|
|
var10x = -1;
|
|
if (var9 < 0.07F) {
|
|
var14x = -1284576391;
|
|
} else {
|
|
var14x = -1914357204;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
if (!var1.grains.isEmpty()) {
|
|
Quaternionf var29 = var4.rotation();
|
|
Vector3f var30 = var29.transform(1.0F, 0.0F, 0.0F, this.scratchRight);
|
|
Vector3f var18 = var29.transform(0.0F, 1.0F, 0.0F, this.scratchUp);
|
|
float var19 = var30.x;
|
|
float var20 = var30.y;
|
|
float var21 = var30.z;
|
|
float var22 = var18.x;
|
|
float var23 = var18.y;
|
|
float var24 = var18.z;
|
|
|
|
for (un var26 : var1.grains) {
|
|
if (!var26.dead) {
|
|
long var27 = var8 - var26.bornMs;
|
|
if (var27 >= var26.lifeMs) {
|
|
var26.dead = (boolean)(((1)) != 0);
|
|
} else {
|
|
var26.velX = var26.velX + Math.sin(var14 * 3.1 + var26.phase) * 0.5 * var7;
|
|
var26.velZ = var26.velZ + Math.cos(var14 * 2.7 + var26.phase) * 0.5 * var7;
|
|
var26.velX *= 0.995F;
|
|
var26.velY *= 0.995F;
|
|
var26.velZ *= 0.995F;
|
|
var26.x = var26.x + var26.velX * var7;
|
|
var26.y = var26.y + var26.velY * var7;
|
|
var26.z = var26.z + var26.velZ * var7;
|
|
}
|
|
}
|
|
}
|
|
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
arj.positionColor(),
|
|
(var10x, var11x) -> {
|
|
Iterator var12x = null;
|
|
un var13x = null;
|
|
long var14x = (2822436483774321291L ^ -2822436483774321291L) + ((2822436483774321291L & -2822436483774321291L) << 1);
|
|
float var16 = 0.0F;
|
|
float var17x = 0.0F;
|
|
int var18x = 0;
|
|
int var19x = 0;
|
|
float var20x = 0.0F;
|
|
float var21x = 0.0F;
|
|
float var22x = 0.0F;
|
|
float var23x = 0.0F;
|
|
float var24x = 0.0F;
|
|
float var25 = 0.0F;
|
|
float var26x = 0.0F;
|
|
float var27x = 0.0F;
|
|
float var28 = 0.0F;
|
|
float var29x = 0.0F;
|
|
float var31 = 0.0F;
|
|
int var30x = -180787527;
|
|
|
|
while (true) {
|
|
switch (var30x) {
|
|
case -1963174069:
|
|
return;
|
|
case -721808206:
|
|
var30x = 1058814647;
|
|
break;
|
|
case -180787527:
|
|
default:
|
|
var12x = var1.grains.iterator();
|
|
var30x = 1058814647;
|
|
break;
|
|
case -159438334:
|
|
var17x = var31;
|
|
var18x = Mth.clamp(
|
|
(int)(var17x * 255.0F),
|
|
0,
|
|
(141919278 ^ -141919023) + ((141919278 & -141919023) << 1)
|
|
);
|
|
if (var18x == 0) {
|
|
var30x = -721808206;
|
|
} else {
|
|
var30x = 35855908;
|
|
}
|
|
break;
|
|
case 35855908:
|
|
var19x = var18x << (1643232597 | -1643232573) + (1643232597 & -1643232573) | var13x.rgb;
|
|
var20x = var13x.size * (1.0F - var16 * 0.5F);
|
|
var21x = (float)(var13x.x - var5.x);
|
|
var22x = (float)(var13x.y - var5.y);
|
|
var23x = (float)(var13x.z - var5.z);
|
|
var24x = var19 * var20x;
|
|
var25 = var20 * var20x;
|
|
var26x = var21 * var20x;
|
|
var27x = var22 * var20x;
|
|
var28 = var23 * var20x;
|
|
var29x = var24 * var20x;
|
|
var11x.addVertex(var21x - var24x - var27x, var22x - var25 - var28, var23x - var26x - var29x).setColor(var19x);
|
|
var11x.addVertex(var21x + var24x - var27x, var22x + var25 - var28, var23x + var26x - var29x).setColor(var19x);
|
|
var11x.addVertex(var21x + var24x + var27x, var22x + var25 + var28, var23x + var26x + var29x).setColor(var19x);
|
|
var11x.addVertex(var21x - var24x + var27x, var22x - var25 + var28, var23x - var26x + var29x).setColor(var19x);
|
|
var11x.addVertex(var21x - var24x + var27x, var22x - var25 + var28, var23x - var26x + var29x).setColor(var19x);
|
|
var11x.addVertex(var21x + var24x + var27x, var22x + var25 + var28, var23x + var26x + var29x).setColor(var19x);
|
|
var11x.addVertex(var21x + var24x - var27x, var22x + var25 - var28, var23x + var26x - var29x).setColor(var19x);
|
|
var11x.addVertex(var21x - var24x - var27x, var22x - var25 - var28, var23x - var26x - var29x).setColor(var19x);
|
|
var30x = 1058814647;
|
|
break;
|
|
case 554375088:
|
|
var31 = 1.0F;
|
|
var30x = -159438334;
|
|
break;
|
|
case 769512735:
|
|
var30x = 1058814647;
|
|
break;
|
|
case 1058814647:
|
|
if (var12x.hasNext()) {
|
|
var30x = 1500505528;
|
|
} else {
|
|
var30x = -1963174069;
|
|
}
|
|
break;
|
|
case 1346782464:
|
|
var14x = var8 - var13x.bornMs;
|
|
var16 = (float)var14x / (float)var13x.lifeMs;
|
|
if (var16 <= 0.45F) {
|
|
var30x = 554375088;
|
|
} else {
|
|
var30x = 1596639747;
|
|
}
|
|
break;
|
|
case 1500505528:
|
|
var13x = (un)var12x.next();
|
|
if (var13x.dead) {
|
|
var30x = 769512735;
|
|
} else {
|
|
var30x = 1346782464;
|
|
}
|
|
break;
|
|
case 1596639747:
|
|
var31 = 1.0F - (var16 - 0.45F) / 0.55F;
|
|
var30x = -159438334;
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
private void spawnGrains(uj var1, ug var2, float var3, ThreadLocalRandom var4, long var5) {
|
|
int var7 = 0;
|
|
un var8 = null;
|
|
double var9 = 0.0;
|
|
int var11 = 1011660127;
|
|
|
|
while (true) {
|
|
switch (var11) {
|
|
case -1887405891:
|
|
if (var7 < (-1157718428 | 1157718432) + (-1157718428 & 1157718432)) {
|
|
var11 = -30238119;
|
|
} else {
|
|
var11 = 712525916;
|
|
}
|
|
break;
|
|
case -30238119:
|
|
var8 = new un();
|
|
var8.x = var2.baseX + var4.nextDouble(-0.08F, 0.08F);
|
|
var8.y = var2.baseY + var4.nextDouble(-0.08F, 0.08F);
|
|
var8.z = var2.baseZ + var4.nextDouble(-0.08F, 0.08F);
|
|
var9 = 1.3F * var3 * var4.nextDouble(0.7, 1.6);
|
|
var8.velX = var1.windX * var9 + var4.nextDouble(-0.3, 0.3);
|
|
var8.velY = 0.45F * var3 * var4.nextDouble(0.5, 1.5);
|
|
var8.velZ = var1.windZ * var9 + var4.nextDouble(-0.3, 0.3);
|
|
var8.size = (float)var4.nextDouble(0.015F, 0.045F);
|
|
var8.rgb = mixRgb(
|
|
14269588, 8284754, var4.nextFloat()
|
|
);
|
|
var8.phase = var4.nextFloat() * (float) (Math.PI * 2);
|
|
var8.bornMs = var5;
|
|
var8.lifeMs = var4.nextLong(
|
|
(-7704123249064192376L ^ 7704123249064193176L) + ((-7704123249064192376L & 7704123249064193176L) << 1),
|
|
(-3832801828752211802L | 3832801828752213502L) + (-3832801828752211802L & 3832801828752213502L)
|
|
);
|
|
var1.grains.add(var8);
|
|
var7++;
|
|
var11 = -1887405891;
|
|
break;
|
|
case 712525916:
|
|
return;
|
|
case 1011660127:
|
|
default:
|
|
var7 = 0;
|
|
var11 = -1887405891;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void drawTexturedCube(VertexConsumer var1, Pose var2, ug var3, int var4, int var5, boolean var6, float var7, float var8, float var9) {
|
|
float var10 = 0.0F;
|
|
float var11 = 0.0F;
|
|
float var12 = 0.0F;
|
|
float var13 = 0.0F;
|
|
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 var25 = 0.0F;
|
|
float var26 = 0.0F;
|
|
float var27 = 0.0F;
|
|
float var28 = 0.0F;
|
|
float var29 = 0.0F;
|
|
int var24 = 81097650;
|
|
|
|
while (true) {
|
|
switch (var24) {
|
|
case -1942884165:
|
|
var16 = var28;
|
|
if (var6) {
|
|
var24 = -1703850865;
|
|
} else {
|
|
var24 = 732429956;
|
|
}
|
|
break;
|
|
case -1842477701:
|
|
var28 = var3.u1;
|
|
var24 = -1942884165;
|
|
break;
|
|
case -1703850865:
|
|
var29 = var3.overlayV1;
|
|
var24 = 1318572208;
|
|
break;
|
|
case -1407224033:
|
|
var15 = var27;
|
|
if (var6) {
|
|
var24 = -1178388658;
|
|
} else {
|
|
var24 = -1842477701;
|
|
}
|
|
break;
|
|
case -1377593187:
|
|
var10 = var25;
|
|
var11 = var3.halfX + var10;
|
|
var12 = var3.halfY + var10;
|
|
var13 = var3.halfZ + var10;
|
|
if (var6) {
|
|
var24 = -1238201562;
|
|
} else {
|
|
var24 = -240085557;
|
|
}
|
|
break;
|
|
case -1249369664:
|
|
var25 = 0.015625F;
|
|
var24 = -1377593187;
|
|
break;
|
|
case -1238201562:
|
|
var26 = var3.overlayU0;
|
|
var24 = -291836045;
|
|
break;
|
|
case -1178388658:
|
|
var28 = var3.overlayU1;
|
|
var24 = -1942884165;
|
|
break;
|
|
case -1114973004:
|
|
var25 = 0.0F;
|
|
var24 = -1377593187;
|
|
break;
|
|
case -291836045:
|
|
var14 = var26;
|
|
if (var6) {
|
|
var24 = 1726893088;
|
|
} else {
|
|
var24 = 1330811350;
|
|
}
|
|
break;
|
|
case -240085557:
|
|
var26 = var3.u0;
|
|
var24 = -291836045;
|
|
break;
|
|
case 81097650:
|
|
default:
|
|
if (var6) {
|
|
var24 = -1249369664;
|
|
} else {
|
|
var24 = -1114973004;
|
|
}
|
|
break;
|
|
case 732429956:
|
|
var29 = var3.v1;
|
|
var24 = 1318572208;
|
|
break;
|
|
case 1318572208:
|
|
var17 = var29;
|
|
var18 = var7 - var11;
|
|
var19 = var7 + var11;
|
|
var20 = var8 - var12;
|
|
var21 = var8 + var12;
|
|
var22 = var9 - var13;
|
|
var23 = var9 + var13;
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
0.0F,
|
|
0.0F,
|
|
1.0F,
|
|
var18,
|
|
var20,
|
|
var23,
|
|
var19,
|
|
var20,
|
|
var23,
|
|
var19,
|
|
var21,
|
|
var23,
|
|
var18,
|
|
var21,
|
|
var23,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
0.0F,
|
|
0.0F,
|
|
-1.0F,
|
|
var19,
|
|
var20,
|
|
var22,
|
|
var18,
|
|
var20,
|
|
var22,
|
|
var18,
|
|
var21,
|
|
var22,
|
|
var19,
|
|
var21,
|
|
var22,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
1.0F,
|
|
0.0F,
|
|
0.0F,
|
|
var19,
|
|
var20,
|
|
var23,
|
|
var19,
|
|
var20,
|
|
var22,
|
|
var19,
|
|
var21,
|
|
var22,
|
|
var19,
|
|
var21,
|
|
var23,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
-1.0F,
|
|
0.0F,
|
|
0.0F,
|
|
var18,
|
|
var20,
|
|
var22,
|
|
var18,
|
|
var20,
|
|
var23,
|
|
var18,
|
|
var21,
|
|
var23,
|
|
var18,
|
|
var21,
|
|
var22,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
0.0F,
|
|
1.0F,
|
|
0.0F,
|
|
var18,
|
|
var21,
|
|
var23,
|
|
var19,
|
|
var21,
|
|
var23,
|
|
var19,
|
|
var21,
|
|
var22,
|
|
var18,
|
|
var21,
|
|
var22,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var4,
|
|
var5,
|
|
0.0F,
|
|
-1.0F,
|
|
0.0F,
|
|
var18,
|
|
var20,
|
|
var22,
|
|
var19,
|
|
var20,
|
|
var22,
|
|
var19,
|
|
var20,
|
|
var23,
|
|
var18,
|
|
var20,
|
|
var23,
|
|
var14,
|
|
var15,
|
|
var16,
|
|
var17
|
|
);
|
|
return;
|
|
case 1330811350:
|
|
var27 = var3.v0;
|
|
var24 = -1407224033;
|
|
break;
|
|
case 1726893088:
|
|
var27 = var3.overlayV0;
|
|
var24 = -1407224033;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int mixRgb(int var0, int var1, float var2) {
|
|
int var3 = Mth.lerpInt(
|
|
var2,
|
|
var0 >> 16,
|
|
var1 >> (-1461035617 | 1461035633) + (-1461035617 & 1461035633) & (1720963239 ^ -1720962984) + ((1720963239 & -1720962984) << 1)
|
|
);
|
|
int var4 = Mth.lerpInt(
|
|
var2,
|
|
var0 >> 8,
|
|
var1 >> (-735424528 ^ 735424536) + ((-735424528 & 735424536) << 1) & (-1588760412 ^ 1588760667) + ((-1588760412 & 1588760667) << 1)
|
|
);
|
|
int var5 = Mth.lerpInt(
|
|
var2, var0 & 255, var1 & (327638557 | -327638302) + (327638557 & -327638302)
|
|
);
|
|
return var3 << (-198727883 | 198727899) + (-198727883 & 198727899) | var4 << (-1108156016 | 1108156024) + (-1108156016 & 1108156024) | var5;
|
|
}
|
|
|
|
private static um[] bodyParts(boolean var0) {
|
|
float var1 = 0.0F;
|
|
float var2 = 0.0F;
|
|
Object var3 = null;
|
|
Object var4 = null;
|
|
float var6 = 0.0F;
|
|
int var5 = -101089148;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1368489130:
|
|
var6 = 3.0F;
|
|
var5 = -499653264;
|
|
break;
|
|
case -1103423549:
|
|
var6 = 4.0F;
|
|
var5 = -499653264;
|
|
break;
|
|
case -499653264:
|
|
var1 = var6;
|
|
var2 = 4.0F + var1 * 0.5F;
|
|
var3 = new um(
|
|
var1,
|
|
12.0F,
|
|
4.0F,
|
|
40,
|
|
16,
|
|
40,
|
|
32,
|
|
-var2,
|
|
18.0F
|
|
);
|
|
var4 = new um(
|
|
var1,
|
|
12.0F,
|
|
4.0F,
|
|
32,
|
|
48,
|
|
48,
|
|
48,
|
|
var2,
|
|
18.0F
|
|
);
|
|
um[] var10000 = new um[6];
|
|
var10000[0] = HEAD;
|
|
var10000[1] = BODY;
|
|
var10000[2] = (um)var3;
|
|
var10000[3] = (um)var4;
|
|
var10000[4] = RIGHT_LEG;
|
|
var10000[5] = LEFT_LEG;
|
|
return var10000;
|
|
case -101089148:
|
|
default:
|
|
if (var0) {
|
|
var5 = -1368489130;
|
|
} else {
|
|
var5 = -1103423549;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void captureExplosion(AbstractClientPlayer var1) {
|
|
ThreadLocalRandom var2 = ThreadLocalRandom.current();
|
|
float var3 = this.powerSetting.getCurrent();
|
|
double var4 = var1.getX();
|
|
double var6 = var1.getY() + var1.getBbHeight() * 0.55F;
|
|
double var8 = var1.getZ();
|
|
int var10 = (int)this.sparkCountSetting.getCurrent();
|
|
ArrayList var11 = new ArrayList(var10);
|
|
|
|
for (int var12 = 0; var12 < var10; var12++) {
|
|
uo var13 = new uo();
|
|
double var14 = var2.nextDouble(Math.PI * 2);
|
|
double var16 = var2.nextDouble(-0.25, 1.0);
|
|
double var18 = Math.sqrt(Math.max(0.0, 1.0 - var16 * var16));
|
|
double var20 = var3 * var2.nextDouble(2.5, 9.0);
|
|
var13.x = var4;
|
|
var13.y = var6;
|
|
var13.z = var8;
|
|
var13.velX = Math.cos(var14) * var18 * var20;
|
|
var13.velY = var16 * var20;
|
|
var13.velZ = Math.sin(var14) * var18 * var20;
|
|
var13.size = (float)var2.nextDouble(0.012, 0.035);
|
|
var13.lifeFactor = (float)var2.nextDouble(0.35, 1.0);
|
|
var11.add(var13);
|
|
}
|
|
|
|
long var22 = System.currentTimeMillis();
|
|
uj var23 = new uj(
|
|
var1.getId(),
|
|
var1.getSkin().body().texturePath(),
|
|
var1.getY(),
|
|
var22,
|
|
List.of(),
|
|
var11,
|
|
ul.EXPLOSION,
|
|
var4,
|
|
var6,
|
|
var8,
|
|
var2.nextFloat() * 100.0F,
|
|
List.of(),
|
|
(boolean)(((0)) != 0),
|
|
0.0F
|
|
);
|
|
if (this.bloodSetting.isEnabled()) {
|
|
var23.blood = spawnBlood(var4, var6, var8, var3, var2, var22);
|
|
}
|
|
|
|
this.active.put(var1.getId(), var23);
|
|
}
|
|
|
|
private static List<uh> spawnBlood(double var0, double var2, double var4, float var6, ThreadLocalRandom var7, long var8) {
|
|
ArrayList var10 = null;
|
|
int var11 = 0;
|
|
uh var12 = null;
|
|
double var13 = 0.0;
|
|
double var15 = 0.0;
|
|
double var17 = 0.0;
|
|
double var19 = 0.0;
|
|
int var21 = 2133105551;
|
|
|
|
while (true) {
|
|
switch (var21) {
|
|
case -1543456443:
|
|
if (var11 < (2107761099 | -2107761051) + (2107761099 & -2107761051)) {
|
|
var21 = 1924159408;
|
|
} else {
|
|
var21 = 1906225017;
|
|
}
|
|
break;
|
|
case 1906225017:
|
|
return var10;
|
|
case 1924159408:
|
|
var12 = new uh();
|
|
var13 = var7.nextDouble(Math.PI * 2);
|
|
var15 = var7.nextDouble(-0.35, 1.0);
|
|
var17 = Math.sqrt(Math.max(0.0, 1.0 - var15 * var15));
|
|
var19 = var6 * var7.nextDouble(1.5, 7.0);
|
|
var12.x = var0;
|
|
var12.y = var2;
|
|
var12.z = var4;
|
|
var12.velX = Math.cos(var13) * var17 * var19;
|
|
var12.velY = var15 * var19;
|
|
var12.velZ = Math.sin(var13) * var17 * var19;
|
|
var12.size = (float)var7.nextDouble(0.03F, 0.085F);
|
|
var12.rgb = mixRgb(
|
|
10357515, 4981250, var7.nextFloat()
|
|
);
|
|
var12.bornMs = var8;
|
|
var12.lifeMs = var7.nextLong(
|
|
(4096647034542223884L ^ -4096647034542222984L) + ((4096647034542223884L & -4096647034542222984L) << 1),
|
|
(495975230863586671L ^ -495975230863584471L) + ((495975230863586671L & -495975230863584471L) << 1)
|
|
);
|
|
var10.add(var12);
|
|
var11++;
|
|
var21 = -1543456443;
|
|
break;
|
|
case 2133105551:
|
|
default:
|
|
var10 = new ArrayList((-1500016743 | 1500016791) + (-1500016743 & 1500016791));
|
|
var11 = 0;
|
|
var21 = -1543456443;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void captureLightning(AbstractClientPlayer var1) {
|
|
ThreadLocalRandom var2 = ThreadLocalRandom.current();
|
|
float var3 = this.powerSetting.getCurrent();
|
|
double var4 = var1.getX();
|
|
double var6 = var1.getY() + var1.getBbHeight() * 0.5F;
|
|
double var8 = var1.getZ();
|
|
ArrayList var10 = new ArrayList((-1787580213 ^ 1787580216) + ((-1787580213 & 1787580216) << 1));
|
|
|
|
for (int var11 = 0; var11 < 3; var11++) {
|
|
ArrayList var12 = new ArrayList();
|
|
double var13 = var4 + var2.nextDouble(-7.0, 7.0);
|
|
double var15 = var8 + var2.nextDouble(-7.0, 7.0);
|
|
buildBolt(
|
|
var12,
|
|
var2,
|
|
var13,
|
|
var6 + 26.0,
|
|
var15,
|
|
var4,
|
|
var6,
|
|
var8,
|
|
6,
|
|
1.0F,
|
|
(-599471653 | 599471658) + (-599471653 & 599471658)
|
|
);
|
|
var10.add(var12);
|
|
}
|
|
|
|
int var23 = (int)(this.sparkCountSetting.getCurrent() * 0.7F);
|
|
ArrayList var24 = new ArrayList(var23);
|
|
|
|
for (int var25 = 0; var25 < var23; var25++) {
|
|
uo var14 = new uo();
|
|
double var26 = var2.nextDouble(Math.PI * 2);
|
|
double var17 = var2.nextDouble(0.0, 1.0);
|
|
double var19 = Math.sqrt(Math.max(0.0, 1.0 - var17 * var17));
|
|
double var21 = var3 * var2.nextDouble(1.5, 6.0);
|
|
var14.x = var4;
|
|
var14.y = var6;
|
|
var14.z = var8;
|
|
var14.velX = Math.cos(var26) * var19 * var21;
|
|
var14.velY = var17 * var21;
|
|
var14.velZ = Math.sin(var26) * var19 * var21;
|
|
var14.size = (float)var2.nextDouble(0.01, 0.03);
|
|
var14.lifeFactor = (float)var2.nextDouble(0.2, 0.6);
|
|
var24.add(var14);
|
|
}
|
|
|
|
if (mc.level != null) {
|
|
mc.level.setSkyFlashTime((-337133234 ^ 337133236) + ((-337133234 & 337133236) << 1));
|
|
}
|
|
|
|
if (this.thunderSetting.isEnabled() && mc.level != null) {
|
|
mc.level
|
|
.playLocalSound(
|
|
var4,
|
|
var6,
|
|
var8,
|
|
SoundEvents.LIGHTNING_BOLT_THUNDER,
|
|
SoundSource.WEATHER,
|
|
1.8F,
|
|
0.8F + var2.nextFloat() * 0.2F,
|
|
(boolean)((((-1140986346 ^ 1140986346) + ((-1140986346 & 1140986346) << 1))
|
|
) != 0));
|
|
mc.level
|
|
.playLocalSound(
|
|
var4,
|
|
var6,
|
|
var8,
|
|
SoundEvents.LIGHTNING_BOLT_IMPACT,
|
|
SoundSource.WEATHER,
|
|
1.8F,
|
|
0.5F + var2.nextFloat() * 0.2F,
|
|
(boolean)((((560060121 | -560060121) + (560060121 & -560060121))
|
|
) != 0));
|
|
}
|
|
|
|
this.active
|
|
.put(
|
|
var1.getId(),
|
|
new uj(
|
|
var1.getId(),
|
|
var1.getSkin().body().texturePath(),
|
|
var1.getY(),
|
|
System.currentTimeMillis(),
|
|
List.of(),
|
|
var24,
|
|
ul.LIGHTNING,
|
|
var4,
|
|
var6,
|
|
var8,
|
|
var2.nextFloat() * 100.0F,
|
|
var10,
|
|
(boolean)(((var1.getSkin().model() == PlayerModelType.SLIM
|
|
? 1: (-980127165 ^ 980127165) + ((-980127165 & 980127165) << 1))) != 0),
|
|
var1.yBodyRot
|
|
)
|
|
);
|
|
}
|
|
|
|
private static void buildBolt(
|
|
List<ui> var0, ThreadLocalRandom var1, double var2, double var4, double var6, double var8, double var10, double var12, int var14, float var15, int var16
|
|
) {
|
|
int var17 = 0;
|
|
float[] var18 = null;
|
|
int var19 = 0;
|
|
int var20 = 0;
|
|
int var21 = 0;
|
|
double var22 = 0.0;
|
|
double var24 = 0.0;
|
|
double var26 = 0.0;
|
|
double var28 = 0.0;
|
|
double var30 = 0.0;
|
|
double var32 = 0.0;
|
|
double var34 = 0.0;
|
|
double var36 = 0.0;
|
|
int var38 = 144676105;
|
|
|
|
while (true) {
|
|
switch (var38) {
|
|
case -1084303350:
|
|
if (var20 < var19) {
|
|
var38 = 194513161;
|
|
} else {
|
|
var38 = -20707783;
|
|
}
|
|
break;
|
|
case -641819034:
|
|
var19 = (-1354275920 | 1354275921) + (-1354275920 & 1354275921) + var1.nextInt(var16);
|
|
var20 = 0;
|
|
var38 = -1084303350;
|
|
break;
|
|
case -617383269:
|
|
return;
|
|
case -536519203:
|
|
if (var14 < (1070283801 ^ -1070283798) + ((1070283801 & -1070283798) << 1)) {
|
|
var38 = -617383269;
|
|
} else {
|
|
var38 = -641819034;
|
|
}
|
|
break;
|
|
case -20707783:
|
|
return;
|
|
case 144676105:
|
|
default:
|
|
var17 = ((-1041123815 | 1041123816) + (-1041123815 & 1041123816) << var14) + 1;
|
|
var18 = new float[var17 * (3)];
|
|
var18[0] = (float)var2;
|
|
var18[1] = (float)var4;
|
|
var18[2] = (float)var6;
|
|
var18[(var17 - ((481822700 | -481822699) + (481822700 & -481822699))) * ((1315762054 | -1315762051) + (1315762054 & -1315762051))] = (float)var8;
|
|
var18[(var17 - ((1373820501 | -1373820500) + (1373820501 & -1373820500))) * ((584394862 | -584394859) + (584394862 & -584394859))
|
|
+ (1158902428 ^ -1158902427)
|
|
+ ((1158902428 & -1158902427) << 1)] = (float)var10;
|
|
var18[(var17 - ((853234068 ^ -853234067) + ((853234068 & -853234067) << 1))) * ((-682648368 | 682648371) + (-682648368 & 682648371))
|
|
+ (-1247719323 | 1247719325)
|
|
+ (-1247719323 & 1247719325)] = (float)var12;
|
|
displaceMidpoints(
|
|
var18,
|
|
0,
|
|
var17 - (1),
|
|
var1,
|
|
(float)Math.sqrt(squaredDistance(var2, var4, var6, var8, var10, var12)) * 0.16F
|
|
);
|
|
var0.add(new ui(var18, var15));
|
|
if (var16 > 0) {
|
|
var38 = -536519203;
|
|
} else {
|
|
var38 = -617383269;
|
|
}
|
|
break;
|
|
case 194513161:
|
|
var21 = var17 / ((315736382 ^ -315736378) + ((315736382 & -315736378) << 1))
|
|
+ var1.nextInt(var17 / ((-1578003988 | 1578003990) + (-1578003988 & 1578003990)));
|
|
var22 = var18[var21 * (3)];
|
|
var24 = var18[var21 * 4];
|
|
var26 = var18[var21 * 5];
|
|
var28 = Math.sqrt(squaredDistance(var22, var24, var26, var8, var10, var12)) * var1.nextDouble(0.25, 0.5);
|
|
var30 = var1.nextDouble(Math.PI * 2);
|
|
var32 = var22 + Math.cos(var30) * var28 * 0.8;
|
|
var34 = var24 - var28 * var1.nextDouble(0.5, 1.0);
|
|
var36 = var26 + Math.sin(var30) * var28 * 0.8;
|
|
buildBolt(
|
|
var0,
|
|
var1,
|
|
var22,
|
|
var24,
|
|
var26,
|
|
var32,
|
|
var34,
|
|
var36,
|
|
var14 - (2),
|
|
var15 * 0.45F,
|
|
var16 - ((586201319 | -586201317) + (586201319 & -586201317))
|
|
);
|
|
var20++;
|
|
var38 = -1084303350;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void displaceMidpoints(float[] var0, int var1, int var2, ThreadLocalRandom var3, float var4) {
|
|
int var5 = 0;
|
|
int var6 = -1283724687;
|
|
|
|
while (true) {
|
|
switch (var6) {
|
|
case -1283724687:
|
|
default:
|
|
if (var2 - var1 < (1977379867 | -1977379865) + (1977379867 & -1977379865)) {
|
|
var6 = 1457811875;
|
|
} else {
|
|
var6 = 921510652;
|
|
}
|
|
break;
|
|
case 921510652:
|
|
var5 = (var1 + var2) / (2);
|
|
var0[var5 * (3)] = (
|
|
var0[var1 * (3)]
|
|
+ var0[var2 * (3)]
|
|
)
|
|
* 0.5F
|
|
+ (float)var3.nextDouble(-var4, var4);
|
|
var0[var5 * 4] = (
|
|
var0[var1 * 4]
|
|
+ var0[var2 * 4]
|
|
)
|
|
* 0.5F
|
|
+ (float)var3.nextDouble(-var4, var4) * 0.4F;
|
|
var0[var5 * 5] = (
|
|
var0[var1 * 5]
|
|
+ var0[var2 * 5]
|
|
)
|
|
* 0.5F
|
|
+ (float)var3.nextDouble(-var4, var4);
|
|
displaceMidpoints(var0, var1, var5, var3, var4 * 0.55F);
|
|
displaceMidpoints(var0, var5, var2, var3, var4 * 0.55F);
|
|
return;
|
|
case 1457811875:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static double squaredDistance(double var0, double var2, double var4, double var6, double var8, double var10) {
|
|
double var12 = var6 - var0;
|
|
double var14 = var8 - var2;
|
|
double var16 = var10 - var4;
|
|
return var12 * var12 + var14 * var14 + var16 * var16;
|
|
}
|
|
|
|
private void simulate(uj var1, float var2, boolean var3, boolean var4) {
|
|
Iterator var5 = null;
|
|
uk var6 = null;
|
|
float var7 = 0.0F;
|
|
double var8 = 0.0;
|
|
int var10 = -1132464362;
|
|
|
|
while (true) {
|
|
switch (var10) {
|
|
case -2097416690:
|
|
var6.x = var6.x + var6.velX * var2;
|
|
var6.y = var6.y + var6.velY * var2;
|
|
var6.z = var6.z + var6.velZ * var2;
|
|
var6.angle = var6.angle + var6.angularSpeed * var2;
|
|
if (var3) {
|
|
var10 = 514579869;
|
|
} else {
|
|
var10 = -784073605;
|
|
}
|
|
break;
|
|
case -1979922584:
|
|
var6.velY -= 14.0F * var2;
|
|
var10 = -2097416690;
|
|
break;
|
|
case -1843268729:
|
|
if (var5.hasNext()) {
|
|
var10 = 945281574;
|
|
} else {
|
|
var10 = -1002388695;
|
|
}
|
|
break;
|
|
case -1768723718:
|
|
if (var6.velY < 0.0) {
|
|
var10 = -1087351314;
|
|
} else {
|
|
var10 = -784073605;
|
|
}
|
|
break;
|
|
case -1132464362:
|
|
default:
|
|
var5 = var1.fragments.iterator();
|
|
var10 = -1843268729;
|
|
break;
|
|
case -1087351314:
|
|
var6.y = var8;
|
|
if (var4) {
|
|
var10 = 1155338524;
|
|
} else {
|
|
var10 = -705415806;
|
|
}
|
|
break;
|
|
case -1002388695:
|
|
return;
|
|
case -784073605:
|
|
var10 = -1843268729;
|
|
break;
|
|
case -705415806:
|
|
var6.velX = 0.0;
|
|
var6.velY = 0.0;
|
|
var6.velZ = 0.0;
|
|
var6.angularSpeed = 0.0F;
|
|
var10 = -784073605;
|
|
break;
|
|
case 514579869:
|
|
var7 = Math.min(var6.part.heightPx(), Math.min(var6.part.widthPx(), var6.part.depthPx())) * 0.0625F * 0.5F;
|
|
var8 = var1.groundY + var7;
|
|
if (var6.y < var8) {
|
|
var10 = -1768723718;
|
|
} else {
|
|
var10 = -784073605;
|
|
}
|
|
break;
|
|
case 945281574:
|
|
var6 = (uk)var5.next();
|
|
if (var3) {
|
|
var10 = -1979922584;
|
|
} else {
|
|
var10 = -2097416690;
|
|
}
|
|
break;
|
|
case 1155338524:
|
|
var6.velY = -var6.velY * 0.45F;
|
|
var6.velX *= 0.6F;
|
|
var6.velZ *= 0.6F;
|
|
var6.angularSpeed *= 0.6F;
|
|
var10 = -784073605;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void render(uj var1, PoseStack var2, SubmitNodeCollector var3, Vec3 var4, float var5, boolean var6) {
|
|
float var7 = 0.0F;
|
|
float var8 = 0.0F;
|
|
int var9 = 0;
|
|
int var10 = 0;
|
|
float var11 = 0.0F;
|
|
RenderType var12 = null;
|
|
Iterator var13 = null;
|
|
uk var14 = null;
|
|
int var15 = 0;
|
|
um var16 = null;
|
|
float var17 = 0.0F;
|
|
float var18 = 0.0F;
|
|
float var19 = 0.0F;
|
|
float var21 = 0.0F;
|
|
float var22 = 0.0F;
|
|
float var23 = 0.0F;
|
|
int var20 = 1997060479;
|
|
|
|
while (true) {
|
|
switch (var20) {
|
|
case -1924615581:
|
|
if (var13.hasNext()) {
|
|
var20 = -710837784;
|
|
} else {
|
|
var20 = 2068599985;
|
|
}
|
|
break;
|
|
case -1643808984:
|
|
var22 = 1.0F - (var5 - var7) / (1.0F - var7);
|
|
var20 = 2019082392;
|
|
break;
|
|
case -1327348693:
|
|
var21 = 0.3F;
|
|
var20 = 211978682;
|
|
break;
|
|
case -1248840851:
|
|
var22 = 1.0F;
|
|
var20 = 2019082392;
|
|
break;
|
|
case -925815487:
|
|
var10 = var9 << 16777215;
|
|
if (var6) {
|
|
var20 = 2144004382;
|
|
} else {
|
|
var20 = 837355998;
|
|
}
|
|
break;
|
|
case -736731834:
|
|
return;
|
|
case -710837784:
|
|
var14 = (uk)var13.next();
|
|
var15 = LightCoordsUtil.getLightCoords(mc.level, BlockPos.containing(var14.x, var14.y, var14.z));
|
|
var2.pushPose();
|
|
var2.translate(var14.x - var4.x, var14.y - var4.y, var14.z - var4.z);
|
|
var2.mulPose(this.scratchQuat.rotationAxis(var14.angle, var14.axisX, var14.axisY, var14.axisZ));
|
|
var2.scale(var11, var11, var11);
|
|
var16 = var14.part;
|
|
var17 = var16.widthPx() * 0.0625F * 0.5F;
|
|
var18 = var16.heightPx() * 0.0625F * 0.5F;
|
|
var19 = var16.depthPx() * 0.0625F * 0.5F;
|
|
final int var10f = var10;
|
|
final int var15f = var15;
|
|
final um var16f = var16;
|
|
final float var17f = var17;
|
|
final float var18f = var18;
|
|
final float var19f = var19;
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
var12,
|
|
(var7x, var8x) -> {
|
|
this.drawBox(var8x, var7x, var17f, var18f, var19f, var16f.u(), var16f.v(), var16f.widthPx(), var16f.heightPx(), var16f.depthPx(), var10f, var15f);
|
|
float var9x = 0.015625F;
|
|
this.drawBox(
|
|
var8x,
|
|
var7x,
|
|
var17f + var9x,
|
|
var18f + var9x,
|
|
var19f + var9x,
|
|
var16f.overlayU(),
|
|
var16f.overlayV(),
|
|
var16f.widthPx(),
|
|
var16f.heightPx(),
|
|
var16f.depthPx(),
|
|
var10f,
|
|
var15f
|
|
);
|
|
}
|
|
);
|
|
var2.popPose();
|
|
var20 = -1924615581;
|
|
break;
|
|
case 211978682:
|
|
var7 = var21;
|
|
if (var5 <= var7) {
|
|
var20 = -1248840851;
|
|
} else {
|
|
var20 = -1643808984;
|
|
}
|
|
break;
|
|
case 837355998:
|
|
var23 = 1.0F - var5 * 0.35F;
|
|
var20 = 1263179575;
|
|
break;
|
|
case 1263179575:
|
|
var11 = var23;
|
|
var12 = RenderTypes.entityTranslucent(var1.skin);
|
|
var13 = var1.fragments.iterator();
|
|
var20 = -1924615581;
|
|
break;
|
|
case 1317498561:
|
|
var21 = 0.6F;
|
|
var20 = 211978682;
|
|
break;
|
|
case 1997060479:
|
|
default:
|
|
if (var6) {
|
|
var20 = 1317498561;
|
|
} else {
|
|
var20 = -1327348693;
|
|
}
|
|
break;
|
|
case 2019082392:
|
|
var8 = var22;
|
|
var9 = Mth.clamp(
|
|
(int)(var8 * 255.0F), 0, (-199476239 | 199476494) + (-199476239 & 199476494)
|
|
);
|
|
if (var9 == 0) {
|
|
var20 = -736731834;
|
|
} else {
|
|
var20 = -925815487;
|
|
}
|
|
break;
|
|
case 2068599985:
|
|
return;
|
|
case 2144004382:
|
|
var23 = 1.0F;
|
|
var20 = 1263179575;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void drawBox(
|
|
VertexConsumer var1, Pose var2, float var3, float var4, float var5, int var6, int var7, float var8, float var9, float var10, int var11, int var12
|
|
) {
|
|
float var13 = var6;
|
|
float var14 = var6 + var10;
|
|
float var15 = var6 + var10 + var8;
|
|
float var16 = var6 + var10 + var8 + var10;
|
|
float var17 = var6 + 2.0F * var10 + 2.0F * var8;
|
|
float var18 = var7;
|
|
float var19 = var7 + var10;
|
|
float var20 = var7 + var10 + var9;
|
|
this.quad(
|
|
var1, var2, var11, var12, 0.0F, 0.0F, 1.0F, -var3, -var4, var5, var3, -var4, var5, var3, var4, var5, -var3, var4, var5, var15, var19, var16, var20
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var11,
|
|
var12,
|
|
0.0F,
|
|
0.0F,
|
|
-1.0F,
|
|
var3,
|
|
-var4,
|
|
-var5,
|
|
-var3,
|
|
-var4,
|
|
-var5,
|
|
-var3,
|
|
var4,
|
|
-var5,
|
|
var3,
|
|
var4,
|
|
-var5,
|
|
var14,
|
|
var19,
|
|
var15,
|
|
var20
|
|
);
|
|
this.quad(
|
|
var1, var2, var11, var12, 1.0F, 0.0F, 0.0F, var3, -var4, var5, var3, -var4, -var5, var3, var4, -var5, var3, var4, var5, var16, var19, var17, var20
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var11,
|
|
var12,
|
|
-1.0F,
|
|
0.0F,
|
|
0.0F,
|
|
-var3,
|
|
-var4,
|
|
-var5,
|
|
-var3,
|
|
-var4,
|
|
var5,
|
|
-var3,
|
|
var4,
|
|
var5,
|
|
-var3,
|
|
var4,
|
|
-var5,
|
|
var13,
|
|
var19,
|
|
var14,
|
|
var20
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var11,
|
|
var12,
|
|
0.0F,
|
|
1.0F,
|
|
0.0F,
|
|
-var3,
|
|
var4,
|
|
var5,
|
|
var3,
|
|
var4,
|
|
var5,
|
|
var3,
|
|
var4,
|
|
-var5,
|
|
-var3,
|
|
var4,
|
|
-var5,
|
|
var14,
|
|
var18,
|
|
var14 + var8,
|
|
var19
|
|
);
|
|
this.quad(
|
|
var1,
|
|
var2,
|
|
var11,
|
|
var12,
|
|
0.0F,
|
|
-1.0F,
|
|
0.0F,
|
|
-var3,
|
|
-var4,
|
|
-var5,
|
|
var3,
|
|
-var4,
|
|
-var5,
|
|
var3,
|
|
-var4,
|
|
var5,
|
|
-var3,
|
|
-var4,
|
|
var5,
|
|
var14 + var8,
|
|
var18,
|
|
var14 + 2.0F * var8,
|
|
var19
|
|
);
|
|
}
|
|
|
|
private void quad(
|
|
VertexConsumer var1,
|
|
Pose var2,
|
|
int var3,
|
|
int var4,
|
|
float var5,
|
|
float var6,
|
|
float var7,
|
|
float var8,
|
|
float var9,
|
|
float var10,
|
|
float var11,
|
|
float var12,
|
|
float var13,
|
|
float var14,
|
|
float var15,
|
|
float var16,
|
|
float var17,
|
|
float var18,
|
|
float var19,
|
|
float var20,
|
|
float var21,
|
|
float var22,
|
|
float var23
|
|
) {
|
|
float var24 = var20 / 64.0F;
|
|
float var25 = var21 / 64.0F;
|
|
float var26 = var22 / 64.0F;
|
|
float var27 = var23 / 64.0F;
|
|
var1.addVertex(var2, var8, var9, var10)
|
|
.setColor(var3)
|
|
.setUv(var24, var27)
|
|
.setOverlay(OverlayTexture.NO_OVERLAY)
|
|
.setLight(var4)
|
|
.setNormal(var2, var5, var6, var7);
|
|
var1.addVertex(var2, var11, var12, var13)
|
|
.setColor(var3)
|
|
.setUv(var26, var27)
|
|
.setOverlay(OverlayTexture.NO_OVERLAY)
|
|
.setLight(var4)
|
|
.setNormal(var2, var5, var6, var7);
|
|
var1.addVertex(var2, var14, var15, var16)
|
|
.setColor(var3)
|
|
.setUv(var26, var25)
|
|
.setOverlay(OverlayTexture.NO_OVERLAY)
|
|
.setLight(var4)
|
|
.setNormal(var2, var5, var6, var7);
|
|
var1.addVertex(var2, var17, var18, var19)
|
|
.setColor(var3)
|
|
.setUv(var24, var25)
|
|
.setOverlay(OverlayTexture.NO_OVERLAY)
|
|
.setLight(var4)
|
|
.setNormal(var2, var5, var6, var7);
|
|
}
|
|
|
|
private void simulateSparks(uj var1, float var2) {
|
|
Iterator var3 = null;
|
|
uo var4 = null;
|
|
int var5 = -115209892;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -2070491612:
|
|
var4.dead = (boolean)(((1)) != 0);
|
|
var5 = 866197931;
|
|
break;
|
|
case -1401839042:
|
|
if (var4.velY < 0.0) {
|
|
var5 = -2070491612;
|
|
} else {
|
|
var5 = 866197931;
|
|
}
|
|
break;
|
|
case -1075382959:
|
|
return;
|
|
case -661840130:
|
|
var4 = (uo)var3.next();
|
|
if (var4.dead) {
|
|
var5 = 1565177134;
|
|
} else {
|
|
var5 = 1329319585;
|
|
}
|
|
break;
|
|
case -115209892:
|
|
default:
|
|
var3 = var1.sparks.iterator();
|
|
var5 = 420053562;
|
|
break;
|
|
case 420053562:
|
|
if (var3.hasNext()) {
|
|
var5 = -661840130;
|
|
} else {
|
|
var5 = -1075382959;
|
|
}
|
|
break;
|
|
case 866197931:
|
|
var5 = 420053562;
|
|
break;
|
|
case 1329319585:
|
|
var4.velY -= 9.0F * var2;
|
|
var4.velX *= 0.985F;
|
|
var4.velY *= 0.985F;
|
|
var4.velZ *= 0.985F;
|
|
var4.x = var4.x + var4.velX * var2;
|
|
var4.y = var4.y + var4.velY * var2;
|
|
var4.z = var4.z + var4.velZ * var2;
|
|
if (var4.y < var1.groundY + 0.02) {
|
|
var5 = -1401839042;
|
|
} else {
|
|
var5 = 866197931;
|
|
}
|
|
break;
|
|
case 1565177134:
|
|
var5 = 420053562;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void renderExplosion(uj var1, PoseStack var2, SubmitNodeCollector var3, Camera var4, Vec3 var5, float var6, long var7, long var9) {
|
|
int var11 = this.blastTint(ul.EXPLOSION);
|
|
this.renderBlood(var1, var2, var3, var4, var5, var9);
|
|
var3.submitCustomGeometry(var2, arj.glow(), (var5x, var6x) -> this.renderSparks(var1, var6x, var5, var6, var11));
|
|
this.renderBlastCard(var1, var4, var5, var6, var7, 2.3F * this.powerSetting.getCurrent(), var11);
|
|
}
|
|
|
|
private void simulateBlood(uj var1, float var2, long var3) {
|
|
Iterator var5 = null;
|
|
uh var6 = null;
|
|
int var7 = 157183077;
|
|
|
|
while (true) {
|
|
switch (var7) {
|
|
case -894883564:
|
|
var6 = (uh)var5.next();
|
|
if (!var6.dead) {
|
|
var7 = 1374070079;
|
|
} else {
|
|
var7 = -603351495;
|
|
}
|
|
break;
|
|
case -603351495:
|
|
if (var5.hasNext()) {
|
|
var7 = -894883564;
|
|
} else {
|
|
var7 = 1663247722;
|
|
}
|
|
break;
|
|
case -495423587:
|
|
var6.landed = (boolean)(((1)) != 0);
|
|
var6.y = var1.groundY + 0.02F;
|
|
var6.velX = 0.0;
|
|
var6.velY = 0.0;
|
|
var6.velZ = 0.0;
|
|
var7 = -268235130;
|
|
break;
|
|
case -268235130:
|
|
var7 = -603351495;
|
|
break;
|
|
case 19541698:
|
|
var6.velY -= 16.0F * var2;
|
|
var6.velX *= 0.99F;
|
|
var6.velY *= 0.99F;
|
|
var6.velZ *= 0.99F;
|
|
var6.x = var6.x + var6.velX * var2;
|
|
var6.y = var6.y + var6.velY * var2;
|
|
var6.z = var6.z + var6.velZ * var2;
|
|
if (var6.y <= var1.groundY + 0.02F) {
|
|
var7 = 1856673721;
|
|
} else {
|
|
var7 = -268235130;
|
|
}
|
|
break;
|
|
case 157183077:
|
|
default:
|
|
var5 = var1.blood.iterator();
|
|
var7 = -603351495;
|
|
break;
|
|
case 1374070079:
|
|
if (var6.landed) {
|
|
var7 = 1583046268;
|
|
} else {
|
|
var7 = 19541698;
|
|
}
|
|
break;
|
|
case 1583046268:
|
|
var7 = -603351495;
|
|
break;
|
|
case 1663247722:
|
|
return;
|
|
case 1856673721:
|
|
if (var6.velY < 0.0) {
|
|
var7 = -495423587;
|
|
} else {
|
|
var7 = -268235130;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void renderBlood(uj var1, PoseStack var2, SubmitNodeCollector var3, Camera var4, Vec3 var5, long var6) {
|
|
Quaternionf var8 = null;
|
|
Vector3f var9 = null;
|
|
Vector3f var10 = null;
|
|
float var11 = 0.0F;
|
|
float var12 = 0.0F;
|
|
float var13 = 0.0F;
|
|
float var14 = 0.0F;
|
|
float var15 = 0.0F;
|
|
float var16 = 0.0F;
|
|
Iterator var17 = null;
|
|
uh var18 = null;
|
|
int var19 = 1710949676;
|
|
|
|
while (true) {
|
|
switch (var19) {
|
|
case -811091297:
|
|
var18 = (uh)var17.next();
|
|
if (!var18.dead) {
|
|
var19 = 1921622765;
|
|
} else {
|
|
var19 = 203997372;
|
|
}
|
|
break;
|
|
case -209392979:
|
|
return;
|
|
case 203997372:
|
|
var19 = 354184851;
|
|
break;
|
|
case 354184851:
|
|
if (var17.hasNext()) {
|
|
var19 = -811091297;
|
|
} else {
|
|
var19 = 1921332157;
|
|
}
|
|
break;
|
|
case 789134639:
|
|
var8 = var4.rotation();
|
|
var9 = var8.transform(1.0F, 0.0F, 0.0F, this.scratchRight);
|
|
var10 = var8.transform(0.0F, 1.0F, 0.0F, this.scratchUp);
|
|
var11 = var9.x;
|
|
var12 = var9.y;
|
|
var13 = var9.z;
|
|
var14 = var10.x;
|
|
var15 = var10.y;
|
|
var16 = var10.z;
|
|
var17 = var1.blood.iterator();
|
|
var19 = 354184851;
|
|
break;
|
|
case 1498031358:
|
|
var18.dead = (boolean)(((1)) != 0);
|
|
var19 = 203997372;
|
|
break;
|
|
case 1710949676:
|
|
default:
|
|
if (var1.blood.isEmpty()) {
|
|
var19 = -209392979;
|
|
} else {
|
|
var19 = 789134639;
|
|
}
|
|
break;
|
|
case 1921332157:
|
|
final float var11f = var11;
|
|
final float var12f = var12;
|
|
final float var13f = var13;
|
|
final float var14f = var14;
|
|
final float var15f = var15;
|
|
final float var16f = var16;
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
arj.positionColor(),
|
|
(var10x, var11x) -> {
|
|
Iterator var12x = null;
|
|
uh var13x = null;
|
|
long var14x = (-4938245354210173187L ^ 4938245354210173187L) + ((-4938245354210173187L & 4938245354210173187L) << 1);
|
|
float var16x = 0.0F;
|
|
float var17x = 0.0F;
|
|
int var18x = 0;
|
|
int var19x = 0;
|
|
float var20x = 0.0F;
|
|
float var21x = 0.0F;
|
|
float var22x = 0.0F;
|
|
float var23 = 0.0F;
|
|
float var24 = 0.0F;
|
|
float var25 = 0.0F;
|
|
float var26 = 0.0F;
|
|
float var27 = 0.0F;
|
|
float var28 = 0.0F;
|
|
float var29 = 0.0F;
|
|
float var30 = 0.0F;
|
|
float var31 = 0.0F;
|
|
float var33 = 0.0F;
|
|
int var32 = -16688609;
|
|
|
|
while (true) {
|
|
switch (var32) {
|
|
case -1883366950:
|
|
var33 = 1.0F - (var16x - 0.55F) / 0.45F;
|
|
var32 = -1794699847;
|
|
break;
|
|
case -1794699847:
|
|
var17x = var33;
|
|
var18x = Mth.clamp(
|
|
(int)(var17x * 255.0F),
|
|
0,
|
|
(1381926458 | -1381926203) + (1381926458 & -1381926203)
|
|
);
|
|
if (var18x == 0) {
|
|
var32 = -1661105782;
|
|
} else {
|
|
var32 = -279827221;
|
|
}
|
|
break;
|
|
case -1661105782:
|
|
var32 = -907190096;
|
|
break;
|
|
case -1189369638:
|
|
var13x = (uh)var12x.next();
|
|
if (var13x.dead) {
|
|
var32 = 220830959;
|
|
} else {
|
|
var32 = 1172131639;
|
|
}
|
|
break;
|
|
case -1144494441:
|
|
var23 = (float)(var13x.velX * 0.03F);
|
|
var24 = (float)(var13x.velY * 0.03F);
|
|
var25 = (float)(var13x.velZ * 0.03F);
|
|
var26 = var11f * var13x.size;
|
|
var27 = var12f * var13x.size;
|
|
var28 = var13f * var13x.size;
|
|
var29 = var14f * var13x.size + var23;
|
|
var30 = var15f * var13x.size + var24;
|
|
var31 = var16f * var13x.size + var25;
|
|
emitDoubleSidedQuad(
|
|
var11x,
|
|
var19x,
|
|
var20x - var26 - var29,
|
|
var21x - var27 - var30,
|
|
var22x - var28 - var31,
|
|
var20x + var26 - var29,
|
|
var21x + var27 - var30,
|
|
var22x + var28 - var31,
|
|
var20x + var26 + var29,
|
|
var21x + var27 + var30,
|
|
var22x + var28 + var31,
|
|
var20x - var26 + var29,
|
|
var21x - var27 + var30,
|
|
var22x - var28 + var31
|
|
);
|
|
var32 = -907190096;
|
|
break;
|
|
case -907190096:
|
|
if (var12x.hasNext()) {
|
|
var32 = -1189369638;
|
|
} else {
|
|
var32 = 1701766248;
|
|
}
|
|
break;
|
|
case -279827221:
|
|
var19x = var18x << (1534275263 | -1534275239) + (1534275263 & -1534275239) | var13x.rgb;
|
|
var20x = (float)(var13x.x - var5.x);
|
|
var21x = (float)(var13x.y - var5.y);
|
|
var22x = (float)(var13x.z - var5.z);
|
|
if (var13x.landed) {
|
|
var32 = 670100464;
|
|
} else {
|
|
var32 = -1144494441;
|
|
}
|
|
break;
|
|
case -16688609:
|
|
default:
|
|
var12x = var1.blood.iterator();
|
|
var32 = -907190096;
|
|
break;
|
|
case 220830959:
|
|
var32 = -907190096;
|
|
break;
|
|
case 385474865:
|
|
var33 = 1.0F;
|
|
var32 = -1794699847;
|
|
break;
|
|
case 670100464:
|
|
var23 = var13x.size * 2.4F;
|
|
emitDoubleSidedQuad(
|
|
var11x,
|
|
var19x,
|
|
var20x - var23,
|
|
var21x,
|
|
var22x - var23,
|
|
var20x + var23,
|
|
var21x,
|
|
var22x - var23,
|
|
var20x + var23,
|
|
var21x,
|
|
var22x + var23,
|
|
var20x - var23,
|
|
var21x,
|
|
var22x + var23
|
|
);
|
|
var32 = -907190096;
|
|
break;
|
|
case 1172131639:
|
|
var14x = var6 - var13x.bornMs;
|
|
var16x = (float)var14x / (float)var13x.lifeMs;
|
|
if (var16x <= 0.55F) {
|
|
var32 = 385474865;
|
|
} else {
|
|
var32 = -1883366950;
|
|
}
|
|
break;
|
|
case 1701766248:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
);
|
|
return;
|
|
case 1921622765:
|
|
if (var6 - var18.bornMs >= var18.lifeMs) {
|
|
var19 = 1498031358;
|
|
} else {
|
|
var19 = 203997372;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void emitDoubleSidedQuad(
|
|
VertexConsumer var0,
|
|
int var1,
|
|
float var2,
|
|
float var3,
|
|
float var4,
|
|
float var5,
|
|
float var6,
|
|
float var7,
|
|
float var8,
|
|
float var9,
|
|
float var10,
|
|
float var11,
|
|
float var12,
|
|
float var13
|
|
) {
|
|
var0.addVertex(var2, var3, var4).setColor(var1);
|
|
var0.addVertex(var5, var6, var7).setColor(var1);
|
|
var0.addVertex(var8, var9, var10).setColor(var1);
|
|
var0.addVertex(var11, var12, var13).setColor(var1);
|
|
var0.addVertex(var11, var12, var13).setColor(var1);
|
|
var0.addVertex(var8, var9, var10).setColor(var1);
|
|
var0.addVertex(var5, var6, var7).setColor(var1);
|
|
var0.addVertex(var2, var3, var4).setColor(var1);
|
|
}
|
|
|
|
private void renderLightning(uj var1, PoseStack var2, SubmitNodeCollector var3, Camera var4, Vec3 var5, float var6, long var7, long var9) {
|
|
int var11 = this.blastTint(ul.LIGHTNING);
|
|
var3.submitCustomGeometry(var2, arj.glow(), (var7x, var8) -> {
|
|
this.renderSparks(var1, var8, var5, var6, var11);
|
|
this.renderBolt(var1, var8, var5, var11, var9);
|
|
});
|
|
this.renderSoul(var1, var2, var3, var5, var6);
|
|
this.renderBlastCard(var1, var4, var5, Math.min(1.0F, var6 * 1.35F), var7, 1.7F * this.powerSetting.getCurrent(), var11);
|
|
}
|
|
|
|
private void renderSoul(uj var1, PoseStack var2, SubmitNodeCollector var3, Vec3 var4, float var5) {
|
|
float var6 = 0.0F;
|
|
float var7 = 0.0F;
|
|
float var8 = 0.0F;
|
|
float var9 = 0.0F;
|
|
int var10 = 0;
|
|
float var11 = 0.0F;
|
|
float var12 = 0.0F;
|
|
int var13 = 0;
|
|
int var14 = 0;
|
|
float var15 = 0.0F;
|
|
RenderType var16 = null;
|
|
um[] var17 = null;
|
|
int var18 = 0;
|
|
int var19 = 0;
|
|
um var20 = null;
|
|
int var21 = 968585710;
|
|
|
|
while (true) {
|
|
switch (var21) {
|
|
case -1891870914:
|
|
return;
|
|
case -1882491571:
|
|
return;
|
|
case 193544183:
|
|
var11 = (1.0F - (1.0F - var6) * (1.0F - var6)) * 3.5F;
|
|
var12 = Mth.lerp(var6, 1.0F, 0.85F);
|
|
var13 = var10 << 11128831;
|
|
var14 = 15728880;
|
|
var15 = var9;
|
|
final float var6f = var6;
|
|
final float var11f = var11;
|
|
final float var15f = var15;
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
arj.glow(),
|
|
(var5x, var6x) -> {
|
|
int var7x = 0;
|
|
float var8x = 0.0F;
|
|
float var9x = 0.0F;
|
|
float var10x = 0.0F;
|
|
float var11x = 0.0F;
|
|
double var12x = 0.0;
|
|
double var14x = 0.0;
|
|
double var16x = 0.0;
|
|
float var18x = 0.0F;
|
|
float var19x = 0.0F;
|
|
float var20x = 0.0F;
|
|
int var21x = 0;
|
|
int var22x = 0;
|
|
int var23x = -1628896683;
|
|
|
|
while (true) {
|
|
switch (var23x) {
|
|
case -1628896683:
|
|
default:
|
|
var7x = 0;
|
|
var23x = 444285595;
|
|
break;
|
|
case -1036061932:
|
|
return;
|
|
case 147398082:
|
|
var8x = var1.seed + var7x * 2.399963F;
|
|
var9x = (var7x / 10.0F + var6f * 0.8F) % 1.0F;
|
|
var10x = var8x + var6f * 1.6F * (float) (Math.PI * 2);
|
|
var11x = 0.45F + 0.2F * Mth.sin(var8x * 3.0F + var6f * 4.0F);
|
|
var12x = var1.centerX + Mth.cos(var10x) * var11x;
|
|
var14x = var1.groundY + var11f * 0.6F + var9x * 2.2F;
|
|
var16x = var1.centerZ + Mth.sin(var10x) * var11x;
|
|
var18x = -Mth.sin(var10x) * 0.25F;
|
|
var19x = Mth.cos(var10x) * 0.25F;
|
|
var20x = Mth.clamp(var15f * (1.0F - var9x) * 1.6F, 0.0F, 1.0F);
|
|
var21x = withAlphaTint(11128831, var20x);
|
|
var22x = withAlphaTint(11128831, var20x * 0.1F);
|
|
emitBoltSegment(
|
|
var6x,
|
|
var12x - var4.x,
|
|
var14x - var4.y,
|
|
var16x - var4.z,
|
|
var12x + var18x - var4.x,
|
|
var14x + 0.05 - var4.y,
|
|
var16x + var19x - var4.z,
|
|
0.045F,
|
|
var21x,
|
|
var22x
|
|
);
|
|
var7x++;
|
|
var23x = 444285595;
|
|
break;
|
|
case 444285595:
|
|
if (var7x < (749454391 | -749454381) + (749454391 & -749454381)) {
|
|
var23x = 147398082;
|
|
} else {
|
|
var23x = -1036061932;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
var16 = RenderTypes.entityTranslucent(var1.skin);
|
|
var2.pushPose();
|
|
var2.translate(var1.centerX - var4.x, var1.groundY + var11 - var4.y, var1.centerZ - var4.z);
|
|
var2.mulPose(this.scratchQuat.rotationY((float)Math.toRadians(-var1.bodyYaw) + (float) Math.PI));
|
|
var2.translate(0.0F, 0.9F, 0.0F);
|
|
var2.scale(var12, var12, var12);
|
|
var2.translate(0.0F, -0.9F, 0.0F);
|
|
var17 = bodyParts(var1.slim);
|
|
var18 = var17.length;
|
|
var19 = 0;
|
|
var21 = 552003011;
|
|
break;
|
|
case 552003011:
|
|
if (var19 < var18) {
|
|
var21 = 1245765388;
|
|
} else {
|
|
var21 = 576298954;
|
|
}
|
|
break;
|
|
case 576298954:
|
|
var2.popPose();
|
|
return;
|
|
case 968585710:
|
|
default:
|
|
if (var5 <= 0.22F) {
|
|
var21 = -1891870914;
|
|
} else {
|
|
var21 = 1924678350;
|
|
}
|
|
break;
|
|
case 1245765388:
|
|
var20 = var17[var19];
|
|
var2.pushPose();
|
|
var2.translate(var20.centerXPx() * 0.0625F, var20.centerYPx() * 0.0625F, 0.0F);
|
|
final int var13f = var13;
|
|
final int var14f = var14;
|
|
final um var20f = var20;
|
|
var3.submitCustomGeometry(
|
|
var2,
|
|
var16,
|
|
(var4x, var5x) -> this.drawBox(
|
|
var5x,
|
|
var4x,
|
|
var20f.widthPx() * 0.0625F * 0.5F,
|
|
var20f.heightPx() * 0.0625F * 0.5F,
|
|
var20f.depthPx() * 0.0625F * 0.5F,
|
|
var20f.u(),
|
|
var20f.v(),
|
|
var20f.widthPx(),
|
|
var20f.heightPx(),
|
|
var20f.depthPx(),
|
|
var13f,
|
|
var14f
|
|
)
|
|
);
|
|
var2.popPose();
|
|
var19++;
|
|
var21 = 552003011;
|
|
break;
|
|
case 1924678350:
|
|
var6 = (var5 - 0.22F) / 0.78F;
|
|
var7 = Mth.clamp(var6 / 0.18F, 0.0F, 1.0F);
|
|
var8 = 1.0F - Mth.clamp((var6 - 0.6F) / 0.39999998F, 0.0F, 1.0F);
|
|
var9 = 0.38F * var7 * var8;
|
|
var10 = Mth.clamp(
|
|
(int)(var9 * 255.0F), 0, (826804108 ^ -826803853) + ((826804108 & -826803853) << 1)
|
|
);
|
|
if (var10 == 0) {
|
|
var21 = -1882491571;
|
|
} else {
|
|
var21 = 193544183;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void renderBolt(uj var1, VertexConsumer var2, Vec3 var3, int var4, long var5) {
|
|
long var7 = var5 - var1.startMillis;
|
|
float var9 = 0.0F;
|
|
int var10 = 0;
|
|
|
|
for (int var11 = 0; var11 < STROBE_STARTS_MS.length; var11++) {
|
|
if (var7 >= STROBE_STARTS_MS[var11]) {
|
|
var9 += STROBE_AMPLITUDES[var11] * (float)Math.exp((float)(-(var7 - STROBE_STARTS_MS[var11])) / 55.0F);
|
|
var10 = var11;
|
|
}
|
|
}
|
|
|
|
var9 = Math.min(1.0F, var9);
|
|
if (!(var9 < 0.02F) && !var1.boltVariants.isEmpty()) {
|
|
for (ui var12 : var1.boltVariants.get(var10 % var1.boltVariants.size())) {
|
|
float var13 = 0.3F * var12.intensity * (0.7F + 0.3F * var9);
|
|
float var14 = 0.045F * Math.max(0.4F, var12.intensity);
|
|
int var15 = withAlphaTint(var4, 0.3F * var9 * var12.intensity);
|
|
int var16 = withAlphaTint(16777215, var9 * Math.min(1.0F, var12.intensity * 1.3F));
|
|
int var17 = var12.points.length / 2;
|
|
|
|
for (int var18 = 0; var18 < var17; var18++) {
|
|
double var19 = var12.points[var18 * (3)] - var3.x;
|
|
double var21 = var12.points[var18 * 4]
|
|
- var3.y;
|
|
double var23 = var12.points[var18 * 5]
|
|
- var3.z;
|
|
double var25 = var12.points[(var18 + (-176658300 ^ 176658301) + ((-176658300 & 176658301) << 1))
|
|
* ((1941777564 ^ -1941777561) + ((1941777564 & -1941777561) << 1))]
|
|
- var3.x;
|
|
double var27 = var12.points[(var18 + (96801209 | -96801208) + (96801209 & -96801208)) * ((342586412 | -342586409) + (342586412 & -342586409))
|
|
+ (1478238589 | -1478238588)
|
|
+ (1478238589 & -1478238588)]
|
|
- var3.y;
|
|
double var29 = var12.points[(var18 + (879549372 ^ -879549371) + ((879549372 & -879549371) << 1))
|
|
* ((402756889 | -402756886) + (402756889 & -402756886))
|
|
+ (-2060935563 ^ 2060935565)
|
|
+ ((-2060935563 & 2060935565) << 1)]
|
|
- var3.z;
|
|
emitBoltSegment(var2, var19, var21, var23, var25, var27, var29, var13, var15, var15);
|
|
emitBoltSegment(var2, var19, var21, var23, var25, var27, var29, var14, var16, var16);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void emitBoltSegment(
|
|
VertexConsumer var0, double var1, double var3, double var5, double var7, double var9, double var11, float var13, int var14, int var15
|
|
) {
|
|
double var16 = 0.0;
|
|
double var18 = 0.0;
|
|
double var20 = 0.0;
|
|
double var22 = 0.0;
|
|
double var24 = 0.0;
|
|
double var26 = 0.0;
|
|
double var28 = 0.0;
|
|
int var30 = -542429238;
|
|
|
|
while (true) {
|
|
switch (var30) {
|
|
case -542429238:
|
|
default:
|
|
var16 = var7 - var1;
|
|
var18 = var9 - var3;
|
|
var20 = var11 - var5;
|
|
var22 = var18 * -var5 - var20 * -var3;
|
|
var24 = var20 * -var1 - var16 * -var5;
|
|
var26 = var16 * -var3 - var18 * -var1;
|
|
var28 = Math.sqrt(var22 * var22 + var24 * var24 + var26 * var26);
|
|
if (var28 < 1.0E-6) {
|
|
var30 = 209435080;
|
|
} else {
|
|
var30 = -27555501;
|
|
}
|
|
break;
|
|
case -27555501:
|
|
var22 = var22 / var28 * var13;
|
|
var24 = var24 / var28 * var13;
|
|
var26 = var26 / var28 * var13;
|
|
var30 = 1480428589;
|
|
break;
|
|
case 209435080:
|
|
var22 = var13;
|
|
var24 = 0.0;
|
|
var26 = 0.0;
|
|
var30 = 1480428589;
|
|
break;
|
|
case 1480428589:
|
|
var0.addVertex((float)(var1 + var22), (float)(var3 + var24), (float)(var5 + var26)).setColor(var14);
|
|
var0.addVertex((float)(var1 - var22), (float)(var3 - var24), (float)(var5 - var26)).setColor(var14);
|
|
var0.addVertex((float)(var7 - var22), (float)(var9 - var24), (float)(var11 - var26)).setColor(var15);
|
|
var0.addVertex((float)(var7 + var22), (float)(var9 + var24), (float)(var11 + var26)).setColor(var15);
|
|
var0.addVertex((float)(var7 + var22), (float)(var9 + var24), (float)(var11 + var26)).setColor(var15);
|
|
var0.addVertex((float)(var7 - var22), (float)(var9 - var24), (float)(var11 - var26)).setColor(var15);
|
|
var0.addVertex((float)(var1 - var22), (float)(var3 - var24), (float)(var5 - var26)).setColor(var14);
|
|
var0.addVertex((float)(var1 + var22), (float)(var3 + var24), (float)(var5 + var26)).setColor(var14);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int withAlphaTint(int var0, float var1) {
|
|
int var2 = Mth.clamp(
|
|
(int)(var1 * 255.0F), 0, (1577760356 | -1577760101) + (1577760356 & -1577760101)
|
|
);
|
|
return var2 << (-1069306011 ^ 1069306035) + ((-1069306011 & 1069306035) << 1) | var0 & 16777215;
|
|
}
|
|
|
|
private void renderBlastCard(uj var1, Camera var2, Vec3 var3, float var4, long var5, float var7, int var8) {
|
|
atd var9 = null;
|
|
float var10 = 0.0F;
|
|
float var11 = 0.0F;
|
|
float var12 = 0.0F;
|
|
float var13 = 0.0F;
|
|
float var14 = 0.0F;
|
|
Quaternionf var15 = null;
|
|
Object var16 = null;
|
|
Object var17 = null;
|
|
float var18 = 0.0F;
|
|
float var19 = 0.0F;
|
|
float var20 = 0.0F;
|
|
BufferBuilder var21 = null;
|
|
int var22 = -1423033705;
|
|
|
|
while (true) {
|
|
switch (var22) {
|
|
case -1542265142:
|
|
var10 = var1.seed + var4 * ((float)var5 / 1000.0F);
|
|
var11 = (var8 >> (825316488 | -825316472) + (825316488 & -825316472) & (-133333496 ^ 133333751) + ((-133333496 & 133333751) << 1)) / 255.0F;
|
|
var12 = (var8 >> (-178810368 ^ 178810376) + ((-178810368 & 178810376) << 1) & (-1549206011 | 1549206266) + (-1549206011 & 1549206266)) / 255.0F;
|
|
var13 = (var8 & (184466203 ^ -184465948) + ((184466203 & -184465948) << 1)) / 255.0F;
|
|
var9.use();
|
|
if (var9 != this.cachedBlastProgram) {
|
|
var22 = 1533616404;
|
|
} else {
|
|
var22 = -1400140989;
|
|
}
|
|
break;
|
|
case -1423033705:
|
|
default:
|
|
var9 = atb.deathBlastProgram;
|
|
if (var9 == null) {
|
|
var22 = 1636717623;
|
|
} else {
|
|
var22 = -1542265142;
|
|
}
|
|
break;
|
|
case -1400140989:
|
|
this.blastResolution.set(mc.getWindow().getWidth(), mc.getWindow().getHeight());
|
|
this.blastTime.set(var10);
|
|
this.blastProgress.set(var4);
|
|
this.blastTintColor.set(var11, var12, var13);
|
|
this.blastFade.set(1.0F);
|
|
var14 = var7;
|
|
var15 = var2.rotation();
|
|
var16 = var15.transform(1.0F, 0.0F, 0.0F, this.scratchRight).mul(var14);
|
|
var17 = var15.transform(0.0F, 1.0F, 0.0F, this.scratchUp).mul(var14);
|
|
var18 = (float)(var1.centerX - var3.x);
|
|
var19 = (float)(var1.centerY - var3.y);
|
|
var20 = (float)(var1.centerZ - var3.z);
|
|
arj.setCurrentLayer(arj.positionColor());
|
|
var21 = arj.begin(PrimitiveTopology.QUADS, DefaultVertexFormat.POSITION_COLOR);
|
|
var21.addVertex(
|
|
var18 - ((Vector3f)var16).x - ((Vector3f)var17).x,
|
|
var19 - ((Vector3f)var16).y - ((Vector3f)var17).y,
|
|
var20 - ((Vector3f)var16).z - ((Vector3f)var17).z
|
|
)
|
|
.setColor((-221304185 | 221304184) + (-221304185 & 221304184));
|
|
var21.addVertex(
|
|
var18 - ((Vector3f)var16).x + ((Vector3f)var17).x,
|
|
var19 - ((Vector3f)var16).y + ((Vector3f)var17).y,
|
|
var20 - ((Vector3f)var16).z + ((Vector3f)var17).z
|
|
)
|
|
.setColor((-1364219412 ^ 1364219411) + ((-1364219412 & 1364219411) << 1));
|
|
var21.addVertex(
|
|
var18 + ((Vector3f)var16).x + ((Vector3f)var17).x,
|
|
var19 + ((Vector3f)var16).y + ((Vector3f)var17).y,
|
|
var20 + ((Vector3f)var16).z + ((Vector3f)var17).z
|
|
)
|
|
.setColor((475781040 | -475781041) + (475781040 & -475781041));
|
|
var21.addVertex(
|
|
var18 + ((Vector3f)var16).x - ((Vector3f)var17).x,
|
|
var19 + ((Vector3f)var16).y - ((Vector3f)var17).y,
|
|
var20 + ((Vector3f)var16).z - ((Vector3f)var17).z
|
|
)
|
|
.setColor((-2026769310 | 2026769309) + (-2026769310 & 2026769309));
|
|
arj.drawCurrent(var21);
|
|
return;
|
|
case 1533616404:
|
|
this.cachedBlastProgram = var9;
|
|
this.blastResolution = var9.findUniform("Resolution");
|
|
this.blastTime = var9.findUniform("Time");
|
|
this.blastProgress = var9.findUniform("Progress");
|
|
this.blastTintColor = var9.findUniform("TintColor");
|
|
this.blastFade = var9.findUniform("Fade");
|
|
var22 = -1400140989;
|
|
break;
|
|
case 1636717623:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void renderSparks(uj var1, VertexConsumer var2, Vec3 var3, float var4, int var5) {
|
|
Iterator var6 = null;
|
|
uo var7 = null;
|
|
float var8 = 0.0F;
|
|
float var9 = 0.0F;
|
|
int var10 = 0;
|
|
int var11 = 0;
|
|
double var12 = 0.0;
|
|
double var14 = 0.0;
|
|
double var16 = 0.0;
|
|
double var18 = 0.0;
|
|
double var20 = 0.0;
|
|
double var22 = 0.0;
|
|
double var24 = 0.0;
|
|
double var26 = 0.0;
|
|
double var28 = 0.0;
|
|
double var30 = 0.0;
|
|
double var32 = 0.0;
|
|
double var34 = 0.0;
|
|
double var36 = 0.0;
|
|
double var38 = 0.0;
|
|
double var40 = 0.0;
|
|
double var42 = 0.0;
|
|
double var44 = 0.0;
|
|
double var46 = 0.0;
|
|
int var48 = 1861945992;
|
|
|
|
while (true) {
|
|
switch (var48) {
|
|
case -1831457605:
|
|
if (var6.hasNext()) {
|
|
var48 = -1753218232;
|
|
} else {
|
|
var48 = -1750226150;
|
|
}
|
|
break;
|
|
case -1753218232:
|
|
var7 = (uo)var6.next();
|
|
if (var7.dead) {
|
|
var48 = 905857393;
|
|
} else {
|
|
var48 = 2058306666;
|
|
}
|
|
break;
|
|
case -1750226150:
|
|
return;
|
|
case -1233576739:
|
|
if (var42 > 1.0E-16) {
|
|
var48 = 414809696;
|
|
} else {
|
|
var48 = 930925340;
|
|
}
|
|
break;
|
|
case -1232558491:
|
|
var9 = (float)Math.pow(1.0F - var8, 1.6);
|
|
var10 = blendSparkColor(var5, var8, var9);
|
|
var11 = blendSparkColor(var5, Math.min(1.0F, var8 + 0.3F), var9 * 0.15F);
|
|
var12 = var7.velX * 0.045F;
|
|
var14 = var7.velY * 0.045F;
|
|
var16 = var7.velZ * 0.045F;
|
|
var18 = var7.x - var3.x;
|
|
var20 = var7.y - var3.y;
|
|
var22 = var7.z - var3.z;
|
|
var24 = var18 - var12;
|
|
var26 = var20 - var14;
|
|
var28 = var22 - var16;
|
|
var36 = var16 * var20 - var14 * var22;
|
|
var38 = var12 * var22 - var16 * var18;
|
|
var40 = var14 * var18 - var12 * var20;
|
|
var42 = var36 * var36 + var38 * var38 + var40 * var40;
|
|
var44 = var12 * var12 + var14 * var14 + var16 * var16;
|
|
if (var44 > 1.0E-8) {
|
|
var48 = -1233576739;
|
|
} else {
|
|
var48 = 930925340;
|
|
}
|
|
break;
|
|
case -951746597:
|
|
var48 = -1831457605;
|
|
break;
|
|
case 414809696:
|
|
var46 = var7.size / Math.sqrt(var42);
|
|
var30 = var36 * var46;
|
|
var32 = var38 * var46;
|
|
var34 = var40 * var46;
|
|
var48 = 586656526;
|
|
break;
|
|
case 586656526:
|
|
var2.addVertex((float)(var18 + var30), (float)(var20 + var32), (float)(var22 + var34)).setColor(var10);
|
|
var2.addVertex((float)(var18 - var30), (float)(var20 - var32), (float)(var22 - var34)).setColor(var10);
|
|
var2.addVertex((float)(var24 - var30), (float)(var26 - var32), (float)(var28 - var34)).setColor(var11);
|
|
var2.addVertex((float)(var24 + var30), (float)(var26 + var32), (float)(var28 + var34)).setColor(var11);
|
|
var2.addVertex((float)(var24 + var30), (float)(var26 + var32), (float)(var28 + var34)).setColor(var11);
|
|
var2.addVertex((float)(var24 - var30), (float)(var26 - var32), (float)(var28 - var34)).setColor(var11);
|
|
var2.addVertex((float)(var18 - var30), (float)(var20 - var32), (float)(var22 - var34)).setColor(var10);
|
|
var2.addVertex((float)(var18 + var30), (float)(var20 + var32), (float)(var22 + var34)).setColor(var10);
|
|
var48 = -1831457605;
|
|
break;
|
|
case 905857393:
|
|
var48 = -1831457605;
|
|
break;
|
|
case 930925340:
|
|
var30 = var7.size;
|
|
var32 = 0.0;
|
|
var34 = 0.0;
|
|
var48 = 586656526;
|
|
break;
|
|
case 1861945992:
|
|
default:
|
|
var6 = var1.sparks.iterator();
|
|
var48 = -1831457605;
|
|
break;
|
|
case 2058306666:
|
|
var8 = Mth.clamp(var4 / var7.lifeFactor, 0.0F, 1.0F);
|
|
if (var8 >= 1.0F) {
|
|
var48 = -951746597;
|
|
} else {
|
|
var48 = -1232558491;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int blendSparkColor(int var0, float var1, float var2) {
|
|
float var3 = Mth.clamp(var1 * 1.6F, 0.0F, 1.0F);
|
|
int var4 = (int)Mth.lerp(var3, 255.0F, var0 >> (855706407 | -855706391) + (855706407 & -855706391) & (763391196 | -763390941) + (763391196 & -763390941));
|
|
int var5 = (int)Mth.lerp(
|
|
var3, 250.0F, var0 >> (-1249246195 | 1249246203) + (-1249246195 & 1249246203) & (1429661791 | -1429661536) + (1429661791 & -1429661536)
|
|
);
|
|
int var6 = (int)Mth.lerp(var3, 235.0F, var0 & (445690372 ^ -445690117) + ((445690372 & -445690117) << 1));
|
|
int var7 = Mth.clamp(
|
|
(int)(var2 * 255.0F), 0, (-1676747711 ^ 1676747966) + ((-1676747711 & 1676747966) << 1)
|
|
);
|
|
return var7 << (-993132511 | 993132535) + (-993132511 & 993132535)
|
|
| var4 << (-1050303064 | 1050303080) + (-1050303064 & 1050303080)
|
|
| var5 << (-252668479 | 252668487) + (-252668479 & 252668487)
|
|
| var6;
|
|
}
|
|
|
|
private int blastTint(ul var1) {
|
|
String var3 = this.blastColorSetting.get();
|
|
int var4 = -1;
|
|
switch (var3.hashCode()) {
|
|
case 2021122027:
|
|
if (var3.equals("Client")) {
|
|
var4 = 0;
|
|
}
|
|
break;
|
|
case 2029746065:
|
|
if (var3.equals("Custom")) {
|
|
var4 = 1;
|
|
}
|
|
}
|
|
int var2 = switch (var4) {
|
|
case 0 -> bz.getInstance().getThemeManager().getCurrentTheme().getColor().getRGB();
|
|
case 1 -> this.blastCustomColor.getIntColor();
|
|
default -> var1 == ul.LIGHTNING ? 10471679: 16741152;
|
|
};
|
|
return var2 & 16777215;
|
|
}
|
|
|
|
private void discardDummy() {
|
|
int var1 = 356534768;
|
|
|
|
while (true) {
|
|
switch (var1) {
|
|
case -1548403257:
|
|
this.dummyKillAtMillis = (8948880803356504655L | -8948880803356504655L) + (8948880803356504655L & -8948880803356504655L);
|
|
return;
|
|
case -1000897995:
|
|
this.dummy.discard();
|
|
this.dummy = null;
|
|
var1 = -1548403257;
|
|
break;
|
|
case 356534768:
|
|
default:
|
|
if (this.dummy != null) {
|
|
var1 = -1000897995;
|
|
} else {
|
|
var1 = -1548403257;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static {
|
|
long[] var10000 = new long[3];
|
|
var10000[0] = (-6441402916472723888L | 6441402916472723888L)
|
|
+ (-6441402916472723888L & 6441402916472723888L);
|
|
var10000[1] = (5706915552055327327L ^ -5706915552055327217L)
|
|
+ ((5706915552055327327L & -5706915552055327217L) << 1);
|
|
var10000[2] = (-670779220228722033L ^ 670779220228722273L)
|
|
+ ((-670779220228722033L & 670779220228722273L) << 1);
|
|
STROBE_STARTS_MS = var10000;
|
|
float[] var0 = new float[3];
|
|
var0[0] = 1.0F;
|
|
var0[1] = 0.75F;
|
|
var0[2] = 0.5F;
|
|
STROBE_AMPLITUDES = var0;
|
|
}
|
|
}
|