mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
remove ChunkLocalCachingBiomeProvider
This commit is contained in:
+5
-7
@@ -95,9 +95,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
||||
if(chunk instanceof net.minecraft.world.chunk.ProtoChunk) {
|
||||
ChunkPos pos = chunk.getPos();
|
||||
((BiomeProviderHolder) chunk)
|
||||
.terra$setHeldBiomeProvider(pack.getBiomeProvider()
|
||||
.caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(), pos.x,
|
||||
pos.z));
|
||||
.terra$setHeldBiomeProvider(pack.getBiomeProvider());
|
||||
}
|
||||
return super.populateBiomes(biomeRegistry, executor, noiseConfig, blender, structureAccessor, chunk);
|
||||
}
|
||||
@@ -142,10 +140,10 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
||||
if(chunk instanceof BiomeProviderHolder providerHolder) {
|
||||
biomeProvider = providerHolder.terra$getHeldBiomeProvider();
|
||||
if(biomeProvider == null) {
|
||||
biomeProvider = pack.getBiomeProvider().caching(world, chunk.getPos().x, chunk.getPos().z);
|
||||
biomeProvider = pack.getBiomeProvider();
|
||||
}
|
||||
} else {
|
||||
biomeProvider = pack.getBiomeProvider().caching(world, chunk.getPos().x, chunk.getPos().z);
|
||||
biomeProvider = pack.getBiomeProvider();
|
||||
}
|
||||
delegate.generateChunkData((ProtoChunk) chunk, world, biomeProvider, chunk.getPos().x, chunk.getPos().z);
|
||||
|
||||
@@ -208,7 +206,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
||||
@Override
|
||||
public int getHeight(int x, int z, Type heightmap, HeightLimitView height, NoiseConfig noiseConfig) {
|
||||
WorldProperties properties = FabricAdapter.adapt(height, noiseConfig.getLegacyWorldSeed());
|
||||
BiomeProvider biomeProvider = pack.getBiomeProvider().caching(properties);
|
||||
BiomeProvider biomeProvider = pack.getBiomeProvider();
|
||||
int min = height.getBottomY();
|
||||
for(int y = height.getTopY() - 1; y >= min; y--) {
|
||||
if(heightmap
|
||||
@@ -222,7 +220,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
||||
public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView height, NoiseConfig noiseConfig) {
|
||||
BlockState[] array = new BlockState[height.getHeight()];
|
||||
WorldProperties properties = FabricAdapter.adapt(height, noiseConfig.getLegacyWorldSeed());
|
||||
BiomeProvider biomeProvider = pack.getBiomeProvider().caching(properties);
|
||||
BiomeProvider biomeProvider = pack.getBiomeProvider();
|
||||
for(int y = height.getTopY() - 1; y >= height.getBottomY(); y--) {
|
||||
array[y - height.getBottomY()] = (BlockState) delegate.getBlock(properties, x, y, z, biomeProvider);
|
||||
}
|
||||
|
||||
+1
-18
@@ -75,26 +75,13 @@ public abstract class ChunkRegionMixin {
|
||||
@Final
|
||||
private MultiTickScheduler<Fluid> fluidTickScheduler;
|
||||
|
||||
@Shadow
|
||||
public abstract net.minecraft.server.world.ServerWorld toServerWorld();
|
||||
|
||||
@Shadow
|
||||
public abstract Chunk getChunk(int chunkX, int chunkZ);
|
||||
|
||||
private Lazy<BiomeProvider> caching;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Inject(at = @At("RETURN"),
|
||||
method = "<init>(Lnet/minecraft/server/world/ServerWorld;Ljava/util/List;Lnet/minecraft/world/chunk/ChunkStatus;I)V")
|
||||
public void injectConstructor(net.minecraft.server.world.ServerWorld world, List<net.minecraft.world.chunk.Chunk> list,
|
||||
ChunkStatus chunkStatus, int i,
|
||||
CallbackInfo ci) {
|
||||
this.terra$config = ((ServerWorld) world).getPack();
|
||||
this.caching = Lazy.lazy(() -> ((TerraBiomeSource) ((ChunkRegion) (Object) this)
|
||||
.toServerWorld()
|
||||
.getChunkManager()
|
||||
.getChunkGenerator()
|
||||
.getBiomeSource()).getProvider().caching((ProtoWorld) this));
|
||||
}
|
||||
|
||||
|
||||
@@ -137,11 +124,7 @@ public abstract class ChunkRegionMixin {
|
||||
}
|
||||
|
||||
public BiomeProvider terraWorld$getBiomeProvider() {
|
||||
BiomeProvider provider = ((BiomeProviderHolder) this).terra$getHeldBiomeProvider();
|
||||
if(provider != null) {
|
||||
return provider;
|
||||
}
|
||||
return caching.value();
|
||||
return terra$config.getBiomeProvider();
|
||||
}
|
||||
|
||||
public Entity terraWorld$spawnEntity(double x, double y, double z, EntityType entityType) {
|
||||
|
||||
Reference in New Issue
Block a user