mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
Add BIOME: identifier to BiomeGridRegistry
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
package com.dfsek.terra;
|
||||
|
||||
import com.dfsek.terra.biome.BiomeZone;
|
||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||
import com.dfsek.terra.biome.grid.SingleBiomeGrid;
|
||||
import com.dfsek.terra.biome.grid.TerraBiomeGrid;
|
||||
import com.dfsek.terra.config.base.ConfigPack;
|
||||
import com.dfsek.terra.config.base.ConfigPackTemplate;
|
||||
import com.dfsek.terra.config.base.WorldConfig;
|
||||
import com.dfsek.terra.config.builder.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.builder.biomegrid.BiomeGridBuilder;
|
||||
import com.dfsek.terra.generation.TerraChunkGenerator;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
@@ -39,14 +37,8 @@ public class TerraWorld {
|
||||
for(int i = 0; i < zoneSize; i++) {
|
||||
String partName = template.getGrids().get(i);
|
||||
try {
|
||||
if(partName.startsWith("BIOME:")) {
|
||||
UserDefinedBiome b = config.getBiome(partName.substring(6));
|
||||
definedGrids[i] = new SingleBiomeGrid(w, b);
|
||||
Debug.info("Loaded single-biome grid " + partName);
|
||||
} else {
|
||||
BiomeGridBuilder g = config.getBiomeGrid(partName);
|
||||
definedGrids[i] = g.build(w, worldConfig);
|
||||
}
|
||||
BiomeGridBuilder g = config.getBiomeGrid(partName);
|
||||
definedGrids[i] = g.build(w, worldConfig);
|
||||
} catch(NullPointerException e) {
|
||||
safe = false;
|
||||
Debug.stack(e);
|
||||
@@ -60,14 +52,8 @@ public class TerraWorld {
|
||||
String erosionName = template.getErodeGrid();
|
||||
if(template.isErode()) {
|
||||
try {
|
||||
if(erosionName.startsWith("BIOME:")) {
|
||||
UserDefinedBiome b = Objects.requireNonNull(config.getBiome(erosionName.substring(6)));
|
||||
erosion = new SingleBiomeGrid(w, b);
|
||||
Debug.info("Loaded single-biome erosion grid " + erosionName);
|
||||
} else {
|
||||
BiomeGridBuilder g = Objects.requireNonNull(config.getBiomeGrid(erosionName));
|
||||
erosion = g.build(w, worldConfig);
|
||||
}
|
||||
BiomeGridBuilder g = Objects.requireNonNull(config.getBiomeGrid(erosionName));
|
||||
erosion = g.build(w, worldConfig);
|
||||
} catch(NullPointerException e) {
|
||||
safe = false;
|
||||
Debug.stack(e);
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.terra.Debug;
|
||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
||||
import com.dfsek.terra.config.builder.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.builder.biomegrid.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.exception.FileMissingException;
|
||||
import com.dfsek.terra.config.factories.BiomeFactory;
|
||||
import com.dfsek.terra.config.factories.BiomeGridFactory;
|
||||
@@ -44,7 +44,7 @@ import java.util.logging.Level;
|
||||
public class ConfigPack {
|
||||
private final ConfigPackTemplate template = new ConfigPackTemplate();
|
||||
private final BiomeRegistry biomeRegistry = new BiomeRegistry();
|
||||
private final BiomeGridRegistry biomeGridRegistry = new BiomeGridRegistry();
|
||||
private final BiomeGridRegistry biomeGridRegistry = new BiomeGridRegistry(biomeRegistry);
|
||||
private final StructureRegistry structureRegistry = new StructureRegistry();
|
||||
private final CarverRegistry carverRegistry = new CarverRegistry();
|
||||
private final PaletteRegistry paletteRegistry = new PaletteRegistry();
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.dfsek.terra.config.builder.biomegrid;
|
||||
|
||||
import com.dfsek.terra.config.base.WorldConfig;
|
||||
import org.bukkit.World;
|
||||
import org.polydev.gaea.biome.BiomeGrid;
|
||||
|
||||
public interface BiomeGridBuilder {
|
||||
BiomeGrid build(World world, WorldConfig config);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.dfsek.terra.config.builder.biomegrid;
|
||||
|
||||
import com.dfsek.terra.biome.grid.SingleBiomeGrid;
|
||||
import com.dfsek.terra.config.base.WorldConfig;
|
||||
import org.bukkit.World;
|
||||
import org.polydev.gaea.biome.Biome;
|
||||
|
||||
public class SingleGridBuilder implements BiomeGridBuilder {
|
||||
private final Biome biome;
|
||||
|
||||
public SingleGridBuilder(Biome biome) {
|
||||
this.biome = biome;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleBiomeGrid build(World world, WorldConfig config) {
|
||||
return new SingleBiomeGrid(world, biome);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,17 @@
|
||||
package com.dfsek.terra.config.builder;
|
||||
package com.dfsek.terra.config.builder.biomegrid;
|
||||
|
||||
import com.dfsek.terra.biome.grid.UserDefinedGrid;
|
||||
import com.dfsek.terra.config.base.WorldConfig;
|
||||
import org.bukkit.World;
|
||||
import org.polydev.gaea.biome.Biome;
|
||||
|
||||
public class BiomeGridBuilder {
|
||||
public class UserDefinedGridBuilder implements BiomeGridBuilder {
|
||||
private double xFreq;
|
||||
private double zFreq;
|
||||
|
||||
private Biome[][] biomes;
|
||||
|
||||
@Override
|
||||
public UserDefinedGrid build(World world, WorldConfig config) {
|
||||
return new UserDefinedGrid(world, 1D / xFreq, 1D / zFreq, biomes, config);
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.dfsek.terra.config.factories;
|
||||
|
||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||
import com.dfsek.terra.config.builder.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.builder.biomegrid.UserDefinedGridBuilder;
|
||||
import com.dfsek.terra.config.templates.BiomeGridTemplate;
|
||||
import org.polydev.gaea.biome.Biome;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BiomeGridFactory implements TerraFactory<BiomeGridTemplate, BiomeGridBuilder> {
|
||||
public class BiomeGridFactory implements TerraFactory<BiomeGridTemplate, UserDefinedGridBuilder> {
|
||||
|
||||
@Override
|
||||
public BiomeGridBuilder build(BiomeGridTemplate config) {
|
||||
public UserDefinedGridBuilder build(BiomeGridTemplate config) {
|
||||
|
||||
BiomeGridBuilder holder = new BiomeGridBuilder();
|
||||
UserDefinedGridBuilder holder = new UserDefinedGridBuilder();
|
||||
holder.setXFreq(config.getXFreq());
|
||||
holder.setZFreq(config.getZFreq());
|
||||
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
package com.dfsek.terra.registry;
|
||||
|
||||
import com.dfsek.terra.config.builder.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.builder.biomegrid.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.builder.biomegrid.SingleGridBuilder;
|
||||
|
||||
public class BiomeGridRegistry extends TerraRegistry<BiomeGridBuilder> {
|
||||
private final BiomeRegistry biomeRegistry;
|
||||
|
||||
public BiomeGridRegistry(BiomeRegistry biomeRegistry) {
|
||||
this.biomeRegistry = biomeRegistry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeGridBuilder get(String id) {
|
||||
if(id.startsWith("BIOME:")) return new SingleGridBuilder(biomeRegistry.get(id.substring(6)));
|
||||
return super.get(id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user