Configurable resource pack activation types

This commit is contained in:
SD 2021-03-29 22:37:09 +05:30
parent 4e0c63628a
commit debdf5fd53
2 changed files with 35 additions and 3 deletions

View file

@ -117,9 +117,8 @@ public class DimensionalDoorsInitializer implements ModInitializer {
ModCriteria.init();
ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(PocketLoader.getInstance());
// TODO: make ResourcePackActivationType configurable, intended for modpack creators
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED);
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED);
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().defaultPocketsResourcePackActivationType.asResourcePackActivationType());
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().classicPocketsResourcePackActivationType.asResourcePackActivationType());
registerListeners();
apiSubscribers.forEach(DimensionalDoorsApi::postInitialize);

View file

@ -10,12 +10,20 @@ import java.util.List;
import blue.endless.jankson.Jankson;
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Category;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.EnumHandler;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.RequiresRestart;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.Tooltip;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.TransitiveObject;
import me.sargunvohra.mcmods.autoconfig1u.serializer.ConfigSerializer;
import me.sargunvohra.mcmods.autoconfig1u.util.Utils;
import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.fabric.api.resource.ResourcePackActivationType;
import static me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.EnumHandler.EnumDisplayOption.*;
@SuppressWarnings("FieldMayBeFinal")
@Config(name = "dimdoors")
@ -88,6 +96,8 @@ public final class ModConfig implements ConfigData {
@Tooltip public int publicPocketSize = 1;
@Tooltip public String defaultWeightEquation = "5";
@Tooltip public int fallbackWeight = 5;
@Tooltip @EnumHandler(option = BUTTON) public ExtendedResourcePackActivationType classicPocketsResourcePackActivationType = ExtendedResourcePackActivationType.DEFAULT_ENABLED;
@Tooltip @EnumHandler(option = BUTTON) public ExtendedResourcePackActivationType defaultPocketsResourcePackActivationType = ExtendedResourcePackActivationType.DEFAULT_ENABLED;
}
public static class World {
@ -123,6 +133,29 @@ public final class ModConfig implements ConfigData {
@Tooltip public double riftJitter = 1;
}
public enum ExtendedResourcePackActivationType implements SelectionListEntry.Translatable {
NORMAL(ResourcePackActivationType.NORMAL, "resourcePackActivationType.normal"),
DEFAULT_ENABLED(ResourcePackActivationType.DEFAULT_ENABLED, "resourcePackActivationType.defaultEnabled"),
ALWAYS_ENABLED(ResourcePackActivationType.ALWAYS_ENABLED, "resourcePackActivationType.alwaysEnabled");
private final ResourcePackActivationType resourcePackActivationType;
private final String translationKey;
ExtendedResourcePackActivationType(ResourcePackActivationType resourcePackActivationType, String translationKey) {
this.resourcePackActivationType = resourcePackActivationType;
this.translationKey = translationKey;
}
public ResourcePackActivationType asResourcePackActivationType() {
return resourcePackActivationType;
}
@Override
public @NotNull String getKey() {
return translationKey;
}
}
public static class SubRootJanksonConfigSerializer<T extends ConfigData> implements ConfigSerializer<T> {
private static final Jankson JANKSON = Jankson.builder().build();
private final Config definition;