mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
cleanup FabricChunkGeneratorWrapper
This commit is contained in:
parent
9ba544bf71
commit
b948202ef2
@ -58,7 +58,6 @@ import net.minecraft.util.registry.BuiltinRegistries;
|
|||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.util.registry.RegistryKey;
|
import net.minecraft.util.registry.RegistryKey;
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.biome.Biome;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.decorator.Decorator;
|
import net.minecraft.world.gen.decorator.Decorator;
|
||||||
import net.minecraft.world.gen.decorator.NopeDecoratorConfig;
|
import net.minecraft.world.gen.decorator.NopeDecoratorConfig;
|
||||||
|
@ -50,24 +50,30 @@ import java.util.concurrent.ExecutionException;
|
|||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
public class FabricChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
|
public class FabricChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
|
||||||
|
public static final Codec<ConfigPack> PACK_CODEC = RecordCodecBuilder.create(
|
||||||
|
config -> config.group(
|
||||||
|
Codec.STRING.fieldOf("pack")
|
||||||
|
.forGetter(pack -> pack.getTemplate().getID())
|
||||||
|
).apply(config, config.stable(TerraFabricPlugin.getInstance().getConfigRegistry()::get)));
|
||||||
|
|
||||||
|
public static final Codec<FabricChunkGeneratorWrapper> CODEC = RecordCodecBuilder.create(
|
||||||
|
instance -> instance.group(
|
||||||
|
TerraBiomeSource.CODEC.fieldOf("biome_source")
|
||||||
|
.forGetter(generator -> generator.biomeSource),
|
||||||
|
Codec.LONG.fieldOf("seed").stable()
|
||||||
|
.forGetter(generator -> generator.seed),
|
||||||
|
PACK_CODEC.fieldOf("pack").stable()
|
||||||
|
.forGetter(generator -> generator.pack)
|
||||||
|
).apply(instance, instance.stable(FabricChunkGeneratorWrapper::new))
|
||||||
|
);
|
||||||
|
|
||||||
private final long seed;
|
private final long seed;
|
||||||
private final DefaultChunkGenerator3D delegate;
|
private final DefaultChunkGenerator3D delegate;
|
||||||
private final TerraBiomeSource biomeSource;
|
private final TerraBiomeSource biomeSource;
|
||||||
public static final Codec<ConfigPack> PACK_CODEC = (RecordCodecBuilder.create(config -> config.group(
|
|
||||||
Codec.STRING.fieldOf("pack").forGetter(pack -> pack.getTemplate().getID())
|
|
||||||
).apply(config, config.stable(TerraFabricPlugin.getInstance().getConfigRegistry()::get))));
|
|
||||||
public static final Codec<FabricChunkGeneratorWrapper> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
|
||||||
TerraBiomeSource.CODEC.fieldOf("biome_source").forGetter(generator -> generator.biomeSource),
|
|
||||||
Codec.LONG.fieldOf("seed").stable().forGetter(generator -> generator.seed),
|
|
||||||
PACK_CODEC.fieldOf("pack").stable().forGetter(generator -> generator.pack))
|
|
||||||
.apply(instance, instance.stable(FabricChunkGeneratorWrapper::new)));
|
|
||||||
private final ConfigPack pack;
|
private final ConfigPack pack;
|
||||||
private DimensionType dimensionType;
|
private DimensionType dimensionType;
|
||||||
|
|
||||||
public ConfigPack getPack() {
|
|
||||||
return pack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) {
|
public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) {
|
||||||
super(biomeSource, new StructuresConfig(false));
|
super(biomeSource, new StructuresConfig(false));
|
||||||
this.pack = configPack;
|
this.pack = configPack;
|
||||||
@ -90,9 +96,13 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack);
|
return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ConfigPack getPack() {
|
||||||
|
return pack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildSurface(ChunkRegion region, Chunk chunk) {
|
public void buildSurface(ChunkRegion region, Chunk chunk) {
|
||||||
|
// No-op
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDimensionType(DimensionType dimensionType) {
|
public void setDimensionType(DimensionType dimensionType) {
|
||||||
@ -124,13 +134,16 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void carve(long seed, BiomeAccess access, Chunk chunk, GenerationStep.Carver carver) {
|
public void carve(long seed, BiomeAccess access, Chunk chunk, GenerationStep.Carver carver) {
|
||||||
if(pack.getTemplate().vanillaCaves()) super.carve(seed, access, chunk, carver);
|
if(pack.getTemplate().vanillaCaves()) {
|
||||||
|
super.carve(seed, access, chunk, carver);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed) {
|
public void setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed) {
|
||||||
if(pack.getTemplate().vanillaStructures())
|
if(pack.getTemplate().vanillaStructures()) {
|
||||||
super.setStructureStarts(dynamicRegistryManager, structureAccessor, chunk, structureManager, worldSeed);
|
super.setStructureStarts(dynamicRegistryManager, structureAccessor, chunk, structureManager, worldSeed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -149,7 +162,9 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStrongholdStartingChunk(ChunkPos chunkPos) {
|
public boolean isStrongholdStartingChunk(ChunkPos chunkPos) {
|
||||||
if(pack.getTemplate().vanillaStructures()) return super.isStrongholdStartingChunk(chunkPos);
|
if(pack.getTemplate().vanillaStructures()) {
|
||||||
|
return super.isStrongholdStartingChunk(chunkPos);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user