mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
Merge pull request #133 from PolyhedralDev/ver/5.1.4
Fix minor Fabric issues
This commit is contained in:
commit
f396e0e5eb
@ -33,7 +33,7 @@ public class FloraPopulator implements TerraBlockPopulator {
|
|||||||
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
||||||
TerraWorld tw = main.getWorld(world);
|
TerraWorld tw = main.getWorld(world);
|
||||||
try(ProfileFuture ignored = tw.getProfiler().measure("FloraTime")) {
|
try(ProfileFuture ignored = tw.getProfiler().measure("FloraTime")) {
|
||||||
if(tw.getConfig().getTemplate().disableCarvers()) return;
|
if(tw.getConfig().getTemplate().disableFlora()) return;
|
||||||
|
|
||||||
if(!tw.isSafe()) return;
|
if(!tw.isSafe()) return;
|
||||||
BiomeProvider provider = tw.getBiomeProvider();
|
BiomeProvider provider = tw.getBiomeProvider();
|
||||||
|
@ -28,7 +28,7 @@ public class OrePopulator implements TerraBlockPopulator {
|
|||||||
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
||||||
TerraWorld tw = main.getWorld(world);
|
TerraWorld tw = main.getWorld(world);
|
||||||
try(ProfileFuture ignored = tw.getProfiler().measure("OreTime")) {
|
try(ProfileFuture ignored = tw.getProfiler().measure("OreTime")) {
|
||||||
if(tw.getConfig().getTemplate().disableCarvers()) return;
|
if(tw.getConfig().getTemplate().disableOres()) return;
|
||||||
|
|
||||||
if(!tw.isSafe()) return;
|
if(!tw.isSafe()) return;
|
||||||
for(int cx = -1; cx <= 1; cx++) {
|
for(int cx = -1; cx <= 1; cx++) {
|
||||||
|
@ -33,7 +33,7 @@ public class StructurePopulator implements TerraBlockPopulator, Chunkified {
|
|||||||
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
||||||
TerraWorld tw = main.getWorld(world);
|
TerraWorld tw = main.getWorld(world);
|
||||||
try(ProfileFuture ignored = tw.getProfiler().measure("StructureTime")) {
|
try(ProfileFuture ignored = tw.getProfiler().measure("StructureTime")) {
|
||||||
if(tw.getConfig().getTemplate().disableCarvers()) return;
|
if(tw.getConfig().getTemplate().disableStructures()) return;
|
||||||
|
|
||||||
int cx = (chunk.getX() << 4);
|
int cx = (chunk.getX() << 4);
|
||||||
int cz = (chunk.getZ() << 4);
|
int cz = (chunk.getZ() << 4);
|
||||||
|
@ -33,7 +33,7 @@ public class TreePopulator implements TerraBlockPopulator {
|
|||||||
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
public void populate(@NotNull World world, @NotNull Chunk chunk) {
|
||||||
TerraWorld tw = main.getWorld(world);
|
TerraWorld tw = main.getWorld(world);
|
||||||
try(ProfileFuture ignored = tw.getProfiler().measure("TreeTime")) {
|
try(ProfileFuture ignored = tw.getProfiler().measure("TreeTime")) {
|
||||||
if(tw.getConfig().getTemplate().disableCarvers()) return;
|
if(tw.getConfig().getTemplate().disableTrees()) return;
|
||||||
|
|
||||||
if(!tw.isSafe()) return;
|
if(!tw.isSafe()) return;
|
||||||
BiomeProvider provider = tw.getBiomeProvider();
|
BiomeProvider provider = tw.getBiomeProvider();
|
||||||
|
@ -157,6 +157,12 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TerraWorld getWorld(long seed) {
|
||||||
|
TerraWorld world = worldMap.get(seed);
|
||||||
|
if(world == null) throw new IllegalArgumentException("No world exists with seed " + seed);
|
||||||
|
return world;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Logger logger() {
|
public Logger logger() {
|
||||||
return logger;
|
return logger;
|
||||||
@ -242,10 +248,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Biome createBiome(BiomeBuilder biome) {
|
private Biome createBiome(BiomeBuilder biome) {
|
||||||
SpawnSettings.Builder spawnSettings = new SpawnSettings.Builder();
|
|
||||||
DefaultBiomeFeatures.addFarmAnimals(spawnSettings);
|
|
||||||
DefaultBiomeFeatures.addMonsters(spawnSettings, 95, 5, 100);
|
|
||||||
|
|
||||||
BiomeTemplate template = biome.getTemplate();
|
BiomeTemplate template = biome.getTemplate();
|
||||||
Map<String, Integer> colors = template.getColors();
|
Map<String, Integer> colors = template.getColors();
|
||||||
|
|
||||||
@ -283,7 +285,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
.temperature(vanilla.getTemperature())
|
.temperature(vanilla.getTemperature())
|
||||||
.downfall(vanilla.getDownfall())
|
.downfall(vanilla.getDownfall())
|
||||||
.effects(effects.build())
|
.effects(effects.build())
|
||||||
.spawnSettings(spawnSettings.build())
|
.spawnSettings(vanilla.getSpawnSettings())
|
||||||
.generationSettings(generationSettings.build())
|
.generationSettings(generationSettings.build())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,9 @@ import com.dfsek.terra.config.pack.ConfigPack;
|
|||||||
import com.dfsek.terra.fabric.TerraFabricPlugin;
|
import com.dfsek.terra.fabric.TerraFabricPlugin;
|
||||||
import com.dfsek.terra.fabric.world.TerraBiomeSource;
|
import com.dfsek.terra.fabric.world.TerraBiomeSource;
|
||||||
import com.dfsek.terra.fabric.world.handles.world.FabricSeededWorldAccess;
|
import com.dfsek.terra.fabric.world.handles.world.FabricSeededWorldAccess;
|
||||||
|
import com.dfsek.terra.world.TerraWorld;
|
||||||
import com.dfsek.terra.world.generation.generators.DefaultChunkGenerator3D;
|
import com.dfsek.terra.world.generation.generators.DefaultChunkGenerator3D;
|
||||||
|
import com.dfsek.terra.world.generation.math.samplers.Sampler;
|
||||||
import com.dfsek.terra.world.population.CavePopulator;
|
import com.dfsek.terra.world.population.CavePopulator;
|
||||||
import com.dfsek.terra.world.population.FloraPopulator;
|
import com.dfsek.terra.world.population.FloraPopulator;
|
||||||
import com.dfsek.terra.world.population.OrePopulator;
|
import com.dfsek.terra.world.population.OrePopulator;
|
||||||
@ -15,6 +17,7 @@ import com.dfsek.terra.world.population.StructurePopulator;
|
|||||||
import com.dfsek.terra.world.population.TreePopulator;
|
import com.dfsek.terra.world.population.TreePopulator;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
|
import net.jafama.FastMath;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.structure.StructureManager;
|
import net.minecraft.structure.StructureManager;
|
||||||
@ -107,7 +110,18 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getHeight(int x, int z, Heightmap.Type heightmapType) {
|
public int getHeight(int x, int z, Heightmap.Type heightmapType) {
|
||||||
return 0;
|
TerraWorld world = TerraFabricPlugin.getInstance().getWorld(seed);
|
||||||
|
Sampler sampler = world.getConfig().getSamplerCache().getChunk(FastMath.floorDiv(x, 16), FastMath.floorDiv(z, 16));
|
||||||
|
int cx = FastMath.floorMod(x, 16);
|
||||||
|
int cz = FastMath.floorMod(z, 16);
|
||||||
|
|
||||||
|
int height = world.getWorld().getMaxHeight();
|
||||||
|
|
||||||
|
while (height >= 0 && sampler.sample(cx, height - 1, cz) < 0) {
|
||||||
|
height--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user