[OreSim] use version prop. instead of a setting
This commit is contained in:
@@ -26,6 +26,7 @@ import net.minecraft.util.registry.Registry;
|
|||||||
import net.minecraft.world.Heightmap;
|
import net.minecraft.world.Heightmap;
|
||||||
import net.minecraft.world.chunk.ChunkStatus;
|
import net.minecraft.world.chunk.ChunkStatus;
|
||||||
import net.minecraft.world.gen.random.ChunkRandom;
|
import net.minecraft.world.gen.random.ChunkRandom;
|
||||||
|
import com.seedfinding.mccore.version.MCVersion;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
import java.util.BitSet;
|
||||||
@@ -37,19 +38,10 @@ import java.util.Random;
|
|||||||
public class OreSim extends Module {
|
public class OreSim extends Module {
|
||||||
|
|
||||||
private final HashMap<Long, HashMap<Ore, HashSet<Vec3d>>> chunkRenderers = new HashMap<>();
|
private final HashMap<Long, HashMap<Ore, HashSet<Vec3d>>> chunkRenderers = new HashMap<>();
|
||||||
private Long worldSeed = null;
|
private Seed worldSeed = null;
|
||||||
private List<Ore> oreConfig;
|
private List<Ore> oreConfig;
|
||||||
private ChunkPos prevOffset = new ChunkPos(0, 0);
|
private ChunkPos prevOffset = new ChunkPos(0, 0);
|
||||||
|
|
||||||
public enum Version {
|
|
||||||
V1_14,
|
|
||||||
V1_15,
|
|
||||||
V1_16,
|
|
||||||
V1_17_0,
|
|
||||||
V1_17_1,
|
|
||||||
V1_18
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum AirCheck {
|
public enum AirCheck {
|
||||||
ON_LOAD,
|
ON_LOAD,
|
||||||
RECHECK,
|
RECHECK,
|
||||||
@@ -75,23 +67,15 @@ public class OreSim extends Module {
|
|||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
private final Setting<Version> version = sgGeneral.add(new EnumSetting.Builder<Version>()
|
|
||||||
.name("version")
|
|
||||||
.description("checks if there is air at a calculated ore pos")
|
|
||||||
.defaultValue(Version.V1_18)
|
|
||||||
.onChanged(v -> versionChanged())
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
|
|
||||||
public OreSim() {
|
public OreSim() {
|
||||||
super(MeteorRejectsAddon.CATEGORY, "ore-sim", "Xray on crack.");
|
super(MeteorRejectsAddon.CATEGORY, "ore-sim", "Xray on crack.");
|
||||||
oreConfig = Ore.getConfig(version.get());
|
|
||||||
Ore.oreSettings.forEach(sgOres::add);
|
Ore.oreSettings.forEach(sgOres::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onRender(Render3DEvent event) {
|
private void onRender(Render3DEvent event) {
|
||||||
if (mc.player == null) {
|
if (mc.player == null || oreConfig == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Seeds.get().getSeed() != null) {
|
if (Seeds.get().getSeed() != null) {
|
||||||
@@ -131,7 +115,7 @@ public class OreSim extends Module {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
private void onTick(TickEvent.Pre event) {
|
private void onTick(TickEvent.Pre event) {
|
||||||
if (airCheck.get() == AirCheck.RECHECK) {
|
if (airCheck.get() == AirCheck.RECHECK) {
|
||||||
if (mc.player == null || mc.world == null) {
|
if (mc.player == null || mc.world == null || oreConfig == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long chunkX = mc.player.getChunkPos().x;
|
long chunkX = mc.player.getChunkPos().x;
|
||||||
@@ -184,11 +168,6 @@ public class OreSim extends Module {
|
|||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void versionChanged() {
|
|
||||||
this.oreConfig = Ore.getConfig(version.get());
|
|
||||||
reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void loadVisibleChunks() {
|
private void loadVisibleChunks() {
|
||||||
int renderdistance = mc.options.viewDistance;
|
int renderdistance = mc.options.viewDistance;
|
||||||
|
|
||||||
@@ -208,7 +187,8 @@ public class OreSim extends Module {
|
|||||||
private void reload() {
|
private void reload() {
|
||||||
Seed seed = Seeds.get().getSeed();
|
Seed seed = Seeds.get().getSeed();
|
||||||
if (seed == null) return;
|
if (seed == null) return;
|
||||||
worldSeed = seed.seed;
|
worldSeed = seed;
|
||||||
|
oreConfig = Ore.getConfig(Seeds.get().getSeed().version);
|
||||||
chunkRenderers.clear();
|
chunkRenderers.clear();
|
||||||
if (mc.world != null && worldSeed != null) {
|
if (mc.world != null && worldSeed != null) {
|
||||||
loadVisibleChunks();
|
loadVisibleChunks();
|
||||||
@@ -239,13 +219,13 @@ public class OreSim extends Module {
|
|||||||
|
|
||||||
ChunkRandom random = new ChunkRandom(ChunkRandom.RandomProvider.LEGACY.create(0));
|
ChunkRandom random = new ChunkRandom(ChunkRandom.RandomProvider.LEGACY.create(0));
|
||||||
|
|
||||||
if (version.get().ordinal() >= 5) { //1.18 and above
|
if (worldSeed.version.isNewerOrEqualTo(MCVersion.v1_18)) { //1.18 and above
|
||||||
random = new ChunkRandom(ChunkRandom.RandomProvider.XOROSHIRO.create(0));
|
random = new ChunkRandom(ChunkRandom.RandomProvider.XOROSHIRO.create(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<Ore, HashSet<Vec3d>> h = new HashMap<>();
|
HashMap<Ore, HashSet<Vec3d>> h = new HashMap<>();
|
||||||
|
|
||||||
long populationSeed = random.setPopulationSeed(worldSeed, chunkX, chunkZ);
|
long populationSeed = random.setPopulationSeed(worldSeed.seed, chunkX, chunkZ);
|
||||||
|
|
||||||
Identifier id = world.getRegistryManager().get(Registry.BIOME_KEY).getId(world.getBiomeAccess().getBiomeForNoiseGen(new BlockPos(chunkX, 0, chunkZ)));
|
Identifier id = world.getRegistryManager().get(Registry.BIOME_KEY).getId(world.getBiomeAccess().getBiomeForNoiseGen(new BlockPos(chunkX, 0, chunkZ)));
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
@@ -287,7 +267,7 @@ public class OreSim extends Module {
|
|||||||
int x = random.nextInt(16) + chunkX;
|
int x = random.nextInt(16) + chunkX;
|
||||||
int z;
|
int z;
|
||||||
int y;
|
int y;
|
||||||
if (version.get() == Version.V1_14) {
|
if (worldSeed.version.isBetween(MCVersion.v1_14, MCVersion.v1_14_4)) {
|
||||||
y = ore.depthAverage ? random.nextInt(ore.maxY) + random.nextInt(ore.maxY) - ore.maxY : random.nextInt(ore.maxY - ore.minY);
|
y = ore.depthAverage ? random.nextInt(ore.maxY) + random.nextInt(ore.maxY) - ore.maxY : random.nextInt(ore.maxY - ore.minY);
|
||||||
z = random.nextInt(16) + chunkZ;
|
z = random.nextInt(16) + chunkZ;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package anticope.rejects.utils;
|
package anticope.rejects.utils;
|
||||||
|
|
||||||
import anticope.rejects.modules.OreSim;
|
|
||||||
import meteordevelopment.meteorclient.settings.BoolSetting;
|
import meteordevelopment.meteorclient.settings.BoolSetting;
|
||||||
import meteordevelopment.meteorclient.settings.Setting;
|
import meteordevelopment.meteorclient.settings.Setting;
|
||||||
import meteordevelopment.meteorclient.utils.render.color.Color;
|
import meteordevelopment.meteorclient.utils.render.color.Color;
|
||||||
|
import com.seedfinding.mccore.version.MCVersion;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.intprovider.ConstantIntProvider;
|
import net.minecraft.util.math.intprovider.ConstantIntProvider;
|
||||||
import net.minecraft.util.math.intprovider.IntProvider;
|
import net.minecraft.util.math.intprovider.IntProvider;
|
||||||
@@ -203,13 +203,14 @@ public class Ore {
|
|||||||
return ores;
|
return ores;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Ore> getConfig(OreSim.Version version) {
|
public static List<Ore> getConfig(MCVersion version) {
|
||||||
return switch (version) {
|
return switch (version) {
|
||||||
case V1_18 -> V1_18();
|
case v1_18_1, v1_18 -> V1_18();
|
||||||
case V1_17_1 -> V1_17_1();
|
case v1_17_1 -> V1_17_1();
|
||||||
case V1_17_0 -> V1_17();
|
case v1_17 -> V1_17();
|
||||||
case V1_16 -> V1_16();
|
case v1_16_5, v1_16_4, v1_16_3, v1_16_2, v1_16_1, v1_16 -> V1_16();
|
||||||
case V1_15, V1_14 -> V1_15();
|
case v1_15_2, v1_15_1, v1_15, v1_14_4, v1_14_3, v1_14_2, v1_14_1, v1_14 -> V1_15();
|
||||||
|
default -> null;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -280,36 +280,36 @@ public class WorldGenUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Dimension getDimension(Feature feature) {
|
private static Dimension getDimension(Feature feature) {
|
||||||
switch (feature) {
|
return switch (feature) {
|
||||||
case buried_treasure -> { return Dimension.OVERWORLD; }
|
case buried_treasure -> Dimension.OVERWORLD;
|
||||||
case mansion -> { return Dimension.OVERWORLD; }
|
case mansion -> Dimension.OVERWORLD;
|
||||||
case stronghold -> { return Dimension.OVERWORLD; }
|
case stronghold -> Dimension.OVERWORLD;
|
||||||
case nether_fortress -> { return Dimension.NETHER; }
|
case nether_fortress -> Dimension.NETHER;
|
||||||
case ocean_monument -> { return Dimension.OVERWORLD; }
|
case ocean_monument -> Dimension.OVERWORLD;
|
||||||
case bastion_remnant -> { return Dimension.NETHER; }
|
case bastion_remnant -> Dimension.NETHER;
|
||||||
case slime_chunk -> { return Dimension.OVERWORLD; }
|
case slime_chunk -> Dimension.OVERWORLD;
|
||||||
case village -> { return Dimension.OVERWORLD; }
|
case village -> Dimension.OVERWORLD;
|
||||||
case mineshaft -> { return Dimension.OVERWORLD; }
|
case mineshaft -> Dimension.OVERWORLD;
|
||||||
case end_city -> { return Dimension.END; }
|
case end_city -> Dimension.END;
|
||||||
case desert_pyramid -> { return Dimension.OVERWORLD; }
|
case desert_pyramid -> Dimension.OVERWORLD;
|
||||||
default -> { return Dimension.OVERWORLD; }
|
default -> Dimension.OVERWORLD;
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Structure<?, ?> getStructure(Feature feature, MCVersion version) {
|
private static Structure<?, ?> getStructure(Feature feature, MCVersion version) {
|
||||||
switch (feature) {
|
return switch (feature) {
|
||||||
case buried_treasure -> { return new BuriedTreasure(version); }
|
case buried_treasure -> new BuriedTreasure(version);
|
||||||
case mansion -> { return new Mansion(version); }
|
case mansion -> new Mansion(version);
|
||||||
case stronghold -> { return new Stronghold(version); }
|
case stronghold -> new Stronghold(version);
|
||||||
case nether_fortress -> { return new Fortress(version); }
|
case nether_fortress -> new Fortress(version);
|
||||||
case ocean_monument -> { return new Monument(version); }
|
case ocean_monument -> new Monument(version);
|
||||||
case bastion_remnant -> { return new BastionRemnant(version); }
|
case bastion_remnant -> new BastionRemnant(version);
|
||||||
case end_city -> { return new EndCity(version); }
|
case end_city -> new EndCity(version);
|
||||||
case village -> { return new Village(version); }
|
case village -> new Village(version);
|
||||||
case mineshaft -> { return new Mineshaft(version); }
|
case mineshaft -> new Mineshaft(version);
|
||||||
case desert_pyramid -> { return new DesertPyramid(version); }
|
case desert_pyramid -> new DesertPyramid(version);
|
||||||
default -> { return null;}
|
default -> null;
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BlockPos toBlockPos(BPos pos) {
|
private static BlockPos toBlockPos(BPos pos) {
|
||||||
|
|||||||
Reference in New Issue
Block a user