Skip to content

Commit a8c9577

Browse files
committed
Ponder clear option
1 parent fcfe466 commit a8c9577

3 files changed

Lines changed: 47 additions & 3 deletions

File tree

src/main/java/com/cake/azimuth/AzimuthClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.cake.azimuth;
22

33
import com.cake.azimuth.foundation.config.AzimuthConfigs;
4+
import com.cake.azimuth.foundation.config.AzimuthConfigScreen;
45
import com.cake.azimuth.goggle.command.AzimuthClientCommands;
56
import net.createmod.catnip.config.ui.BaseConfigScreen;
67
import net.neoforged.api.distmarker.Dist;
@@ -49,7 +50,7 @@ public static void onLoadComplete(final FMLLoadCompleteEvent event) {
4950
.getModContainerById(Azimuth.MODID)
5051
.orElseThrow(() -> new IllegalStateException("Azimuth mod container missing on LoadComplete"));
5152
final Supplier<IConfigScreenFactory> configScreen = () ->
52-
(mc, previousScreen) -> new BaseConfigScreen(previousScreen, Azimuth.MODID);
53+
(mc, previousScreen) -> new AzimuthConfigScreen(previousScreen, Azimuth.MODID);
5354
container.registerExtensionPoint(IConfigScreenFactory.class, configScreen);
5455
}
5556
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.cake.azimuth.foundation.config;
2+
3+
import com.cake.azimuth.ponder.new_tooltip.NewPonderTooltipManager;
4+
import net.createmod.catnip.config.ui.BaseConfigScreen;
5+
import net.createmod.catnip.gui.element.TextStencilElement;
6+
import net.createmod.catnip.gui.widget.BoxWidget;
7+
import net.minecraft.client.gui.screens.Screen;
8+
import net.minecraft.network.chat.Component;
9+
10+
import javax.annotation.Nullable;
11+
12+
public class AzimuthConfigScreen extends BaseConfigScreen {
13+
14+
public AzimuthConfigScreen(@Nullable Screen parent, String modID) {
15+
super(parent, modID);
16+
}
17+
18+
@Override
19+
protected void init() {
20+
super.init();
21+
22+
TextStencilElement clearText = new TextStencilElement(font, Component.literal("Clear Watched Ponders"))
23+
.centered(true, true);
24+
BoxWidget clearButton = new BoxWidget(width / 2 - 100, height / 2 - 15 + 60, 200, 16)
25+
.showingElement(clearText);
26+
clearText.withElementRenderer(BoxWidget.gradientFactory.apply(clearButton));
27+
clearButton.withCallback(() -> {
28+
NewPonderTooltipManager.clearAllWatched();
29+
clearButton.active = false;
30+
clearButton.updateGradientFromState();
31+
});
32+
clearButton.getToolTip().add(Component.literal("Resets all ponder scenes to unwatched, restoring ✦ NEW badges"));
33+
addRenderableWidget(clearButton);
34+
}
35+
}

src/main/java/com/cake/azimuth/ponder/new_tooltip/NewPonderTooltipManager.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.cake.azimuth.ponder.new_tooltip;
22

3+
import com.cake.azimuth.Azimuth;
34
import com.google.gson.JsonArray;
45
import com.google.gson.JsonElement;
56
import com.google.gson.JsonParser;
67
import com.mojang.serialization.Codec;
78
import com.mojang.serialization.DataResult;
89
import com.mojang.serialization.JsonOps;
9-
import com.cake.azimuth.Azimuth;
1010
import net.minecraft.client.Minecraft;
1111
import net.minecraft.network.chat.Component;
1212
import net.minecraft.network.chat.MutableComponent;
@@ -41,7 +41,7 @@ public class NewPonderTooltipManager {
4141
private static final Object LOCK = new Object();
4242

4343
private static Path filePath() {
44-
return Minecraft.getInstance().gameDirectory.toPath().resolve("azimuth_ponders_watched.json");
44+
return Minecraft.getInstance().gameDirectory.toPath().resolve("ponders_watched_azimuth.json");
4545
}
4646

4747
public static RegisterBuilder forItems(final Item... items) {
@@ -70,6 +70,14 @@ public static boolean hasWatchedScene(final ResourceLocation id) {
7070
return WATCHED_PONDER_SCENES != null && WATCHED_PONDER_SCENES.contains(id);
7171
}
7272

73+
public static void clearAllWatched() {
74+
load();
75+
if (WATCHED_PONDER_SCENES != null) {
76+
WATCHED_PONDER_SCENES.clear();
77+
save();
78+
}
79+
}
80+
7381
/**
7482
* Checks whether a component already contains a "new ponder" badge from any mod.
7583
* This enables conflict detection — if another mod (e.g. Simulated) has already

0 commit comments

Comments
 (0)