dev/mishka/gamblerplus/client/RakebackScreen.class 11.8 KB
- Class
- public final synchronized dev.mishka.gamblerplus.client.RakebackScreen
- Extends
- net.minecraft.class_437
- Implements
- nothing
- Compiled for
- Java 21
Reconstructed source
// Reconstructed from bytecode by BackProbe (dev/mishka/gamblerplus/client/RakebackScreen.class, Java 21); this is not the original source.
package dev.mishka.gamblerplus.client;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Objects;
import net.minecraft.class_11908;
import net.minecraft.class_11909;
import net.minecraft.class_2561;
import net.minecraft.class_310;
import net.minecraft.class_332;
import net.minecraft.class_437;
public final class RakebackScreen extends class_437 {
private static final int PANEL_W;
private static final int PANEL_H;
private static final int ROW_H;
private static final int MAX_ROWS;
private static final long ANIM_MS;
private final Config config;
private final SessionManager sessions;
private long openedAtMs;
private int scroll;
private int px;
private int py;
private int listTop;
private int listBot;
private int listX;
private int listW;
private int closeX;
private int closeY;
private int closeW;
private int closeH;
private final List paidHitboxes;
private final List paidPlayers;
private float uiScale;
public RakebackScreen(Config arg0, SessionManager arg1) {
super(class_310.method_1551(), class_310.method_1551().field_1772, class_2561.method_43470("Rakeback"));
this.paidHitboxes = new ArrayList();
this.paidPlayers = new ArrayList();
this.uiScale = 1.0F;
this.config = arg0;
this.sessions = arg1;
return;
}
protected void method_25426() {
this.openedAtMs = System.currentTimeMillis();
int var1 = 16;
float var2 = (((float) (this.field_22789 - var1)) / 460.0);
float var3 = (((float) (this.field_22790 - var1)) / 280.0);
this.uiScale = Math.min(1.0F, Math.min(var2, var3));
int var4 = Math.round((((float) this.field_22789) / this.uiScale));
int var5 = Math.round((((float) this.field_22790) / this.uiScale));
this.px = ((var4 - 460) / 2);
this.py = ((var5 - 280) / 2);
return;
}
public boolean method_25421() {
return false;
}
public void method_25394(class_332 arg0, int arg1, int arg2, float arg3) {
long var5 = (System.currentTimeMillis() - this.openedAtMs);
float var7 = Math.min(1.0F, (((float) var5) / 220.0));
float var8 = Theme.easeOutCubic(var7);
int var9 = ((int) (176.0 * var8));
arg0.method_25294(0, 0, this.field_22789, this.field_22790, (var9 << 24));
int var10 = Math.round((((float) arg1) / this.uiScale));
int var11 = Math.round((((float) arg2) / this.uiScale));
var var12 = arg0.method_51448();
var12.pushMatrix();
var12.translate(0.0F, ((1.0F - var8) * -14.0));
var12.scale(this.uiScale, this.uiScale);
arg0.method_25294(this.px, this.py, (this.px + 460), (this.py + 280), -15855596);
this.outline(arg0, this.px, this.py, (this.px + 460), (this.py + 280), -14276046);
arg0.method_25294(this.px, this.py, (this.px + 460), (this.py + 24), -15329251);
arg0.method_25294(this.px, (this.py + 24), (this.px + 460), (this.py + 25), -14276046);
arg0.method_51433(this.field_22793, "rakeback owed", (this.px + 14), (this.py + 9), -1644565, false);
var var13 = indy.makeConcatWithConstants(this.formatPct(this.config.rakebackPct()));
int var14 = this.field_22793.method_1727(var13);
arg0.method_51433(this.field_22793, var13, (((this.px + 460) - var14) - 14), (this.py + 9), -13927425, false);
int var15 = (this.py + 34);
int var16 = (this.px + 16);
int var17 = (this.px + 190);
int var18 = (this.px + 290);
int var19 = ((this.px + 460) - 90);
arg0.method_51433(this.field_22793, "PLAYER", var16, var15, -11709599, false);
arg0.method_51433(this.field_22793, "RECEIVED", var17, var15, -11709599, false);
arg0.method_51433(this.field_22793, "OWED", var18, var15, -11709599, false);
this.listX = (this.px + 8);
this.listW = 444;
this.listTop = (var15 + 12);
this.listBot = ((this.py + 280) - 36);
arg0.method_25294(this.listX, this.listTop, (this.listX + this.listW), this.listBot, -15000028);
this.outline(arg0, this.listX, this.listTop, (this.listX + this.listW), this.listBot, -14276046);
this.paidHitboxes.clear();
this.paidPlayers.clear();
var var20 = this.sessions.incomingByPlayer();
var var21 = new ArrayList(var20.entrySet());
var21.sort(Comparator.comparingLong(indy.applyAsLong()).reversed());
long var22 = 0L;
var var24 = var21.iterator();
L606:
if (!var24.hasNext()) goto L663;
var var25 = ((Map.Entry) var24.next());
var22 = (var22 + ((long) ((((double) ((Long) var25.getValue()).longValue()) * this.config.rakebackPct()) / 100.0)));
goto L606;
L663:
if (!var21.isEmpty()) goto L753;
if (!this.sessions.hasActive()) goto L689;
var stack0 = "no incoming payments yet in this session";
goto L692;
L689:
stack0 = "no active session - start one from the tracker";
L692:
var24 = stack0;
var25 = this.field_22793.method_1727(var24);
arg0.method_51433(this.field_22793, var24, (this.listX + ((this.listW - var25) / 2)), ((this.listTop + ((this.listBot - this.listTop) / 2)) - 4), -11709599, false);
goto L1428;
L753:
var24 = ((this.listBot - this.listTop) - 4);
var25 = Math.min(10, (var24 / 18));
int var26 = Math.max(0, Math.min(this.scroll, (var21.size() - var25)));
int var27 = Math.min(var25, (var21.size() - var26));
arg0.method_44379((this.listX + 1), (this.listTop + 1), ((this.listX + this.listW) - 1), (this.listBot - 1));
int var28 = 0;
L854:
if (var28 >= var27) goto L1288;
var var29 = ((Map.Entry) var21.get((var26 + var28)));
int var30 = ((this.listTop + 4) + (var28 * 18));
if ((var28 & 1) != 1) goto L935;
arg0.method_25294((this.listX + 1), (var30 - 2), ((this.listX + this.listW) - 1), ((var30 + 18) - 2), 150994943);
L935:
long var31 = ((Long) var29.getValue()).longValue();
long var33 = ((long) ((((double) var31) * this.config.rakebackPct()) / 100.0));
arg0.method_51433(this.field_22793, ((String) var29.getKey()), var16, var30, -1644565, false);
arg0.method_51433(this.field_22793, AmountFormat.pretty(var31), var17, var30, -11870592, false);
arg0.method_51433(this.field_22793, AmountFormat.pretty(var33), var18, var30, -1096636, false);
int var35 = 60;
int var36 = 14;
int var37 = var19;
int var38 = (var30 - 3);
if (var10 < var37) goto L1091;
if (var10 >= (var37 + var35)) goto L1091;
if (var11 < var38) goto L1091;
if (var11 >= (var38 + var36)) goto L1091;
stack0 = 1;
goto L1092;
L1091:
stack0 = 0;
L1092:
int var39 = stack0;
stack0 = arg0;
var stack1 = var37;
var stack2 = var38;
var stack3 = (var37 + var35);
var stack4 = (var38 + var36);
if (var39 == 0) goto L1119;
var stack5 = -15000028;
goto L1121;
L1119:
stack5 = -15329251;
L1121:
stack0.method_25294(stack1, stack2, stack3, stack4, stack5);
stack0 = this;
stack1 = arg0;
stack2 = var37;
stack3 = var38;
stack4 = (var37 + var35);
stack5 = (var38 + var36);
if (var39 == 0) goto L1151;
var stack6 = -11870592;
goto L1153;
L1151:
stack6 = -14276046;
L1153:
stack0.outline(stack1, stack2, stack3, stack4, stack5, stack6);
int var40 = this.field_22793.method_1727("paid");
Objects.requireNonNull(this.field_22793);
stack0 = arg0;
stack1 = this.field_22793;
stack2 = "paid";
stack3 = (var37 + ((var35 - var40) / 2));
stack4 = ((var38 + ((var36 - 9) / 2)) + 1);
if (var39 == 0) goto L1217;
stack5 = -11870592;
goto L1219;
L1217:
stack5 = -1644565;
L1219:
stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
stack1 = new int[4];
stack1[0] = var37;
stack1[1] = var38;
stack1[2] = (var37 + var35);
stack1[3] = (var38 + var36);
this.paidHitboxes.add(stack1);
this.paidPlayers.add(((String) var29.getKey()));
var28 += 1;
goto L854;
L1288:
arg0.method_44380();
if (var21.size() <= var25) goto L1428;
var28 = ((this.listX + this.listW) - 4);
var29 = (this.listTop + 2);
var30 = ((this.listBot - this.listTop) - 4);
var31 = Math.max(12, ((var30 * var25) / var21.size()));
int var32 = (((var30 - var31) * var26) / Math.max(1, (var21.size() - var25)));
arg0.method_25294(var28, var29, (var28 + 2), (var29 + var30), -14276046);
arg0.method_25294(var28, (var29 + var32), (var28 + 2), ((var29 + var32) + var31), -8748911);
L1428:
var24 = indy.makeConcatWithConstants(AmountFormat.pretty(var22));
stack0 = arg0;
stack1 = this.field_22793;
stack2 = var24;
stack3 = (this.px + 14);
stack4 = ((this.py + 280) - 22);
if (!var21.isEmpty()) goto L1480;
stack5 = -11709599;
goto L1483;
L1480:
stack5 = -1096636;
L1483:
stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
this.closeW = 78;
this.closeH = 16;
this.closeX = (((this.px + 460) - this.closeW) - 14);
this.closeY = ((this.py + 280) - 24);
if (var10 < this.closeX) goto L1584;
if (var10 >= (this.closeX + this.closeW)) goto L1584;
if (var11 < this.closeY) goto L1584;
if (var11 >= (this.closeY + this.closeH)) goto L1584;
stack0 = 1;
goto L1585;
L1584:
stack0 = 0;
L1585:
var25 = stack0;
stack0 = arg0;
stack1 = this.closeX;
stack2 = this.closeY;
stack3 = (this.closeX + this.closeW);
stack4 = (this.closeY + this.closeH);
if (var25 == 0) goto L1624;
stack5 = -15000028;
goto L1626;
L1624:
stack5 = -15329251;
L1626:
stack0.method_25294(stack1, stack2, stack3, stack4, stack5);
stack0 = this;
stack1 = arg0;
stack2 = this.closeX;
stack3 = this.closeY;
stack4 = (this.closeX + this.closeW);
stack5 = (this.closeY + this.closeH);
if (var25 == 0) goto L1667;
stack6 = -13927425;
goto L1669;
L1667:
stack6 = -14276046;
L1669:
stack0.outline(stack1, stack2, stack3, stack4, stack5, stack6);
var26 = this.field_22793.method_1727("close");
Objects.requireNonNull(this.field_22793);
stack0 = arg0;
stack1 = this.field_22793;
stack2 = "close";
stack3 = (this.closeX + ((this.closeW - var26) / 2));
stack4 = ((this.closeY + ((this.closeH - 9) / 2)) + 1);
if (var25 == 0) goto L1740;
stack5 = -13927425;
goto L1742;
L1740:
stack5 = -1644565;
L1742:
stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
var12.popMatrix();
return;
}
private String formatPct(double arg0) {
if (Double.compare(arg0, Math.floor(arg0)) != 0) goto L27;
var stack1 = new Object[1];
stack1[0] = Double.valueOf(arg0);
return String.format("%.0f%%", stack1);
L27:
stack1 = new Object[1];
stack1[0] = Double.valueOf(arg0);
return String.format("%.1f%%", stack1);
}
public boolean method_25402(class_11909 arg0, boolean arg1) {
int var3 = Math.round((((float) arg0.comp_4798()) / this.uiScale));
int var4 = Math.round((((float) arg0.comp_4799()) / this.uiScale));
if (var3 < this.closeX) goto L79;
if (var3 >= (this.closeX + this.closeW)) goto L79;
if (var4 < this.closeY) goto L79;
if (var4 >= (this.closeY + this.closeH)) goto L79;
this.method_25419();
return true;
L79:
int var5 = 0;
L82:
if (var5 >= this.paidHitboxes.size()) goto L175;
var var6 = ((int[]) this.paidHitboxes.get(var5));
if (var3 < var6[0]) goto L169;
if (var3 >= var6[2]) goto L169;
if (var4 < var6[1]) goto L169;
if (var4 >= var6[3]) goto L169;
this.sessions.markPaid(((String) this.paidPlayers.get(var5)));
return true;
L169:
var5 += 1;
goto L82;
L175:
return super.method_25402(arg0, arg1);
}
public boolean method_25401(double arg0, double arg1, double arg2, double arg3) {
if (Double.compare(arg3, 0.0) >= 0) goto L20;
this.scroll = (this.scroll + 1);
goto L41;
L20:
if (Double.compare(arg3, 0.0) <= 0) goto L41;
this.scroll = Math.max(0, (this.scroll - 1));
L41:
return true;
}
public boolean method_25404(class_11908 arg0) {
if (arg0.comp_4795() != 256) goto L16;
this.method_25419();
return true;
L16:
return super.method_25404(arg0);
}
public void method_25419() {
class_310.method_1551().method_29970(new TrackerScreen(this.config, GamblerPlusClient.STATS));
return;
}
private void outline(class_332 arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
arg0.method_25294(arg1, arg2, arg3, (arg2 + 1), arg5);
arg0.method_25294(arg1, (arg4 - 1), arg3, arg4, arg5);
arg0.method_25294(arg1, arg2, (arg1 + 1), arg4, arg5);
arg0.method_25294((arg3 - 1), arg2, arg3, arg4, arg5);
return;
}
}
Methods declared
public void <init>(dev.mishka.gamblerplus.client.Config, dev.mishka.gamblerplus.client.SessionManager) protected void method_25426() public boolean method_25421() public void method_25394(net.minecraft.class_332, int, int, float) private java.lang.String formatPct(double) public boolean method_25402(net.minecraft.class_11909, boolean) public boolean method_25401(double, double, double, double) public boolean method_25404(net.minecraft.class_11908) public void method_25419() private void outline(net.minecraft.class_332, int, int, int, int, int)
Fields
private static final int PANEL_W private static final int PANEL_H private static final int ROW_H private static final int MAX_ROWS private static final long ANIM_MS private final dev.mishka.gamblerplus.client.Config config private final dev.mishka.gamblerplus.client.SessionManager sessions private long openedAtMs private int scroll private int px private int py private int listTop private int listBot private int listX private int listW private int closeX private int closeY private int closeW private int closeH private final java.util.List paidHitboxes private final java.util.List paidPlayers private float uiScale
Calls out to
dev.mishka.gamblerplus.client.AmountFormat.pretty(long) : java.lang.String dev.mishka.gamblerplus.client.Config.rakebackPct() : double dev.mishka.gamblerplus.client.Stats dev.mishka.gamblerplus.client.GamblerPlusClient.STATS int dev.mishka.gamblerplus.client.RakebackScreen.closeH int dev.mishka.gamblerplus.client.RakebackScreen.closeW int dev.mishka.gamblerplus.client.RakebackScreen.closeX int dev.mishka.gamblerplus.client.RakebackScreen.closeY dev.mishka.gamblerplus.client.Config dev.mishka.gamblerplus.client.RakebackScreen.config int dev.mishka.gamblerplus.client.RakebackScreen.field_22789 int dev.mishka.gamblerplus.client.RakebackScreen.field_22790 net.minecraft.class_327 dev.mishka.gamblerplus.client.RakebackScreen.field_22793 dev.mishka.gamblerplus.client.RakebackScreen.formatPct(double) : java.lang.String int dev.mishka.gamblerplus.client.RakebackScreen.listBot int dev.mishka.gamblerplus.client.RakebackScreen.listTop int dev.mishka.gamblerplus.client.RakebackScreen.listW int dev.mishka.gamblerplus.client.RakebackScreen.listX dev.mishka.gamblerplus.client.RakebackScreen.method_25419() long dev.mishka.gamblerplus.client.RakebackScreen.openedAtMs dev.mishka.gamblerplus.client.RakebackScreen.outline(net.minecraft.class_332, int, int, int, int, int) java.util.List dev.mishka.gamblerplus.client.RakebackScreen.paidHitboxes java.util.List dev.mishka.gamblerplus.client.RakebackScreen.paidPlayers int dev.mishka.gamblerplus.client.RakebackScreen.px int dev.mishka.gamblerplus.client.RakebackScreen.py int dev.mishka.gamblerplus.client.RakebackScreen.scroll dev.mishka.gamblerplus.client.SessionManager dev.mishka.gamblerplus.client.RakebackScreen.sessions float dev.mishka.gamblerplus.client.RakebackScreen.uiScale dev.mishka.gamblerplus.client.SessionManager.hasActive() : boolean dev.mishka.gamblerplus.client.SessionManager.incomingByPlayer() : java.util.Map dev.mishka.gamblerplus.client.SessionManager.markPaid(java.lang.String) dev.mishka.gamblerplus.client.Theme.easeOutCubic(float) : float dev.mishka.gamblerplus.client.TrackerScreen.<init>(dev.mishka.gamblerplus.client.Config, dev.mishka.gamblerplus.client.Stats) java.lang.Double.valueOf(double) : java.lang.Double java.lang.Long.longValue() : long java.lang.Math.floor(double) : double java.lang.Math.max(int, int) : int java.lang.Math.min(float, float) : float java.lang.Math.min(int, int) : int java.lang.Math.round(float) : int java.lang.String.format(java.lang.String, java.lang.Object[]) : java.lang.String java.lang.System.currentTimeMillis() : long java.lang.invoke.LambdaMetafactory.metafactory(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.invoke.MethodType, java.lang.invoke.MethodHandle, java.lang.invoke.MethodType) : java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[]) : java.lang.invoke.CallSite java.util.ArrayList.<init>() java.util.ArrayList.<init>(java.util.Collection) java.util.Comparator.comparingLong(java.util.function.ToLongFunction) : java.util.Comparator java.util.Comparator.reversed() : java.util.Comparator java.util.Iterator.hasNext() : boolean java.util.Iterator.next() : java.lang.Object java.util.List.add(java.lang.Object) : boolean java.util.List.clear() java.util.List.get(int) : java.lang.Object java.util.List.isEmpty() : boolean java.util.List.iterator() : java.util.Iterator java.util.List.size() : int java.util.List.sort(java.util.Comparator) java.util.Map.entrySet() : java.util.Set java.util.Map$Entry.getKey() : java.lang.Object java.util.Map$Entry.getValue() : java.lang.Object java.util.Objects.requireNonNull(java.lang.Object) : java.lang.Object net.minecraft.class_11908.comp_4795() : int net.minecraft.class_11909.comp_4798() : double net.minecraft.class_11909.comp_4799() : double net.minecraft.class_2561.method_43470(java.lang.String) : net.minecraft.class_5250 net.minecraft.class_327 net.minecraft.class_310.field_1772 net.minecraft.class_310.method_1551() : net.minecraft.class_310 net.minecraft.class_310.method_29970(net.minecraft.class_437) net.minecraft.class_327.method_1727(java.lang.String) : int net.minecraft.class_332.method_25294(int, int, int, int, int) net.minecraft.class_332.method_44379(int, int, int, int) net.minecraft.class_332.method_44380() net.minecraft.class_332.method_51433(net.minecraft.class_327, java.lang.String, int, int, int, boolean) net.minecraft.class_332.method_51448() : org.joml.Matrix3x2fStack net.minecraft.class_437.<init>(net.minecraft.class_310, net.minecraft.class_327, net.minecraft.class_2561) net.minecraft.class_437.method_25402(net.minecraft.class_11909, boolean) : boolean net.minecraft.class_437.method_25404(net.minecraft.class_11908) : boolean org.joml.Matrix3x2fStack.popMatrix() : org.joml.Matrix3x2fStack org.joml.Matrix3x2fStack.pushMatrix() : org.joml.Matrix3x2fStack org.joml.Matrix3x2fStack.scale(float, float) : org.joml.Matrix3x2f org.joml.Matrix3x2fStack.translate(float, float) : org.joml.Matrix3x2f
Text compiled into the class
Rakeback rakeback owed rate PLAYER RECEIVED OWED no incoming payments yet in this session no active session - start one from the tracker paid total owed close %.0f%% %.1f%%