mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-07 08:16:05 +00:00
addon initialization
This commit is contained in:
Submodule common/addons/api-addon-loader updated: 6e250ed495...bcea245c21
Submodule common/addons/biome-provider-image updated: 8df4f9176e...9e0444d5c4
Submodule common/addons/biome-provider-pipeline updated: 5892c95ccb...21316418da
Submodule common/addons/biome-provider-single updated: da104d0a65...fe5a6f5ec0
Submodule common/addons/chunk-generator-noise-3d updated: 0e06524911...6dd30020de
Submodule common/addons/config-biome updated: b0256d2f5f...86742e212c
Submodule common/addons/config-carver updated: e61fa64bf8...5e7d8084de
Submodule common/addons/config-distributors updated: ad2e4f20e8...63f9078601
Submodule common/addons/config-flora updated: b097f3e270...0fe48c6d7b
Submodule common/addons/config-locators updated: 2249b8cab4...9aca4dad90
Submodule common/addons/config-noise-function updated: 3fd6b1cbdb...2d8de2687e
Submodule common/addons/config-ore updated: 56ff75af0d...0b6991033d
Submodule common/addons/config-palette updated: 51013ccc55...46fd70e971
Submodule common/addons/config-structure updated: 9059b861e7...0ca3c86b4d
Submodule common/addons/generation-stage-feature updated: 3070a11d76...0d359ca0af
Submodule common/addons/language-yaml updated: 032c1b45dd...1a34bf0bcb
Submodule common/addons/manifest-addon-loader updated: 31456bf9cd...7ef78d5d79
Submodule common/addons/structure-sponge-loader updated: c6f85221c0...0058c94206
Submodule common/addons/structure-terrascript-loader updated: a21413314a...4561fffc27
@@ -5,6 +5,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import ca.solostudios.strata.version.VersionRange;
|
||||
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
||||
@@ -24,7 +27,7 @@ public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolde
|
||||
|
||||
void registerConfigType(ConfigType<?, ?> type, String id, int priority);
|
||||
|
||||
Set<TerraAddon> addons();
|
||||
Map<BaseAddon, VersionRange> addons();
|
||||
|
||||
boolean vanillaMobs();
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.dfsek.terra.config;
|
||||
|
||||
import ca.solostudios.strata.version.VersionRange;
|
||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -16,6 +17,7 @@ import com.dfsek.terra.config.loaders.LinkedHashMapLoader;
|
||||
import com.dfsek.terra.config.loaders.MaterialSetLoader;
|
||||
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
||||
import com.dfsek.terra.config.loaders.RangeLoader;
|
||||
import com.dfsek.terra.config.loaders.VersionRangeLoader;
|
||||
|
||||
|
||||
public class GenericLoaders implements LoaderRegistrar {
|
||||
@@ -30,6 +32,7 @@ public class GenericLoaders implements LoaderRegistrar {
|
||||
registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader())
|
||||
.registerLoader(Range.class, new RangeLoader())
|
||||
.registerLoader(MaterialSet.class, new MaterialSetLoader())
|
||||
.registerLoader(VersionRange.class, new VersionRangeLoader())
|
||||
.registerLoader(LinkedHashMap.class, new LinkedHashMapLoader());
|
||||
|
||||
if(platform != null) {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.dfsek.terra.config.loaders;
|
||||
|
||||
import ca.solostudios.strata.Versions;
|
||||
import ca.solostudios.strata.parser.tokenizer.ParseException;
|
||||
import ca.solostudios.strata.version.VersionRange;
|
||||
import com.dfsek.tectonic.exception.LoadException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.tectonic.loading.TypeLoader;
|
||||
|
||||
import java.lang.reflect.AnnotatedType;
|
||||
|
||||
|
||||
public class VersionRangeLoader implements TypeLoader<VersionRange> {
|
||||
@Override
|
||||
public VersionRange load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||
try {
|
||||
return Versions.parseVersionRange((String) c);
|
||||
} catch(ParseException e) {
|
||||
throw new LoadException("Failed to parse version range: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,25 @@
|
||||
package com.dfsek.terra.config.pack;
|
||||
|
||||
import ca.solostudios.strata.version.VersionRange;
|
||||
import com.dfsek.tectonic.annotations.Default;
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
|
||||
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
public class ConfigPackAddonsTemplate implements ConfigTemplate {
|
||||
@Value("addons")
|
||||
@Default
|
||||
private Set<TerraAddon> addons = new HashSet<>();
|
||||
private Map<BaseAddon, VersionRange> addons = new HashMap<>();
|
||||
|
||||
|
||||
public Set<TerraAddon> getAddons() {
|
||||
public Map<BaseAddon, VersionRange> getAddons() {
|
||||
return addons;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.dfsek.terra.config.pack;
|
||||
|
||||
import ca.solostudios.strata.version.VersionRange;
|
||||
import com.dfsek.paralithic.eval.parser.Scope;
|
||||
import com.dfsek.tectonic.abstraction.AbstractConfigLoader;
|
||||
import com.dfsek.tectonic.abstraction.AbstractConfiguration;
|
||||
@@ -34,7 +35,7 @@ import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.config.ConfigFactory;
|
||||
import com.dfsek.terra.api.config.ConfigPack;
|
||||
import com.dfsek.terra.api.config.ConfigType;
|
||||
@@ -90,7 +91,7 @@ public class ConfigPackImpl implements ConfigPack {
|
||||
|
||||
private final Configuration configuration;
|
||||
|
||||
private final Set<TerraAddon> addons;
|
||||
private final Map<BaseAddon, VersionRange> addons;
|
||||
|
||||
private final BiomeProvider seededBiomeProvider;
|
||||
|
||||
@@ -237,7 +238,7 @@ public class ConfigPackImpl implements ConfigPack {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<TerraAddon> addons() {
|
||||
public Map<BaseAddon, VersionRange> addons() {
|
||||
return addons;
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ public class FunctionalEventHandlerImpl implements FunctionalEventHandler {
|
||||
contextMap.getOrDefault(event.getClass(), Collections.emptyList()).forEach(context -> {
|
||||
try {
|
||||
if(event instanceof PackEvent) {
|
||||
if((context.isGlobal() || ((PackEvent) event).getPack().addons().contains(context.getAddon()))) {
|
||||
if((context.isGlobal() || ((PackEvent) event).getPack().addons().containsKey(context.getAddon()))) {
|
||||
((EventContextImpl<Event>) context).handle(event);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user