Experiment

This commit is contained in:
Daniel Mills 2020-09-05 22:41:16 -04:00
parent bd48e77e7c
commit 28e8a234e9
4 changed files with 125 additions and 5 deletions

View File

@ -161,17 +161,12 @@
<version>1.16.1-R0.1-SNAPSHOT</version> <version>1.16.1-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.bukkit.craftbukkit</groupId> <groupId>org.bukkit.craftbukkit</groupId>
<artifactId>cb-1.16.2</artifactId> <artifactId>cb-1.16.2</artifactId>
<version>1.16.2</version> <version>1.16.2</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- Utilities --> <!-- Utilities -->
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>

View File

@ -0,0 +1,61 @@
package com.volmit.iris.gen.bindings;
import java.util.List;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;
public abstract class BukkitTerrainProvider extends ChunkGenerator implements TerrainProvider
{
private final TerrainTarget target;
public BukkitTerrainProvider(TerrainTarget target)
{
this.target = target;
}
@Override
public abstract void generate(Random random, int x, int z, BiomeGrid biome, ChunkData data);
@Override
public ChunkData generateChunkData(World world, Random random, int x, int z, BiomeGrid biome)
{
ChunkData data = Bukkit.getServer().createChunkData(world);
generate(random, x, z, biome, data);
return data;
}
@Override
public abstract boolean canSpawn(World world, int x, int z);
@Override
public abstract List<BlockPopulator> getDefaultPopulators(World world);
@Override
public abstract Location getFixedSpawnLocation(World world, Random random);
@Override
public abstract boolean isParallelCapable();
@Override
public abstract boolean shouldGenerateCaves();
@Override
public abstract boolean shouldGenerateDecorations();
@Override
public abstract boolean shouldGenerateMobs();
@Override
public abstract boolean shouldGenerateStructures();
@Override
public TerrainTarget getTarget()
{
return target;
}
}

View File

@ -0,0 +1,33 @@
package com.volmit.iris.gen.bindings;
import java.util.List;
import java.util.Random;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
import org.bukkit.generator.ChunkGenerator.ChunkData;
public interface TerrainProvider
{
public TerrainTarget getTarget();
public void generate(Random random, int x, int z, BiomeGrid biome, ChunkData data);
public boolean canSpawn(World world, int x, int z);
public List<BlockPopulator> getDefaultPopulators(World world);
public Location getFixedSpawnLocation(World world, Random random);
public boolean isParallelCapable();
public boolean shouldGenerateCaves();
public boolean shouldGenerateDecorations();
public boolean shouldGenerateMobs();
public boolean shouldGenerateStructures();
}

View File

@ -0,0 +1,31 @@
package com.volmit.iris.gen.bindings;
import java.io.File;
import org.bukkit.World;
import org.bukkit.World.Environment;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class TerrainTarget
{
private long seed;
private Environment environment;
private String name;
private File folder;
public static TerrainTarget from(World world)
{
//@builder
return new TerrainTargetBuilder()
.environment(world.getEnvironment())
.seed(world.getSeed())
.folder(world.getWorldFolder())
.name(world.getName())
.build();
//@done
}
}