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