mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
TerraChunkGenerator -> ChunkGenerator
This commit is contained in:
parent
f659c32749
commit
4da5ce748d
@ -18,7 +18,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
|||||||
import com.dfsek.terra.api.world.generator.ChunkData;
|
import com.dfsek.terra.api.world.generator.ChunkData;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
import com.dfsek.terra.api.world.generator.Sampler;
|
import com.dfsek.terra.api.world.generator.Sampler;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStage;
|
import com.dfsek.terra.api.world.generator.GenerationStage;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -27,7 +27,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class NoiseChunkGenerator3D implements TerraChunkGenerator {
|
public class NoiseChunkGenerator3D implements ChunkGenerator {
|
||||||
private final ConfigPack configPack;
|
private final ConfigPack configPack;
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
private final List<GenerationStage> generationStages = new ArrayList<>();
|
private final List<GenerationStage> generationStages = new ArrayList<>();
|
||||||
|
@ -8,7 +8,7 @@ import com.dfsek.terra.api.entity.Entity;
|
|||||||
import com.dfsek.terra.api.entity.EntityType;
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
|
|
||||||
public interface World extends Handle {
|
public interface World extends Handle {
|
||||||
long getSeed();
|
long getSeed();
|
||||||
@ -51,7 +51,7 @@ public interface World extends Handle {
|
|||||||
|
|
||||||
int getMinHeight();
|
int getMinHeight();
|
||||||
|
|
||||||
TerraChunkGenerator getGenerator();
|
ChunkGenerator getGenerator();
|
||||||
|
|
||||||
BiomeProvider getBiomeProvider();
|
BiomeProvider getBiomeProvider();
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public interface TerraChunkGenerator {
|
public interface ChunkGenerator {
|
||||||
ChunkData generateChunkData(@NotNull World world, Random random, int x, int z, ChunkData original);
|
ChunkData generateChunkData(@NotNull World world, Random random, int x, int z, ChunkData original);
|
||||||
|
|
||||||
void generateBiomes(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome);
|
void generateBiomes(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome);
|
@ -3,5 +3,5 @@ package com.dfsek.terra.api.world.generator;
|
|||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
|
||||||
public interface ChunkGeneratorProvider {
|
public interface ChunkGeneratorProvider {
|
||||||
TerraChunkGenerator newInstance(ConfigPack pack);
|
ChunkGenerator newInstance(ConfigPack pack);
|
||||||
}
|
}
|
||||||
|
@ -4,5 +4,5 @@ import com.dfsek.terra.api.Handle;
|
|||||||
|
|
||||||
public interface GeneratorWrapper extends Handle {
|
public interface GeneratorWrapper extends Handle {
|
||||||
@Override
|
@Override
|
||||||
TerraChunkGenerator getHandle();
|
ChunkGenerator getHandle();
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3;
|
|||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
|
|
||||||
public class DummyWorld implements World {
|
public class DummyWorld implements World {
|
||||||
@Override
|
@Override
|
||||||
@ -58,7 +58,7 @@ public class DummyWorld implements World {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TerraChunkGenerator getGenerator() {
|
public ChunkGenerator getGenerator() {
|
||||||
throw new UnsupportedOperationException("Cannot get generator of DummyWorld");
|
throw new UnsupportedOperationException("Cannot get generator of DummyWorld");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin {
|
|||||||
else BUKKIT_VERSION = BukkitVersion.UNKNOWN;
|
else BUKKIT_VERSION = BukkitVersion.UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Map<String, com.dfsek.terra.api.world.generator.TerraChunkGenerator> generatorMap = new HashMap<>();
|
private final Map<String, com.dfsek.terra.api.world.generator.ChunkGenerator> generatorMap = new HashMap<>();
|
||||||
private final Map<String, ConfigPack> worlds = new HashMap<>();
|
private final Map<String, ConfigPack> worlds = new HashMap<>();
|
||||||
private final Profiler profiler = new ProfilerImpl();
|
private final Profiler profiler = new ProfilerImpl();
|
||||||
private final ConfigRegistry registry = new ConfigRegistry();
|
private final ConfigRegistry registry = new ConfigRegistry();
|
||||||
|
@ -3,13 +3,12 @@ package com.dfsek.terra.bukkit.generator;
|
|||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.bukkit.population.PopulationManager;
|
import com.dfsek.terra.bukkit.population.PopulationManager;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitBiomeGrid;
|
import com.dfsek.terra.bukkit.world.BukkitBiomeGrid;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.generator.BlockPopulator;
|
import org.bukkit.generator.BlockPopulator;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -20,19 +19,19 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
|
public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper {
|
||||||
|
|
||||||
private static final Map<com.dfsek.terra.api.world.World, PopulationManager> popMap = new HashMap<>();
|
private static final Map<com.dfsek.terra.api.world.World, PopulationManager> popMap = new HashMap<>();
|
||||||
|
|
||||||
private final PopulationManager popMan;
|
private final PopulationManager popMan;
|
||||||
|
|
||||||
private final TerraChunkGenerator delegate;
|
private final ChunkGenerator delegate;
|
||||||
|
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
|
|
||||||
private boolean needsLoad = true;
|
private boolean needsLoad = true;
|
||||||
|
|
||||||
public BukkitChunkGeneratorWrapper(TerraChunkGenerator delegate) {
|
public BukkitChunkGeneratorWrapper(ChunkGenerator delegate) {
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
this.main = delegate.getMain();
|
this.main = delegate.getMain();
|
||||||
this.popMan = new PopulationManager(delegate, main);
|
this.popMan = new PopulationManager(delegate, main);
|
||||||
@ -105,7 +104,7 @@ public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TerraChunkGenerator getHandle() {
|
public ChunkGenerator getHandle() {
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.bukkit.generator;
|
package com.dfsek.terra.bukkit.generator;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Chunkified;
|
import com.dfsek.terra.api.world.generator.Chunkified;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -11,9 +11,9 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class BukkitPopulatorWrapper extends BlockPopulator {
|
public class BukkitPopulatorWrapper extends BlockPopulator {
|
||||||
private final TerraChunkGenerator delegate;
|
private final ChunkGenerator delegate;
|
||||||
|
|
||||||
public BukkitPopulatorWrapper(TerraChunkGenerator delegate) {
|
public BukkitPopulatorWrapper(ChunkGenerator delegate) {
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.terra.api.profiler.ProfileFrame;
|
|||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.generator.Chunkified;
|
import com.dfsek.terra.api.world.generator.Chunkified;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.bukkit.TerraBukkitPlugin;
|
import com.dfsek.terra.bukkit.TerraBukkitPlugin;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||||
@ -22,11 +22,11 @@ import java.util.Random;
|
|||||||
* Cursed management class for the horrors of Bukkit population
|
* Cursed management class for the horrors of Bukkit population
|
||||||
*/
|
*/
|
||||||
public class PopulationManager extends BlockPopulator {
|
public class PopulationManager extends BlockPopulator {
|
||||||
private final TerraChunkGenerator generator;
|
private final ChunkGenerator generator;
|
||||||
private final HashSet<ChunkCoordinate> needsPop = new HashSet<>();
|
private final HashSet<ChunkCoordinate> needsPop = new HashSet<>();
|
||||||
private final TerraPlugin main;
|
private final TerraPlugin main;
|
||||||
|
|
||||||
public PopulationManager(TerraChunkGenerator generator, TerraPlugin main) {
|
public PopulationManager(ChunkGenerator generator, TerraPlugin main) {
|
||||||
this.generator = generator;
|
this.generator = generator;
|
||||||
this.main = main;
|
this.main = main;
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.terra.api.world.World;
|
|||||||
import com.dfsek.terra.api.world.generator.ChunkData;
|
import com.dfsek.terra.api.world.generator.ChunkData;
|
||||||
import com.dfsek.terra.api.world.generator.Chunkified;
|
import com.dfsek.terra.api.world.generator.Chunkified;
|
||||||
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.fabric.TerraFabricPlugin;
|
import com.dfsek.terra.fabric.TerraFabricPlugin;
|
||||||
import com.dfsek.terra.fabric.block.FabricBlockState;
|
import com.dfsek.terra.fabric.block.FabricBlockState;
|
||||||
import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor;
|
import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor;
|
||||||
@ -31,7 +31,6 @@ import net.minecraft.world.chunk.Chunk;
|
|||||||
import net.minecraft.world.gen.ChunkRandom;
|
import net.minecraft.world.gen.ChunkRandom;
|
||||||
import net.minecraft.world.gen.GenerationStep;
|
import net.minecraft.world.gen.GenerationStep;
|
||||||
import net.minecraft.world.gen.StructureAccessor;
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
|
||||||
import net.minecraft.world.gen.chunk.StructuresConfig;
|
import net.minecraft.world.gen.chunk.StructuresConfig;
|
||||||
import net.minecraft.world.gen.chunk.VerticalBlockSample;
|
import net.minecraft.world.gen.chunk.VerticalBlockSample;
|
||||||
import net.minecraft.world.gen.feature.StructureFeature;
|
import net.minecraft.world.gen.feature.StructureFeature;
|
||||||
@ -40,7 +39,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
public class FabricChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
|
public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.ChunkGenerator implements GeneratorWrapper {
|
||||||
public static final Codec<ConfigPack> PACK_CODEC = RecordCodecBuilder.create(
|
public static final Codec<ConfigPack> PACK_CODEC = RecordCodecBuilder.create(
|
||||||
config -> config.group(
|
config -> config.group(
|
||||||
Codec.STRING.fieldOf("pack")
|
Codec.STRING.fieldOf("pack")
|
||||||
@ -59,7 +58,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
);
|
);
|
||||||
|
|
||||||
private final long seed;
|
private final long seed;
|
||||||
private final TerraChunkGenerator delegate;
|
private final ChunkGenerator delegate;
|
||||||
private final TerraBiomeSource biomeSource;
|
private final TerraBiomeSource biomeSource;
|
||||||
|
|
||||||
private final ConfigPack pack;
|
private final ConfigPack pack;
|
||||||
@ -78,12 +77,12 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Codec<? extends ChunkGenerator> getCodec() {
|
protected Codec<? extends net.minecraft.world.gen.chunk.ChunkGenerator> getCodec() {
|
||||||
return CODEC;
|
return CODEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChunkGenerator withSeed(long seed) {
|
public net.minecraft.world.gen.chunk.ChunkGenerator withSeed(long seed) {
|
||||||
return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack);
|
return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +224,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TerraChunkGenerator getHandle() {
|
public ChunkGenerator getHandle() {
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3;
|
|||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.fabric.block.FabricBlockState;
|
import com.dfsek.terra.fabric.block.FabricBlockState;
|
||||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
||||||
@ -105,7 +105,7 @@ public abstract class ChunkRegionMixin {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerraChunkGenerator terraWorld$getGenerator() {
|
public ChunkGenerator terraWorld$getGenerator() {
|
||||||
return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle();
|
return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3;
|
|||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.fabric.block.FabricBlockState;
|
import com.dfsek.terra.fabric.block.FabricBlockState;
|
||||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
||||||
@ -99,7 +99,7 @@ public abstract class ServerWorldMixin {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerraChunkGenerator terra$getGenerator() {
|
public ChunkGenerator terra$getGenerator() {
|
||||||
return ((FabricChunkGeneratorWrapper) chunkManager.getChunkGenerator()).getHandle();
|
return ((FabricChunkGeneratorWrapper) chunkManager.getChunkGenerator()).getHandle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user