Skip to content

Commit 46612f4

Browse files
committed
Updated TrialSpawnerESP
1 parent 6ccb05e commit 46612f4

File tree

1 file changed

+48
-43
lines changed

1 file changed

+48
-43
lines changed

src/main/java/net/wurstclient/hacks/TrialSpawnerEspHack.java

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,13 @@ public final class TrialSpawnerEspHack extends Hack implements UpdateListener,
7575
new CheckboxSetting("Show mob type", true);
7676
private final CheckboxSetting showStatus =
7777
new CheckboxSetting("Show status", true);
78-
private final CheckboxSetting showWaveInfo =
79-
new CheckboxSetting("Show wave info", true);
78+
// removed wave info setting (simplified status display)
8079
private final CheckboxSetting showNextSpawn =
8180
new CheckboxSetting("Show next wave", true);
82-
private final CheckboxSetting showCooldown =
83-
new CheckboxSetting("Show cooldown", true);
84-
private final CheckboxSetting showCooldownBar =
85-
new CheckboxSetting("Show cooldown bar", true);
81+
private final ColorSetting vaultBoxColor =
82+
new ColorSetting("Vault box color", new Color(0xFF7CF2C9));
83+
private final ColorSetting ominousVaultBoxColor =
84+
new ColorSetting("Ominous vault color", new Color(0xFF9B59B6));
8685
private final CheckboxSetting showDistance =
8786
new CheckboxSetting("Show distance", true);
8887
private final CheckboxSetting showTrialType =
@@ -124,15 +123,14 @@ public TrialSpawnerEspHack()
124123
addSetting(overlayScale);
125124
addSetting(showMobType);
126125
addSetting(showStatus);
127-
addSetting(showWaveInfo);
128126
addSetting(showNextSpawn);
129-
addSetting(showCooldown);
130-
addSetting(showCooldownBar);
131127
addSetting(showDistance);
132128
addSetting(showTrialType);
133129
addSetting(showActivationRadius);
134130
addSetting(showVaultLink);
135131
addSetting(vaultLinkRange);
132+
addSetting(vaultBoxColor);
133+
addSetting(ominousVaultBoxColor);
136134
addSetting(showCountInHackList);
137135
addSetting(colorIdle);
138136
addSetting(colorCharging);
@@ -173,11 +171,10 @@ public void onUpdate()
173171
}
174172

175173
vaults.clear();
176-
if(showVaultLink.isChecked())
177-
ChunkUtils.getLoadedBlockEntities()
178-
.filter(be -> be instanceof VaultBlockEntity)
179-
.map(be -> (VaultBlockEntity)be).forEach(
180-
be -> vaults.add(new VaultInfo(be.getPos().toImmutable())));
174+
ChunkUtils.getLoadedBlockEntities()
175+
.filter(be -> be instanceof VaultBlockEntity)
176+
.map(be -> (VaultBlockEntity)be).forEach(
177+
be -> vaults.add(new VaultInfo(be.getPos().toImmutable())));
181178

