Compare commits

...

17 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
23 changed files with 188 additions and 177 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,4 +1,4 @@
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)

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.5"
}

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.1
yarn_mappings=build.1
loader_version=0.14.8
maven_group=io.jfronny.gitlab
archives_base_name=quickmeth
fabric_version=0.58.5+1.19.1
jfapi_version=2.10.0
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,32 @@
{
"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.10.0",
"libjf-config-core-v1": ">=2.10.0",
"libjf-unsafe-v0": ">=2.10.0"
},
"custom": {

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",