From da1cf59834c7b3006b992867d6e3ac15050e0e9c Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 27 Nov 2022 20:46:27 +0000 Subject: [PATCH 1/2] YACL! --- build.gradle | 14 ++- gradle.properties | 5 +- .../net/dorianpb/cem/internal/CemInit.java | 4 +- .../dorianpb/cem/internal/api/CemModel.java | 4 +- .../cem/internal/config/CemConfig.java | 106 ++++++++++++------ .../cem/internal/config/CemConfigFairy.java | 27 ----- .../cem/internal/config/CemOptions.java | 19 ---- .../internal/config/ModMenuIntegration.java | 11 ++ .../cem/internal/models/CemArmorModel.java | 4 +- .../cem/internal/models/CemModelEntry.java | 8 +- .../cem/internal/models/CemModelRegistry.java | 4 +- .../dorianpb/cem/internal/util/CemFairy.java | 4 +- .../cem/mixins/EntityModelLoaderMixin.java | 4 +- src/main/resources/assets/cem/lang/en_us.json | 10 +- src/main/resources/assets/cem/lang/et_ee.json | 6 +- src/main/resources/assets/cem/lang/fr_fr.json | 6 +- src/main/resources/assets/cem/lang/it_it.json | 6 +- src/main/resources/assets/cem/lang/ru_ru.json | 6 +- src/main/resources/assets/cem/lang/zh_cn.json | 6 +- src/main/resources/fabric.mod.json | 3 + 20 files changed, 134 insertions(+), 123 deletions(-) delete mode 100644 src/main/java/net/dorianpb/cem/internal/config/CemConfigFairy.java delete mode 100644 src/main/java/net/dorianpb/cem/internal/config/CemOptions.java create mode 100644 src/main/java/net/dorianpb/cem/internal/config/ModMenuIntegration.java diff --git a/build.gradle b/build.gradle index 97650a0f..4fb2368a 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,10 @@ repositories { name = 'JitPack' url 'https://jitpack.io' } - + maven { + name = 'isXander' + url 'https://maven.isxander.dev/releases' + } } dependencies { @@ -33,11 +36,10 @@ dependencies { mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation "com.gitlab.Lortseam.completeconfig:base:${project.complete_config_version}" - modImplementation "com.gitlab.Lortseam.completeconfig:gui-cloth:${project.complete_config_version}" - - include "com.gitlab.Lortseam.completeconfig:base:${project.complete_config_version}" - include "com.gitlab.Lortseam.completeconfig:gui-cloth:${project.complete_config_version}" + modImplementation ("dev.isxander:yet-another-config-lib:${project.yacl_version}") { + exclude module: 'modmenu' + } + modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" } loom { diff --git a/gradle.properties b/gradle.properties index db33a92b..270f724d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,8 +11,9 @@ mod_version = 0.7.1 maven_group = net.dorianpb archives_base_name = cem -#Dependancies -complete_config_version = 2.0.0-beta.3 +# Dependencies +yacl_version = 1.7.1 +mod_menu_version = 4.0.4 # suppress inspection "UnusedProperty" org.gradle.jvmargs = -Xmx1G \ No newline at end of file diff --git a/src/main/java/net/dorianpb/cem/internal/CemInit.java b/src/main/java/net/dorianpb/cem/internal/CemInit.java index 3eb7000d..648d4a6d 100644 --- a/src/main/java/net/dorianpb/cem/internal/CemInit.java +++ b/src/main/java/net/dorianpb/cem/internal/CemInit.java @@ -1,7 +1,7 @@ package net.dorianpb.cem.internal; import net.dorianpb.cem.internal.api.CemEntityInitializer; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.util.CemFairy; import net.dorianpb.cem.mixins.BlockEntityRendererAccessor; import net.dorianpb.cem.mixins.EntityRendererAccessor; @@ -14,7 +14,7 @@ public class CemInit implements ClientModInitializer{ @Override @SuppressWarnings({"unchecked", "RedundantSuppression"}) public void onInitializeClient(){ - CemConfigFairy.loadConfig(); + CemConfig.INSTANCE.load(); FabricLoader.getInstance().getEntrypointContainers("cem", CemEntityInitializer.class).forEach((container) -> { ModMetadata provider = container.getProvider().getMetadata(); CemEntityInitializer entrypoint = container.getEntrypoint(); diff --git a/src/main/java/net/dorianpb/cem/internal/api/CemModel.java b/src/main/java/net/dorianpb/cem/internal/api/CemModel.java index 8c0b5064..3270a5e3 100644 --- a/src/main/java/net/dorianpb/cem/internal/api/CemModel.java +++ b/src/main/java/net/dorianpb/cem/internal/api/CemModel.java @@ -1,6 +1,6 @@ package net.dorianpb.cem.internal.api; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.models.CemModelEntry; import net.dorianpb.cem.internal.models.CemModelEntry.CemModelPart; import net.minecraft.client.model.ModelPart; @@ -9,7 +9,7 @@ public interface CemModel{ default void rotatePart(CemModelEntry cemModelEntry, char axis, float degrees){ CemModelPart modelPart = (cemModelEntry != null)? cemModelEntry.getModel() : null; - if(modelPart != null && !CemConfigFairy.getConfig().useTransparentParts()){ + if(modelPart != null && !CemConfig.getConfig().useTransparentParts()){ modelPart.setRotation(axis, (float) (modelPart.getRotation(axis) + Math.toRadians((degrees + 360) % 360))); } } diff --git a/src/main/java/net/dorianpb/cem/internal/config/CemConfig.java b/src/main/java/net/dorianpb/cem/internal/config/CemConfig.java index ee89b9c0..6bdabd2b 100644 --- a/src/main/java/net/dorianpb/cem/internal/config/CemConfig.java +++ b/src/main/java/net/dorianpb/cem/internal/config/CemConfig.java @@ -1,45 +1,85 @@ package net.dorianpb.cem.internal.config; -import me.lortseam.completeconfig.api.ConfigEntry; -import me.lortseam.completeconfig.data.Config; -import me.lortseam.completeconfig.gui.ConfigScreenBuilder; -import me.lortseam.completeconfig.gui.cloth.ClothConfigScreenBuilder; +import dev.isxander.yacl.api.ConfigCategory; +import dev.isxander.yacl.api.Option; +import dev.isxander.yacl.api.OptionFlag; +import dev.isxander.yacl.api.YetAnotherConfigLib; +import dev.isxander.yacl.config.ConfigEntry; +import dev.isxander.yacl.config.ConfigInstance; +import dev.isxander.yacl.config.GsonConfigInstance; +import dev.isxander.yacl.gui.controllers.BooleanController; import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; -@SuppressWarnings({"FieldMayBeFinal", "CanBeFinal"}) -public final class CemConfig extends Config implements CemOptions{ - @ConfigEntry private boolean use_optifine_folder = CemOptions.instance.useOptifineFolder(); - @ConfigEntry private boolean use_new_model_creation_fix = CemOptions.instance.useTransparentParts(); - @ConfigEntry private boolean use_old_animations = CemOptions.instance.useOldAnimations(); - - private CemConfig(){ - super("cem"); - } +public final class CemConfig { + public static final ConfigInstance INSTANCE = new GsonConfigInstance<>(CemConfig.class, FabricLoader.getInstance().getConfigDir().resolve("cem.json")); + private static final OptionFlag RELOAD_RESOURCES = MinecraftClient::reloadResources; + + @ConfigEntry private boolean useOptifineFolder = false; + @ConfigEntry private boolean useNewModelCreationFix = true; + @ConfigEntry private boolean useOldAnimations = false; - public static CemConfig getConfig(){ - CemConfig hello = new CemConfig(); - hello.load(); - return hello; + public static CemConfig getConfig() { + return INSTANCE.getConfig(); } - public static void createScreen(){ - if(FabricLoader.getInstance().isModLoaded("cloth-config2")){ - ConfigScreenBuilder.setMain("cem", new ClothConfigScreenBuilder()); - } + public static Screen createScreen(Screen parent) { + CemConfig defaults = INSTANCE.getDefaults(); + CemConfig config = getConfig(); + return YetAnotherConfigLib.createBuilder() + .title(Text.literal("Custom Entity Models")) + .category(ConfigCategory.createBuilder() + .name(Text.literal("Custom Entity Models")) + .option(Option.createBuilder(boolean.class) + .name(Text.translatable("config.cem.use_optifine_folder")) + .tooltip(Text.translatable("config.cem.use_optifine_folder.description")) + .binding( + defaults.useOptifineFolder, + () -> config.useOptifineFolder, + val -> config.useOptifineFolder = val + ) + .controller(opt -> new BooleanController(opt, BooleanController.YES_NO_FORMATTER, false)) + .flag(RELOAD_RESOURCES) + .build()) + .option(Option.createBuilder(boolean.class) + .name(Text.translatable("config.cem.use_new_model_creation_fix")) + .tooltip(Text.translatable("config.cem.use_new_model_creation_fix.description")) + .binding( + defaults.useNewModelCreationFix, + () -> config.useNewModelCreationFix, + val -> config.useNewModelCreationFix = val + ) + .controller(opt -> new BooleanController(opt, BooleanController.YES_NO_FORMATTER, false)) + .flag(RELOAD_RESOURCES) + .build()) + .option(Option.createBuilder(boolean.class) + .name(Text.translatable("config.cem.use_old_animations")) + .tooltip(Text.translatable("config.cem.use_old_animations.description")) + .binding( + defaults.useOldAnimations, + () -> config.useOldAnimations, + val -> config.useOldAnimations = val + ) + .controller(opt -> new BooleanController(opt, BooleanController.YES_NO_FORMATTER, false)) + .flag(RELOAD_RESOURCES) + .build()) + .build()) + .save(INSTANCE::save) + .build() + .generateScreen(parent); } - - @Override - public boolean useOptifineFolder(){ - return this.use_optifine_folder; + + public boolean useOptifineFolder() { + return this.useOptifineFolder; } - - @Override - public boolean useTransparentParts(){ - return this.use_new_model_creation_fix; + + public boolean useTransparentParts() { + return this.useNewModelCreationFix; } - - @Override - public boolean useOldAnimations(){ - return this.use_old_animations; + + public boolean useOldAnimations() { + return this.useOldAnimations; } } \ No newline at end of file diff --git a/src/main/java/net/dorianpb/cem/internal/config/CemConfigFairy.java b/src/main/java/net/dorianpb/cem/internal/config/CemConfigFairy.java deleted file mode 100644 index d5e716dd..00000000 --- a/src/main/java/net/dorianpb/cem/internal/config/CemConfigFairy.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.dorianpb.cem.internal.config; - -import net.dorianpb.cem.internal.util.CemFairy; -import net.fabricmc.loader.api.FabricLoader; - -public enum CemConfigFairy{ - ; - private static CemOptions config; - - public static void loadConfig(){ - if(FabricLoader.getInstance().isModLoaded("completeconfig-base")){ - config = CemConfig.getConfig(); - - if(FabricLoader.getInstance().isModLoaded("completeconfig-gui-cloth")){ - CemConfig.createScreen(); - } - } - else{ - CemFairy.getLogger().warn("Unable to set up config due to missing dependencies; using defaults!"); - config = CemOptions.instance; - } - } - - public static CemOptions getConfig(){ - return config; - } -} \ No newline at end of file diff --git a/src/main/java/net/dorianpb/cem/internal/config/CemOptions.java b/src/main/java/net/dorianpb/cem/internal/config/CemOptions.java deleted file mode 100644 index f248a1c8..00000000 --- a/src/main/java/net/dorianpb/cem/internal/config/CemOptions.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.dorianpb.cem.internal.config; - -@SuppressWarnings("unused") -public interface CemOptions{ - CemOptions instance = new CemOptions(){ - }; - - default boolean useOptifineFolder(){ - return false; - } - - default boolean useTransparentParts(){ - return true; - } - - default boolean useOldAnimations(){ - return false; - } -} \ No newline at end of file diff --git a/src/main/java/net/dorianpb/cem/internal/config/ModMenuIntegration.java b/src/main/java/net/dorianpb/cem/internal/config/ModMenuIntegration.java new file mode 100644 index 00000000..636a4c24 --- /dev/null +++ b/src/main/java/net/dorianpb/cem/internal/config/ModMenuIntegration.java @@ -0,0 +1,11 @@ +package net.dorianpb.cem.internal.config; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; + +public class ModMenuIntegration implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return CemConfig::createScreen; + } +} diff --git a/src/main/java/net/dorianpb/cem/internal/models/CemArmorModel.java b/src/main/java/net/dorianpb/cem/internal/models/CemArmorModel.java index d125aa55..d38546ff 100644 --- a/src/main/java/net/dorianpb/cem/internal/models/CemArmorModel.java +++ b/src/main/java/net/dorianpb/cem/internal/models/CemArmorModel.java @@ -1,7 +1,7 @@ package net.dorianpb.cem.internal.models; import net.dorianpb.cem.internal.api.CemModel; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.models.CemModelEntry.CemCuboid; import net.dorianpb.cem.internal.models.CemModelEntry.CemModelPart; import net.dorianpb.cem.internal.models.CemModelEntry.TransparentCemModelPart; @@ -21,7 +21,7 @@ public CemArmorModel(C model, @Nullable Float inflate){ public static CemModelPart getRoot(CemModel model, @Nullable Float inflate){ CemModelPart root = new CemModelPart(64, 32); - if(CemConfigFairy.getConfig().useTransparentParts()){ + if(CemConfig.getConfig().useTransparentParts()){ root.addChild(EntityModelPartNames.HEAD, prepPart(castPart((CemModelPart) ((BipedEntityModel) model).head), EntityModelPartNames.HEAD)); root.addChild(EntityModelPartNames.HAT, prepPart(castPart((CemModelPart) ((BipedEntityModel) model).hat), EntityModelPartNames.HAT)); root.addChild(EntityModelPartNames.BODY, prepPart(castPart((CemModelPart) ((BipedEntityModel) model).body), EntityModelPartNames.BODY)); diff --git a/src/main/java/net/dorianpb/cem/internal/models/CemModelEntry.java b/src/main/java/net/dorianpb/cem/internal/models/CemModelEntry.java index 9dd5c6e2..39905dd2 100644 --- a/src/main/java/net/dorianpb/cem/internal/models/CemModelEntry.java +++ b/src/main/java/net/dorianpb/cem/internal/models/CemModelEntry.java @@ -1,6 +1,6 @@ package net.dorianpb.cem.internal.models; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.file.JemFile.JemModel; import net.dorianpb.cem.internal.file.JpmFile; import net.dorianpb.cem.internal.file.JpmFile.JpmBox; @@ -176,7 +176,7 @@ String getPart(){ /** this is done because there can be a discrepancy between the translate value in the .jem and the actual part */ void setTranslate(char axis, float requestedTranslate){ - if(CemConfigFairy.getConfig().useOldAnimations()){ + if(CemConfig.getConfig().useOldAnimations()){ float oldTranslate; switch(axis){ case 'x' -> { @@ -216,7 +216,7 @@ void setTranslate(char axis, float requestedTranslate){ } public float getTranslate(char axis){ - if(CemConfigFairy.getConfig().useOldAnimations()){ + if(CemConfig.getConfig().useOldAnimations()){ return switch(axis){ case 'x' -> this.translates[0]; case 'y' -> this.translates[1]; @@ -253,7 +253,7 @@ public float getTranslate(char axis){ } void setRotate(char axis, float requestedAngle){ - if(CemConfigFairy.getConfig().useOldAnimations()){ + if(CemConfig.getConfig().useOldAnimations()){ this.getModel().setRotation(axis, requestedAngle); } else{ diff --git a/src/main/java/net/dorianpb/cem/internal/models/CemModelRegistry.java b/src/main/java/net/dorianpb/cem/internal/models/CemModelRegistry.java index fc18c3ac..33f43457 100644 --- a/src/main/java/net/dorianpb/cem/internal/models/CemModelRegistry.java +++ b/src/main/java/net/dorianpb/cem/internal/models/CemModelRegistry.java @@ -1,7 +1,7 @@ package net.dorianpb.cem.internal.models; import net.dorianpb.cem.internal.api.CemModel.VanillaReferenceModelFactory; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.file.JemFile; import net.dorianpb.cem.internal.file.JemFile.JemModel; import net.dorianpb.cem.internal.models.CemModelEntry.CemModelPart; @@ -81,7 +81,7 @@ public CemModelPart prepRootPart(CemRootPartParams params){ newRoot.inflate(params.inflate()); } //new model creation fix! - if(CemConfigFairy.getConfig().useTransparentParts()){ + if(CemConfig.getConfig().useTransparentParts()){ Map newFixes = new HashMap<>(); if(params.fixes() != null){ params.fixes().forEach(((key, modelTransform) -> newFixes.put(params.partNameMap().getOrDefault(key, key), modelTransform))); diff --git a/src/main/java/net/dorianpb/cem/internal/util/CemFairy.java b/src/main/java/net/dorianpb/cem/internal/util/CemFairy.java index 69a913ae..7ad1b04d 100644 --- a/src/main/java/net/dorianpb/cem/internal/util/CemFairy.java +++ b/src/main/java/net/dorianpb/cem/internal/util/CemFairy.java @@ -14,7 +14,7 @@ import java.util.Set; /** Helps with internal stuff, all you need to know is that it keeps track of the renderers and files */ -public class CemFairy{ +public class CemFairy { private static final Set> supportedEntities = new HashSet<>(); private static final Set> supportedBlockEntities = new HashSet<>(); private static final Set supportedOthers = new HashSet<>(); @@ -25,7 +25,7 @@ public class CemFairy{ public static Gson getGson(){ return GSON; } - + //renderer stuff public static boolean addSupport(EntityType entityType){ return supportedEntities.add(entityType); diff --git a/src/main/java/net/dorianpb/cem/mixins/EntityModelLoaderMixin.java b/src/main/java/net/dorianpb/cem/mixins/EntityModelLoaderMixin.java index 60950ce5..1306c0fe 100644 --- a/src/main/java/net/dorianpb/cem/mixins/EntityModelLoaderMixin.java +++ b/src/main/java/net/dorianpb/cem/mixins/EntityModelLoaderMixin.java @@ -1,7 +1,7 @@ package net.dorianpb.cem.mixins; import com.google.gson.internal.LinkedTreeMap; -import net.dorianpb.cem.internal.config.CemConfigFairy; +import net.dorianpb.cem.internal.config.CemConfig; import net.dorianpb.cem.internal.file.JemFile; import net.dorianpb.cem.internal.util.CemFairy; import net.dorianpb.cem.internal.util.CemRegistryManager; @@ -29,7 +29,7 @@ public abstract class EntityModelLoaderMixin{ private void cem$injectReload(ResourceManager manager, CallbackInfo ci){ CemRegistryManager.clearRegistries(); manager.findResources("cem", path -> path.getPath().endsWith(".jem")).forEach((id, resource) -> loadResourceFromId(manager, id, "dorianpb")); - if(CemConfigFairy.getConfig().useOptifineFolder()){ + if(CemConfig.getConfig().useOptifineFolder()){ manager.findResources("optifine/cem", path -> path.getPath().endsWith(".jem")).forEach((id, resource) -> loadResourceFromId(manager, id, "minecraft")); } } diff --git a/src/main/resources/assets/cem/lang/en_us.json b/src/main/resources/assets/cem/lang/en_us.json index 3caf49bb..9f811338 100644 --- a/src/main/resources/assets/cem/lang/en_us.json +++ b/src/main/resources/assets/cem/lang/en_us.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "Allows for loading custom models into the game as defined by .jem and .jpm files in a resource pack.", - "config.cem.use_optifine_folder": "Use \"assets/minecraft/optifine/cem\"?", - "config.cem.use_optifine_folder.description": "This will load CEM models from\nassets/minecraft/optifine/cem,\nwhich is exactly what optifine does.\nReload resources (F3 + T) for\nthis to take effect!", + "config.cem.use_optifine_folder": "Use optifine folder?", + "config.cem.use_optifine_folder.description": "This will load CEM models from 'assets/minecraft/optifine/cem', which is exactly what optifine does.", "config.cem.use_new_model_creation_fix": "Use model creation fix?", - "config.cem.use_new_model_creation_fix.description": "This prevents minecraft from\ndirectly moving your model parts\naround when animating. This breaks\na few models but fixes other ones.\nPlease use if possible.\nReload resources (F3 + T) for\nthis to take effect!", - "config.cem.use_old_animations": "Use older animation implementation?", - "config.cem.use_old_animations.description": "This restores animation behavior\nfrom CEM version <=0.6.2. You\nprobably want this off." + "config.cem.use_new_model_creation_fix.description": "This prevents minecraft from directly moving your model parts around when animating. This breaks a few models but fixes other ones. Please use if possible.", + "config.cem.use_old_animations": "Use old animation implementation?", + "config.cem.use_old_animations.description": "This restores animation behavior from CEM version <=0.6.2. You probably want this off." } \ No newline at end of file diff --git a/src/main/resources/assets/cem/lang/et_ee.json b/src/main/resources/assets/cem/lang/et_ee.json index f6cc9035..a1ec2aca 100644 --- a/src/main/resources/assets/cem/lang/et_ee.json +++ b/src/main/resources/assets/cem/lang/et_ee.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "Võimaldab ressursipakis .jem ja .jpm failidega defineeritud kohandatud mudeleid mängu laadida.", "config.cem.use_optifine_folder": "Kasuta \"assets/minecraft/optifine/cem\"?", - "config.cem.use_optifine_folder.description": "See laadib CEM-mudelid asukohast\nassets/minecraft/optifine/cem,\nmis järgib täpselt Optifine'i käitumist.\nMuudatuse rakendamiseks\nlaadi ressursid uuesti (F3 + T)!", + "config.cem.use_optifine_folder.description": "See laadib CEM-mudelid asukohast 'assets/minecraft/optifine/cem', mis järgib täpselt Optifine'i käitumist.", "config.cem.use_new_model_creation_fix": "Kasuta mudeliloomise parandust?", - "config.cem.use_new_model_creation_fix.description": "See väldib Minecraftil animeerimise ajal\notseselt mudeliosade ümberliigutamist.\nSee lõhub mõned mudelid\nkuid parandab teised.\nVõimalusel kasuta seda.\nMuudatuse rakendamiseks\nlaadi ressursid uuesti (F3 + T)!", + "config.cem.use_new_model_creation_fix.description": "See väldib Minecraftil animeerimise ajal otseselt mudeliosade ümberliigutamist. See lõhub mõned mudelid kuid parandab teised. Võimalusel kasuta seda.", "config.cem.use_old_animations": "Kasuta vanemat animatsiooniteostust?", - "config.cem.use_old_animations.description": "See taastab CEM versiooni <= 0.6.2\nanimatsioonide käitumise.\nIlmselt soovid selle keelata." + "config.cem.use_old_animations.description": "See taastab CEM versiooni <= 0.6.2 animatsioonide käitumise. Ilmselt soovid selle keelata." } \ No newline at end of file diff --git a/src/main/resources/assets/cem/lang/fr_fr.json b/src/main/resources/assets/cem/lang/fr_fr.json index 692f995b..cabacd9a 100644 --- a/src/main/resources/assets/cem/lang/fr_fr.json +++ b/src/main/resources/assets/cem/lang/fr_fr.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "Permet de charger des modèles personnalisés par les fichiers .jem et .jpm définis par un pack de ressources.", "config.cem.use_optifine_folder": "Utiliser \"assets/minecraft/optifine/cem\" ?", - "config.cem.use_optifine_folder.description": "Ceci va charger les modèles\npersonalisés du dossier\n\"assets/minecraft/optifine/cem\",\nce qui est le même fonctionnement qu'optifine.\nRechargez les ressources (F3 + T) pour appliquer!", + "config.cem.use_optifine_folder.description": "Ceci va charger les modèles personalisés du dossier 'assets/minecraft/optifine/cem', ce qui est le même fonctionnement qu'optifine.", "config.cem.use_new_model_creation_fix": "Utiliser le correctif de création de modèle ?", - "config.cem.use_new_model_creation_fix.description": "Ceci empêche minecraft de\ndéplacer directement les\nparties de votre modèle animé.\nCeci casse quelques modèles mais\nen corrige d'autres. Utilisez\nsi possible. Rechargez les\nressources (F3 + T) pour appliquer!", + "config.cem.use_new_model_creation_fix.description": "Ceci empêche minecraft de déplacer directement les parties de votre modèle animé. Ceci casse quelques modèles mais en corrige d'autres.", "config.cem.use_old_animations": "Utiliser la vielle technique d'aniamtion ?", - "config.cem.use_old_animations.description": "Ceci restaure le comportement\nd'animation de la version <=0.6.2.\nCeci doit probablement être désactivé." + "config.cem.use_old_animations.description": "Ceci restaure le comportement d'animation de la version <=0.6.2. Ceci doit probablement être désactivé." } \ No newline at end of file diff --git a/src/main/resources/assets/cem/lang/it_it.json b/src/main/resources/assets/cem/lang/it_it.json index 9e75c9e8..91c66a6a 100644 --- a/src/main/resources/assets/cem/lang/it_it.json +++ b/src/main/resources/assets/cem/lang/it_it.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "Consente attraverso un resource pack di caricare modelli personalizzati nel gioco definiti nei file .jem e .jpm.", "config.cem.use_optifine_folder": "Usa \"assets/minecraft/optifine/cem\"?", - "config.cem.use_optifine_folder.description": "Attivando questa opzione la mod caricherà i modelli CEM da\nassets/minecraft/optifine/cem,\ned è esattamente quello che fa la Optifine.\nRicarica le risorse (F3 + T) per\nfar funzionare questa opzione!", + "config.cem.use_optifine_folder.description": "Attivando questa opzione la mod caricherà i modelli CEM da 'assets/minecraft/optifine/cem', ed è esattamente quello che fa la Optifine", "config.cem.use_new_model_creation_fix": "Usa il fix per la creazione dei modelli?", - "config.cem.use_new_model_creation_fix.description": "Questo previene che minecraft\nmuova direttamente le tue parti dei modelli\nin giro durante un animazione. Questo rompe\nalcuni modelli ma ne fixxa altri.\nPerfavore usa questa opzione se possibile.\nRicarica le risorse (F3 + T) per\nfar funzionare questa opzione!", + "config.cem.use_new_model_creation_fix.description": "Questo previene che minecraft muova direttamente le tue parti dei modelli in giro durante un animazione. Questo rompe alcuni modelli ma ne fixxa altri. Perfavore usa questa opzione se possibile.", "config.cem.use_old_animations": "Usa la vecchia implementazione delle animazioni?", - "config.cem.use_old_animations.description": "Questo ripristina il funzionamento delle animazioni\ndalla versione <=0.6.2 di CEM. Probabilmente\nvorrai questa opzione disabilitata." + "config.cem.use_old_animations.description": "Questo ripristina il funzionamento delle animazioni dalla versione <=0.6.2 di CEM. Probabilmente vorrai questa opzione disabilitata." } \ No newline at end of file diff --git a/src/main/resources/assets/cem/lang/ru_ru.json b/src/main/resources/assets/cem/lang/ru_ru.json index 34f815f5..6f6e6412 100644 --- a/src/main/resources/assets/cem/lang/ru_ru.json +++ b/src/main/resources/assets/cem/lang/ru_ru.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "Позволяет загружать в игру пользовательские модели, определённые файлами .jem и .jpm в пакетах ресурсов.", "config.cem.use_optifine_folder": "Использовать \"assets/minecraft/optifine/cem\"?", - "config.cem.use_optifine_folder.description": "Позволяет загружать пользовательские\nмодели из assets/minecraft/optifine/cem,\nкак это делает Optifine. Для применения\nизменений требуется перезагрузить\nпакеты ресурсов (F3+T).", + "config.cem.use_optifine_folder.description": "Позволяет загружать пользовательские модели из 'assets/minecraft/optifine/cem', как это делает Optifine.", "config.cem.use_new_model_creation_fix": "Исправлять создание моделей?", - "config.cem.use_new_model_creation_fix.description": "Предотвращает прямое перемещение\nчастей модели при анимации. Это\nломает поведение некоторых моделей,\nно исправляет другие. Рекомендуется\nпо возможности держать включённым.\nДля применения изменений требуется\nперезагрузить пакеты ресурсов (F3+T).", + "config.cem.use_new_model_creation_fix.description": "Предотвращает прямое перемещение частей модели при анимации. Это ломает поведение некоторых моделей, но исправляет другие. Рекомендуется по возможности держать включённым.", "config.cem.use_old_animations": "Использовать старую реализацию анимации?", - "config.cem.use_old_animations.description": "Восстанавливает поведение анимации\nиз CEM 0.6.2 и ниже. Скорее всего, вам\nследует это отключить." + "config.cem.use_old_animations.description": "Восстанавливает поведение анимации из CEM 0.6.2 и ниже. Скорее всего, вам следует это отключить." } \ No newline at end of file diff --git a/src/main/resources/assets/cem/lang/zh_cn.json b/src/main/resources/assets/cem/lang/zh_cn.json index 3ee78b07..c84a68e0 100644 --- a/src/main/resources/assets/cem/lang/zh_cn.json +++ b/src/main/resources/assets/cem/lang/zh_cn.json @@ -1,9 +1,9 @@ { "modmenu.descriptionTranslation.cem": "允许将自定义模型加载到游戏中。资源包中的.jem和.jpm文件", "config.cem.use_optifine_folder": "使用 \"assets/minecraft/optifine/cem\"?", - "config.cem.use_optifine_folder.description": "这将从中加载CEM模型\nassets/minecraft/optifine/cem,\n使用Optifine模型\n重新加载资源(F3+T)\n使其更改生效!", + "config.cem.use_optifine_folder.description": "这将从中加载CEM模型 'assets/minecraft/optifine/cem', 使用Optifine模型", "config.cem.use_new_model_creation_fix": "使用模型创建修复?", - "config.cem.use_new_model_creation_fix.description": "这可以防止minecraft在设置动画时\n直接移动模型零件\n这破坏了一些模型\n但修复了其他模型\n如果可能,请使用\n重新加载资源(F3+T)\n使其更改生效!", + "config.cem.use_new_model_creation_fix.description": "这可以防止minecraft在设置动画时 直接移动模型零件 这破坏了一些模型 但修复了其他模型 如果可能,请使用", "config.cem.use_old_animations": "使用旧的动画实现?", - "config.cem.use_old_animations.description": "使用老版本的动画\n从<=0.6.2版本中\n也许你想把它关掉" + "config.cem.use_old_animations.description": "使用老版本的动画 从<=0.6.2版本中 也许你想把它关掉" } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 9b476b1d..75ad78c9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -19,6 +19,9 @@ ], "cem": [ "net.dorianpb.cem.external.CemEntitiesInit" + ], + "modmenu": [ + "net.dorianpb.cem.internal.config.ModMenuIntegration" ] }, "mixins": [ From b5fae2287850416520e1236de17878aebe9f3a7d Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 27 Nov 2022 20:50:09 +0000 Subject: [PATCH 2/2] FMJ deps --- src/main/resources/fabric.mod.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 75ad78c9..dc990e12 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -32,11 +32,8 @@ ], "depends": { "fabricloader": ">=0.12.11", - "minecraft": ">=1.19" - }, - "recommends": { - "completeconfig": "*", - "cloth-config2": "*" + "minecraft": ">=1.19", + "yet-another-config-lib": ">=1.7.1" }, "conflicts": { "optifabric": "*"