mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
fix BiomeProviderHolder NPE
This commit is contained in:
+2
-2
@@ -4,7 +4,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
|||||||
|
|
||||||
|
|
||||||
public interface BiomeProviderHolder {
|
public interface BiomeProviderHolder {
|
||||||
void setBiomeProvider(BiomeProvider biomeProvider);
|
void terra$setHeldBiomeProvider(BiomeProvider biomeProvider);
|
||||||
|
|
||||||
BiomeProvider getBiomeProvider();
|
BiomeProvider terra$getHeldBiomeProvider();
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -94,7 +94,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
|||||||
if(chunk instanceof net.minecraft.world.chunk.ProtoChunk) {
|
if(chunk instanceof net.minecraft.world.chunk.ProtoChunk) {
|
||||||
ChunkPos pos = chunk.getPos();
|
ChunkPos pos = chunk.getPos();
|
||||||
((BiomeProviderHolder) chunk)
|
((BiomeProviderHolder) chunk)
|
||||||
.setBiomeProvider(pack.getBiomeProvider()
|
.terra$setHeldBiomeProvider(pack.getBiomeProvider()
|
||||||
.caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(), pos.x, pos.z));
|
.caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(), pos.x, pos.z));
|
||||||
}
|
}
|
||||||
return super.populateBiomes(biomeRegistry, executor, noiseConfig, blender, structureAccessor, chunk);
|
return super.populateBiomes(biomeRegistry, executor, noiseConfig, blender, structureAccessor, chunk);
|
||||||
@@ -138,7 +138,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
|
|||||||
ProtoWorld world = (ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld();
|
ProtoWorld world = (ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld();
|
||||||
BiomeProvider biomeProvider;
|
BiomeProvider biomeProvider;
|
||||||
if(chunk instanceof BiomeProviderHolder providerHolder) {
|
if(chunk instanceof BiomeProviderHolder providerHolder) {
|
||||||
biomeProvider = providerHolder.getBiomeProvider();
|
biomeProvider = providerHolder.terra$getHeldBiomeProvider();
|
||||||
if(biomeProvider == null) {
|
if(biomeProvider == null) {
|
||||||
biomeProvider = pack.getBiomeProvider().caching(world);
|
biomeProvider = pack.getBiomeProvider().caching(world);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -7,7 +7,6 @@ import com.dfsek.terra.fabric.generation.BiomeProviderHolder;
|
|||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.world.ChunkRegion;
|
import net.minecraft.world.ChunkRegion;
|
||||||
import net.minecraft.world.chunk.ChunkStatus;
|
import net.minecraft.world.chunk.ChunkStatus;
|
||||||
import net.minecraft.world.chunk.ProtoChunk;
|
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Implements;
|
import org.spongepowered.asm.mixin.Implements;
|
||||||
import org.spongepowered.asm.mixin.Interface;
|
import org.spongepowered.asm.mixin.Interface;
|
||||||
@@ -31,18 +30,18 @@ public class ChunkRegionMixin {
|
|||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
public void addProvider(ServerWorld world, List<Chunk> chunks, ChunkStatus status, int placementRadius, CallbackInfo ci) {
|
public void addProvider(ServerWorld world, List<Chunk> chunks, ChunkStatus status, int placementRadius, CallbackInfo ci) {
|
||||||
if(centerPos instanceof BiomeProviderHolder providerHolder) {
|
if(centerPos instanceof BiomeProviderHolder providerHolder) {
|
||||||
biomeProvider = providerHolder.getBiomeProvider();
|
biomeProvider = providerHolder.terra$getHeldBiomeProvider();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void provider$setBiomeProvider(BiomeProvider provider) {
|
public void provider$terra$setHeldBiomeProvider(BiomeProvider provider) {
|
||||||
if(this.biomeProvider != null) {
|
if(this.biomeProvider != null) {
|
||||||
throw new IllegalStateException("Already set biome provider for chunk " + this);
|
throw new IllegalStateException("Already set biome provider for chunk " + this);
|
||||||
}
|
}
|
||||||
this.biomeProvider = provider;
|
this.biomeProvider = provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomeProvider provider$getBiomeProvider() {
|
public BiomeProvider provider$terra$getHeldBiomeProvider() {
|
||||||
return biomeProvider;
|
return biomeProvider;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -14,14 +14,14 @@ import org.spongepowered.asm.mixin.Mixin;
|
|||||||
public class ProtoChunkMixin {
|
public class ProtoChunkMixin {
|
||||||
private BiomeProvider biomeProvider;
|
private BiomeProvider biomeProvider;
|
||||||
|
|
||||||
public void provider$setBiomeProvider(BiomeProvider provider) {
|
public void provider$terra$setHeldBiomeProvider(BiomeProvider provider) {
|
||||||
if(this.biomeProvider != null) {
|
if(this.biomeProvider != null) {
|
||||||
throw new IllegalStateException("Already set biome provider for chunk " + this);
|
throw new IllegalStateException("Already set biome provider for chunk " + this);
|
||||||
}
|
}
|
||||||
this.biomeProvider = provider;
|
this.biomeProvider = provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomeProvider provider$getBiomeProvider() {
|
public BiomeProvider provider$terra$getHeldBiomeProvider() {
|
||||||
return biomeProvider;
|
return biomeProvider;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ public abstract class ChunkRegionMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BiomeProvider terraWorld$getBiomeProvider() {
|
public BiomeProvider terraWorld$getBiomeProvider() {
|
||||||
BiomeProvider provider = ((BiomeProviderHolder) this).getBiomeProvider();
|
BiomeProvider provider = ((BiomeProviderHolder) this).terra$getHeldBiomeProvider();
|
||||||
if(provider != null) {
|
if(provider != null) {
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user