diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java new file mode 100644 index 000000000..cc1c79f7d --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -0,0 +1,16 @@ +package com.dfsek.terra.api.config; + +import com.dfsek.terra.api.LoaderRegistrar; +import com.dfsek.terra.api.registry.CheckedRegistry; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; + +public interface ConfigPack extends LoaderRegistrar { + @SuppressWarnings("unchecked") + CheckedRegistry getRegistry(Class clazz); + + BiomeProvider.BiomeProviderBuilder getBiomeProviderBuilder(); + + WorldConfig toWorldConfig(TerraWorld world); + + CheckedRegistry> getConfigTypeRegistry(); +} diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java b/common/implementation/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java index 3ccb98191..fc8f7bd91 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.world.BiomeGrid; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.world.generation.math.samplers.Sampler; import org.jetbrains.annotations.NotNull; @@ -27,7 +27,7 @@ public interface TerraChunkGenerator { boolean shouldGenerateStructures(); - ConfigPack getConfigPack(); + ConfigPackImpl getConfigPack(); TerraPlugin getMain(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/PacksCommand.java b/common/implementation/src/main/java/com/dfsek/terra/commands/PacksCommand.java index fc71ccad2..5b257ea06 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/PacksCommand.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/PacksCommand.java @@ -3,11 +3,11 @@ package com.dfsek.terra.commands; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Command; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.config.pack.ConfigPackTemplate; @Command( diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java b/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java index 1ea9dbeff..832bb1df8 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java @@ -10,7 +10,7 @@ import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.config.loaders.config.function.FunctionTemplate; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.world.generation.WorldGenerator; @@ -20,11 +20,11 @@ import java.util.concurrent.ConcurrentHashMap; public class UserDefinedBiomeBuilder implements BiomeBuilder { private final BiomeTemplate template; - private final ConfigPack pack; + private final ConfigPackImpl pack; private final Map biomeMap = new ConcurrentHashMap<>(); - public UserDefinedBiomeBuilder(BiomeTemplate template, ConfigPack pack) { + public UserDefinedBiomeBuilder(BiomeTemplate template, ConfigPackImpl pack) { this.template = template; this.pack = pack; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java b/common/implementation/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java index c19ea0988..267ec8bf4 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java @@ -3,13 +3,13 @@ package com.dfsek.terra.config.factories; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.config.builder.BiomeBuilder; import com.dfsek.terra.config.builder.UserDefinedBiomeBuilder; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.templates.BiomeTemplate; public class BiomeFactory implements ConfigFactory { - private final ConfigPack pack; + private final ConfigPackImpl pack; - public BiomeFactory(ConfigPack pack) { + public BiomeFactory(ConfigPackImpl pack) { this.pack = pack; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/factories/CarverFactory.java b/common/implementation/src/main/java/com/dfsek/terra/config/factories/CarverFactory.java index dc044c062..9a66fe2ff 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/factories/CarverFactory.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/factories/CarverFactory.java @@ -5,16 +5,16 @@ import com.dfsek.tectonic.exception.LoadException; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.carving.UserDefinedCarver; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.templates.CarverTemplate; import java.util.Arrays; import java.util.List; public class CarverFactory implements ConfigFactory { - private final ConfigPack pack; + private final ConfigPackImpl pack; - public CarverFactory(ConfigPack pack) { + public CarverFactory(ConfigPackImpl pack) { this.pack = pack; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java similarity index 97% rename from common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java rename to common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index ed57d3fdb..6cfca6b64 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -10,9 +10,11 @@ import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.terra.api.LoaderRegistrar; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.events.config.ConfigPackPostLoadEvent; import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; import com.dfsek.terra.api.registry.CheckedRegistry; +import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.structures.loot.LootTable; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; @@ -34,7 +36,6 @@ import com.dfsek.terra.config.loaders.config.sampler.NoiseSamplerBuilderLoader; import com.dfsek.terra.config.loaders.config.sampler.templates.ImageSamplerTemplate; import com.dfsek.terra.config.prototype.ConfigType; import com.dfsek.terra.config.prototype.ProtoConfig; -import com.dfsek.terra.registry.OpenRegistry; import com.dfsek.terra.registry.config.ConfigTypeRegistry; import com.dfsek.terra.registry.config.FunctionRegistry; import com.dfsek.terra.registry.config.LootRegistry; @@ -66,7 +67,7 @@ import java.util.zip.ZipFile; /** * Represents a Terra configuration pack. */ -public class ConfigPack implements LoaderRegistrar { +public class ConfigPackImpl implements ConfigPack { private final ConfigPackTemplate template = new ConfigPackTemplate(); private final AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader(); @@ -83,7 +84,7 @@ public class ConfigPack implements LoaderRegistrar { private final ConfigTypeRegistry configTypeRegistry; private final Map, ImmutablePair, CheckedRegistry>> registryMap = newRegistryMap(); - public ConfigPack(File folder, TerraPlugin main) throws ConfigException { + public ConfigPackImpl(File folder, TerraPlugin main) throws ConfigException { try { this.configTypeRegistry = new ConfigTypeRegistry(this, main, (id, configType) -> { OpenRegistry openRegistry = configType.registrySupplier().get(); @@ -126,7 +127,7 @@ public class ConfigPack implements LoaderRegistrar { toWorldConfig(new TerraWorld(new DummyWorld(), this, main)); // Build now to catch any errors immediately. } - public ConfigPack(ZipFile file, TerraPlugin main) throws ConfigException { + public ConfigPackImpl(ZipFile file, TerraPlugin main) throws ConfigException { try { this.configTypeRegistry = new ConfigTypeRegistry(this, main, (id, configType) -> { OpenRegistry openRegistry = configType.registrySupplier().get(); @@ -267,6 +268,7 @@ public class ConfigPack implements LoaderRegistrar { return varScope; } + @Override @SuppressWarnings("unchecked") public CheckedRegistry getRegistry(Class clazz) { return (CheckedRegistry) registryMap.getOrDefault(clazz, ImmutablePair.ofNull()).getRight(); @@ -290,15 +292,18 @@ public class ConfigPack implements LoaderRegistrar { .registerLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(getOpenRegistry(NoiseProvider.class))); } + @Override public BiomeProvider.BiomeProviderBuilder getBiomeProviderBuilder() { return biomeProviderBuilder; } + @Override public WorldConfig toWorldConfig(TerraWorld world) { return new WorldConfig(world, this, main); } + @Override public CheckedRegistry> getConfigTypeRegistry() { return new CheckedRegistry>(configTypeRegistry) { @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfig.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfig.java index 25eb3dfa3..a0c553ece 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfig.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfig.java @@ -22,11 +22,11 @@ public class WorldConfig { private final BiomeProvider provider; private final TerraWorld world; - private final ConfigPack pack; + private final ConfigPackImpl pack; private final Map, LockedRegistry> registryMap = new HashMap<>(); - public WorldConfig(TerraWorld world, ConfigPack pack, TerraPlugin main) { + public WorldConfig(TerraWorld world, ConfigPackImpl pack, TerraPlugin main) { this.world = world; this.pack = pack; this.samplerCache = new SamplerCache(main, world); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/prototype/ConfigType.java b/common/implementation/src/main/java/com/dfsek/terra/config/prototype/ConfigType.java index 4c6f66ec7..aab1bf1bc 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/prototype/ConfigType.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/prototype/ConfigType.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.prototype; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.exception.LoadException; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.registry.OpenRegistry; import java.util.function.Supplier; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java index ea91e851a..0cf46b1c2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java @@ -9,6 +9,7 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ValidatedConfigTemplate; import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.api.math.paralithic.BlankFunction; @@ -24,7 +25,7 @@ import com.dfsek.terra.api.world.palette.holder.PaletteHolder; import com.dfsek.terra.api.world.palette.slant.SlantHolder; import com.dfsek.terra.carving.UserDefinedCarver; import com.dfsek.terra.config.loaders.config.function.FunctionTemplate; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.world.population.items.TerraStructure; import com.dfsek.terra.world.population.items.flora.FloraLayer; import com.dfsek.terra.world.population.items.ores.OreHolder; @@ -40,7 +41,7 @@ import java.util.Set; @SuppressWarnings({"FieldMayBeFinal", "unused"}) public class BiomeTemplate extends AbstractableTemplate implements ValidatedConfigTemplate { - private final ConfigPack pack; + private final ConfigPackImpl pack; @Value("id") private String id; @@ -242,7 +243,7 @@ public class BiomeTemplate extends AbstractableTemplate implements ValidatedConf return doSlabs; } - public BiomeTemplate(ConfigPack pack, TerraPlugin main) { + public BiomeTemplate(ConfigPackImpl pack, TerraPlugin main) { this.pack = pack; biomeNoise = new NoiseSeeded() { @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java index a2e53ff84..eeae11d8d 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java @@ -3,6 +3,7 @@ package com.dfsek.terra.registry.config; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.exception.LoadException; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.world.Tree; import com.dfsek.terra.api.world.Flora; import com.dfsek.terra.api.world.palette.Palette; @@ -16,7 +17,7 @@ import com.dfsek.terra.config.factories.OreFactory; import com.dfsek.terra.config.factories.PaletteFactory; import com.dfsek.terra.config.factories.StructureFactory; import com.dfsek.terra.config.factories.TreeFactory; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.prototype.ConfigType; import com.dfsek.terra.config.templates.AbstractableTemplate; import com.dfsek.terra.config.templates.BiomeTemplate; @@ -37,7 +38,7 @@ import java.util.function.Supplier; public class ConfigTypeRegistry extends OpenRegistry> { private final BiConsumer> callback; - public ConfigTypeRegistry(ConfigPack pack, TerraPlugin main, BiConsumer> callback) { + public ConfigTypeRegistry(ConfigPackImpl pack, TerraPlugin main, BiConsumer> callback) { super(new LinkedHashMap<>()); // Ordered this.callback = callback; add("PALETTE", new ConfigBuilder<>(new PaletteFactory(), PaletteTemplate::new, Palette.class, () -> new PaletteRegistry(main))); @@ -71,7 +72,7 @@ public class ConfigTypeRegistry extends OpenRegistry> { @Override public Class getTypeClass() { - return ConfigPack.class; + return ConfigPackImpl.class; } @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java index c756a2b2b..2667193f5 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java @@ -2,7 +2,7 @@ package com.dfsek.terra.registry.master; import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.registry.OpenRegistry; import java.io.File; @@ -12,9 +12,9 @@ import java.util.zip.ZipFile; /** * Class to hold config packs */ -public class ConfigRegistry extends OpenRegistry { +public class ConfigRegistry extends OpenRegistry { public void load(File folder, TerraPlugin main) throws ConfigException { - ConfigPack pack = new ConfigPack(folder, main); + ConfigPackImpl pack = new ConfigPackImpl(folder, main); add(pack.getTemplate().getID(), pack); } @@ -43,7 +43,7 @@ public class ConfigRegistry extends OpenRegistry { } public void load(ZipFile file, TerraPlugin main) throws ConfigException { - ConfigPack pack = new ConfigPack(file, main); + ConfigPackImpl pack = new ConfigPackImpl(file, main); add(pack.getTemplate().getID(), pack); } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorld.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorld.java index c50065af0..9332b578d 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorld.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.palette.Palette; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.pack.WorldConfig; import com.dfsek.terra.world.generation.math.samplers.Sampler; import net.jafama.FastMath; @@ -22,7 +22,7 @@ public class TerraWorld { private final BlockData air; - public TerraWorld(World w, ConfigPack c, TerraPlugin main) { + public TerraWorld(World w, ConfigPackImpl c, TerraPlugin main) { if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); this.world = w; config = c.toWorldConfig(this); diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java index ea1cd3ee7..b82ac6781 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java @@ -13,7 +13,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generation.TerraBlockPopulator; import com.dfsek.terra.api.world.generation.TerraChunkGenerator; import com.dfsek.terra.api.world.palette.Palette; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.world.Carver; @@ -34,7 +34,7 @@ import java.util.List; import java.util.Random; public class DefaultChunkGenerator2D implements TerraChunkGenerator { - private final ConfigPack configPack; + private final ConfigPackImpl configPack; private final TerraPlugin main; private final Carver carver; @@ -42,7 +42,7 @@ public class DefaultChunkGenerator2D implements TerraChunkGenerator { private final SamplerCache cache; - public DefaultChunkGenerator2D(ConfigPack c, TerraPlugin main, SamplerCache cache) { + public DefaultChunkGenerator2D(ConfigPackImpl c, TerraPlugin main, SamplerCache cache) { this.configPack = c; this.main = main; blockPopulators.add(new CavePopulator(main)); @@ -80,7 +80,7 @@ public class DefaultChunkGenerator2D implements TerraChunkGenerator { } @Override - public ConfigPack getConfigPack() { + public ConfigPackImpl getConfigPack() { return configPack; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java index f77582606..2f19be0e4 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java @@ -3,6 +3,7 @@ package com.dfsek.terra.world.generation.generators; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.math.range.ConstantRange; import com.dfsek.terra.api.vector.Vector3; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.vector.Vector3Impl; import com.dfsek.terra.api.block.BlockData; import com.dfsek.terra.api.block.BlockFace; @@ -22,7 +23,6 @@ import com.dfsek.terra.api.world.generation.TerraBlockPopulator; import com.dfsek.terra.api.world.generation.TerraChunkGenerator; import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.SinglePalette; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.world.Carver; @@ -43,7 +43,7 @@ import java.util.Map; import java.util.Random; public class DefaultChunkGenerator3D implements TerraChunkGenerator { - private final ConfigPack configPack; + private final ConfigPackImpl configPack; private final TerraPlugin main; private final BlockType water; private final SinglePalette blank; @@ -51,7 +51,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator { private final Carver carver; - public DefaultChunkGenerator3D(ConfigPack c, TerraPlugin main) { + public DefaultChunkGenerator3D(ConfigPackImpl c, TerraPlugin main) { this.configPack = c; this.main = main; @@ -92,7 +92,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator { } @Override - public ConfigPack getConfigPack() { + public ConfigPackImpl getConfigPack() { return configPack; } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index dcda5c306..2b4a6065f 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -9,6 +9,7 @@ import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.command.CommandManager; import com.dfsek.terra.api.command.TerraCommandManager; import com.dfsek.terra.api.command.exception.MalformedCommandException; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.block.BlockData; @@ -40,7 +41,6 @@ import com.dfsek.terra.config.GenericLoaders; import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.lang.LangUtil; import com.dfsek.terra.config.lang.Language; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.profiler.ProfilerImpl; import com.dfsek.terra.registry.master.AddonRegistry; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java index 6e16df083..f8dfcf8da 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java @@ -11,6 +11,7 @@ import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.command.CommandManager; import com.dfsek.terra.api.command.TerraCommandManager; import com.dfsek.terra.api.command.exception.MalformedCommandException; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; @@ -36,7 +37,6 @@ import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.builder.BiomeBuilder; import com.dfsek.terra.config.lang.LangUtil; import com.dfsek.terra.config.lang.Language; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.PopulatorFeature; import com.dfsek.terra.fabric.generation.TerraBiomeSource; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index d29f2df63..1ee4aa277 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -1,5 +1,6 @@ package com.dfsek.terra.fabric.generation; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.generator.GeneratorWrapper; @@ -7,7 +8,7 @@ import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.world.generation.Chunkified; import com.dfsek.terra.api.world.generation.TerraChunkGenerator; import com.dfsek.terra.api.world.locate.AsyncStructureFinder; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.block.FabricBlockData; import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor; @@ -71,10 +72,10 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener private final DefaultChunkGenerator3D delegate; private final TerraBiomeSource biomeSource; - private final ConfigPack pack; + private final ConfigPackImpl pack; private DimensionType dimensionType; - public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) { + public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPackImpl configPack) { super(biomeSource, new StructuresConfig(false)); this.pack = configPack; @@ -96,7 +97,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack); } - public ConfigPack getPack() { + public ConfigPackImpl getPack() { return pack; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java index 040a1f473..716a59918 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java @@ -1,8 +1,9 @@ package com.dfsek.terra.fabric.generation; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.util.FabricUtil; import com.mojang.serialization.Codec; @@ -29,9 +30,9 @@ public class TerraBiomeSource extends BiomeSource { private final Registry biomeRegistry; private final long seed; private final BiomeProvider grid; - private final ConfigPack pack; + private final ConfigPackImpl pack; - public TerraBiomeSource(Registry biomes, long seed, ConfigPack pack) { + public TerraBiomeSource(Registry biomes, long seed, ConfigPackImpl pack) { super(biomes.stream() .filter(biome -> Objects.requireNonNull(biomes.getId(biome)).getNamespace().equals("terra")) // Filter out non-Terra biomes. .collect(Collectors.toList())); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java index fb842a330..78ec90a94 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java @@ -1,13 +1,11 @@ package com.dfsek.terra.fabric.generation; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; -import com.dfsek.terra.fabric.util.FabricUtil; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.world.GeneratorType; -import net.minecraft.util.Identifier; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; @@ -17,9 +15,9 @@ import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; @Environment(EnvType.CLIENT) public class TerraGeneratorType extends GeneratorType { - private final ConfigPack pack; + private final ConfigPackImpl pack; - public TerraGeneratorType(ConfigPack pack) { + public TerraGeneratorType(ConfigPackImpl pack) { super("terra." + pack.getTemplate().getID()); this.pack = pack; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java index c665bb3c4..6ad5efd51 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java @@ -1,13 +1,11 @@ package com.dfsek.terra.fabric.mixin.lifecycle.server; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; -import com.dfsek.terra.fabric.util.FabricUtil; import com.google.common.base.MoreObjects; -import net.minecraft.util.Identifier; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.SimpleRegistry; @@ -58,7 +56,7 @@ public abstract class GeneratorOptionsMixin { prop = prop.substring(prop.indexOf(":") + 1); - ConfigPack config = main.getConfigRegistry().get(prop); + ConfigPackImpl config = main.getConfigRegistry().get(prop); if(config == null) throw new IllegalArgumentException("No such pack " + prop); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java index eb6bdee7d..1b523b01d 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java @@ -2,7 +2,7 @@ package com.dfsek.terra.fabric.util; import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.config.builder.BiomeBuilder; -import com.dfsek.terra.config.pack.ConfigPack; +import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.config.PostLoadCompatibilityOptions; @@ -29,7 +29,7 @@ import java.util.Map; import java.util.function.Supplier; public final class FabricUtil { - public static String createBiomeID(ConfigPack pack, String biomeID) { + public static String createBiomeID(ConfigPackImpl pack, String biomeID) { return pack.getTemplate().getID().toLowerCase() + "/" + biomeID.toLowerCase(Locale.ROOT); } @@ -40,7 +40,7 @@ public final class FabricUtil { * @param pack The ConfigPack this biome belongs to. * @return The Minecraft delegate biome. */ - public static Biome createBiome(BiomeBuilder biome, ConfigPack pack, DynamicRegistryManager registryManager) { + public static Biome createBiome(BiomeBuilder biome, ConfigPackImpl pack, DynamicRegistryManager registryManager) { BiomeTemplate template = biome.getTemplate(); Map colors = template.getColors(); diff --git a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java index b61ea24a0..9809fd804 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java +++ b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java @@ -3,6 +3,7 @@ package com.dfsek.terra; import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.block.BlockData; @@ -18,7 +19,6 @@ import com.dfsek.terra.config.GenericLoaders; import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.lang.LangUtil; import com.dfsek.terra.config.lang.Language; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.platform.RawBiome; import com.dfsek.terra.platform.RawWorldHandle; import com.dfsek.terra.api.profiler.Profiler; diff --git a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java index 2fad02b1e..710896d74 100644 --- a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java +++ b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java @@ -3,6 +3,7 @@ package com.dfsek.terra.sponge; import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.handle.ItemHandle; @@ -13,7 +14,6 @@ import com.dfsek.terra.api.registry.LockedRegistry; import com.dfsek.terra.api.util.logging.DebugLogger; import com.dfsek.terra.config.PluginConfig; import com.dfsek.terra.config.lang.Language; -import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.registry.master.AddonRegistry; import com.dfsek.terra.registry.master.ConfigRegistry;