From 079a01cc7ce3d8f9f8ddc018054939c01a8aabd6 Mon Sep 17 00:00:00 2001 From: JFronny <33260128+JFronny@users.noreply.github.com> Date: Fri, 7 Aug 2020 11:02:13 +0200 Subject: [PATCH] ModMenu + configs --- build.gradle | 8 +++ .../java/io/gitlab/jfronny/quickmeth/Cfg.java | 20 ++++++ .../gitlab/jfronny/quickmeth/MixinPlugin.java | 61 ++++++++++++++++++ .../io/gitlab/jfronny/quickmeth/ModMenu.java | 12 ++++ .../gitlab/jfronny/quickmeth/quickmeth.java | 8 +++ src/main/resources/assets/quickmeth/icon.png | Bin 0 -> 1211 bytes .../assets/quickmeth/lang/en_us.json | 6 ++ src/main/resources/fabric.mod.json | 6 +- ...meth.mixins.json => quickmeth.mixins.json} | 1 + 9 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/gitlab/jfronny/quickmeth/Cfg.java create mode 100644 src/main/java/io/gitlab/jfronny/quickmeth/MixinPlugin.java create mode 100644 src/main/java/io/gitlab/jfronny/quickmeth/ModMenu.java create mode 100644 src/main/resources/assets/quickmeth/icon.png create mode 100644 src/main/resources/assets/quickmeth/lang/en_us.json rename src/main/resources/{io.gitlab.jfronny.quickmeth.mixins.json => quickmeth.mixins.json} (85%) diff --git a/build.gradle b/build.gradle index 0b480cf..60add80 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,14 @@ dependencies { // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // You may need to force-disable transitiveness on them. + modApi "me.sargunvohra.mcmods:autoconfig1u:3.2.0-unstable" + include "me.sargunvohra.mcmods:autoconfig1u:3.2.0-unstable" + modApi "me.shedaniel.cloth:config-2:4.6.0" + include "me.shedaniel.cloth:config-2:4.6.0" + + + modImplementation "io.github.prospector:modmenu:1.14.5+build.30" + } processResources { diff --git a/src/main/java/io/gitlab/jfronny/quickmeth/Cfg.java b/src/main/java/io/gitlab/jfronny/quickmeth/Cfg.java new file mode 100644 index 0000000..594b8f5 --- /dev/null +++ b/src/main/java/io/gitlab/jfronny/quickmeth/Cfg.java @@ -0,0 +1,20 @@ +package io.gitlab.jfronny.quickmeth; + + +import me.sargunvohra.mcmods.autoconfig1u.ConfigData; +import me.sargunvohra.mcmods.autoconfig1u.annotation.Config; +import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.RequiresRestart; +import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment; + +@Config(name = "quickmeth") +public class Cfg implements ConfigData { + @Comment("Corrupts methods in MathHelper. This will impact many things but most notably movement") + @RequiresRestart + public boolean corruptGenericMath = true; + @Comment("Corrupts methods in OctavePerlinNoiseSampler and PerlinNoiseSampler. This will mostly impact world generation") + @RequiresRestart + public boolean corruptPerlinNoise = true; + @Comment("Corrupts methods in SimplexNoiseSampler. I am actually not sure what this breaks") + @RequiresRestart + public boolean corruptSimplexNoise = true; +} diff --git a/src/main/java/io/gitlab/jfronny/quickmeth/MixinPlugin.java b/src/main/java/io/gitlab/jfronny/quickmeth/MixinPlugin.java new file mode 100644 index 0000000..6608a9f --- /dev/null +++ b/src/main/java/io/gitlab/jfronny/quickmeth/MixinPlugin.java @@ -0,0 +1,61 @@ +package io.gitlab.jfronny.quickmeth; + +import io.gitlab.jfronny.quickmeth.mixin.MathHelperMixin; +import io.gitlab.jfronny.quickmeth.mixin.MixinOctavePerlinNoiseSampler; +import io.gitlab.jfronny.quickmeth.mixin.MixinPerlinNoiseSampler; +import io.gitlab.jfronny.quickmeth.mixin.MixinSimplexNoiseSampler; +import org.objectweb.asm.tree.ClassNode; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Objects; +import java.util.Set; + +public class MixinPlugin implements IMixinConfigPlugin { + @Override + public void onLoad(String mixinPackage) { + + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @SuppressWarnings("ReferenceToMixin") + @Override + public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (Objects.equals(mixinClassName, MathHelperMixin.class.getName())) + return quickmeth.cfg.corruptGenericMath; + else if (Objects.equals(mixinClassName, MixinOctavePerlinNoiseSampler.class.getName())) + return quickmeth.cfg.corruptPerlinNoise; + else if (Objects.equals(mixinClassName, MixinPerlinNoiseSampler.class.getName())) + return quickmeth.cfg.corruptPerlinNoise; + else if (Objects.equals(mixinClassName, MixinSimplexNoiseSampler.class.getName())) + return quickmeth.cfg.corruptSimplexNoise; + else + throw new IllegalStateException("Unrecognized mixin! This should never happen"); + } + + @Override + public void acceptTargets(Set myTargets, Set otherTargets) { + + } + + @Override + public List getMixins() { + return null; + } + + @Override + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + + } + + @Override + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + + } + +} diff --git a/src/main/java/io/gitlab/jfronny/quickmeth/ModMenu.java b/src/main/java/io/gitlab/jfronny/quickmeth/ModMenu.java new file mode 100644 index 0000000..6d9061b --- /dev/null +++ b/src/main/java/io/gitlab/jfronny/quickmeth/ModMenu.java @@ -0,0 +1,12 @@ +package io.gitlab.jfronny.quickmeth; + +import io.github.prospector.modmenu.api.ConfigScreenFactory; +import io.github.prospector.modmenu.api.ModMenuApi; +import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; + +public class ModMenu implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return screen -> AutoConfig.getConfigScreen(Cfg.class, screen).get(); + } +} diff --git a/src/main/java/io/gitlab/jfronny/quickmeth/quickmeth.java b/src/main/java/io/gitlab/jfronny/quickmeth/quickmeth.java index 34e4bc6..b354eb1 100644 --- a/src/main/java/io/gitlab/jfronny/quickmeth/quickmeth.java +++ b/src/main/java/io/gitlab/jfronny/quickmeth/quickmeth.java @@ -1,9 +1,17 @@ package io.gitlab.jfronny.quickmeth; +import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; +import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer; import net.fabricmc.api.ModInitializer; import net.minecraft.util.math.MathHelper; public class quickmeth implements ModInitializer { + public static Cfg cfg; + static { + AutoConfig.register(Cfg.class, JanksonConfigSerializer::new); + cfg = AutoConfig.getConfigHolder(Cfg.class).getConfig(); + } + @Override public void onInitialize() { diff --git a/src/main/resources/assets/quickmeth/icon.png b/src/main/resources/assets/quickmeth/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9406a3aa2c4929e51d1615dc0bd917ea7593f864 GIT binary patch literal 1211 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5h!1NUMMFQdcd$GJ(Pq0dsXayb7;qi7a$lAsSU`Q2A2cB-0}(MuzozQ?q?{ zD7$!itZWRc;|KO5Cog(lboJV!ueqh;5mDwse2q#6!~Cgpz-XP>U~1pOZCEb&6w)jTQSRGS(epPZp;4A zbJ26QX3gFD`-y&!$d{?9>wbiYLjqcRE#6vbiW!y6`|^>0cU@-;*G{d3 zClL<3QYqK@|FQ2+&lX*-ws(n#(2Lr_IsJhOTe!DK^?j~=W3g6P;RjF5OWFFhoM&n# z-FuO-Q8^(&ddH4;8K>k5b~5wWN^a8J9W=p9L#*+;@vmhz1{K_2)>am0&wu=d@x-My zm&^|wR5S=%^rm!vdHe3?-`>yt_NR`a%CBhEmn{KIz-VDh@^*J&_z!{$_AZ|c6yYrJ zh%9Dc;1&j9Muu5)B!GhKC7!;n>`yq@Ijl|oZ$4EC6p}1)jVN)>&&^HED`9XhN=+EaktaqI2f(`C&DJgygSbpQXKYISPO!^{miZ;jt% z35S1=;5e~(&Ffut6Q-?VVPRl&U=UzHrhLv8eP{I2{QvKc?Xqt+fv=06D$^*C zdnhmVbu8mMofeMwt#w51OGs!u^(egX@wwevG> zS3BE#bmD^iwdJfCq5&bCQDXn!NmX6hmG?L4bkdENx3|6w%?@Xp9DLvGZlvRysMicu z3>*wh4Ga(2#BAcTWgXZn_?K6I%v#I*f}ysz<_yTxGZQ+rEY;0u2lb44=+P?6V4E z#|&BlhR>Tc4)XceUGZ)BU0~JV4D#;*fsV#Db6J!)5MWqdp!z{?f1Wsh(bfqJy3Y51 z&0XN66WevU`5t47ZFHkQJlyi@!YDRnlTL$`4b8_OmcWb&1Dr% z{DsgHPgs5dn1&fVUHx3vIVCg!0N?cb A3IG5A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/quickmeth/lang/en_us.json b/src/main/resources/assets/quickmeth/lang/en_us.json new file mode 100644 index 0000000..f08f4ac --- /dev/null +++ b/src/main/resources/assets/quickmeth/lang/en_us.json @@ -0,0 +1,6 @@ +{ + "text.autoconfig.quickmeth.title": "QuickMäth", + "text.autoconfig.quickmeth.option.corruptGenericMath": "Corrupt generic math", + "text.autoconfig.quickmeth.option.corruptPerlinNoise": "Corrupt perlin noise", + "text.autoconfig.quickmeth.option.corruptSimplexNoise": "Corrupt simplex noise" +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index f42131e..7f04b1d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -17,10 +17,14 @@ "entrypoints": { "main": [ "io.gitlab.jfronny.quickmeth.quickmeth" + ], + "modmenu": [ + "io.gitlab.jfronny.quickmeth.ModMenu" ] + }, "mixins": [ - "io.gitlab.jfronny.quickmeth.mixins.json" + "quickmeth.mixins.json" ], "depends": { "fabricloader": ">=0.9.0+build.204", diff --git a/src/main/resources/io.gitlab.jfronny.quickmeth.mixins.json b/src/main/resources/quickmeth.mixins.json similarity index 85% rename from src/main/resources/io.gitlab.jfronny.quickmeth.mixins.json rename to src/main/resources/quickmeth.mixins.json index a924ebe..9195e43 100644 --- a/src/main/resources/io.gitlab.jfronny.quickmeth.mixins.json +++ b/src/main/resources/quickmeth.mixins.json @@ -3,6 +3,7 @@ "minVersion": "0.8", "package": "io.gitlab.jfronny.quickmeth.mixin", "compatibilityLevel": "JAVA_8", + "plugin": "io.gitlab.jfronny.quickmeth.MixinPlugin", "mixins": [ "MathHelperMixin", "MixinOctavePerlinNoiseSampler",