Skip to content

Commit 29e40d6

Browse files
committed
Minimap Fix
1 parent da7eb29 commit 29e40d6

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/main/java/dev/xpple/seedmapper/seedmap/SeedMapMinimapManager.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.xpple.seedmapper.seedmap;
22

3+
import dev.xpple.seedmapper.command.arguments.DimensionArgument;
34
import dev.xpple.seedmapper.world.WorldPreset;
45
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
56
import net.minecraft.client.DeltaTracker;
@@ -13,6 +14,10 @@ public final class SeedMapMinimapManager {
1314
private static final SeedMapMinimapManager INSTANCE = new SeedMapMinimapManager();
1415

1516
private @Nullable SeedMapMinimapScreen minimapScreen;
17+
private long activeSeed;
18+
private int activeVersion;
19+
private @Nullable WorldPreset activePreset;
20+
private boolean hasContext;
1621

1722
private SeedMapMinimapManager() {
1823
}
@@ -47,6 +52,10 @@ public static void disableMinimap() {
4752

4853
private void enable(long seed, int dimension, int version, WorldPreset preset, BlockPos pos) {
4954
this.disable();
55+
this.activeSeed = seed;
56+
this.activeVersion = version;
57+
this.activePreset = preset;
58+
this.hasContext = true;
5059
this.minimapScreen = new SeedMapMinimapScreen(seed, dimension, version, preset, pos);
5160
}
5261

@@ -69,8 +78,22 @@ private void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) {
6978
this.disable();
7079
return;
7180
}
81+
BlockPos playerPos = player.blockPosition();
82+
Integer resolvedDimension = DimensionArgument.resolveDimensionId(minecraft.level.dimension().identifier().getPath());
83+
if (resolvedDimension == null) {
84+
this.disable();
85+
return;
86+
}
87+
int currentDimensionId = resolvedDimension;
88+
if (currentDimensionId != this.minimapScreen.getDimensionId()) {
89+
if (!this.hasContext || this.activePreset == null) {
90+
this.disable();
91+
return;
92+
}
93+
this.enable(this.activeSeed, currentDimensionId, this.activeVersion, this.activePreset, playerPos);
94+
}
7295

73-
this.minimapScreen.focusOn(player.blockPosition());
96+
this.minimapScreen.focusOn(playerPos);
7497

7598
float partialTick = deltaTracker.getGameTimeDeltaPartialTick(false);
7699
this.minimapScreen.renderToHud(guiGraphics, player, partialTick);

src/main/java/dev/xpple/seedmapper/seedmap/SeedMapScreen.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,10 @@ public SeedMapScreen(long seed, int dimension, int version, WorldPreset worldPre
451451
this.pixelsPerBiome = this.clampPixelsPerBiome(this.readPixelsPerBiomeFromConfig());
452452
}
453453

454+
public int getDimensionId() {
455+
return this.dimension;
456+
}
457+
454458
protected void updatePlayerPosition(BlockPos newPos) {
455459
this.playerPos = newPos;
456460
}

0 commit comments

Comments
 (0)