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(); ModCriteria.init();
ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(PocketLoader.getInstance()); ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(PocketLoader.getInstance());
// TODO: make ResourcePackActivationType configurable, intended for modpack creators ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().defaultPocketsResourcePackActivationType.asResourcePackActivationType());
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED); ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().classicPocketsResourcePackActivationType.asResourcePackActivationType());
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED);
registerListeners(); registerListeners();
apiSubscribers.forEach(DimensionalDoorsApi::postInitialize); apiSubscribers.forEach(DimensionalDoorsApi::postInitialize);

View file

@ -10,12 +10,20 @@ import java.util.List;
import blue.endless.jankson.Jankson; import blue.endless.jankson.Jankson;
import me.sargunvohra.mcmods.autoconfig1u.ConfigData; import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config; 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.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.RequiresRestart;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.Tooltip; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.Tooltip;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.TransitiveObject; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.TransitiveObject;
import me.sargunvohra.mcmods.autoconfig1u.serializer.ConfigSerializer; import me.sargunvohra.mcmods.autoconfig1u.serializer.ConfigSerializer;
import me.sargunvohra.mcmods.autoconfig1u.util.Utils; 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") @SuppressWarnings("FieldMayBeFinal")
@Config(name = "dimdoors") @Config(name = "dimdoors")
@ -88,6 +96,8 @@ public final class ModConfig implements ConfigData {
@Tooltip public int publicPocketSize = 1; @Tooltip public int publicPocketSize = 1;
@Tooltip public String defaultWeightEquation = "5"; @Tooltip public String defaultWeightEquation = "5";
@Tooltip public int fallbackWeight = 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 { public static class World {
@ -123,6 +133,29 @@ public final class ModConfig implements ConfigData {
@Tooltip public double riftJitter = 1; @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> { public static class SubRootJanksonConfigSerializer<T extends ConfigData> implements ConfigSerializer<T> {
private static final Jankson JANKSON = Jankson.builder().build(); private static final Jankson JANKSON = Jankson.builder().build();
private final Config definition; private final Config definition;