mirror of
https://github.com/BentoBoxWorld/Boxed.git
synced 2024-09-27 04:02:34 +02:00
commit
ef08a3ddcc
2
pom.xml
2
pom.xml
@ -65,7 +65,7 @@
|
|||||||
<!-- Do not change unless you want different name for local builds. -->
|
<!-- Do not change unless you want different name for local builds. -->
|
||||||
<build.number>-LOCAL</build.number>
|
<build.number>-LOCAL</build.number>
|
||||||
<!-- This allows to change between versions. -->
|
<!-- This allows to change between versions. -->
|
||||||
<build.version>2.4.0</build.version>
|
<build.version>2.5.0</build.version>
|
||||||
|
|
||||||
<sonar.projectKey>BentoBoxWorld_Boxed</sonar.projectKey>
|
<sonar.projectKey>BentoBoxWorld_Boxed</sonar.projectKey>
|
||||||
<sonar.organization>bentobox-world</sonar.organization>
|
<sonar.organization>bentobox-world</sonar.organization>
|
||||||
|
@ -58,17 +58,20 @@ public class Boxed extends GameModeAddon {
|
|||||||
private static final String SEED = "seed";
|
private static final String SEED = "seed";
|
||||||
private static final String NETHER = "_nether";
|
private static final String NETHER = "_nether";
|
||||||
private static final String THE_END = "_the_end";
|
private static final String THE_END = "_the_end";
|
||||||
private static final String BASE = "_base";
|
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
private Settings settings;
|
private Settings settings;
|
||||||
private AbstractBoxedChunkGenerator chunkGenerator;
|
private AbstractBoxedChunkGenerator worldGen;
|
||||||
|
private BoxedSeedChunkGenerator seedGen;
|
||||||
|
private AbstractBoxedChunkGenerator netherGen;
|
||||||
|
private BoxedSeedChunkGenerator netherSeedGen;
|
||||||
|
|
||||||
|
|
||||||
private final Config<Settings> configObject = new Config<>(this, Settings.class);
|
private final Config<Settings> configObject = new Config<>(this, Settings.class);
|
||||||
private AdvancementsManager advManager;
|
private AdvancementsManager advManager;
|
||||||
private AbstractBoxedChunkGenerator netherChunkGenerator;
|
|
||||||
private World seedWorld;
|
private World seedWorld;
|
||||||
private final Map<World, ChunkGenerator> generatorMap = new HashMap<>();
|
private final Map<World, ChunkGenerator> generatorMap = new HashMap<>();
|
||||||
//private World seedWorldEnd;
|
private final Map<String, ChunkGenerator> generatorMaps = new HashMap<>();
|
||||||
private BiomeProvider boxedBiomeProvider;
|
private BiomeProvider boxedBiomeProvider;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -101,8 +104,21 @@ public class Boxed extends GameModeAddon {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Initialize the Generator because createWorlds will be run after onLoad
|
// Initialize the Generator because createWorlds will be run after onLoad
|
||||||
this.chunkGenerator = new BoxedChunkGenerator(this);
|
this.worldGen = new BoxedChunkGenerator(this);
|
||||||
this.netherChunkGenerator = new BoxedChunkGenerator(this);
|
generatorMaps.put(settings.getWorldName(), worldGen);
|
||||||
|
|
||||||
|
seedGen = new BoxedSeedChunkGenerator(this, Environment.NORMAL,
|
||||||
|
new SeedBiomeGenerator(this));
|
||||||
|
generatorMaps.put(settings.getWorldName() + "/" + SEED, seedGen);
|
||||||
|
|
||||||
|
// Nether generators
|
||||||
|
this.netherGen = new BoxedChunkGenerator(this);
|
||||||
|
generatorMaps.put(settings.getWorldName() + NETHER, netherGen);
|
||||||
|
|
||||||
|
netherSeedGen = new BoxedSeedChunkGenerator(this, Environment.NETHER,
|
||||||
|
new NetherSeedBiomeGenerator(this));
|
||||||
|
generatorMaps.put(settings.getWorldName() + "/" + SEED + NETHER, netherSeedGen);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,35 +196,18 @@ public class Boxed extends GameModeAddon {
|
|||||||
private void createNether(String worldName) {
|
private void createNether(String worldName) {
|
||||||
// Create vanilla seed nether world
|
// Create vanilla seed nether world
|
||||||
log("Creating Boxed Seed Nether world ...");
|
log("Creating Boxed Seed Nether world ...");
|
||||||
// This creates a vanilla base world with biomes
|
|
||||||
AbstractBoxedChunkGenerator seedBaseGen = new BoxedSeedChunkGenerator(this, Environment.NETHER);
|
|
||||||
World baseWorldNether = WorldCreator
|
|
||||||
.name(worldName + "/" + SEED + NETHER + BASE)
|
|
||||||
.generator(seedBaseGen)
|
|
||||||
.environment(Environment.NETHER)
|
|
||||||
.seed(getSettings().getSeed())
|
|
||||||
.createWorld();
|
|
||||||
baseWorldNether.setDifficulty(Difficulty.PEACEFUL);
|
|
||||||
baseWorldNether.setSpawnLocation(settings.getSeedX(), 64, settings.getSeedZ());
|
|
||||||
generatorMap.put(baseWorldNether, seedBaseGen);
|
|
||||||
getPlugin().getIWM().addWorld(baseWorldNether, this);
|
|
||||||
copyChunks(baseWorldNether, seedBaseGen);
|
|
||||||
// Create seed world
|
|
||||||
// This copies a base world with custom biomes
|
|
||||||
log("Creating Boxed Biomed Nether world ...");
|
|
||||||
BoxedSeedChunkGenerator seedWorldNetherGenerator = new BoxedSeedChunkGenerator(this, Environment.NETHER, new NetherSeedBiomeGenerator(this, seedBaseGen));
|
|
||||||
World seedWorldNether = WorldCreator
|
World seedWorldNether = WorldCreator
|
||||||
.name(worldName + "/" + SEED + NETHER)
|
.name(worldName + "/" + SEED + NETHER)
|
||||||
.generator(seedWorldNetherGenerator)
|
.generator(netherSeedGen)
|
||||||
.environment(Environment.NETHER)
|
.environment(Environment.NETHER)
|
||||||
.seed(getSettings().getSeed())
|
.seed(getSettings().getSeed())
|
||||||
.createWorld();
|
.createWorld();
|
||||||
seedWorldNether.setDifficulty(Difficulty.EASY);
|
seedWorldNether.setDifficulty(Difficulty.EASY);
|
||||||
|
|
||||||
seedWorldNether.setSpawnLocation(settings.getNetherSeedX(), 64, settings.getNetherSeedZ());
|
seedWorldNether.setSpawnLocation(settings.getNetherSeedX(), 64, settings.getNetherSeedZ());
|
||||||
generatorMap.put(seedWorldNether, seedWorldNetherGenerator);
|
generatorMap.put(seedWorldNether, netherSeedGen);
|
||||||
getPlugin().getIWM().addWorld(seedWorldNether, this);
|
getPlugin().getIWM().addWorld(seedWorldNether, this);
|
||||||
copyChunks(seedWorldNether, netherChunkGenerator);
|
copyChunks(seedWorldNether, netherGen);
|
||||||
|
|
||||||
if (getServer().getWorld(worldName + NETHER) == null) {
|
if (getServer().getWorld(worldName + NETHER) == null) {
|
||||||
log("Creating Boxed's Nether...");
|
log("Creating Boxed's Nether...");
|
||||||
@ -219,26 +218,9 @@ public class Boxed extends GameModeAddon {
|
|||||||
private void createOverWorld(String worldName) {
|
private void createOverWorld(String worldName) {
|
||||||
// Create vanilla seed world
|
// Create vanilla seed world
|
||||||
log("Creating Boxed Seed world ...");
|
log("Creating Boxed Seed world ...");
|
||||||
// This creates a vanilla base world with biomes
|
|
||||||
AbstractBoxedChunkGenerator seedBaseGen = new BoxedSeedChunkGenerator(this, Environment.NORMAL);
|
|
||||||
World baseWorld = WorldCreator
|
|
||||||
.name(worldName + "/" + SEED + BASE)
|
|
||||||
.generator(seedBaseGen)
|
|
||||||
.environment(Environment.NORMAL)
|
|
||||||
.seed(getSettings().getSeed())
|
|
||||||
.createWorld();
|
|
||||||
baseWorld.setDifficulty(Difficulty.PEACEFUL);
|
|
||||||
baseWorld.setSpawnLocation(settings.getSeedX(), 64, settings.getSeedZ());
|
|
||||||
generatorMap.put(baseWorld, seedBaseGen);
|
|
||||||
getPlugin().getIWM().addWorld(baseWorld, this);
|
|
||||||
copyChunks(baseWorld, seedBaseGen);
|
|
||||||
// Create seed world
|
|
||||||
// This copies a base world with custom biomes
|
|
||||||
log("Creating Boxed Biomed world ...");
|
|
||||||
BoxedSeedChunkGenerator seedWorldGenerator = new BoxedSeedChunkGenerator(this, Environment.NORMAL, new SeedBiomeGenerator(this, seedBaseGen));
|
|
||||||
seedWorld = WorldCreator
|
seedWorld = WorldCreator
|
||||||
.name(worldName + "/" + SEED)
|
.name(worldName + "/" + SEED)
|
||||||
.generator(seedWorldGenerator)
|
.generator(seedGen)
|
||||||
.environment(Environment.NORMAL)
|
.environment(Environment.NORMAL)
|
||||||
.seed(getSettings().getSeed())
|
.seed(getSettings().getSeed())
|
||||||
.createWorld();
|
.createWorld();
|
||||||
@ -246,11 +228,9 @@ public class Boxed extends GameModeAddon {
|
|||||||
|
|
||||||
seedWorld.setSpawnLocation(settings.getSeedX(), 64, settings.getSeedZ());
|
seedWorld.setSpawnLocation(settings.getSeedX(), 64, settings.getSeedZ());
|
||||||
|
|
||||||
generatorMap.put(seedWorld, seedWorldGenerator);
|
generatorMap.put(seedWorld, seedGen);
|
||||||
getPlugin().getIWM().addWorld(seedWorld, this);
|
getPlugin().getIWM().addWorld(seedWorld, this);
|
||||||
copyChunks(seedWorld, chunkGenerator);
|
copyChunks(seedWorld, worldGen);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (getServer().getWorld(worldName) == null) {
|
if (getServer().getWorld(worldName) == null) {
|
||||||
log("Creating Boxed world ...");
|
log("Creating Boxed world ...");
|
||||||
@ -308,7 +288,8 @@ public class Boxed extends GameModeAddon {
|
|||||||
int p = (int) (count / percent * 100);
|
int p = (int) (count / percent * 100);
|
||||||
if (p % 10 == 0 && p != last) {
|
if (p % 10 == 0 && p != last) {
|
||||||
last = p;
|
last = p;
|
||||||
this.log("Pregenrating seed chunks for " + world.getName() + "'s " + world.getEnvironment() + " " + p + "% done");
|
this.log("Pregenerating seed chunks for " + world.getName() + "'s " + world.getEnvironment() + " "
|
||||||
|
+ p + "% done");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -321,7 +302,7 @@ public class Boxed extends GameModeAddon {
|
|||||||
* @return the chunkGenerator for the environment
|
* @return the chunkGenerator for the environment
|
||||||
*/
|
*/
|
||||||
public AbstractBoxedChunkGenerator getChunkGenerator(Environment env) {
|
public AbstractBoxedChunkGenerator getChunkGenerator(Environment env) {
|
||||||
return env.equals(Environment.NORMAL) ? chunkGenerator : netherChunkGenerator;
|
return env.equals(Environment.NORMAL) ? worldGen : netherGen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -386,8 +367,8 @@ public class Boxed extends GameModeAddon {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
|
public @Nullable ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
|
||||||
for (Entry<World, ChunkGenerator> en : generatorMap.entrySet()) {
|
for (Entry<String, ChunkGenerator> en : generatorMaps.entrySet()) {
|
||||||
if (en.getKey().getName().equalsIgnoreCase(worldName)) {
|
if (en.getKey().equalsIgnoreCase(worldName)) {
|
||||||
return en.getValue();
|
return en.getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ public class Settings implements WorldSettings {
|
|||||||
@ConfigEntry(path = "world.max-areas")
|
@ConfigEntry(path = "world.max-areas")
|
||||||
private int maxIslands = -1;
|
private int maxIslands = -1;
|
||||||
|
|
||||||
@ConfigComment("Area height - Lowest is 5.")
|
@ConfigComment("Area height")
|
||||||
@ConfigComment("It is the y coordinate of the bedrock block in the blueprint.")
|
@ConfigComment("It is the y coordinate of the bedrock block in the blueprint.")
|
||||||
@ConfigEntry(path = "world.area-height")
|
@ConfigEntry(path = "world.area-height")
|
||||||
private int islandHeight = 8;
|
private int islandHeight = 8;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,8 @@
|
|||||||
package world.bentobox.boxed.generators.biomes;
|
package world.bentobox.boxed.generators.biomes;
|
||||||
|
|
||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
|
|
||||||
import world.bentobox.boxed.Boxed;
|
import world.bentobox.boxed.Boxed;
|
||||||
import world.bentobox.boxed.generators.chunks.AbstractBoxedChunkGenerator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generator for the Nether seed world
|
* Generator for the Nether seed world
|
||||||
@ -13,8 +11,8 @@ import world.bentobox.boxed.generators.chunks.AbstractBoxedChunkGenerator;
|
|||||||
*/
|
*/
|
||||||
public class NetherSeedBiomeGenerator extends AbstractSeedBiomeProvider {
|
public class NetherSeedBiomeGenerator extends AbstractSeedBiomeProvider {
|
||||||
|
|
||||||
public NetherSeedBiomeGenerator(Boxed boxed, AbstractBoxedChunkGenerator seedGen) {
|
public NetherSeedBiomeGenerator(Boxed boxed) {
|
||||||
super(boxed, Environment.NETHER, Biome.BASALT_DELTAS, seedGen);
|
super(boxed, Environment.NETHER);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,10 +1,8 @@
|
|||||||
package world.bentobox.boxed.generators.biomes;
|
package world.bentobox.boxed.generators.biomes;
|
||||||
|
|
||||||
import org.bukkit.World.Environment;
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
|
|
||||||
import world.bentobox.boxed.Boxed;
|
import world.bentobox.boxed.Boxed;
|
||||||
import world.bentobox.boxed.generators.chunks.AbstractBoxedChunkGenerator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generator for the seed world
|
* Generator for the seed world
|
||||||
@ -13,8 +11,7 @@ import world.bentobox.boxed.generators.chunks.AbstractBoxedChunkGenerator;
|
|||||||
*/
|
*/
|
||||||
public class SeedBiomeGenerator extends AbstractSeedBiomeProvider {
|
public class SeedBiomeGenerator extends AbstractSeedBiomeProvider {
|
||||||
|
|
||||||
public SeedBiomeGenerator(Boxed boxed, AbstractBoxedChunkGenerator seedGen) {
|
public SeedBiomeGenerator(Boxed boxed) {
|
||||||
super(boxed, Environment.NORMAL, Biome.PLAINS, seedGen);
|
super(boxed, Environment.NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -38,6 +38,7 @@ public abstract class AbstractBoxedChunkGenerator extends ChunkGenerator {
|
|||||||
public AbstractBoxedChunkGenerator(Boxed addon) {
|
public AbstractBoxedChunkGenerator(Boxed addon) {
|
||||||
this.addon = addon;
|
this.addon = addon;
|
||||||
size = (int)(addon.getSettings().getIslandDistance() / 16D); // Size is chunks
|
size = (int)(addon.getSettings().getIslandDistance() / 16D); // Size is chunks
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,7 +33,6 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.material.Colorable;
|
import org.bukkit.material.Colorable;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import world.bentobox.bentobox.BentoBox;
|
|
||||||
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintBlock;
|
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintBlock;
|
||||||
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintCreatureSpawner;
|
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintCreatureSpawner;
|
||||||
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintEntity;
|
import world.bentobox.bentobox.blueprints.dataobjects.BlueprintEntity;
|
||||||
@ -206,7 +205,7 @@ public class BoxedChunkGenerator extends AbstractBoxedChunkGenerator {
|
|||||||
if (chunk == null) {
|
if (chunk == null) {
|
||||||
// This should never be needed because islands should abut each other
|
// This should never be needed because islands should abut each other
|
||||||
//cd.setRegion(0, minY, 0, 16, 0, 16, Material.WATER);
|
//cd.setRegion(0, minY, 0, 16, 0, 16, Material.WATER);
|
||||||
BentoBox.getInstance().logError("No chunks found for " + xx + " " + zz);
|
//BentoBox.getInstance().logError("No chunks found for " + xx + " " + zz);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Copy the chunk
|
// Copy the chunk
|
||||||
|
Loading…
Reference in New Issue
Block a user