@@ -58,17 +58,20 @@ public class Boxed extends GameModeAddon {
5858 private static final String SEED = "seed" ;
5959 private static final String NETHER = "_nether" ;
6060 private static final String THE_END = "_the_end" ;
61- private static final String BASE = "_base" ;
6261
6362 // Settings
6463 private Settings settings ;
65- private AbstractBoxedChunkGenerator chunkGenerator ;
64+ private AbstractBoxedChunkGenerator worldGen ;
65+ private BoxedSeedChunkGenerator seedGen ;
66+ private AbstractBoxedChunkGenerator netherGen ;
67+ private BoxedSeedChunkGenerator netherSeedGen ;
68+
69+
6670 private final Config <Settings > configObject = new Config <>(this , Settings .class );
6771 private AdvancementsManager advManager ;
68- private AbstractBoxedChunkGenerator netherChunkGenerator ;
6972 private World seedWorld ;
7073 private final Map <World , ChunkGenerator > generatorMap = new HashMap <>();
71- // private World seedWorldEnd ;
74+ private final Map < String , ChunkGenerator > generatorMaps = new HashMap <>() ;
7275 private BiomeProvider boxedBiomeProvider ;
7376
7477 @ Override
@@ -101,8 +104,21 @@ private boolean loadSettings() {
101104 return false ;
102105 }
103106 // Initialize the Generator because createWorlds will be run after onLoad
104- this .chunkGenerator = new BoxedChunkGenerator (this );
105- this .netherChunkGenerator = new BoxedChunkGenerator (this );
107+ this .worldGen = new BoxedChunkGenerator (this );
108+ generatorMaps .put (settings .getWorldName (), worldGen );
109+
110+ seedGen = new BoxedSeedChunkGenerator (this , Environment .NORMAL ,
111+ new SeedBiomeGenerator (this ));
112+ generatorMaps .put (settings .getWorldName () + "/" + SEED , seedGen );
113+
114+ // Nether generators
115+ this .netherGen = new BoxedChunkGenerator (this );
116+ generatorMaps .put (settings .getWorldName () + NETHER , netherGen );
117+
118+ netherSeedGen = new BoxedSeedChunkGenerator (this , Environment .NETHER ,
119+ new NetherSeedBiomeGenerator (this ));
120+ generatorMaps .put (settings .getWorldName () + "/" + SEED + NETHER , netherSeedGen );
121+
106122 return true ;
107123 }
108124
@@ -180,35 +196,18 @@ public void createWorlds() {
180196 private void createNether (String worldName ) {
181197 // Create vanilla seed nether world
182198 log ("Creating Boxed Seed Nether world ..." );
183- // This creates a vanilla base world with biomes
184- AbstractBoxedChunkGenerator seedBaseGen = new BoxedSeedChunkGenerator (this , Environment .NETHER );
185- World baseWorldNether = WorldCreator
186- .name (worldName + "/" + SEED + NETHER + BASE )
187- .generator (seedBaseGen )
188- .environment (Environment .NETHER )
189- .seed (getSettings ().getSeed ())
190- .createWorld ();
191- baseWorldNether .setDifficulty (Difficulty .PEACEFUL );
192- baseWorldNether .setSpawnLocation (settings .getSeedX (), 64 , settings .getSeedZ ());
193- generatorMap .put (baseWorldNether , seedBaseGen );
194- getPlugin ().getIWM ().addWorld (baseWorldNether , this );
195- copyChunks (baseWorldNether , seedBaseGen );
196- // Create seed world
197- // This copies a base world with custom biomes
198- log ("Creating Boxed Biomed Nether world ..." );
199- BoxedSeedChunkGenerator seedWorldNetherGenerator = new BoxedSeedChunkGenerator (this , Environment .NETHER , new NetherSeedBiomeGenerator (this , seedBaseGen ));
200199 World seedWorldNether = WorldCreator
201200 .name (worldName + "/" + SEED + NETHER )
202- .generator (seedWorldNetherGenerator )
201+ .generator (netherSeedGen )
203202 .environment (Environment .NETHER )
204203 .seed (getSettings ().getSeed ())
205204 .createWorld ();
206205 seedWorldNether .setDifficulty (Difficulty .EASY );
207206
208207 seedWorldNether .setSpawnLocation (settings .getNetherSeedX (), 64 , settings .getNetherSeedZ ());
209- generatorMap .put (seedWorldNether , seedWorldNetherGenerator );
208+ generatorMap .put (seedWorldNether , netherSeedGen );
210209 getPlugin ().getIWM ().addWorld (seedWorldNether , this );
211- copyChunks (seedWorldNether , netherChunkGenerator );
210+ copyChunks (seedWorldNether , netherGen );
212211
213212 if (getServer ().getWorld (worldName + NETHER ) == null ) {
214213 log ("Creating Boxed's Nether..." );
@@ -219,38 +218,19 @@ private void createNether(String worldName) {
219218 private void createOverWorld (String worldName ) {
220219 // Create vanilla seed world
221220 log ("Creating Boxed Seed world ..." );
222- // This creates a vanilla base world with biomes
223- AbstractBoxedChunkGenerator seedBaseGen = new BoxedSeedChunkGenerator (this , Environment .NORMAL );
224- World baseWorld = WorldCreator
225- .name (worldName + "/" + SEED + BASE )
226- .generator (seedBaseGen )
227- .environment (Environment .NORMAL )
228- .seed (getSettings ().getSeed ())
229- .createWorld ();
230- baseWorld .setDifficulty (Difficulty .PEACEFUL );
231- baseWorld .setSpawnLocation (settings .getSeedX (), 64 , settings .getSeedZ ());
232- generatorMap .put (baseWorld , seedBaseGen );
233- getPlugin ().getIWM ().addWorld (baseWorld , this );
234- copyChunks (baseWorld , seedBaseGen );
235- // Create seed world
236- // This copies a base world with custom biomes
237- log ("Creating Boxed Biomed world ..." );
238- BoxedSeedChunkGenerator seedWorldGenerator = new BoxedSeedChunkGenerator (this , Environment .NORMAL , new SeedBiomeGenerator (this , seedBaseGen ));
239221 seedWorld = WorldCreator
240222 .name (worldName + "/" + SEED )
241- .generator (seedWorldGenerator )
223+ .generator (seedGen )
242224 .environment (Environment .NORMAL )
243225 .seed (getSettings ().getSeed ())
244226 .createWorld ();
245227 seedWorld .setDifficulty (Difficulty .EASY );
246228
247229 seedWorld .setSpawnLocation (settings .getSeedX (), 64 , settings .getSeedZ ());
248230
249- generatorMap .put (seedWorld , seedWorldGenerator );
231+ generatorMap .put (seedWorld , seedGen );
250232 getPlugin ().getIWM ().addWorld (seedWorld , this );
251- copyChunks (seedWorld , chunkGenerator );
252-
253-
233+ copyChunks (seedWorld , worldGen );
254234
255235 if (getServer ().getWorld (worldName ) == null ) {
256236 log ("Creating Boxed world ..." );
@@ -308,7 +288,8 @@ private void copyChunks(World world, AbstractBoxedChunkGenerator gen) {
308288 int p = (int ) (count / percent * 100 );
309289 if (p % 10 == 0 && p != last ) {
310290 last = p ;
311- this .log ("Pregenrating seed chunks for " + world .getName () + "'s " + world .getEnvironment () + " " + p + "% done" );
291+ this .log ("Pregenerating seed chunks for " + world .getName () + "'s " + world .getEnvironment () + " "
292+ + p + "% done" );
312293 }
313294
314295 }
@@ -321,7 +302,7 @@ private void copyChunks(World world, AbstractBoxedChunkGenerator gen) {
321302 * @return the chunkGenerator for the environment
322303 */
323304 public AbstractBoxedChunkGenerator getChunkGenerator (Environment env ) {
324- return env .equals (Environment .NORMAL ) ? chunkGenerator : netherChunkGenerator ;
305+ return env .equals (Environment .NORMAL ) ? worldGen : netherGen ;
325306 }
326307
327308 /**
@@ -386,8 +367,8 @@ public WorldSettings getWorldSettings() {
386367
387368 @ Override
388369 public @ Nullable ChunkGenerator getDefaultWorldGenerator (String worldName , String id ) {
389- for (Entry <World , ChunkGenerator > en : generatorMap .entrySet ()) {
390- if (en .getKey ().getName (). equalsIgnoreCase (worldName )) {
370+ for (Entry <String , ChunkGenerator > en : generatorMaps .entrySet ()) {
371+ if (en .getKey ().equalsIgnoreCase (worldName )) {
391372 return en .getValue ();
392373 }
393374 }
0 commit comments