mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
fix GeneratorOptionsMixin
This commit is contained in:
@@ -17,10 +17,16 @@
|
||||
|
||||
package com.dfsek.terra.fabric.mixin.lifecycle.server;
|
||||
|
||||
import com.dfsek.terra.api.config.ConfigPack;
|
||||
import com.dfsek.terra.fabric.FabricEntryPoint;
|
||||
import com.dfsek.terra.fabric.PlatformImpl;
|
||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
||||
|
||||
import net.minecraft.server.dedicated.ServerPropertiesHandler;
|
||||
import net.minecraft.structure.StructureSet;
|
||||
import net.minecraft.util.registry.DynamicRegistryManager;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.registry.SimpleRegistry;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.dimension.DimensionOptions;
|
||||
import net.minecraft.world.dimension.DimensionType;
|
||||
@@ -31,34 +37,30 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.Properties;
|
||||
import java.util.Random;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.dfsek.terra.api.config.ConfigPack;
|
||||
import com.dfsek.terra.fabric.FabricEntryPoint;
|
||||
import com.dfsek.terra.fabric.PlatformImpl;
|
||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
||||
|
||||
|
||||
@Mixin(GeneratorOptions.class)
|
||||
public abstract class GeneratorOptionsMixin {
|
||||
@Inject(method = "fromProperties(Lnet/minecraft/util/registry/DynamicRegistryManager;Ljava/util/Properties;)" +
|
||||
@Inject(method = "fromProperties(Lnet/minecraft/util/registry/DynamicRegistryManager;" +
|
||||
"Lnet/minecraft/server/dedicated/ServerPropertiesHandler$WorldGenProperties;)" +
|
||||
"Lnet/minecraft/world/gen/GeneratorOptions;",
|
||||
at = @At("HEAD"),
|
||||
cancellable = true)
|
||||
private static void fromProperties(DynamicRegistryManager manager, Properties properties,
|
||||
private static void fromProperties(DynamicRegistryManager manager,
|
||||
ServerPropertiesHandler.WorldGenProperties properties,
|
||||
CallbackInfoReturnable<GeneratorOptions> cir) {
|
||||
if(properties.get("level-type") == null) {
|
||||
if(properties.levelType() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlatformImpl main = FabricEntryPoint.getPlatform();
|
||||
|
||||
String prop = properties.get("level-type").toString().trim();
|
||||
if(prop.startsWith("Terra")) {
|
||||
String seedProperty = (String) properties.get("level-seed");
|
||||
String levelType = properties.levelType();
|
||||
|
||||
if(levelType.startsWith("Terra")) {
|
||||
String seedProperty = properties.levelSeed();
|
||||
long seed = new Random().nextLong();
|
||||
if(seedProperty != null) {
|
||||
try {
|
||||
@@ -71,8 +73,7 @@ public abstract class GeneratorOptionsMixin {
|
||||
}
|
||||
}
|
||||
|
||||
String generate_structures = (String) properties.get("generate-structures");
|
||||
boolean generateStructures = generate_structures == null || Boolean.parseBoolean(generate_structures);
|
||||
boolean generateStructures = properties.generateStructures();
|
||||
Registry<DimensionType> dimensionTypes = manager.get(Registry.DIMENSION_TYPE_KEY);
|
||||
Registry<Biome> biomeRegistry = manager.get(Registry.BIOME_KEY);
|
||||
Registry<DimensionOptions> dimensionOptions = DimensionType.createDefaultDimensionOptions(manager, seed, false);
|
||||
@@ -82,11 +83,10 @@ public abstract class GeneratorOptionsMixin {
|
||||
settingsSupplier = () -> chunkGeneratorSettingsRegistry.getOrThrow(ChunkGeneratorSettings.OVERWORLD);
|
||||
Registry<StructureSet> noiseRegistry = manager.get(Registry.STRUCTURE_SET_KEY);
|
||||
|
||||
prop = prop.substring(prop.indexOf(":") + 1);
|
||||
String pack = levelType.substring(levelType.indexOf(":") + 1);
|
||||
|
||||
String finalProp = prop;
|
||||
ConfigPack config = main.getConfigRegistry().getByID(prop).orElseThrow(() -> new IllegalArgumentException(
|
||||
"No such pack " + finalProp));
|
||||
ConfigPack config = main.getConfigRegistry().getByID(pack).orElseThrow(() -> new IllegalArgumentException(
|
||||
"No such pack " + pack));
|
||||
|
||||
cir.setReturnValue(
|
||||
new GeneratorOptions(seed,
|
||||
|
||||
Reference in New Issue
Block a user