Skip to content

Commit b9787ff

Browse files
committed
Updated To Suit Upstream Changes
1 parent 02697db commit b9787ff

File tree

8 files changed

+69
-246
lines changed

8 files changed

+69
-246
lines changed

src/main/java/dev/xpple/seedmapper/command/commands/ExportLootCommand.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import dev.xpple.seedmapper.command.arguments.DimensionArgument;
1515
import dev.xpple.seedmapper.feature.StructureChecks;
1616
import dev.xpple.seedmapper.util.LootExportHelper;
17-
import dev.xpple.seedmapper.world.WorldPresetManager;
17+
import dev.xpple.seedmapper.util.SeedIdentifier;
1818
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
1919
import net.minecraft.core.BlockPos;
2020
import net.minecraft.network.chat.Component;
@@ -73,19 +73,21 @@ private static int exportLoot(CustomClientCommandSource source, int radius, Inte
7373
throw CommandExceptions.LOOT_NOT_SUPPORTED_EXCEPTION.create();
7474
}
7575
int dimension = dimensionArg == null ? source.getDimension() : dimensionArg;
76-
long seed = source.getSeed().getSecond();
76+
SeedIdentifier seed = source.getSeed().getSecond();
77+
long seedValue = seed.seed();
78+
int generatorFlags = source.getGeneratorFlags();
7779
int centerX = Mth.floor(source.getPosition().x());
7880
int centerZ = Mth.floor(source.getPosition().z());
7981

8082
Set<Integer> filterStructures = parseStructureFilter(structuresFilter, version);
8183

