Skip to content

Commit 9d2c6ed

Browse files
committed
add profile config support
- fix a bug
1 parent b471442 commit 9d2c6ed

File tree

12 files changed

+65
-31
lines changed

12 files changed

+65
-31
lines changed

1.20/src/main/java/io/github/axolotlclient/waypoints/map/Minimap.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import io.github.axolotlclient.waypoints.HudCreator;
3030
import io.github.axolotlclient.waypoints.util.ARGB;
3131
import io.github.axolotlclient.waypoints.waypoints.Waypoint;
32-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
3332
import net.minecraft.Util;
3433
import net.minecraft.client.Minecraft;
3534
import net.minecraft.client.gui.GuiGraphics;
@@ -64,12 +63,11 @@ public class Minimap extends MinimapCommon {
6463
private final Minecraft minecraft = Minecraft.getInstance();
6564

6665
public void init() {
67-
minimap.add(enabled, lockMapToNorth, arrowScale, minimapOutline, outlineColor, enableBiomeBlending, mapScale, showWaypoints, showCardinalDirections);
66+
super.init();
6867
AxolotlClientWaypointsCommon.category.add(Minimap.minimap);
6968
if (AxolotlClientWaypointsCommon.AXOLOTLCLIENT_PRESENT) {
7069
usingHud = true;
71-
var save = HudCreator.createHud(this);
72-
ClientLifecycleEvents.CLIENT_STOPPING.register(mc -> save.run());
70+
HudCreator.createHud(this);
7371
}
7472
}
7573

1.20/src/main/java/io/github/axolotlclient/waypoints/waypoints/WaypointRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void renderWaypoints(GuiGraphics graphics, float delta) {
139139
}
140140

141141
private void renderWaypoint(Waypoint waypoint, GuiGraphics graphics, float tick, Camera camera, List<Runnable> positionDrawn) {
142-
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(camera, tick, false);
142+
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(camera, tick, true);
143143
var pose = graphics.pose();
144144

145145
var textWidth = minecraft.font.width(waypoint.display());

1.21.8/src/main/java/io/github/axolotlclient/waypoints/map/Minimap.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import io.github.axolotlclient.waypoints.HudCreator;
3030
import io.github.axolotlclient.waypoints.util.ARGB;
3131
import io.github.axolotlclient.waypoints.waypoints.Waypoint;
32-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
3332
import net.minecraft.Util;
3433
import net.minecraft.client.DeltaTracker;
3534
import net.minecraft.client.Minecraft;
@@ -66,12 +65,11 @@ public class Minimap extends MinimapCommon {
6665
private final Minecraft minecraft = Minecraft.getInstance();
6766

6867
public void init() {
69-
minimap.add(enabled, lockMapToNorth, arrowScale, minimapOutline, outlineColor, enableBiomeBlending, mapScale, showWaypoints, showCardinalDirections);
68+
super.init();
7069
AxolotlClientWaypointsCommon.category.add(minimap);
7170
if (AxolotlClientWaypointsCommon.AXOLOTLCLIENT_PRESENT) {
7271
usingHud = true;
73-
var save = HudCreator.createHud(this);
74-
ClientLifecycleEvents.CLIENT_STOPPING.register(mc -> save.run());
72+
HudCreator.createHud(this);
7573
}
7674
}
7775

1.21/src/main/java/io/github/axolotlclient/waypoints/map/Minimap.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import io.github.axolotlclient.waypoints.HudCreator;
3030
import io.github.axolotlclient.waypoints.util.ARGB;
3131
import io.github.axolotlclient.waypoints.waypoints.Waypoint;
32-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
3332
import net.minecraft.Util;
3433
import net.minecraft.client.DeltaTracker;
3534
import net.minecraft.client.Minecraft;
@@ -66,12 +65,11 @@ public class Minimap extends MinimapCommon {
6665
private final Minecraft minecraft = Minecraft.getInstance();
6766

6867
public void init() {
69-
minimap.add(enabled, lockMapToNorth, arrowScale, minimapOutline, outlineColor, enableBiomeBlending, mapScale, showWaypoints, showCardinalDirections);
68+
super.init();
7069
AxolotlClientWaypointsCommon.category.add(Minimap.minimap);
7170
if (AxolotlClientWaypointsCommon.AXOLOTLCLIENT_PRESENT) {
7271
usingHud = true;
73-
var save = HudCreator.createHud(this);
74-
ClientLifecycleEvents.CLIENT_STOPPING.register(mc -> save.run());
72+
HudCreator.createHud(this);
7573
}
7674
}
7775

1.21/src/main/java/io/github/axolotlclient/waypoints/waypoints/WaypointRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public void renderWaypoints(GuiGraphics graphics, DeltaTracker deltaTracker) {
144144

145145
private void renderWaypoint(Waypoint waypoint, GuiGraphics graphics, DeltaTracker tracker, Camera camera, List<Runnable> positionDrawn) {
146146
var tick = tracker.getGameTimeDeltaPartialTick(true);
147-
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(camera, tick, false);
147+
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(camera, tick, true);
148148
var pose = graphics.pose();
149149

150150
var textWidth = minecraft.font.width(waypoint.display());

1.8.9/src/main/java/io/github/axolotlclient/waypoints/map/Minimap.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import net.minecraft.util.math.BlockPos;
4343
import net.minecraft.util.math.MathHelper;
4444
import net.minecraft.world.chunk.WorldChunk;
45-
import net.ornithemc.osl.lifecycle.api.client.MinecraftClientEvents;
4645
import org.joml.Vector3f;
4746

4847
public class Minimap extends MinimapCommon {
@@ -59,12 +58,11 @@ public class Minimap extends MinimapCommon {
5958
private final Minecraft minecraft = Minecraft.getInstance();
6059

6160
public void init() {
62-
minimap.add(enabled, lockMapToNorth, arrowScale, minimapOutline, outlineColor, enableBiomeBlending, mapScale, showWaypoints, showCardinalDirections);
61+
super.init();
6362
AxolotlClientWaypointsCommon.category.add(Minimap.minimap);
6463
if (AxolotlClientWaypointsCommon.AXOLOTLCLIENT_PRESENT) {
6564
usingHud = true;
66-
var save = HudCreator.createHud(this);
67-
MinecraftClientEvents.STOP.register(mc -> save.run());
65+
HudCreator.createHud(this);
6866
}
6967
}
7068

1.8.9/src/main/java/io/github/axolotlclient/waypoints/waypoints/WaypointRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ private Matrix4f getProjectionMatrix(float fov) {
169169
}
170170

171171
private void renderWaypoint(Waypoint waypoint, float tick, Entity camera, List<Runnable> positionDrawn, int guiWidth, int guiHeight) {
172-
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(tick, false);
172+
var fov = ((GameRendererAccessor) minecraft.gameRenderer).invokeGetFov(tick, true);
173173

174174
var textWidth = minecraft.textRenderer.getWidth(waypoint.display());
175175
int width = textWidth + Waypoint.displayXOffset() * 2;

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## Changelog
22

3+
### 0.0.1-beta.16
4+
5+
- fix waypoints being rendered wrong on changed FoVs (<=1.21.1)
6+
37
### 0.0.1-beta.15
48

59
- add tolerance for waypoint distance & name rendering, currently 1/4 of the screen size on each side

common/src/main/java/io/github/axolotlclient/waypoints/HudCreator.java

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.github.axolotlclient.AxolotlClientConfig.api.AxolotlClientConfig;
2727
import io.github.axolotlclient.AxolotlClientConfig.impl.managers.JsonConfigManager;
2828
import io.github.axolotlclient.bridge.events.Events;
29+
import io.github.axolotlclient.config.profiles.ProfileAware;
2930
import io.github.axolotlclient.modules.hud.HudManagerCommon;
3031
import io.github.axolotlclient.waypoints.map.MinimapCommon;
3132
import io.github.axolotlclient.waypoints.map.MinimapHudEntry;
@@ -38,21 +39,42 @@
3839
*/
3940
public class HudCreator {
4041

41-
public static Runnable createHud(MinimapCommon minimap) {
42+
public static void createHud(MinimapCommon minimap) {
4243
var hud = new MinimapHudEntry(minimap);
4344
hud.setEnabled(true);
44-
var hudConfigManager = new JsonConfigManager(AxolotlClientWaypointsCommon.OPTIONS_PATH.resolveSibling(hud.getId().br$getPath() + ".json"), hud.getAllOptions());
45-
hudConfigManager.suppressName("x");
46-
hudConfigManager.suppressName("y");
47-
hudConfigManager.suppressName(minimap.minimapOutline.getName());
48-
hudConfigManager.suppressName(minimap.outlineColor.getName());
49-
AxolotlClientConfig.getInstance().register(hudConfigManager);
50-
hudConfigManager.load();
51-
MinimapCommon.minimap.add(hud.getAllOptions(), false);
5245
Events.CLIENT_READY.register(() -> {
46+
var hudConfigManager = new JsonConfigManager(AxolotlClientCommon.resolveProfileConfigFile(AxolotlClientWaypointsCommon.MODID)
47+
.resolve(hud.getId().br$getPath() + ".json"), hud.getAllOptions());
48+
Events.CLIENT_STOP.register(hudConfigManager::save);
49+
hudConfigManager.suppressName("x");
50+
hudConfigManager.suppressName("y");
51+
hudConfigManager.suppressName(minimap.minimapOutline.getName());
52+
hudConfigManager.suppressName(minimap.outlineColor.getName());
53+
AxolotlClientConfig.getInstance().register(hudConfigManager);
54+
hudConfigManager.load();
55+
MinimapCommon.minimap.add(hud.getAllOptions(), false);
5356
AxolotlClientCommon.getInstance().getConfig().config.add(AxolotlClientWaypointsCommon.category, false);
5457
HudManagerCommon.getInstance().addNonConfigured(hud);
58+
var mainConfigManager = (JsonConfigManager) AxolotlClientConfig.getInstance().getConfigManager(AxolotlClientWaypointsCommon.category);
59+
mainConfigManager.setFile(AxolotlClientCommon.resolveProfileConfigFile(AxolotlClientWaypointsCommon.MODID).resolve("options.json"));
60+
hud.profileReloader = new ProfileAware() {
61+
@Override
62+
public void saveConfig() {
63+
hudConfigManager.save();
64+
mainConfigManager.save();
65+
}
66+
67+
@Override
68+
public void reloadConfig() {
69+
mainConfigManager.save();
70+
hudConfigManager.save();
71+
mainConfigManager.setFile(AxolotlClientCommon.resolveProfileConfigFile(AxolotlClientWaypointsCommon.MODID).resolve("options.json"));
72+
hudConfigManager.setFile(AxolotlClientCommon.resolveProfileConfigFile(AxolotlClientWaypointsCommon.MODID)
73+
.resolve(hud.getId().br$getPath() + ".json"));
74+
mainConfigManager.load();
75+
hudConfigManager.load();
76+
}
77+
};
5578
});
56-
return hudConfigManager::save;
5779
}
5880
}

common/src/main/java/io/github/axolotlclient/waypoints/map/MinimapCommon.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,8 @@ public abstract class MinimapCommon {
5454
public abstract void renderMap(AxoRenderContext ctx);
5555

5656
public abstract boolean isEnabled();
57+
58+
protected void init() {
59+
minimap.add(enabled, lockMapToNorth, arrowScale, minimapOutline, outlineColor, enableBiomeBlending, mapScale, showWaypoints, showCardinalDirections);
60+
}
5761
}

0 commit comments

Comments
 (0)