evo/src/main/java/defpackage/aio.java

337 lines
12 KiB
Java

package defpackage;
import com.mojang.blaze3d.vertex.PoseStack;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry;
import it.unimi.dsi.fastutil.objects.ObjectIterator;
import net.fabricmc.fabric.api.client.rendering.v1.level.LevelRenderContext;
import net.minecraft.client.Camera;
import net.minecraft.client.renderer.SubmitNodeCollector;
import net.minecraft.client.renderer.rendertype.RenderTypes;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.Identifier;
import net.minecraft.util.LightCoordsUtil;
import net.minecraft.world.entity.EntityAttachment;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.phys.Vec3;
import org.joml.Quaternionf;
import org.joml.Vector3f;
public final class aio implements aqg {
private static final Identifier TEXTURE = bz.id("textures/cosmetic/pat/pat_hand.png");
private static final int MAX_VISIBLE_PATS = 16;
private static final int CORNERS = 4;
private static final int AXES = 3;
private static final int FLOATS_PER_QUAD = 12;
private static final int RIGHT_SPLIT = 2;
private static final float FRAME_SPAN = 0.2F;
private static final float UV_INSET = 0.0015F;
private static final float NAME_TAG_FALLBACK_GAP = 0.5F;
private static final float HALF = 0.5F;
private static final int OPAQUE_WHITE = -1;
private static final float NORMAL_X = 0.0F;
private static final float NORMAL_Y = 1.0F;
private static final float NORMAL_Z = 0.0F;
private static final float[] CORNER_V;
private static final aio INSTANCE = new aio();
private final float[] corners = new float[192];
private final float[] minU = new float[16];
private final float[] maxU = new float[16];
private final int[] lights = new int[16];
private final Vector3f scratchRight = new Vector3f();
private final Vector3f scratchUp = new Vector3f();
private aio() {
}
public static aio getInstance() {
return INSTANCE;
}
public void onWorldRender(LevelRenderContext var1) {
ta var2 = null;
aim var3 = null;
long var4 = (1869778261060929744L ^ -1869778261060929744L) + ((1869778261060929744L & -1869778261060929744L) << 1);
long var6 = (-8949496360586353629L ^ 8949496360586353629L) + ((-8949496360586353629L & 8949496360586353629L) << 1);
PoseStack var8 = null;
SubmitNodeCollector var9 = null;
Camera var10 = null;
int var11 = 0;
int var12 = 0;
int var13 = -25887463;
while (true) {
switch (var13) {
case -721135407:
if (!var3.isEmpty()) {
var13 = 570497489;
} else {
var13 = 207464498;
}
break;
case -398855481:
var4 = System.currentTimeMillis();
var6 = var2.durationMillis();
var3.prune(mc.level, var4, var6);
if (var3.isEmpty()) {
var13 = 2147014241;
} else {
var13 = 1747577231;
}
break;
case -25887463:
default:
var2 = ta.INSTANCE;
var3 = aim.getInstance();
if (mc.level == null) {
var13 = 846121449;
} else {
var13 = 1475512480;
}
break;
case 207464498:
return;
case 234460188:
var11 = this.collect(var3, var2, var10, var4, var6);
if (var11 == 0) {
var13 = 1886554511;
} else {
var13 = 1115802833;
}
break;
case 245996176:
if (var9 != null) {
var13 = 405569304;
} else {
var13 = 1405188336;
}
break;
case 405569304:
if (var10 == null) {
var13 = 1405188336;
} else {
var13 = 234460188;
}
break;
case 570497489:
var3.clear();
var13 = 207464498;
break;
case 846121449:
var3.clear();
return;
case 1115802833:
var12 = var11;
final int var12f = var12;
var9.submitCustomGeometry(
var8,
RenderTypes.entityTranslucent(TEXTURE),
(var2x, var3x) -> {
for (int var4x = 0; var4x < var12f; var4x++) {
int var5 = var4x * (12);
int var6x = this.lights[var4x];
float var7 = this.minU[var4x];
float var8x = this.maxU[var4x];
for (int var9x = 0;
var9x < 4;
var9x++
) {
int var10x = var5 + var9x * (3);
var3x.addVertex(
var2x,
this.corners[var10x],
this.corners[var10x + 1],
this.corners[var10x + 2]
)
.setColor((-661926889 | 661926888) + (-661926889 & 661926888))
.setUv(var9x < 2? var7 : var8x, CORNER_V[var9x])
.setOverlay(OverlayTexture.NO_OVERLAY)
.setLight(var6x)
.setNormal(var2x, 0.0F, 1.0F, 0.0F);
}
}
}
);
return;
case 1405188336:
return;
case 1475512480:
if (!var2.isEnabled()) {
var13 = -721135407;
} else {
var13 = -398855481;
}
break;
case 1747577231:
var8 = var1.poseStack();
var9 = var1.submitNodeCollector();
var10 = mc.getEntityRenderDispatcher().camera;
if (var8 != null) {
var13 = 245996176;
} else {
var13 = 1405188336;
}
break;
case 1886554511:
return;
case 2147014241:
return;
}
}
}
private int collect(aim var1, ta var2, Camera var3, long var4, long var6) {
Quaternionf var8 = null;
Vector3f var9 = null;
Vector3f var10 = null;
Vec3 var11 = null;
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;
int var22 = 0;
ObjectIterator var23 = null;
ail var24 = null;
LivingEntity var25 = null;
float var26 = 0.0F;
float var27 = 0.0F;
Vec3 var28 = null;
double var29 = 0.0;
float var31 = 0.0F;
float var32 = 0.0F;
float var33 = 0.0F;
int var34 = 0;
int var35 = 0;
int var36 = -780670675;
while (true) {
switch (var36) {
case -1440147710:
var26 = aim.eased(var24.linear(var4, var6));
var27 = aim.squashOf(var26, var13, var24.height());
var28 = var25.getPosition(var12);
var29 = var28.y + nameTagHeight(var25, var12) * var27 + var15;
var31 = (float)(var28.x - var11.x);
var32 = (float)(var29 - var11.y);
var33 = (float)(var28.z - var11.z);
var34 = var22 * (12);
this.writeCorner(var34, var31 - var16 + var19, var32 - var17 + var20, var33 - var18 + var21);
this.writeCorner(
var34 + 3, var31 - var16 - var19, var32 - var17 - var20, var33 - var18 - var21
);
this.writeCorner(
var34 + 6, var31 + var16 - var19, var32 + var17 - var20, var33 + var18 - var21
);
this.writeCorner(
var34 + 9, var31 + var16 + var19, var32 + var17 + var20, var33 + var18 + var21
);
var35 = aim.frameOf(var26);
this.minU[var22] = var35 * 0.2F + 0.0015F;
this.maxU[var22] = (var35 + (1976053565 | -1976053564) + (1976053565 & -1976053564)) * 0.2F - 0.0015F;
this.lights[var22] = LightCoordsUtil.getLightCoords(var25.level(), BlockPos.containing(var28.x, var29, var28.z));
var22++;
var36 = 501783342;
break;
case -837301266:
return var22;
case -780670675:
default:
var8 = var3.rotation();
var9 = var8.transform(1.0F, 0.0F, 0.0F, this.scratchRight);
var10 = var8.transform(0.0F, 1.0F, 0.0F, this.scratchUp);
var11 = var3.position();
var12 = mc.getDeltaTracker().getGameTimeDeltaPartialTick((boolean)((((-1365530967 ^ 1365530967) + ((-1365530967 & 1365530967) << 1))) != 0));
var13 = var2.patWeight();
var14 = var2.handScale() * 0.5F;
var15 = var2.heightOffset();
var16 = var9.x * var14;
var17 = var9.y * var14;
var18 = var9.z * var14;
var19 = var10.x * var14;
var20 = var10.y * var14;
var21 = var10.z * var14;
var22 = 0;
var23 = var1.entries().fastIterator();
var36 = 501783342;
break;
case 260468475:
if (var22 < (1248840445 ^ -1248840429) + ((1248840445 & -1248840429) << 1)) {
var36 = 275042566;
} else {
var36 = -837301266;
}
break;
case 275042566:
var24 = (ail)((Entry)var23.next()).getValue();
var25 = var24.entity();
if (var25.isInvisible()) {
var36 = 366350300;
} else {
var36 = -1440147710;
}
break;
case 366350300:
var36 = 501783342;
break;
case 501783342:
if (var23.hasNext()) {
var36 = 260468475;
} else {
var36 = -837301266;
}
}
}
}
private void writeCorner(int var1, float var2, float var3, float var4) {
this.corners[var1] = var2;
this.corners[var1 + 1] = var3;
this.corners[var1 + 2] = var4;
}
private static float nameTagHeight(LivingEntity var0, float var1) {
Vec3 var2 = null;
float var4 = 0.0F;
int var3 = -797425218;
while (true) {
switch (var3) {
case -1368465518:
return var4;
case -797425218:
default:
var2 = var0.getAttachments()
.getNullable(EntityAttachment.NAME_TAG, 0, var0.getViewYRot(var1));
if (var2 != null) {
var3 = 1002135491;
} else {
var3 = -194467609;
}
break;
case -194467609:
var4 = var0.getBbHeight() + 0.5F;
var3 = -1368465518;
break;
case 1002135491:
var4 = (float)var2.y;
var3 = -1368465518;
}
}
}
static {
float[] var10000 = new float[4];
var10000[0] = 0.0F;
var10000[1] = 1.0F;
var10000[2] = 1.0F;
var10000[3] = 0.0F;
CORNER_V = var10000;
}
}