load platform addons

This commit is contained in:
dfsek 2021-11-17 18:00:23 -07:00
parent 8fc3977236
commit 46b918f9be
3 changed files with 27 additions and 4 deletions

View File

@ -118,6 +118,10 @@ public abstract class AbstractPlatform implements Platform {
return eventManager; return eventManager;
} }
protected Optional<BaseAddon> platformAddon() {
return Optional.empty();
}
@Override @Override
public Profiler getProfiler() { public Profiler getProfiler() {
return profiler; return profiler;
@ -192,6 +196,11 @@ public abstract class AbstractPlatform implements Platform {
addonRegistry.register(internalAddon.getID(), internalAddon); addonRegistry.register(internalAddon.getID(), internalAddon);
platformAddon().ifPresent(baseAddon -> {
baseAddon.initialize();
addonRegistry.register(baseAddon.getID(), baseAddon);
});
BootstrapAddonLoader bootstrapAddonLoader = new BootstrapAddonLoader(this); BootstrapAddonLoader bootstrapAddonLoader = new BootstrapAddonLoader(this);
Path addonsFolder = getDataFolder().toPath().resolve("addons"); Path addonsFolder = getDataFolder().toPath().resolve("addons");

View File

@ -1,6 +1,9 @@
package com.dfsek.terra.fabric; package com.dfsek.terra.fabric;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.addon.BaseAddon;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
@ -29,10 +32,7 @@ import com.dfsek.terra.fabric.event.BiomeRegistrationEvent;
import com.dfsek.terra.fabric.util.FabricUtil; import com.dfsek.terra.fabric.util.FabricUtil;
@Addon("terra-fabric") public final class FabricAddon implements BaseAddon {
@Author("Terra")
@Version("1.0.0")
public final class FabricAddon extends TerraAddon {
private final PlatformImpl terraFabricPlugin; private final PlatformImpl terraFabricPlugin;
private final Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> templates = new HashMap<>(); private final Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> templates = new HashMap<>();
@ -118,4 +118,9 @@ public final class FabricAddon extends TerraAddon {
public Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> getTemplates() { public Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> getTemplates() {
return templates; return templates;
} }
@Override
public String getID() {
return "terra-fabric";
}
} }

View File

@ -2,6 +2,9 @@ package com.dfsek.terra.fabric;
import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.api.addon.BaseAddon;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
@ -10,6 +13,7 @@ import org.apache.logging.log4j.LogManager;
import java.io.File; import java.io.File;
import java.util.HashSet; import java.util.HashSet;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import com.dfsek.terra.AbstractPlatform; import com.dfsek.terra.AbstractPlatform;
@ -54,6 +58,11 @@ public class PlatformImpl extends AbstractPlatform {
return succeed; return succeed;
} }
@Override
protected Optional<BaseAddon> platformAddon() {
return Optional.of(new FabricAddon(this));
}
@Override @Override
public String platformName() { public String platformName() {
return "Fabric"; return "Fabric";