Compare commits

...

18 Commits

Author SHA1 Message Date
Johannes Frohnmeyer 4b831cb6a1
chore: update to 1.20.5
ci/woodpecker/push/jfmod Pipeline was successful Details
ci/woodpecker/tag/jfmod Pipeline was successful Details
2024-04-25 22:26:50 +02:00
Johannes Frohnmeyer cada2e99cd
chore: update to 1.20.4
ci/woodpecker/push/jfmod Pipeline was successful Details
2023-12-07 20:28:57 +01:00
Johannes Frohnmeyer e6aab9cd19
chore: update to 1.20.2
ci/woodpecker/push/jfmod Pipeline was successful Details
2023-09-22 20:37:51 +02:00
Johannes Frohnmeyer 8409042838
chore: add @reason javadoc to @Overwrite 2023-09-22 20:35:43 +02:00
Johannes Frohnmeyer e83d98fdec
chore: use proper default
ci/woodpecker/push/jfmod Pipeline was successful Details
2023-09-10 06:52:06 +02:00
Johannes Frohnmeyer 3b91be9864
chore: use jfMod DSL 2023-09-10 06:52:03 +02:00
Johannes Frohnmeyer 02ce4ef490
chore: simplify config 2023-09-10 06:51:59 +02:00
Johannes Frohnmeyer 423049ea7a
Bump to 1.20
ci/woodpecker/push/jfmod Pipeline was successful Details
ci/woodpecker/tag/jfmod Pipeline was successful Details
2023-06-09 18:23:12 +02:00
Johannes Frohnmeyer 3e3f0a394d
Bump to 1.19.4
ci/woodpecker/push/jfmod Pipeline failed Details
ci/woodpecker/tag/jfmod Pipeline was successful Details
2023-03-14 21:18:06 +01:00
Johannes Frohnmeyer b70b3c7d2a
Use new config compiler
ci/woodpecker/push/jfmod Pipeline was successful Details
2022-12-29 16:13:26 +01:00
Johannes Frohnmeyer 773d9a12bb
Update to 1.19.3
ci/woodpecker/push/jfmod Pipeline was successful Details
ci/woodpecker/tag/jfmod Pipeline was successful Details
2022-12-07 21:47:57 +01:00
Johannes Frohnmeyer a3bd03c260
Fix maven group
ci/woodpecker/push/jfmod Pipeline was successful Details
2022-12-03 19:46:31 +01:00
Johannes Frohnmeyer 023e2bda2a
Update to new infrastructure
ci/woodpecker/manual/jfmod Pipeline was successful Details
2022-12-02 16:30:22 +01:00
Johannes Frohnmeyer b3df3a6bd4
Update to LibJF 3 2022-08-28 16:59:26 +02:00
Johannes Frohnmeyer 3fdfc097cb
Use quickmath as the mod id for consistency 2022-08-21 16:22:54 +02:00
Johannes Frohnmeyer c80a2105e3
Update modrinth dependency names 2 2022-07-28 10:26:06 +02:00
Johannes Frohnmeyer 3b193d9349
Update modrinth dependency names 2022-07-28 10:24:54 +02:00
Johannes Frohnmeyer fa61d24e96
Update for 1.19.1 2022-07-28 10:21:07 +02:00
23 changed files with 191 additions and 178 deletions

View File

@ -1,2 +0,0 @@
include:
- remote: 'https://jfmods.gitlab.io/scripts/jfmod.yml'

1
.woodpecker.yml Normal file
View File

@ -0,0 +1 @@
#link https://pages.frohnmeyer-wds.de/scripts/jfmod.yml

View File

@ -1,6 +1,7 @@
Quickmeth allows you to break math methods in minecraft by enabling replacements for:
Quickth allows you to break math methods in minecraft by enabling replacements for:
- The standard math methods (used almost everywhere where math is needed)
- Trigonometry (which is also used across the codebase and affect things like rendering)
- Perlin & Simplex noise methods (used in terrain generation)
WARNING: These replacements are intended to corrupt things and should not be used in worlds you care about
WARNING: These replacements are intended to corrupt things and should not be used in worlds you care about!
The "Corrupt more generic math" option might even prevent your game from loading incompletely generated worlds at all.

View File