182179
boolean limit = maxDistance.getValue() > 0;
183180
double maxDistanceSq = maxDistance.getValue() * maxDistance.getValue();
@@ -213,7 +210,7 @@ public void onCameraTransformViewBobbing(
213210
@Override
214211
public void onRender(MatrixStack matrices, float partialTicks)
215212
{
216-
if(spawners.isEmpty() || MC.world == null)
213+
if(MC.world == null)
217214
return;
218215

219216
ArrayList<ColoredBox> outlineBoxes = new ArrayList<>();
@@ -222,6 +219,35 @@ public void onRender(MatrixStack matrices, float partialTicks)
222219
ArrayList<ColoredPoint> tracerTargets =
223220
drawTracers.isChecked() ? new ArrayList<>() : null;
224221

222+
// Render vault ESP boxes and simple status labels while hack is enabled
223+
if(!vaults.isEmpty())
224+
{
225+
for(VaultInfo v : vaults)
226+
{
227+
BlockPos vpos = v.pos();
228+
BlockState vstate = MC.world.getBlockState(vpos);
229+
int vcolor = vaultBoxColor.getColorI();
230+
boolean ominous = vstate.contains(VaultBlock.OMINOUS)
231+
&& vstate.get(VaultBlock.OMINOUS);
232+
if(ominous)
233+
vcolor = ominousVaultBoxColor.getColorI();
234+
Box vbox = new Box(vpos);
235+
outlineBoxes.add(new ColoredBox(vbox, vcolor));
236+
if(filledBoxes != null)
237+
filledBoxes
238+
.add(new ColoredBox(vbox, withAlpha(vcolor, 0.18F)));
239+
240+
// show simple status label above the vault
241+
String status = describeVaultState(vstate);
242+
List<OverlayLine> lines =
243+
List.of(new OverlayLine("Vault", vcolor),
244+
new OverlayLine(status, 0xFFFFFFFF));
245+
Vec3d labelPos = Vec3d.ofCenter(vpos).add(0, 1.0, 0);
246+
labelPos = resolveLabelPosition(labelPos);
247+
drawLabel(matrices, labelPos, lines, overlayScale.getValueF());
248+
}
249+
}
250+
225251
for(TrialSpawnerInfo info : spawners)
226252
{
227253
TrialSpawnerBlockEntity be = info.blockEntity();
@@ -366,8 +392,7 @@ private void drawOverlay(MatrixStack matrices, TrialSpawnerInfo info,
366392

367393
String trialType = describeTrialType(mobName, spawnId);
368394
TrialStatus status = TrialStatus.fromState(state);
369-
String statusLine =
370-
describeStatus(status, currentWave, totalWaves, cooldownSeconds);
395+
String statusLine = describeStatus(status);
371396

372397
ArrayList<OverlayLine> lines = new ArrayList<>();
373398
String title =
@@ -383,12 +408,7 @@ private void drawOverlay(MatrixStack matrices, TrialSpawnerInfo info,
383408
if(alive > 0)
384409
lines.add(new OverlayLine("Active mobs: " + alive, 0xFFFFFFFF));
385410

386-
if(showWaveInfo.isChecked())
387-
{
388-
String waveText = "Wave: " + currentWave + "/" + totalWaves + " ("
389-
+ mobsProgress + "/" + totalMobs + " mobs)";
390-
lines.add(new OverlayLine(waveText, 0xFFFFFFFF));
391-
}
411+
// removed wave info display (keeps overlay simple)
392412

393413
if(showNextSpawn.isChecked() && state == TrialSpawnerState.ACTIVE)
394414
{
@@ -397,20 +417,7 @@ private void drawOverlay(MatrixStack matrices, TrialSpawnerInfo info,
397417
lines.add(new OverlayLine(next, 0xFFFFFFFF));
398418
}
399419

400-
if(showCooldown.isChecked() && cooldownSeconds > 0)
401-
lines.add(new OverlayLine(
402-
"Cooldown: " + formatSeconds(cooldownSeconds), 0xFFFFFFFF));
403-
404-
if(showCooldownBar.isChecked() && status == TrialStatus.IDLE
405-
&& state == TrialSpawnerState.COOLDOWN
406-
&& logic.getCooldownLength() > 0)
407-
{
408-
double total = logic.getCooldownLength() / 20.0;
409-
double progress = total <= 0 ? 1
410-
: MathHelper.clamp(1 - (cooldownSeconds / total), 0, 1);
411-
lines.add(new OverlayLine("Cooling: " + progressBar(progress) + " "
412-
+ Math.round(progress * 100) + "%", 0xFFFFFFFF));
413-
}
420+
// removed cooldown display
414421

415422
if(showTrialType.isChecked())
416423
lines.add(new OverlayLine("Trial: " + trialType, 0xFFFFFFFF));
@@ -775,16 +782,14 @@ private String describeVaultState(BlockState state)
775782
};
776783
}
777784

778-
private String describeStatus(TrialStatus status, int currentWave,
779-
int totalWaves, double cooldownSeconds)
785+
private String describeStatus(TrialStatus status)
780786
{
781787
return switch(status)
782788
{
783-
case ACTIVE -> "Spawning wave " + currentWave + "/" + totalWaves;
784-
case CHARGING -> "Priming (" + currentWave + "/" + totalWaves + ")";
789+
case ACTIVE -> "Spawning";
790+
case CHARGING -> "Priming";
785791
case COMPLETED -> "Completed";
786-
case IDLE -> cooldownSeconds > 0
787-
? "Cooling (" + formatSeconds(cooldownSeconds) + ")" : "Idle";
792+
case IDLE -> "Idle";
788793
};
789794
}
790795

0 commit comments

Comments
 (0)