mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-18 10:32:30 +00:00
more fixes
This commit is contained in:
parent
f6c2795eaf
commit
9d200565d7
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.mod.generation;
|
package com.dfsek.terra.mod.generation;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
||||||
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
||||||
|
|
||||||
@ -76,7 +78,6 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun
|
|||||||
private ChunkGenerator delegate;
|
private ChunkGenerator delegate;
|
||||||
private ConfigPack pack;
|
private ConfigPack pack;
|
||||||
|
|
||||||
private VanillaWorldProperties vanillaWorldProperties;
|
|
||||||
|
|
||||||
public MinecraftChunkGeneratorWrapper(TerraBiomeSource biomeSource, ConfigPack configPack,
|
public MinecraftChunkGeneratorWrapper(TerraBiomeSource biomeSource, ConfigPack configPack,
|
||||||
RegistryEntry<ChunkGeneratorSettings> settingsSupplier) {
|
RegistryEntry<ChunkGeneratorSettings> settingsSupplier) {
|
||||||
@ -87,11 +88,6 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun
|
|||||||
this.delegate = pack.getGeneratorProvider().newInstance(pack);
|
this.delegate = pack.getGeneratorProvider().newInstance(pack);
|
||||||
logger.info("Loading world with config pack {}", pack.getID());
|
logger.info("Loading world with config pack {}", pack.getID());
|
||||||
this.biomeSource = biomeSource;
|
this.biomeSource = biomeSource;
|
||||||
if (pack.getContext().has(VanillaBiomeProperties.class)) {
|
|
||||||
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
|
||||||
} else {
|
|
||||||
vanillaWorldProperties = new VanillaWorldProperties();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -117,7 +113,7 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getWorldHeight() {
|
public int getWorldHeight() {
|
||||||
return vanillaWorldProperties.getHeight().getMax();
|
return settings.value().generationShapeConfig().height();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -177,15 +173,14 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSeaLevel() {
|
public int getSeaLevel() {
|
||||||
return vanillaWorldProperties.getSealevel();
|
return settings.value().seaLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMinimumY() {
|
public int getMinimumY() {
|
||||||
return vanillaWorldProperties.getHeight().getMin();
|
return settings.value().generationShapeConfig().minimumY();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getHeight(int x, int z, Type heightmap, HeightLimitView height, NoiseConfig noiseConfig) {
|
public int getHeight(int x, int z, Type heightmap, HeightLimitView height, NoiseConfig noiseConfig) {
|
||||||
WorldProperties properties = MinecraftAdapter.adapt(height, SeedHack.getSeed(noiseConfig.getMultiNoiseSampler()));
|
WorldProperties properties = MinecraftAdapter.adapt(height, SeedHack.getSeed(noiseConfig.getMultiNoiseSampler()));
|
||||||
@ -224,12 +219,6 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun
|
|||||||
this.delegate = pack.getGeneratorProvider().newInstance(pack);
|
this.delegate = pack.getGeneratorProvider().newInstance(pack);
|
||||||
biomeSource.setPack(pack);
|
biomeSource.setPack(pack);
|
||||||
|
|
||||||
if (pack.getContext().has(VanillaBiomeProperties.class)) {
|
|
||||||
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
|
||||||
} else {
|
|
||||||
vanillaWorldProperties = new VanillaWorldProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug("Loading world with config pack {}", pack.getID());
|
logger.debug("Loading world with config pack {}", pack.getID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ import net.minecraft.world.biome.Biome.Builder;
|
|||||||
import net.minecraft.world.biome.BiomeEffects;
|
import net.minecraft.world.biome.BiomeEffects;
|
||||||
|
|
||||||
import net.minecraft.world.biome.GenerationSettings;
|
import net.minecraft.world.biome.GenerationSettings;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -109,10 +110,14 @@ public final class MinecraftUtil {
|
|||||||
TerraIntProvider.TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE.put(ConstantRange.class, CONSTANT);
|
TerraIntProvider.TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE.put(ConstantRange.class, CONSTANT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RegistryKey<Biome> registerKey(Identifier identifier) {
|
public static RegistryKey<Biome> registerBiomeKey(Identifier identifier) {
|
||||||
return RegistryKey.of(RegistryKeys.BIOME, identifier);
|
return RegistryKey.of(RegistryKeys.BIOME, identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RegistryKey<DimensionType> registerDimensionTypeKey(Identifier identifier) {
|
||||||
|
return RegistryKey.of(RegistryKeys.DIMENSION_TYPE, identifier);
|
||||||
|
}
|
||||||
|
|
||||||
public static Biome createBiome(com.dfsek.terra.api.world.biome.Biome biome, Biome vanilla,
|
public static Biome createBiome(com.dfsek.terra.api.world.biome.Biome biome, Biome vanilla,
|
||||||
VanillaBiomeProperties vanillaBiomeProperties) {
|
VanillaBiomeProperties vanillaBiomeProperties) {
|
||||||
GenerationSettings.Builder generationSettings = new GenerationSettings.Builder();
|
GenerationSettings.Builder generationSettings = new GenerationSettings.Builder();
|
||||||
|
@ -26,39 +26,12 @@ import com.dfsek.terra.api.util.generic.pair.Pair;
|
|||||||
import com.dfsek.terra.mod.ModPlatform;
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
||||||
import net.minecraft.registry.Registry;
|
|
||||||
import net.minecraft.registry.entry.RegistryEntry;
|
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSource;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSource;
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterLists;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterLists;
|
||||||
import net.minecraft.world.biome.source.TheEndBiomeSource;
|
import net.minecraft.world.biome.source.TheEndBiomeSource;
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
|
||||||
import net.minecraft.world.dimension.DimensionTypes;
|
|
||||||
import net.minecraft.world.gen.WorldPreset;
|
|
||||||
import net.minecraft.world.gen.WorldPresets;
|
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
|
||||||
import net.minecraft.world.gen.chunk.FlatChunkGenerator;
|
|
||||||
import net.minecraft.world.gen.chunk.FlatChunkGeneratorConfig;
|
|
||||||
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
|
||||||
import com.dfsek.terra.api.util.generic.pair.Pair;
|
|
||||||
import com.dfsek.terra.mod.ModPlatform;
|
|
||||||
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
|
||||||
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class PresetUtil {
|
public class PresetUtil {
|
||||||
@ -72,7 +45,13 @@ public class PresetUtil {
|
|||||||
platform.multiNoiseBiomeSourceParameterListRegistry();
|
platform.multiNoiseBiomeSourceParameterListRegistry();
|
||||||
|
|
||||||
|
|
||||||
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
DimensionType dimensionType = DimensionUtil.createDimension(pack, platform);
|
||||||
|
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("overworld"));
|
||||||
|
|
||||||
|
Registry.registerReference(dimensionTypeRegistry, dimensionTypeRegistryKey, dimensionType);
|
||||||
|
|
||||||
|
RegistryEntry<DimensionType> dimensionTypeRegistryEntry = dimensionTypeRegistry.getEntry(dimensionType);
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> overworld = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.OVERWORLD)
|
RegistryEntry<ChunkGeneratorSettings> overworld = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.OVERWORLD)
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
|
|
||||||
@ -85,7 +64,7 @@ public class PresetUtil {
|
|||||||
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
||||||
ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, overworld);
|
ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, overworld);
|
||||||
|
|
||||||
DimensionOptions dimensionOptions = new DimensionOptions(overworldDimensionType, generator);
|
DimensionOptions dimensionOptions = new DimensionOptions(dimensionTypeRegistryEntry, generator);
|
||||||
|
|
||||||
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
||||||
|
|
||||||
@ -114,6 +93,11 @@ public class PresetUtil {
|
|||||||
metaPack.packs().forEach((key, pack) -> {
|
metaPack.packs().forEach((key, pack) -> {
|
||||||
Identifier demensionIdentifier = new Identifier(key);
|
Identifier demensionIdentifier = new Identifier(key);
|
||||||
DimensionType dimensionType = DimensionUtil.createDimension(pack, platform);
|
DimensionType dimensionType = DimensionUtil.createDimension(pack, platform);
|
||||||
|
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("terra", pack.getID().toLowerCase(
|
||||||
|
Locale.ROOT)));
|
||||||
|
|
||||||
|
Registry.registerReference(dimensionTypeRegistry, dimensionTypeRegistryKey, dimensionType);
|
||||||
|
|
||||||
RegistryEntry<DimensionType> dimensionTypeRegistryEntry = dimensionTypeRegistry.getEntry(dimensionType);
|
RegistryEntry<DimensionType> dimensionTypeRegistryEntry = dimensionTypeRegistry.getEntry(dimensionType);
|
||||||
|
|
||||||
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
||||||
|
@ -65,7 +65,7 @@ public final class BiomeUtil {
|
|||||||
.orElseThrow());
|
.orElseThrow());
|
||||||
} else {
|
} else {
|
||||||
((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(Registry.registerReference(registry,
|
((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(Registry.registerReference(registry,
|
||||||
MinecraftUtil.registerKey(identifier)
|
MinecraftUtil.registerBiomeKey(identifier)
|
||||||
.getValue(),
|
.getValue(),
|
||||||
minecraftBiome));
|
minecraftBiome));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user