Add trees to profiler

This commit is contained in:
dfsek 2020-11-22 13:12:52 -07:00
parent 8b95e86fe2
commit b90993c492
2 changed files with 17 additions and 11 deletions

View File

@ -16,6 +16,7 @@ public class TerraProfiler extends WorldProfiler {
super(w); super(w);
this this
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "FloraTime") .addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "FloraTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "TreeTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "OreTime") .addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "OreTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "CaveTime") .addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "CaveTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "StructureTime") .addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "StructureTime")

View File

@ -1,6 +1,7 @@
package com.dfsek.terra.population; package com.dfsek.terra.population;
import com.dfsek.terra.Terra; import com.dfsek.terra.Terra;
import com.dfsek.terra.TerraProfiler;
import com.dfsek.terra.TerraWorld; import com.dfsek.terra.TerraWorld;
import com.dfsek.terra.biome.UserDefinedBiome; import com.dfsek.terra.biome.UserDefinedBiome;
import com.dfsek.terra.biome.grid.TerraBiomeGrid; import com.dfsek.terra.biome.grid.TerraBiomeGrid;
@ -15,6 +16,7 @@ import org.jetbrains.annotations.NotNull;
import org.polydev.gaea.generation.GenerationPhase; import org.polydev.gaea.generation.GenerationPhase;
import org.polydev.gaea.math.Range; import org.polydev.gaea.math.Range;
import org.polydev.gaea.population.GaeaBlockPopulator; import org.polydev.gaea.population.GaeaBlockPopulator;
import org.polydev.gaea.profiler.ProfileFuture;
import org.polydev.gaea.tree.Tree; import org.polydev.gaea.tree.Tree;
import org.polydev.gaea.util.GlueList; import org.polydev.gaea.util.GlueList;
@ -52,18 +54,21 @@ public class TreePopulator extends GaeaBlockPopulator {
} }
@Override @Override
@SuppressWarnings("try")
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) { public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
TerraWorld tw = TerraWorld.getWorld(world); try(ProfileFuture ignored = TerraProfiler.fromWorld(world).measure("TreeTime")) {
if(!tw.isSafe()) return; TerraWorld tw = TerraWorld.getWorld(world);
TerraBiomeGrid grid = tw.getGrid(); if(!tw.isSafe()) return;
for(int x = 0; x < 16; x += 2) { TerraBiomeGrid grid = tw.getGrid();
for(int z = 0; z < 16; z += 2) { for(int x = 0; x < 16; x += 2) {
UserDefinedBiome biome = (UserDefinedBiome) grid.getBiome((chunk.getX() << 4) + x, (chunk.getZ() << 4) + z, GenerationPhase.POPULATE); for(int z = 0; z < 16; z += 2) {
int treeChance = biome.getDecorator().getTreeDensity(); UserDefinedBiome biome = (UserDefinedBiome) grid.getBiome((chunk.getX() << 4) + x, (chunk.getZ() << 4) + z, GenerationPhase.POPULATE);
if(random.nextInt(1000) < treeChance) { int treeChance = biome.getDecorator().getTreeDensity();
int xt = offset(random, x); if(random.nextInt(1000) < treeChance) {
int zt = offset(random, z); int xt = offset(random, x);
doTrees(biome, tw, random, chunk, xt, zt); int zt = offset(random, z);
doTrees(biome, tw, random, chunk, xt, zt);
}
} }
} }
} }