mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-12 10:46:25 +00:00
dont implement LoaderHolder in TerraPlugin
This commit is contained in:
@@ -19,6 +19,7 @@ import com.dfsek.terra.api.addon.annotations.Addon;
|
||||
import com.dfsek.terra.api.addon.annotations.Author;
|
||||
import com.dfsek.terra.api.addon.annotations.Version;
|
||||
import com.dfsek.terra.api.event.EventListener;
|
||||
import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent;
|
||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||
import com.dfsek.terra.api.util.seeded.SourceSeeded;
|
||||
@@ -34,7 +35,11 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.applyLoader(SourceSeeded.class, new SourceBuilderLoader())
|
||||
main.getEventManager().registerListener(this, this);
|
||||
}
|
||||
|
||||
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
||||
event.getPack().applyLoader(SourceSeeded.class, new SourceBuilderLoader())
|
||||
.applyLoader(StageSeeded.class, new StageBuilderLoader())
|
||||
.applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o))
|
||||
.applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o))
|
||||
|
||||
@@ -22,11 +22,11 @@ public class BiomeConfigAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.getEventManager().registerListener(this, this);
|
||||
main.applyLoader(PaletteHolder.class, new PaletteHolderLoader())
|
||||
.applyLoader(SlantHolder.class, (t, o, l) -> null);
|
||||
}
|
||||
|
||||
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
||||
event.getPack().registerConfigType(new BiomeConfigType(event.getPack()), "BIOME", 5);
|
||||
event.getPack().applyLoader(PaletteHolder.class, new PaletteHolderLoader())
|
||||
.applyLoader(SlantHolder.class, (t, o, l) -> null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,13 +34,13 @@ public class FloraAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.getEventManager().registerListener(this, this);
|
||||
main.applyLoader(FloraLayer.class, FloraLayerLoader::new)
|
||||
.applyLoader(BlockLayer.class, BlockLayerTemplate::new);
|
||||
}
|
||||
|
||||
public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException {
|
||||
event.getPack().registerConfigType(new FloraConfigType(event.getPack()), "FLORA", 2);
|
||||
event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("FLORA", pack -> new FloraPopulator(main, this));
|
||||
event.getPack().applyLoader(FloraLayer.class, FloraLayerLoader::new)
|
||||
.applyLoader(BlockLayer.class, BlockLayerTemplate::new);
|
||||
}
|
||||
|
||||
public void onBiomeLoad(ConfigLoadEvent event) {
|
||||
|
||||
@@ -51,7 +51,13 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
plugin.getEventManager().registerListener(this, this);
|
||||
plugin.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
||||
}
|
||||
|
||||
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
||||
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class);
|
||||
event.getPack()
|
||||
.applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry))
|
||||
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
||||
.applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new)
|
||||
.applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new)
|
||||
.applyLoader(NormalNormalizerTemplate.class, NormalNormalizerTemplate::new)
|
||||
@@ -59,47 +65,40 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
||||
.applyLoader(ClampNormalizerTemplate.class, ClampNormalizerTemplate::new)
|
||||
.applyLoader(CellularSampler.ReturnType.class, (t, object, cf) -> CellularSampler.ReturnType.valueOf((String) object))
|
||||
.applyLoader(CellularSampler.DistanceFunction.class, (t, object, cf) -> CellularSampler.DistanceFunction.valueOf((String) object));
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
||||
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class);
|
||||
event.getPack()
|
||||
.applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry));
|
||||
noiseRegistry.register("LINEAR", LinearNormalizerTemplate::new);
|
||||
noiseRegistry.register("NORMAL", NormalNormalizerTemplate::new);
|
||||
noiseRegistry.register("CLAMP", ClampNormalizerTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("LINEAR", LinearNormalizerTemplate::new);
|
||||
noiseRegistry.registerUnchecked("NORMAL", NormalNormalizerTemplate::new);
|
||||
noiseRegistry.registerUnchecked("CLAMP", ClampNormalizerTemplate::new);
|
||||
noiseRegistry.register("IMAGE", ImageSamplerTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("IMAGE", ImageSamplerTemplate::new);
|
||||
noiseRegistry.register("DOMAINWARP", DomainWarpTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("DOMAINWARP", DomainWarpTemplate::new);
|
||||
noiseRegistry.register("FBM", BrownianMotionTemplate::new);
|
||||
noiseRegistry.register("PINGPONG", PingPongTemplate::new);
|
||||
noiseRegistry.register("RIDGED", RidgedFractalTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("FBM", BrownianMotionTemplate::new);
|
||||
noiseRegistry.registerUnchecked("PINGPONG", PingPongTemplate::new);
|
||||
noiseRegistry.registerUnchecked("RIDGED", RidgedFractalTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
|
||||
noiseRegistry.registerUnchecked("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
|
||||
noiseRegistry.registerUnchecked("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new));
|
||||
noiseRegistry.registerUnchecked("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new));
|
||||
noiseRegistry.registerUnchecked("GABOR", GaborNoiseTemplate::new);
|
||||
noiseRegistry.register("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
|
||||
noiseRegistry.register("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
|
||||
noiseRegistry.register("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new));
|
||||
noiseRegistry.register("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new));
|
||||
noiseRegistry.register("GABOR", GaborNoiseTemplate::new);
|
||||
|
||||
|
||||
noiseRegistry.registerUnchecked("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new));
|
||||
noiseRegistry.registerUnchecked("VALUECUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
|
||||
noiseRegistry.register("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new));
|
||||
noiseRegistry.register("VALUECUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
|
||||
|
||||
noiseRegistry.registerUnchecked("CELLULAR", CellularNoiseTemplate::new);
|
||||
noiseRegistry.register("CELLULAR", CellularNoiseTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("WHITENOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
|
||||
noiseRegistry.registerUnchecked("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
|
||||
noiseRegistry.register("WHITENOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
|
||||
noiseRegistry.register("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
|
||||
|
||||
noiseRegistry.registerUnchecked("CONSTANT", ConstantNoiseTemplate::new);
|
||||
noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new);
|
||||
|
||||
noiseRegistry.registerUnchecked("KERNEL", KernelTemplate::new);
|
||||
noiseRegistry.register("KERNEL", KernelTemplate::new);
|
||||
|
||||
Map<String, NoiseSeeded> packFunctions = new HashMap<>();
|
||||
noiseRegistry.registerUnchecked("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions));
|
||||
noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions));
|
||||
|
||||
|
||||
try {
|
||||
|
||||
@@ -21,10 +21,10 @@ public class PaletteAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.getEventManager().registerListener(this, this);
|
||||
main.applyLoader(PaletteLayerHolder.class, new PaletteLayerLoader());
|
||||
}
|
||||
|
||||
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
||||
event.getPack().registerConfigType(new PaletteConfigType(event.getPack(), main), "PALETTE", 2);
|
||||
event.getPack().applyLoader(PaletteLayerHolder.class, new PaletteLayerLoader());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,9 @@ public class StructureAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.getEventManager().registerListener(this, this);
|
||||
main.applyLoader(ConfiguredStructure.class, (t, o, l) -> null);
|
||||
}
|
||||
|
||||
public void onConfigLoad(ConfigPackPreLoadEvent event) {
|
||||
|
||||
event.getPack().applyLoader(ConfiguredStructure.class, (t, o, l) -> null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,12 +33,12 @@ public class TreeAddon extends TerraAddon implements EventListener {
|
||||
@Override
|
||||
public void initialize() {
|
||||
main.getEventManager().registerListener(this, this);
|
||||
main.applyLoader(TreeLayer.class, TreeLayerTemplate::new);
|
||||
}
|
||||
|
||||
public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException {
|
||||
event.getPack().registerConfigType(new TreeConfigType(event.getPack()), "TREE", 2);
|
||||
event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("TREE", pack -> new TreePopulator(main, this));
|
||||
event.getPack().applyLoader(TreeLayer.class, TreeLayerTemplate::new);
|
||||
}
|
||||
|
||||
public void onBiomeLoad(ConfigLoadEvent event) {
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.jar.JarFile;
|
||||
/**
|
||||
* Represents a Terra mod/plugin instance.
|
||||
*/
|
||||
public interface TerraPlugin extends LoaderRegistrar, LoaderHolder {
|
||||
public interface TerraPlugin extends LoaderRegistrar {
|
||||
WorldHandle getWorldHandle();
|
||||
|
||||
TerraWorld getWorld(World world);
|
||||
|
||||
@@ -232,17 +232,17 @@ public class ConfigPackImpl implements ConfigPack {
|
||||
|
||||
List<Configuration> configurations = new ArrayList<>();
|
||||
|
||||
main.getEventManager().callEvent(new ConfigurationLoadEvent(this, loader, configurations::add));
|
||||
main.getEventManager().callEvent(new ConfigurationLoadEvent(this, loader, configurations::add)); // Create all the configs.
|
||||
|
||||
Map<ConfigType<? extends ConfigTemplate, ?>, List<Configuration>> configs = new HashMap<>();
|
||||
|
||||
for(Configuration configuration : configurations) {
|
||||
for(Configuration configuration : configurations) { // Sort the configs
|
||||
ProtoConfig config = new ProtoConfig();
|
||||
selfLoader.load(config, configuration);
|
||||
configs.computeIfAbsent(config.getType(), configType -> new ArrayList<>()).add(configuration);
|
||||
}
|
||||
|
||||
for(ConfigType<?, ?> configType : configTypeRegistry.entries()) {
|
||||
for(ConfigType<?, ?> configType : configTypeRegistry.entries()) { // Load the configs
|
||||
CheckedRegistry registry = getCheckedRegistry(configType.getTypeClass());
|
||||
for(AbstractConfiguration config : abstractConfigLoader.loadConfigs(configs.getOrDefault(configType, Collections.emptyList()))) {
|
||||
try {
|
||||
|
||||
@@ -91,9 +91,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
private static TerraFabricPlugin instance;
|
||||
private final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger();
|
||||
private final Map<DimensionType, Pair<ServerWorld, TerraWorld>> worldMap = new HashMap<>();
|
||||
|
||||
private final Map<Type, TypeLoader<?>> loaders = new HashMap<>();
|
||||
private final Map<Type, Supplier<ObjectTemplate<?>>> objectLoaders = new HashMap<>();
|
||||
private final EventManager eventManager = new EventManagerImpl(this);
|
||||
private final GenericLoaders genericLoaders = new GenericLoaders(this);
|
||||
private final Profiler profiler = new ProfilerImpl();
|
||||
@@ -243,8 +240,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
if(identifier == null) throw new LoadException("Invalid identifier: " + o);
|
||||
return identifier;
|
||||
});
|
||||
loaders.forEach(registry::registerLoader);
|
||||
objectLoaders.forEach((t, l) -> registry.registerLoader(t, (Supplier<ObjectTemplate<Object>>) ((Object) l)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -293,19 +288,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
return profiler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> TerraFabricPlugin applyLoader(Type type, TypeLoader<T> loader) {
|
||||
loaders.put(type, loader);
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> TerraFabricPlugin applyLoader(Type type, Supplier<ObjectTemplate<T>> loader) {
|
||||
objectLoaders.put(type, (Supplier<ObjectTemplate<?>>) ((Object) loader));
|
||||
return this;
|
||||
}
|
||||
|
||||
@Addon("Terra-Fabric")
|
||||
@Author("Terra")
|
||||
@Version("1.0.0")
|
||||
|
||||
@@ -161,14 +161,4 @@ public class StandalonePlugin implements TerraPlugin {
|
||||
public Profiler getProfiler() {
|
||||
return profiler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LoaderHolder applyLoader(Type type, TypeLoader<T> loader) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LoaderHolder applyLoader(Type type, Supplier<ObjectTemplate<T>> loader) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user