@ -1,12 +0,0 @@
apply from: "https://jfmods.gitlab.io/scripts/jfmod.gradle"
dependencies {
modRuntimeOnly "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation("io.gitlab.jfronny.libjf:libjf-config-v0:${project.jfapi_version}")
modImplementation("io.gitlab.jfronny.libjf:libjf-unsafe-v0:${project.jfapi_version}")
modRuntimeOnly("io.gitlab.jfronny.libjf:libjf-devutil-v0:${project.jfapi_version}")
modImplementation "com.terraformersmc:modmenu:4.0.0-beta.4"
}

39
build.gradle.kts Normal file
View File

@ -0,0 +1,39 @@
plugins {
id("jfmod") version "1.6-SNAPSHOT"
}
allprojects { group = "io.gitlab.jfronny" }
base.archivesName = "quickmath"
jfMod {
minecraftVersion = "1.20.5"
yarn("build.1")
loaderVersion = "0.15.10"
libJfVersion = "3.15.5"
fabricApiVersion = "0.97.6+1.20.5"
modrinth {
projectId = "quickmath"
requiredDependencies.add("libjf")
optionalDependencies.add("modmenu")
}
curseforge {
projectId = "400837"
requiredDependencies.add("libjf")
optionalDependencies.add("modmenu")
}
}
dependencies {
modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2")
modImplementation("io.gitlab.jfronny.libjf:libjf-unsafe-v0")
// Dev env
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-ui-tiny")
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil")
modLocalRuntime("com.terraformersmc:modmenu:10.0.0-beta.1")
// for modmenu
modLocalRuntime("net.fabricmc.fabric-api:fabric-resource-loader-v0")
modLocalRuntime("net.fabricmc.fabric-api:fabric-screen-api-v1")
modLocalRuntime("net.fabricmc.fabric-api:fabric-key-binding-api-v1")
}

View File

@ -1,16 +0,0 @@
# https://fabricmc.net/develop/
minecraft_version=1.19
yarn_mappings=build.1
loader_version=0.14.6
maven_group=io.jfronny.gitlab
archives_base_name=quickmeth
fabric_version=0.55.1+1.19
jfapi_version=2.9.1
modrinth_id=hRVfXPJj
modrinth_required_dependencies=WKwQAwke
modrinth_optional_dependencies=mOgUt4GM
curseforge_id=400837
curseforge_required_dependencies=libjf
curseforge_optional_dependencies=modmenu

9
settings.gradle.kts Normal file
View File

@ -0,0 +1,9 @@
pluginManagement {
repositories {
maven("https://maven.fabricmc.net/") // FabricMC
maven("https://maven.frohnmeyer-wds.de/artifacts") // scripts
gradlePluginPortal()
}
}
rootProject.name = "quickmath"

View File

