mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 14:00:14 +00:00
Add BIOME: identifier to BiomeGridRegistry
This commit is contained in:
1 parent
86088d1dcd
commit
8e49f7ec26
7 files changed
+51
-24
No files matched your search
@@ -1,13 +1,11 @@
|
|||||||
package com.dfsek.terra;
|
package com.dfsek.terra;
|
||||||
|
|
||||||
import com.dfsek.terra.biome.BiomeZone;
|
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.biome.grid.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
import com.dfsek.terra.config.base.ConfigPackTemplate;
|
import com.dfsek.terra.config.base.ConfigPackTemplate;
|
||||||
import com.dfsek.terra.config.base.WorldConfig;
|
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 com.dfsek.terra.generation.TerraChunkGenerator;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@@ -39,14 +37,8 @@ public class TerraWorld {
|
|||||||
for(int i = 0; i < zoneSize; i++) {
|
for(int i = 0; i < zoneSize; i++) {
|
||||||
String partName = template.getGrids().get(i);
|
String partName = template.getGrids().get(i);
|
||||||
try {
|
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);
|
BiomeGridBuilder g = config.getBiomeGrid(partName);
|
||||||
definedGrids[i] = g.build(w, worldConfig);
|
definedGrids[i] = g.build(w, worldConfig);
|
||||||
}
|
|
||||||
} catch(NullPointerException e) {
|
} catch(NullPointerException e) {
|
||||||
safe = false;
|
safe = false;
|
||||||
Debug.stack(e);
|
Debug.stack(e);
|
||||||
@@ -60,14 +52,8 @@ public class TerraWorld {
|
|||||||
String erosionName = template.getErodeGrid();
|
String erosionName = template.getErodeGrid();
|
||||||
if(template.isErode()) {
|
if(template.isErode()) {
|
||||||
try {
|
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));
|
BiomeGridBuilder g = Objects.requireNonNull(config.getBiomeGrid(erosionName));
|
||||||
erosion = g.build(w, worldConfig);
|
erosion = g.build(w, worldConfig);
|
||||||
}
|
|
||||||
} catch(NullPointerException e) {
|
} catch(NullPointerException e) {
|
||||||
safe = false;
|
safe = false;
|
||||||
Debug.stack(e);
|
Debug.stack(e);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.dfsek.tectonic.loading.ConfigLoader;
|
|||||||
import com.dfsek.terra.Debug;
|
import com.dfsek.terra.Debug;
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
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.exception.FileMissingException;
|
||||||
import com.dfsek.terra.config.factories.BiomeFactory;
|
import com.dfsek.terra.config.factories.BiomeFactory;
|
||||||
import com.dfsek.terra.config.factories.BiomeGridFactory;
|
import com.dfsek.terra.config.factories.BiomeGridFactory;
|
||||||
@@ -44,7 +44,7 @@ import java.util.logging.Level;
|
|||||||
public class ConfigPack {
|
public class ConfigPack {
|
||||||
private final ConfigPackTemplate template = new ConfigPackTemplate();
|
private final ConfigPackTemplate template = new ConfigPackTemplate();
|
||||||
private final BiomeRegistry biomeRegistry = new BiomeRegistry();
|
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 StructureRegistry structureRegistry = new StructureRegistry();
|
||||||
private final CarverRegistry carverRegistry = new CarverRegistry();
|
private final CarverRegistry carverRegistry = new CarverRegistry();
|
||||||
private final PaletteRegistry paletteRegistry = new PaletteRegistry();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-2
@@ -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.biome.grid.UserDefinedGrid;
|
||||||
import com.dfsek.terra.config.base.WorldConfig;
|
import com.dfsek.terra.config.base.WorldConfig;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.polydev.gaea.biome.Biome;
|
import org.polydev.gaea.biome.Biome;
|
||||||
|
|
||||||
public class BiomeGridBuilder {
|
public class UserDefinedGridBuilder implements BiomeGridBuilder {
|
||||||
private double xFreq;
|
private double xFreq;
|
||||||
private double zFreq;
|
private double zFreq;
|
||||||
|
|
||||||
private Biome[][] biomes;
|
private Biome[][] biomes;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UserDefinedGrid build(World world, WorldConfig config) {
|
public UserDefinedGrid build(World world, WorldConfig config) {
|
||||||
return new UserDefinedGrid(world, 1D / xFreq, 1D / zFreq, biomes, config);
|
return new UserDefinedGrid(world, 1D / xFreq, 1D / zFreq, biomes, config);
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
package com.dfsek.terra.config.factories;
|
package com.dfsek.terra.config.factories;
|
||||||
|
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
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 com.dfsek.terra.config.templates.BiomeGridTemplate;
|
||||||
import org.polydev.gaea.biome.Biome;
|
import org.polydev.gaea.biome.Biome;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class BiomeGridFactory implements TerraFactory<BiomeGridTemplate, BiomeGridBuilder> {
|
public class BiomeGridFactory implements TerraFactory<BiomeGridTemplate, UserDefinedGridBuilder> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeGridBuilder build(BiomeGridTemplate config) {
|
public UserDefinedGridBuilder build(BiomeGridTemplate config) {
|
||||||
|
|
||||||
BiomeGridBuilder holder = new BiomeGridBuilder();
|
UserDefinedGridBuilder holder = new UserDefinedGridBuilder();
|
||||||
holder.setXFreq(config.getXFreq());
|
holder.setXFreq(config.getXFreq());
|
||||||
holder.setZFreq(config.getZFreq());
|
holder.setZFreq(config.getZFreq());
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
package com.dfsek.terra.registry;
|
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> {
|
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