Skip to content

Commit 7d40156

Browse files
committed
Added other player death waypoints, pause for breadcrumbs, toggle for unsafe chat toast, removed wurst logos, added neco-arc
1 parent 3f75d6c commit 7d40156

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+268
-77
lines changed

README.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,22 @@ All credit for the original client goes to Wurst‑Imperium and its contributors
5555
Create and save waypoints and automatically save and or display in chat the location of your death.
5656
- Opening the manager
5757
- Default keybind: apostrophe ('). This triggers the command `.waypoints`.
58+
- Can also be found in the options menu.
5859
- Creating and editing
5960
- The editor shows name, coordinates (X/Y/Z), dimension, icon, visibility, lines on/off, and color.
6061
- Copy coordinates: In the manager list, each waypoint row includes a Copy button that places `x, y, z` on the clipboard.
6162
- Opposite: Default OFF. When ON (and applicable), the editor shows a hint below the toggle: “Opposite shows in … at (x, y, z)”. This converts Overworld <-> Nether using the usual 8× rule. (Opposite has no effect in the End.)
6263
- Rendering behavior
6364
- Constant-size labels: Waypoint name and distance are rendered at a configurable and fixed on‑screen size
6465
- Per‑waypoint “lines” toggle: Draws tracer + box around the target block when enabled.
65-
- Death waypoints: Optional automatic waypoints on death. You can toggle creating death waypoints, toggle whether they have lines, and choose their color. There’s also a setting to prune older death waypoints.
66+
- Death waypoints: Optional automatic waypoints on death (for both you and optionally other players). You can toggle creating death waypoints, toggle whether they have lines, and choose their color. There’s also a setting to prune older death waypoints.
6667
- Manager list
67-
- Remove and edit existing waypoints easily
68+
- Remove and edit existing waypoints easily.
6869
- Storage
6970
- Waypoints are stored per world/server under `wurst/waypoints/<worldId>.json` where `<worldId>` is the server address (or `singleplayer`).
7071

7172
### Breadcrumbs
72-
A line follows you wherever you go, useful for tracing back your path.
73+
A line follows you wherever you go, useful for tracing back your path. It can be pausable via a keybind or through the menu.
7374
- Settings
7475
- Color
7576
- Max sections (how many points are kept)
@@ -114,6 +115,16 @@ Visualizes where players logged out.
114115
- Turn Sticky area On to keep results anchored as you move. Useful for pathing back to things you found at the edge of your range.
115116
- Default: Off (re-centers every time you enter a new chunk to match ESP drop-off distances).
116117

118+
### Unsafe Chat Toast
119+
- Now optional, toggle it within NoChatReports or Wurst Options menu.
120+
121+
### Removed Wurst Logo
122+
- Removed from UI when out-dated
123+
- Removed from Options Button
124+
125+
### Replace Taco with Neco
126+
- Removed the stupid little Taco guy and replaced it with Neco-Arc dancing instead! Amazing achievement!
127+
117128
### Usability
118129
- Right-click the Area setting to reset to its default (e.g., 33×33 where configured).
119130

src/main/java/net/wurstclient/command/CmdList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public final class CmdList
6060
public final SetModeCmd setModeCmd = new SetModeCmd();
6161
public final SetSliderCmd setSliderCmd = new SetSliderCmd();
6262
public final SettingsCmd settingsCmd = new SettingsCmd();
63-
public final TacoCmd tacoCmd = new TacoCmd();
63+
public final NecoCmd NecoCmd = new NecoCmd();
6464
public final TCmd tCmd = new TCmd();
6565
public final TooManyHaxCmd tooManyHaxCmd = new TooManyHaxCmd();
6666
public final TpCmd tpCmd = new TpCmd();

src/main/java/net/wurstclient/commands/TacoCmd.java renamed to src/main/java/net/wurstclient/commands/NecoCmd.java

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,38 +18,42 @@
1818
import net.wurstclient.events.UpdateListener;
1919
import net.wurstclient.util.RenderUtils;
2020

21-
public final class TacoCmd extends Command
21+
public final class NecoCmd extends Command
2222
implements GUIRenderListener, UpdateListener
2323
{
24-
private final Identifier[] tacos =
25-
{Identifier.of("wurst", "dancingtaco1.png"),
26-
Identifier.of("wurst", "dancingtaco2.png"),
27-
Identifier.of("wurst", "dancingtaco3.png"),
28-
Identifier.of("wurst", "dancingtaco4.png")};
24+
private final Identifier[] necos = buildNecoFrames();
25+
26+
private static final int NECO_TEX_W = 200;
27+
private static final int NECO_TEX_H = 200;
28+
private static final int DRAW_W = 200;
29+
private static final int DRAW_H = 200;
30+
private static final int RIGHT_MARGIN = 10;
31+
private static final int ABOVE_HUNGER = 4;
32+
private static final int HUNGER_ROW_BASELINE = 39;
2933

3034
private boolean enabled;
3135
private int ticks = 0;
3236

33-
public TacoCmd()
37+
private static final int TICKS_PER_FRAME = 2;
38+
39+
public NecoCmd()
3440
{
35-
super("taco", "Spawns a dancing taco on your hotbar.\n"
36-
+ "\"I love that little guy. So cute!\" -WiZARD");
41+
super("neco", "Spawns a dancing Neco-Arc.\n");
3742
setCategory(Category.FUN);
3843
}
3944

4045
@Override
4146
public void call(String[] args) throws CmdException
4247
{
4348
if(args.length != 0)
44-
throw new CmdSyntaxError("Tacos don't need arguments!");
49+
throw new CmdSyntaxError("Neco-arc doesn't want your arguments!");
4550

4651
enabled = !enabled;
4752

4853
if(enabled)
4954
{
5055
EVENTS.add(GUIRenderListener.class, this);
5156
EVENTS.add(UpdateListener.class, this);
52-
5357
}else
5458
{
5559
EVENTS.remove(GUIRenderListener.class, this);
@@ -60,19 +64,20 @@ public void call(String[] args) throws CmdException
6064
@Override
6165
public String getPrimaryAction()
6266
{
63-
return "Be a BOSS!";
67+
return "Summon Neco-Arc!";
6468
}
6569

6670
@Override
6771
public void doPrimaryAction()
6872
{
69-
WURST.getCmdProcessor().process("taco");
73+
WURST.getCmdProcessor().process("neco");
7074
}
7175

7276
@Override
7377
public void onUpdate()
7478
{
75-
if(ticks >= 31)
79+
int cycle = 37 * TICKS_PER_FRAME;
80+
if(ticks >= cycle - 1)
7681
ticks = 0;
7782
else
7883
ticks++;
@@ -85,11 +90,24 @@ public void onRenderGUI(DrawContext context, float partialTicks)
8590
? RenderUtils.toIntColor(WURST.getGui().getAcColor(), 1)
8691
: 0xFFFFFFFF;
8792

88-
int x = context.getScaledWindowWidth() / 2 - 32 + 76;
89-
int y = context.getScaledWindowHeight() - 32 - 19;
90-
int w = 64;
91-
int h = 32;
92-
context.drawTexture(RenderPipelines.GUI_TEXTURED, tacos[ticks / 8], x,
93-
y, 0, 0, w, h, w, h, color);
93+
int sw = context.getScaledWindowWidth();
94+
int sh = context.getScaledWindowHeight();
95+
int hungerBaselineY = sh - HUNGER_ROW_BASELINE;
96+
97+
int x = sw - DRAW_W - RIGHT_MARGIN;
98+
int y = hungerBaselineY - DRAW_H - ABOVE_HUNGER;
99+
100+
int frameIndex = (ticks / TICKS_PER_FRAME) % 37;
101+
102+
context.drawTexture(RenderPipelines.GUI_TEXTURED, necos[frameIndex], x,
103+
y, 0, 0, DRAW_W, DRAW_H, NECO_TEX_W, NECO_TEX_H, color);
104+
}
105+
106+
private static Identifier[] buildNecoFrames()
107+
{
108+
Identifier[] frames = new Identifier[37];
109+
for(int i = 0; i < 37; i++)
110+
frames[i] = Identifier.of("wurst", "neco" + (i + 1) + ".png");
111+
return frames;
94112
}
95113
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import net.wurstclient.events.UpdateListener;
2323
import net.wurstclient.hack.Hack;
2424
import net.wurstclient.settings.ColorSetting;
25+
import net.wurstclient.settings.CheckboxSetting;
2526
import net.wurstclient.settings.SliderSetting;
2627
import net.wurstclient.util.RenderUtils;
2728

@@ -40,6 +41,7 @@ public final class BreadcrumbsHack extends Hack
4041
private final SliderSetting lineThickness =
4142
new SliderSetting("Line thickness", 2.0, 1.0, 10.0, 1.0,
4243
net.wurstclient.settings.SliderSetting.ValueDisplay.INTEGER);
44+
private final CheckboxSetting paused = new CheckboxSetting("Paused", false);
4345

4446
private final Deque<Vec3d> points = new ArrayDeque<>();
4547

@@ -51,6 +53,13 @@ public BreadcrumbsHack()
5153
addSetting(maxSections);
5254
addSetting(sectionLen);
5355
addSetting(lineThickness);
56+
addSetting(paused);
57+
}
58+
59+
@Override
60+
public String getRenderName()
61+
{
62+
return paused.isChecked() ? getName() + " [Paused]" : getName();
5463
}
5564

5665
@Override
@@ -74,6 +83,9 @@ public void onUpdate()
7483
{
7584
if(MC.player == null)
7685
return;
86+
// Do not add new points while paused
87+
if(paused.isChecked())
88+
return;
7789
Vec3d here = MC.player.getPos();
7890
if(points.isEmpty())
7991
{

0 commit comments

Comments
 (0)