remove World#getGenerator

This commit is contained in:
dfsek 2021-07-22 14:28:11 -07:00
parent 2517b74951
commit ec14666c6d
6 changed files with 9 additions and 27 deletions

View File

@ -17,8 +17,6 @@ public interface World extends Handle {
int getMaxHeight();
ChunkGenerator getGenerator();
Chunk getChunkAt(int x, int z);
default Chunk getChunkAt(Vector3 location) {
@ -55,9 +53,7 @@ public interface World extends Handle {
int getMinHeight();
default TerraChunkGenerator getTerraGenerator() {
return ((GeneratorWrapper) getGenerator().getHandle()).getHandle();
}
TerraChunkGenerator getTerraGenerator();
BiomeProvider getBiomeProvider();

View File

@ -9,8 +9,6 @@ import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
public class DummyWorld implements World {
@Override
@ -28,11 +26,6 @@ public class DummyWorld implements World {
return 255;
}
@Override
public ChunkGenerator getGenerator() {
return () -> (GeneratorWrapper) () -> null;
}
@Override
public Chunk getChunkAt(int x, int z) {
throw new UnsupportedOperationException("Cannot get chunk in DummyWorld");

View File

@ -7,9 +7,7 @@ import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.bukkit.BukkitEntity;
import com.dfsek.terra.bukkit.generator.BukkitChunkGenerator;
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
@ -33,11 +31,6 @@ public class BukkitWorld implements World {
return delegate.getMaxHeight();
}
@Override
public ChunkGenerator getGenerator() {
return new BukkitChunkGenerator(delegate.getGenerator());
}
public String getName() {
return delegate.getName();
}

View File

@ -9,7 +9,9 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.fabric.TerraFabricPlugin;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import net.minecraft.world.gen.feature.ConfiguredFeature;
import org.spongepowered.asm.mixin.Implements;
@ -32,7 +34,7 @@ public abstract class ConfiguredFeatureMixin {
String id = BuiltinRegistries.CONFIGURED_FEATURE.getId((ConfiguredFeature<?, ?>) (Object) this).toString();
try(ProfileFrame ignore = TerraFabricPlugin.getInstance().getProfiler().profile("fabric_tree:" + id.toLowerCase(Locale.ROOT))) {
StructureWorldAccess fabricWorldAccess = ((StructureWorldAccess) world);
ChunkGenerator generatorWrapper = (ChunkGenerator) world.getGenerator();
ChunkGenerator generatorWrapper = ((ServerWorldAccess) world).toServerWorld().getChunkManager().getChunkGenerator();
return generate(fabricWorldAccess, generatorWrapper, r, new BlockPos(l.getBlockX(), l.getBlockY(), l.getBlockZ()));
}
}

View File

@ -24,6 +24,7 @@ import net.minecraft.world.ChunkRegion;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.TickScheduler;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.chunk.ChunkManager;
import net.minecraft.world.chunk.ChunkStatus;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Implements;
@ -56,6 +57,9 @@ public abstract class ChunkRegionMixin {
@Shadow
public abstract TickScheduler<Fluid> getFluidTickScheduler();
@Shadow
public abstract ChunkManager getChunkManager();
public int terraWorld$getMaxHeight() {
return (((ChunkRegion) (Object) this).getBottomY()) + ((ChunkRegion) (Object) this).getHeight();
}
@ -116,7 +120,7 @@ public abstract class ChunkRegionMixin {
}
public TerraChunkGenerator terraWorld$getTerraGenerator() {
return ((FabricChunkGeneratorWrapper) terraWorld$getGenerator()).getHandle();
return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle();
}
@SuppressWarnings("deprecation")

View File

@ -8,7 +8,6 @@ import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import net.jafama.FastMath;
import net.querz.mca.MCAFile;
import net.querz.mca.MCAUtil;
@ -40,11 +39,6 @@ public class DirectWorld implements World {
return 255;
}
@Override
public ChunkGenerator getGenerator() {
return generator;
}
@Override
public Chunk getChunkAt(int x, int z) {
MCAFile file = compute(x, z);