From 2d55b161196f25683786c3cef3a9cb9f963c7572 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 2 Apr 2025 17:36:53 -0400 Subject: [PATCH] default macro gen randomizes biomes now --- .../generation/macro/DefaultMacroGenerator.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/electrosphere/server/terrain/generation/macro/DefaultMacroGenerator.java b/src/main/java/electrosphere/server/terrain/generation/macro/DefaultMacroGenerator.java index ed781bf3..7f89a002 100644 --- a/src/main/java/electrosphere/server/terrain/generation/macro/DefaultMacroGenerator.java +++ b/src/main/java/electrosphere/server/terrain/generation/macro/DefaultMacroGenerator.java @@ -1,5 +1,11 @@ package electrosphere.server.terrain.generation.macro; +import java.util.List; +import java.util.Random; + +import electrosphere.engine.Globals; +import electrosphere.game.data.biome.BiomeData; +import electrosphere.game.data.biome.BiomeTypeMap; import electrosphere.server.terrain.models.TerrainModel; /** @@ -16,18 +22,22 @@ public class DefaultMacroGenerator implements MacroGenerator { public void generate(TerrainModel model) { int DIM = model.getDiscreteArrayDimension(); float[][] elevation = model.getElevation(); - short[][] biome = model.getBiome(); + short[][] biomeArr = model.getBiome(); long seed = model.getSeed(); + Random rand = new Random(seed); + BiomeTypeMap biomeTypeMap = Globals.gameConfigCurrent.getBiomeMap(); + List biomes = biomeTypeMap.getSurfaceBiomes(); for(int x = 0; x < DIM; x++){ for(int y = 0; y < DIM; y++){ + BiomeData biome = biomes.get(rand.nextInt(biomes.size())); elevation[x][y] = 1; - biome[x][y] = DEFAULT_SURFACE_BIOME; + biomeArr[x][y] = (short)(int)(biomeTypeMap.getIndexOfBiome(biome)); } } model.setElevationArray(elevation); - model.setBiome(biome); + model.setBiome(biomeArr); } }