@ -1,4 +1,4 @@
package io.gitlab.jfronny.quickmeth;
package io.gitlab.jfronny.quickmath;
import io.gitlab.jfronny.libjf.unsafe.asm.AsmConfig;
import io.gitlab.jfronny.libjf.unsafe.asm.AsmTransformer;
@ -13,19 +13,19 @@ import java.util.Set;
public class BytecodeTransformer implements AsmConfig {
private static final String math = "java/lang/Math";
private static final String random = "java/util/Random";
private static final String mathUtil = "io/gitlab/jfronny/quickmeth/MathUtil";
private static final String mathUtil = "io/gitlab/jfronny/quickmath/MathUtil";
private static final String mathHelperIntermediary = "net.minecraft.class_3532";
private static final String mathHelper = PatchUtil.getRemappedInternal(mathHelperIntermediary);
private static final String mathHelper = PatchUtil.mapClassNameInternal(mathHelperIntermediary);
private static final String mojangRandomIntermediary = "net.minecraft.class_5819";
private static final String mojangRandom = PatchUtil.getRemappedInternal(mojangRandomIntermediary);
private static final String mojangRandom = PatchUtil.mapClassNameInternal(mojangRandomIntermediary);
private static final String mathHelperRandomUuid = mth("method_15378", "(Lnet/minecraft/class_5819;)Ljava/util/UUID;");
private static final Map<String, String> mth = DMap.of( // Maps methods in mathHelper to quickmeth MathUtil methods
private static final Map<String, String> mth = DMap.of( // Maps methods in mathHelper to QuickMäth MathUtil methods
mth("method_15374", "(F)F"), "sinM",
mth("method_15362", "(F)F"), "cosM",
mth("method_15355", "(F)F"), "sqrtM",
mth("method_15375", "(D)I"), "floor"
);
private static final Map<String, String> rnd = DMap.of( // Maps methods in minecrafts Random to quickmeth MathUtil methods
private static final Map<String, String> rnd = DMap.of( // Maps methods in Minecraft Random to QuickMäth MathUtil methods
rnd("method_43054", "()I"), "nextInt",
rnd("method_43048", "(I)I"), "nextInt",
rnd("method_43055", "()J"), "nextLong",
@ -34,27 +34,27 @@ public class BytecodeTransformer implements AsmConfig {
rnd("method_43058", "()D"), "random",
rnd("method_43059", "()D"), "random"
);
private static final Map<String, Boolean> stat = Map.of( // Maps quickmeth MathUtil methods to booleans representing whether to overwrite them
"sin", Cfg.corruptTrigonometry2,
"cos", Cfg.corruptTrigonometry2,
"sinM", Cfg.corruptTrigonometry,
"cosM", Cfg.corruptTrigonometry,
//"sqrt", Cfg.corruptGenericMath,
"sqrtM", Cfg.corruptGenericMath,
//"floor", Cfg.corruptGenericMath2,
// "nextInt", Cfg.corruptGenericMath2,
"nextLong", Cfg.corruptGenericMath2,
"nextBoolean", Cfg.corruptGenericMath2,
// "nextFloat", Cfg.corruptGenericMath2,
"random", Cfg.corruptGenericMath2
private static final Map<String, Boolean> stat = Map.of( // Maps QuickMäth MathUtil methods to booleans representing whether to overwrite them
"sin", Cfg.corruptTrigonometry.contains(Cfg.CorruptionLevel2.FULL),
"cos", Cfg.corruptTrigonometry.contains(Cfg.CorruptionLevel2.FULL),
"sinM", Cfg.corruptTrigonometry.contains(Cfg.CorruptionLevel2.MAJOR),
"cosM", Cfg.corruptTrigonometry.contains(Cfg.CorruptionLevel2.MAJOR),
//"sqrt", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.MAJOR),
"sqrtM", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.MAJOR),
//"floor", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL),
// "nextInt", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL),
"nextLong", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL),
"nextBoolean", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL),
// "nextFloat", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL),
"random", Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL)
);
private static String mth(String method, String descriptor) {
return AsmTransformer.MAPPING_RESOLVER.mapMethodName(AsmTransformer.INTERMEDIARY, mathHelperIntermediary, method, descriptor);
return PatchUtil.mapMethodName(mathHelperIntermediary, method, descriptor);
}
private static String rnd(String method, String descriptor) {
return AsmTransformer.MAPPING_RESOLVER.mapMethodName(AsmTransformer.INTERMEDIARY, mojangRandomIntermediary, method, descriptor);
return PatchUtil.mapMethodName(mojangRandomIntermediary, method, descriptor);
}
@Override
@ -79,7 +79,7 @@ public class BytecodeTransformer implements AsmConfig {
if (insn.getOpcode() == Opcodes.INVOKESTATIC || insn.getOpcode() == Opcodes.INVOKEVIRTUAL || insn.getOpcode() == Opcodes.INVOKEINTERFACE) {
String insNew = null;
MethodInsnNode mIns = (MethodInsnNode) insn;
// Resolve a possible replacement method in quickmeth MathUtil
// Resolve a possible replacement method in QuickMäth MathUtil
if (mIns.owner.equals(math)) {
if (stat.containsKey(mIns.name))
insNew = mIns.name;

View File

@ -0,0 +1,45 @@
package io.gitlab.jfronny.quickmath;
import io.gitlab.jfronny.libjf.config.api.v2.Entry;
import io.gitlab.jfronny.libjf.config.api.v2.JfConfig;
import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder;
import io.gitlab.jfronny.libjf.config.api.v2.dsl.Migration;
@JfConfig(tweaker = Cfg.Migrations.class)
public class Cfg {
@Entry public static CorruptionLevel2 corruptGenericMath = CorruptionLevel2.MAJOR;
@Entry public static CorruptionLevel2 corruptTrigonometry = CorruptionLevel2.FULL;
@Entry public static boolean corruptPerlinNoise = true;
@Entry public static boolean corruptSimplexNoise = true;
@Entry public static boolean debugAsm = false;
static {
JFC_Cfg.ensureInitialized();
}
public enum CorruptionLevel {
DISABLED, MINOR, MAJOR, FULL;
public boolean contains(CorruptionLevel level) {
return compareTo(level) >= 0;
}
}
public enum CorruptionLevel2 {
DISABLED, MAJOR, FULL;
public boolean contains(CorruptionLevel2 level) {
return compareTo(level) >= 0;
}
}
public static class Migrations {
public static ConfigBuilder<?> tweak(ConfigBuilder<?> builder) {
return builder.addMigration("corruptGenericMath2", Migration.of(reader -> {
if (reader.nextBoolean()) corruptGenericMath = CorruptionLevel2.FULL;
})).addMigration("corruptTrigonometry2", Migration.of(reader -> {
if (!reader.nextBoolean()) corruptTrigonometry = CorruptionLevel2.MAJOR;
}));
}
}
}

View File

@ -1,4 +1,4 @@
package io.gitlab.jfronny.quickmeth;
package io.gitlab.jfronny.quickmath;
import java.util.*;

View File

@ -1,4 +1,4 @@
package io.gitlab.jfronny.quickmeth;
package io.gitlab.jfronny.quickmath;
import net.minecraft.util.math.MathHelper;

View File

@ -1,15 +1,14 @@
package io.gitlab.jfronny.quickmeth;
package io.gitlab.jfronny.quickmath;
import io.gitlab.jfronny.quickmeth.mixin.*;
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 {
private static final String PREFIX = "io.gitlab.jfronny.quickmath.mixin.";
@Override
public void onLoad(String mixinPackage) {
@ -20,19 +19,17 @@ public class MixinPlugin implements IMixinConfigPlugin {
return null;
}
@SuppressWarnings("ReferenceToMixin")
@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
if (Objects.equals(mixinClassName, MathHelperMixin.class.getName()))
return Cfg.corruptGenericMath;
else if (Objects.equals(mixinClassName, MathHelperMixin2.class.getName()))
return Cfg.corruptGenericMath2;
else if (Objects.equals(mixinClassName, MixinPerlinNoiseSampler.class.getName()))
return Cfg.corruptPerlinNoise;
else if (Objects.equals(mixinClassName, MixinSimplexNoiseSampler.class.getName()))
return Cfg.corruptSimplexNoise;
else
throw new IllegalStateException("Unrecognized mixin! This should never happen");
if (!mixinClassName.startsWith(PREFIX))
throw new IllegalStateException("Unrecognized mixin! This should never happen: " + mixinClassName);
return switch (mixinClassName.substring(PREFIX.length())) {
case "MathHelperMixin" -> Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.MAJOR);
case "MathHelperMixin2" -> Cfg.corruptGenericMath.contains(Cfg.CorruptionLevel2.FULL);
case "MixinPerlinNoiseSampler" -> Cfg.corruptPerlinNoise;
case "MixinSimplexNoiseSampler" -> Cfg.corruptSimplexNoise;
default -> throw new IllegalStateException("Unrecognized mixin! This should never happen: " + mixinClassName);
};
}
@Override

View File

@ -1,10 +1,10 @@
package io.gitlab.jfronny.quickmeth;
package io.gitlab.jfronny.quickmath;
import io.gitlab.jfronny.commons.log.*;
import io.gitlab.jfronny.commons.logger.SystemLoggerPlus;
import net.fabricmc.api.*;
public class ModMain implements ModInitializer {
public static final Logger LOGGER = Logger.forName("quickmäth");
public static final SystemLoggerPlus LOGGER = SystemLoggerPlus.forName("quickmäth");
@Override
public void onInitialize() {
LOGGER.info("QuickMäth initialized, but why are you using this?");

View File

@ -1,15 +1,9 @@
package io.gitlab.jfronny.quickmeth.mixin;
package io.gitlab.jfronny.quickmath.mixin;
import io.gitlab.jfronny.quickmeth.MathUtil;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.random.*;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import net.minecraft.util.math.random.Random;
import org.spongepowered.asm.mixin.*;
import org.spongepowered.asm.mixin.injection.*;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(MathHelper.class)
@ -18,16 +12,19 @@ public abstract class MathHelperMixin {
@Shadow public static int floor(double value) { return 0; }
@Shadow public static double nextDouble(Random random, double min, double max) { return 0; }
@Overwrite
public static int fastFloor(double d) {
return (int)(d / 32) * 32;
}
/**
* @author JFronny
* @reason Reduce precision
*/
@Overwrite
public static long lfloor(double d) {
return (long) (Math.floor(d / 4) * 4);
}
/**
* @author JFronny
* @reason Introduce variation
*/
@Overwrite
public static double absMax(double d, double e) {
if (d > 0.0D) {
@ -62,29 +59,4 @@ public abstract class MathHelperMixin {
private static void adjustRandomDouble(CallbackInfoReturnable<Double> ci) {
ci.setReturnValue((double) floor(ci.getReturnValue()));
}
@Overwrite
public static double average(long[] array) {
long[] var3 = array;
long min = Long.MAX_VALUE;
long max = Long.MIN_VALUE;
int var4 = array.length;
for(int var5 = 0; var5 < var4; ++var5) {
long m = var3[var5];
if (m > max)
max = m;
if (m < min)
min = m;
}
return nextDouble(RANDOM, min, max);
}
@Overwrite
public static long clamp(long value, long min, long max) {
return MathUtil.boxedInvert(Math.max(Math.min(value, max), min), max, min);
}
}

View File

@ -1,6 +1,6 @@
package io.gitlab.jfronny.quickmeth.mixin;
package io.gitlab.jfronny.quickmath.mixin;
import io.gitlab.jfronny.quickmeth.MathUtil;
import io.gitlab.jfronny.quickmath.MathUtil;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -1,6 +1,6 @@
package io.gitlab.jfronny.quickmeth.mixin;
package io.gitlab.jfronny.quickmath.mixin;
import io.gitlab.jfronny.quickmeth.MathUtil;
import io.gitlab.jfronny.quickmath.MathUtil;
import net.minecraft.util.math.noise.PerlinNoiseSampler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -1,6 +1,6 @@
package io.gitlab.jfronny.quickmeth.mixin;
package io.gitlab.jfronny.quickmath.mixin;
import io.gitlab.jfronny.quickmeth.MathUtil;
import io.gitlab.jfronny.quickmath.MathUtil;
import net.minecraft.util.math.noise.SimplexNoiseSampler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -1,21 +0,0 @@
package io.gitlab.jfronny.quickmeth;
import io.gitlab.jfronny.libjf.config.api.Entry;
import io.gitlab.jfronny.libjf.config.api.JfConfig;
public class Cfg implements JfConfig {
@Entry
public static Boolean corruptGenericMath = true;
@Entry
public static Boolean corruptGenericMath2 = false;
@Entry
public static Boolean corruptTrigonometry = true;
@Entry
public static Boolean corruptTrigonometry2 = true;
@Entry
public static Boolean corruptPerlinNoise = true;
@Entry
public static Boolean corruptSimplexNoise = true;
@Entry
public static Boolean debugAsm = false;
}

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,21 @@
{
"quickmath.jfconfig.title": "QuickMäth",
"quickmath.jfconfig.tooltip": "Restart to apply changes",
"quickmath.jfconfig.corruptGenericMath": "Corrupt generic math",
"quickmath.jfconfig.corruptGenericMath.tooltip": "Corrupts methods in MathHelper. This will impact many things but most notably movement",
"quickmath.jfconfig.corruptTrigonometry": "Corrupt Trigonometry",
"quickmath.jfconfig.corruptTrigonometry.tooltip": "Corrupts trigonometry methods. Effects vary",
"quickmath.jfconfig.corruptPerlinNoise": "Corrupt perlin noise",
"quickmath.jfconfig.corruptPerlinNoise.tooltip": "Corrupts methods in OctavePerlinNoiseSampler and PerlinNoiseSampler. This will mostly impact world generation",
"quickmath.jfconfig.corruptSimplexNoise": "Corrupt simplex noise",
"quickmath.jfconfig.corruptSimplexNoise.tooltip": "Corrupts methods in SimplexNoiseSampler. I am actually not sure what this breaks",
"quickmath.jfconfig.debugAsm": "Debug ASM",
"quickmath.jfconfig.debugAsm.tooltip": "Prints debug messages for the purpose of debugging",
"quickmath.jfconfig.enum.CorruptionLevel2.DISABLED": "Disabled",
"quickmath.jfconfig.enum.CorruptionLevel2.MAJOR": "Major",
"quickmath.jfconfig.enum.CorruptionLevel2.FULL": "Full",
"quickmath.jfconfig.enum.CorruptionLevel.DISABLED": "Disabled",
"quickmath.jfconfig.enum.CorruptionLevel.MINOR": "Minor",
"quickmath.jfconfig.enum.CorruptionLevel.MAJOR": "Major",
"quickmath.jfconfig.enum.CorruptionLevel.FULL": "Full"
}

View File

@ -1,17 +0,0 @@
{
"quickmeth.jfconfig.title": "QuickMäth - Restart to apply changes",
"quickmeth.jfconfig.corruptGenericMath": "Corrupt generic math",
"quickmeth.jfconfig.corruptGenericMath.tooltip": "Corrupts methods in MathHelper. This will impact many things but most notably movement",
"quickmeth.jfconfig.corruptGenericMath2": "Corrupt more generic math",
"quickmeth.jfconfig.corruptGenericMath2.tooltip": "Corrupts more methods in MathHelper. These WILL break a lot of things so they are separate",
"quickmeth.jfconfig.corruptTrigonometry": "Corrupt Trigonometry",
"quickmeth.jfconfig.corruptTrigonometry.tooltip": "Corrupts trigonometry methods. Effects vary",
"quickmeth.jfconfig.corruptTrigonometry2": "Corrupt more Trigonometry",
"quickmeth.jfconfig.corruptTrigonometry2.tooltip": "Corrupts all trigonometry methods. This WILL break a lot of things",
"quickmeth.jfconfig.corruptPerlinNoise": "Corrupt perlin noise",
"quickmeth.jfconfig.corruptPerlinNoise.tooltip": "Corrupts methods in OctavePerlinNoiseSampler and PerlinNoiseSampler. This will mostly impact world generation",
"quickmeth.jfconfig.corruptSimplexNoise": "Corrupt simplex noise",
"quickmeth.jfconfig.corruptSimplexNoise.tooltip": "Corrupts methods in SimplexNoiseSampler. I am actually not sure what this breaks",
"quickmeth.jfconfig.debugAsm": "Debug ASM",
"quickmeth.jfconfig.debugAsm.tooltip": "Prints debug messages for the purpose of debugging"
}

View File

@ -1,37 +1,33 @@
{
"schemaVersion": 1,
"id": "quickmeth",
"id": "quickmath",
"provides": ["quickmeth"],
"version": "${version}",
"name": "Quickmeth",
"description": "Replaces math methods with incorrect alternatives",
"name": "Quickth",
"description": "Replaces math methods with incorrect alternatives, causing interesting corruption",
"authors": [
"JFronny"
],
"contact": {
"website": "https://jfronny.gitlab.io",
"repo": "https://gitlab.com/jfmods/Quickmeth"
"email": "projects.contact@frohnmeyer-wds.de",
"homepage": "https://jfronny.gitlab.io",
"issues": "https://git.frohnmeyer-wds.de/JfMods/QuickMath/issues",
"sources": "https://git.frohnmeyer-wds.de/JfMods/QuickMath"
},
"license": "MIT",
"icon": "assets/quickmeth/icon.png",
"icon": "assets/quickmath/icon.png",
"environment": "*",
"entrypoints": {
"libjf:config": [
"io.gitlab.jfronny.quickmeth.Cfg"
],
"libjf:asm": [
"io.gitlab.jfronny.quickmeth.BytecodeTransformer"
],
"main": [
"io.gitlab.jfronny.quickmeth.ModMain"
]
"libjf:config": ["io.gitlab.jfronny.quickmath.JFC_Cfg"],
"libjf:asm": ["io.gitlab.jfronny.quickmath.BytecodeTransformer"],
"main": ["io.gitlab.jfronny.quickmath.ModMain"]
},
"mixins": [
"quickmeth.mixins.json"
],
"mixins": ["quickmath.mixins.json"],
"depends": {
"fabricloader": ">=0.13.3",
"minecraft": "*",
"libjf-config-v0": ">=2.7.1"
"libjf-config-core-v1": ">=2.10.0",
"libjf-unsafe-v0": ">=2.10.0"
},
"custom": {
"lithium:options": {

View File

@ -1,9 +1,9 @@
{
"required": true,
"minVersion": "0.8",
"package": "io.gitlab.jfronny.quickmeth.mixin",
"package": "io.gitlab.jfronny.quickmath.mixin",
"compatibilityLevel": "JAVA_17",
"plugin": "io.gitlab.jfronny.quickmeth.MixinPlugin",
"plugin": "io.gitlab.jfronny.quickmath.MixinPlugin",
"mixins": [
"MathHelperMixin",
"MathHelperMixin2",