8284
try (Arena arena = Arena.ofConfined()) {
8385
MemorySegment generator = Generator.allocate(arena);
84-
Cubiomes.setupGenerator(generator, version, WorldPresetManager.activePreset().generatorFlags());
85-
Cubiomes.applySeed(generator, dimension, seed);
86+
Cubiomes.setupGenerator(generator, version, generatorFlags);
87+
Cubiomes.applySeed(generator, dimension, seedValue);
8688

8789
MemorySegment surfaceNoise = SurfaceNoise.allocate(arena);
88-
Cubiomes.initSurfaceNoise(surfaceNoise, dimension, seed);
90+
Cubiomes.initSurfaceNoise(surfaceNoise, dimension, seedValue);
8991

9092
List<MemorySegment> structureConfigs = new ArrayList<>();
9193
for (int structure = 0; structure < Cubiomes.FEATURE_NUM(); structure++) {
@@ -146,7 +148,7 @@ private static int exportLoot(CustomClientCommandSource source, int radius, Inte
146148
LootExportHelper.Result result = LootExportHelper.exportLoot(
147149
source.getClient(),
148150
generator,
149-
seed,
151+
seedValue,
150152
version,
151153
dimension,
152154
4,

src/main/java/dev/xpple/seedmapper/command/commands/HighlightCommand.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.github.cubiomes.CanyonCarverConfig;
44
import com.github.cubiomes.CaveCarverConfig;
55
import com.github.cubiomes.Cubiomes;
6-
import dev.xpple.seedmapper.world.WorldPresetManager;
76
import com.github.cubiomes.Generator;
87
import com.github.cubiomes.OreConfig;
98
import com.github.cubiomes.OreVeinParameters;
@@ -97,8 +96,8 @@ private static int highlightBlock(CustomClientCommandSource source, Pair<Integer
9796
int dimension = source.getDimension();
9897
try (Arena arena = Arena.ofConfined()) {
9998
MemorySegment generator = Generator.allocate(arena);
100-
Cubiomes.setupGenerator(generator, version, WorldPresetManager.activePreset().generatorFlags());
101-
Cubiomes.applySeed(generator, dimension, seed);
99+
Cubiomes.setupGenerator(generator, version, source.getGeneratorFlags());
100+
Cubiomes.applySeed(generator, dimension, seed.seed());
102101
MemorySegment surfaceNoise = SurfaceNoise.allocate(arena);
103102
Cubiomes.initSurfaceNoise(surfaceNoise, dimension, seed.seed());
104103

@@ -313,7 +312,7 @@ private static int highlightCanyon(CustomClientCommandSource source, int canyonC
313312
throw CommandExceptions.INVALID_DIMENSION_EXCEPTION.create();
314313
}
315314
var biomeFunction = LocateCommand.getCarverBiomeFunction(arena, seed.seed(), dimension, version, source.getGeneratorFlags());
316-
return highlightCarver(source, chunkRange, (chunkX, chunkZ) -> {
315+
return highlightCarver(source, chunkRange, Configs.CanyonESP, (chunkX, chunkZ) -> {
317316
int biome = biomeFunction.applyAsInt(chunkX, chunkZ);
318317
if (Cubiomes.isViableCanyonBiome(canyonCarver, biome) == 0) {
319318
return null;
@@ -341,7 +340,7 @@ private static int highlightCave(CustomClientCommandSource source, int caveCarve
341340
throw CommandExceptions.INVALID_DIMENSION_EXCEPTION.create();
342341
}
343342
var biomeFunction = LocateCommand.getCarverBiomeFunction(arena, seed.seed(), dimension, version, source.getGeneratorFlags());
344-
return highlightCarver(source, chunkRange, (chunkX, chunkZ) -> {
343+
return highlightCarver(source, chunkRange, Configs.CaveESP, (chunkX, chunkZ) -> {
345344
int biome = biomeFunction.applyAsInt(chunkX, chunkZ);
346345
if (Cubiomes.isViableCaveBiome(caveCarver, biome) == 0) {
347346
return null;

src/main/java/dev/xpple/seedmapper/command/commands/LocateCommand.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.github.cubiomes.CanyonCarverConfig;
44
import com.github.cubiomes.Cubiomes;
5-
import dev.xpple.seedmapper.world.WorldPresetManager;
65
import com.github.cubiomes.Generator;
76
import com.github.cubiomes.ItemStack;
87
import com.github.cubiomes.LootTableContext;
@@ -232,7 +231,8 @@ private static int locateStronghold(CustomClientCommandSource source) throws Com
232231

233232
BlockPos position = BlockPos.containing(source.getPosition());
234233

235-
TwoDTree tree = SeedMapScreen.strongholdDataCache.computeIfAbsent(new WorldIdentifier(seed, dimension, version, dev.xpple.seedmapper.world.WorldPresetManager.activePreset().cacheKey()), _ -> calculateStrongholds(seed, dimension, version));
234+
SeedIdentifier contextSeed = new SeedIdentifier(seed.seed(), version, generatorFlags);
235+
TwoDTree tree = SeedMapScreen.strongholdDataCache.computeIfAbsent(new WorldIdentifier(contextSeed, dimension), _ -> calculateStrongholds(seed.seed(), dimension, version, generatorFlags));
236236

237237
BlockPos pos = tree.nearestTo(position.atY(0));
238238

@@ -246,7 +246,7 @@ public static TwoDTree calculateStrongholds(long seed, int dimension, int versio
246246
MemorySegment strongholdIter = StrongholdIter.allocate(arena);
247247
Cubiomes.initFirstStronghold(arena, strongholdIter, version, seed);
248248
MemorySegment generator = Generator.allocate(arena);
249-
Cubiomes.setupGenerator(generator, version, WorldPresetManager.activePreset().generatorFlags());
249+
Cubiomes.setupGenerator(generator, version, generatorFlags);
250250
Cubiomes.applySeed(generator, dimension, seed);
251251

252252
final int count = version <= Cubiomes.MC_1_8() ? 3 : 128;
@@ -289,11 +289,15 @@ private static int locateLoot(CustomClientCommandSource source, int amount, Ench
289289
throw CommandExceptions.LOOT_NOT_SUPPORTED_EXCEPTION.create();
290290
}
291291
int dimension = source.getDimension();
292+
int generatorFlags = source.getGeneratorFlags();
292293

293294
try (Arena arena = Arena.ofConfined()) {
294295
MemorySegment generator = Generator.allocate(arena);
295-
Cubiomes.setupGenerator(generator, version, WorldPresetManager.activePreset().generatorFlags());
296-
Cubiomes.applySeed(generator, dimension, seed);
296+
Cubiomes.setupGenerator(generator, version, generatorFlags);
297+
Cubiomes.applySeed(generator, dimension, seed.seed());
298+
299+
MemorySegment surfaceNoise = SurfaceNoise.allocate(arena);
300+
Cubiomes.initSurfaceNoise(surfaceNoise, dimension, seed.seed());
297301

298302
BlockPos center = BlockPos.containing(source.getPosition());
299303

@@ -542,8 +546,8 @@ static ToIntBiFunction<Integer, Integer> getCarverBiomeFunction(Arena arena, lon
542546
if (version > Cubiomes.MC_1_17_1()) {
543547
return (_, _) -> -1;
544548
}
545-
MemorySegment generator = Generator.allocate(arena);
546-
Cubiomes.setupGenerator(generator, version, WorldPresetManager.activePreset().generatorFlags());
549+
MemorySegment generator = Generator.allocate(arena);
550+
Cubiomes.setupGenerator(generator, version, generatorFlags);
547551
Cubiomes.applySeed(generator, dimension, seed);
548552
return (chunkX, chunkZ) -> Cubiomes.getBiomeAt(generator, 4, chunkX << 2, 0, chunkZ << 2);
549553
}

src/main/java/dev/xpple/seedmapper/command/commands/MinimapCommand.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.mojang.brigadier.exceptions.CommandSyntaxException;
66
import dev.xpple.seedmapper.command.CustomClientCommandSource;
77
import dev.xpple.seedmapper.seedmap.SeedMapMinimapManager;
8+
import dev.xpple.seedmapper.util.SeedIdentifier;
89
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
910
import net.minecraft.core.BlockPos;
1011

@@ -20,20 +21,24 @@ public static void register(CommandDispatcher<FabricClientCommandSource> dispatc
2021
}
2122

2223
private static int toggle(CustomClientCommandSource source) throws CommandSyntaxException {
23-
long seed = source.getSeed().getSecond();
24+
SeedIdentifier seed = source.getSeed().getSecond();
25+
long seedValue = seed.seed();
2426
int dimension = source.getDimension();
2527
int version = source.getVersion();
28+
int generatorFlags = source.getGeneratorFlags();
2629
BlockPos playerPos = BlockPos.containing(source.getPosition());
27-
source.getClient().schedule(() -> SeedMapMinimapManager.toggle(seed, dimension, version, playerPos));
30+
source.getClient().schedule(() -> SeedMapMinimapManager.toggle(seedValue, dimension, version, generatorFlags, playerPos));
2831
return Command.SINGLE_SUCCESS;
2932
}
3033

3134
private static int enable(CustomClientCommandSource source) throws CommandSyntaxException {
32-
long seed = source.getSeed().getSecond();
35+
SeedIdentifier seed = source.getSeed().getSecond();
36+
long seedValue = seed.seed();
3337
int dimension = source.getDimension();
3438
int version = source.getVersion();
39+
int generatorFlags = source.getGeneratorFlags();
3540
BlockPos playerPos = BlockPos.containing(source.getPosition());
36-
source.getClient().schedule(() -> SeedMapMinimapManager.show(seed, dimension, version, playerPos));
41+
source.getClient().schedule(() -> SeedMapMinimapManager.show(seedValue, dimension, version, generatorFlags, playerPos));
3742
return Command.SINGLE_SUCCESS;
3843
}
3944

src/main/java/dev/xpple/seedmapper/config/Configs.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,15 @@ private static String getCurrentServerKey() {
7373
}
7474

7575
public static void applySeedForCurrentServer(long seed, boolean storeAsSavedSeed) {
76+
SeedIdentifier identifier = new SeedIdentifier(seed);
7677
String key = getCurrentServerKey();
7778
boolean changed = false;
78-
if (storeAsSavedSeed && key != null && !Objects.equals(SavedSeeds.get(key), seed)) {
79-
SavedSeeds.put(key, seed);
79+
if (storeAsSavedSeed && key != null && !Objects.equals(SavedSeeds.get(key), identifier)) {
80+
SavedSeeds.put(key, identifier);
8081
changed = true;
8182
}
82-
if (!Objects.equals(Seed, seed)) {
83-
Seed = seed;
83+
if (!Objects.equals(Seed, identifier)) {
84+
Seed = identifier;
8485
changed = true;
8586
}
8687
if (changed) {
@@ -93,9 +94,9 @@ public static void loadSavedSeedForCurrentServer() {
9394
if (key == null) {
9495
return;
9596
}
96-
Long savedSeed = SavedSeeds.get(key);
97+
SeedIdentifier savedSeed = SavedSeeds.get(key);
9798
if (savedSeed != null) {
98-
applySeedForCurrentServer(savedSeed, false);
99+
applySeedForCurrentServer(savedSeed.seed(), false);
99100
}
100101
}
101102

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

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public final class SeedMapMinimapManager {
1616
private @Nullable SeedMapMinimapScreen minimapScreen;
1717
private long activeSeed;
1818
private int activeVersion;
19+
private int activeGeneratorFlags;
1920
// no world preset context for minimap; but keep basic context so we can re-open on dimension change
2021
private boolean hasContext;
2122

@@ -30,32 +31,33 @@ public static boolean isVisible() {
3031
return INSTANCE.minimapScreen != null;
3132
}
3233

33-
public static void show(long seed, int dimension, int version, BlockPos pos) {
34-
INSTANCE.enable(seed, dimension, version, pos);
34+
public static void show(long seed, int dimension, int version, int generatorFlags, BlockPos pos) {
35+
INSTANCE.enable(seed, dimension, version, generatorFlags, pos);
3536
}
3637

3738
public static void hide() {
3839
INSTANCE.disable();
3940
}
4041

41-
public static void toggle(long seed, int dimension, int version, BlockPos pos) {
42+
public static void toggle(long seed, int dimension, int version, int generatorFlags, BlockPos pos) {
4243
if (INSTANCE.minimapScreen != null) {
4344
INSTANCE.disable();
4445
return;
4546
}
46-
INSTANCE.enable(seed, dimension, version, pos);
47+
INSTANCE.enable(seed, dimension, version, generatorFlags, pos);
4748
}
4849

4950
public static void disableMinimap() {
5051
INSTANCE.disable();
5152
}
5253

53-
private void enable(long seed, int dimension, int version, BlockPos pos) {
54+
private void enable(long seed, int dimension, int version, int generatorFlags, BlockPos pos) {
5455
this.disable();
5556
this.activeSeed = seed;
5657
this.activeVersion = version;
58+
this.activeGeneratorFlags = generatorFlags;
5759
this.hasContext = true;
58-
this.minimapScreen = new SeedMapMinimapScreen(seed, dimension, version, pos);
60+
this.minimapScreen = new SeedMapMinimapScreen(seed, dimension, version, generatorFlags, pos);
5961
}
6062

6163
private void disable() {
@@ -86,7 +88,7 @@ private void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) {
8688
this.disable();
8789
return;
8890
}
89-
this.enable(this.activeSeed, currentDimensionId, this.activeVersion, playerPos);
91+
this.enable(this.activeSeed, currentDimensionId, this.activeVersion, this.activeGeneratorFlags, playerPos);
9092
}
9193
} catch (com.mojang.brigadier.exceptions.CommandSyntaxException e) {
9294
this.disable();
@@ -108,7 +110,7 @@ public static void refreshIfOpen() {
108110
BlockPos playerPos = player.blockPosition();
109111
try {
110112
int currentDimensionId = dev.xpple.seedmapper.command.arguments.DimensionArgument.dimension().parse(new StringReader(minecraft.level.dimension().identifier().getPath()));
111-
INSTANCE.enable(INSTANCE.activeSeed, currentDimensionId, INSTANCE.activeVersion, playerPos);
113+
INSTANCE.enable(INSTANCE.activeSeed, currentDimensionId, INSTANCE.activeVersion, INSTANCE.activeGeneratorFlags, playerPos);
112114
} catch (com.mojang.brigadier.exceptions.CommandSyntaxException e) {
113115
// ignore
114116
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ public class SeedMapMinimapScreen extends SeedMapScreen {
2222
private int cachedHeight = -1;
2323
private final List<WaypointLabel> waypointLabels = new ArrayList<>();
2424

25-
public SeedMapMinimapScreen(long seed, int dimension, int version, BlockPos playerPos) {
26-
super(seed, dimension, version, playerPos, new Vec2(0.0F, 0.0F));
25+
public SeedMapMinimapScreen(long seed, int dimension, int version, int generatorFlags, BlockPos playerPos) {
26+
super(seed, dimension, version, generatorFlags, playerPos, new Vec2(0.0F, 0.0F));
2727
}
2828

2929
public void initForOverlay(Minecraft minecraft, int width, int height) {

0 commit comments

Comments
 (0)