From 597925480847bc3e4df5e4292d5bc7d71af50b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Mon, 11 Dec 2023 14:54:27 -0700 Subject: [PATCH] wip --- .../com/dfsek/terra/api/config/MetaPack.java | 17 +++++++ .../dfsek/terra/config/pack/MetaPackImpl.java | 46 +++++++++++++++++++ .../terra/config/pack/MetaPackTemplate.java | 42 +++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/config/MetaPack.java create mode 100644 common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackImpl.java create mode 100644 common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackTemplate.java diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/MetaPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/MetaPack.java new file mode 100644 index 000000000..05f12462c --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/config/MetaPack.java @@ -0,0 +1,17 @@ +package com.dfsek.terra.api.config; + +import ca.solostudios.strata.version.Version; +import ca.solostudios.strata.version.VersionRange; + +import com.dfsek.terra.api.addon.BaseAddon; + +import java.util.Map; + + +public interface MetaPack { + Map packs(); + + String getAuthor(); + + Version getVersion(); +} diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackImpl.java new file mode 100644 index 000000000..f633b5f62 --- /dev/null +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackImpl.java @@ -0,0 +1,46 @@ +package com.dfsek.terra.config.pack; + +import ca.solostudios.strata.version.Version; + +import com.dfsek.tectonic.api.config.Configuration; +import com.dfsek.tectonic.yaml.YamlConfiguration; + +import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.Loader; +import com.dfsek.terra.api.config.MetaPack; +import com.dfsek.terra.api.util.generic.Construct; +import com.dfsek.terra.config.fileloaders.FolderLoader; +import com.dfsek.terra.config.fileloaders.ZIPLoader; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.util.Enumeration; +import java.util.Map; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + + +public class MetaPackImpl implements MetaPack { + private final Platform platform; + + private final MetaPackTemplate template = new MetaPackTemplate(); + + @Override + public String getAuthor() { + return template.getAuthor(); + } + + @Override + public Version getVersion() { + return template.getVersion(); + } + + @Override + public Map packs() { + return null; + } +} diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackTemplate.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackTemplate.java new file mode 100644 index 000000000..669c58edc --- /dev/null +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/MetaPackTemplate.java @@ -0,0 +1,42 @@ +package com.dfsek.terra.config.pack; + +import ca.solostudios.strata.version.Version; +import com.dfsek.tectonic.api.config.template.ConfigTemplate; +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; + +import com.dfsek.terra.api.config.ConfigPack; + +import java.util.Map; + + +public class MetaPackTemplate implements ConfigTemplate { + @Value("id") + private String id; + + @Value("author") + @Default + private String author = "Anon Y. Mous"; + + @Value("version") + private Version version; + + @Value("packs") + private Map packs; + + public String getID() { + return id; + } + + public String getAuthor() { + return author; + } + + public Version getVersion() { + return version; + } + + public Map getPacks() { + return packs; + } +}