From 00f3f80ef94a08d867d9cdd5107c35777712050f Mon Sep 17 00:00:00 2001 From: Matyrobbrt <65940752+Matyrobbrt@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:22:16 +0200 Subject: [PATCH] Add task to generate ats (#1719) --- .github/workflows/check-local-changes.yml | 4 +- buildSrc/build.gradle | 2 + .../neodev/ApplyAccessTransformer.java | 25 +- .../neodev/GenerateAccessTransformers.java | 179 +++++++++ .../net/neoforged/neodev/NeoDevPlugin.java | 51 ++- .../neodev/utils/SerializablePredicate.java | 10 + .../neodev/utils/structure/ClassInfo.java | 27 ++ .../structure/ClassStructureVisitor.java | 83 ++++ .../neodev/utils/structure/FieldInfo.java | 10 + .../neodev/utils/structure/MethodInfo.java | 10 + projects/neoforge/build.gradle | 61 +++ settings.gradle | 1 + .../resources/META-INF/accesstransformer.cfg | 206 +--------- .../META-INF/accesstransformergenerated.cfg | 380 ++++++++++++++++++ .../resources/META-INF/neoforge.mods.toml | 5 + 15 files changed, 823 insertions(+), 231 deletions(-) create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/GenerateAccessTransformers.java create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/utils/SerializablePredicate.java create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassInfo.java create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassStructureVisitor.java create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/utils/structure/FieldInfo.java create mode 100644 buildSrc/src/main/java/net/neoforged/neodev/utils/structure/MethodInfo.java create mode 100644 src/main/resources/META-INF/accesstransformergenerated.cfg diff --git a/.github/workflows/check-local-changes.yml b/.github/workflows/check-local-changes.yml index 0609d67e89d..3af8b101d08 100644 --- a/.github/workflows/check-local-changes.yml +++ b/.github/workflows/check-local-changes.yml @@ -40,8 +40,8 @@ jobs: - name: Gen package infos run: ./gradlew generatePackageInfos - - name: Gen patches - run: ./gradlew :neoforge:genPatches + - name: Gen patches and ATs + run: ./gradlew :neoforge:genPatches :neoforge:generateAccessTransformers - name: Run datagen with Gradle run: ./gradlew :neoforge:runData :tests:runData diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 6d0ce4c5af1..7c272aa20ad 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -23,4 +23,6 @@ dependencies { implementation "com.google.code.gson:gson:${gradle.parent.ext.gson_version}" implementation "io.codechicken:DiffPatch:${gradle.parent.ext.diffpatch_version}" + + implementation "org.ow2.asm:asm:${gradle.parent.ext.asm_version}" } diff --git a/buildSrc/src/main/java/net/neoforged/neodev/ApplyAccessTransformer.java b/buildSrc/src/main/java/net/neoforged/neodev/ApplyAccessTransformer.java index 7131cc8fddc..2456766cef4 100644 --- a/buildSrc/src/main/java/net/neoforged/neodev/ApplyAccessTransformer.java +++ b/buildSrc/src/main/java/net/neoforged/neodev/ApplyAccessTransformer.java @@ -7,6 +7,7 @@ import org.gradle.api.tasks.Classpath; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.InputFile; +import org.gradle.api.tasks.InputFiles; import org.gradle.api.tasks.Internal; import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.OutputFile; @@ -17,6 +18,8 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; /** * Runs JavaSourceTransformer to apply @@ -28,8 +31,8 @@ abstract class ApplyAccessTransformer extends JavaExec { @InputFile public abstract RegularFileProperty getInputJar(); - @InputFile - public abstract RegularFileProperty getAccessTransformer(); + @InputFiles + public abstract ConfigurableFileCollection getAccessTransformers(); @Input public abstract Property getValidate(); @@ -59,13 +62,23 @@ public void exec() { throw new UncheckedIOException("Failed to write libraries for JST.", exception); } - args( + var args = new ArrayList<>(Arrays.asList( "--enable-accesstransformers", - "--access-transformer", getAccessTransformer().getAsFile().get().getAbsolutePath(), "--access-transformer-validation", getValidate().get() ? "error" : "log", - "--libraries-list", getLibrariesFile().getAsFile().get().getAbsolutePath(), + "--libraries-list", getLibrariesFile().getAsFile().get().getAbsolutePath() + )); + + for (var file : getAccessTransformers().getFiles()) { + args.addAll(Arrays.asList( + "--access-transformer", file.getAbsolutePath() + )); + } + + args.addAll(Arrays.asList( getInputJar().getAsFile().get().getAbsolutePath(), - getOutputJar().getAsFile().get().getAbsolutePath()); + getOutputJar().getAsFile().get().getAbsolutePath())); + + args(args); super.exec(); } diff --git a/buildSrc/src/main/java/net/neoforged/neodev/GenerateAccessTransformers.java b/buildSrc/src/main/java/net/neoforged/neodev/GenerateAccessTransformers.java new file mode 100644 index 00000000000..0158087e5a5 --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/GenerateAccessTransformers.java @@ -0,0 +1,179 @@ +package net.neoforged.neodev; + +import net.neoforged.neodev.utils.FileUtils; +import net.neoforged.neodev.utils.SerializablePredicate; +import net.neoforged.neodev.utils.structure.ClassInfo; +import net.neoforged.neodev.utils.structure.ClassStructureVisitor; +import net.neoforged.neodev.utils.structure.FieldInfo; +import net.neoforged.neodev.utils.structure.MethodInfo; +import org.gradle.api.DefaultTask; +import org.gradle.api.Named; +import org.gradle.api.file.RegularFileProperty; +import org.gradle.api.provider.ListProperty; +import org.gradle.api.tasks.Input; +import org.gradle.api.tasks.InputFile; +import org.gradle.api.tasks.OutputFile; +import org.gradle.api.tasks.TaskAction; +import org.objectweb.asm.Opcodes; + +import javax.annotation.Nullable; +import java.io.IOException; +import java.io.Serializable; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * This task is used to generate access transformers based on a set of rules defined in the buildscript. + */ +public abstract class GenerateAccessTransformers extends DefaultTask { + public static final Modifier PUBLIC = new Modifier("public", false, Opcodes.ACC_PUBLIC); + public static final Modifier PROTECTED = new Modifier("protected", false, Opcodes.ACC_PUBLIC, Opcodes.ACC_PROTECTED); + + @InputFile + public abstract RegularFileProperty getInput(); + + @OutputFile + public abstract RegularFileProperty getAccessTransformer(); + + @Input + public abstract ListProperty getGroups(); + + @TaskAction + public void exec() throws IOException { + // First we collect all classes + var targets = ClassStructureVisitor.readJar(getInput().getAsFile().get()); + + var groupList = getGroups().get(); + + List[] groups = new List[groupList.size()]; + for (int i = 0; i < groupList.size(); i++) { + groups[i] = new ArrayList<>(); + } + + // Now we check each class against each group and see if the group wants to handle it + for (ClassInfo value : targets.values()) { + for (int i = 0; i < groupList.size(); i++) { + var group = groupList.get(i); + if (group.classMatch.test(value)) { + var lastInner = value.name().lastIndexOf("$"); + // Skip anonymous classes + if (lastInner >= 0 && Character.isDigit(value.name().charAt(lastInner + 1))) { + continue; + } + + // fieldMatch is non-null only for field ATs + if (group.fieldMatch != null) { + for (var field : value.fields()) { + if (group.fieldMatch.test(field) && !group.modifier.test(field.access())) { + groups[i].add(group.modifier.name + " " + value.name().replace('/', '.') + " " + field.name()); + } + } + } + // methodMatch is non-null only for group ATs + else if (group.methodMatch != null) { + for (var method : value.methods()) { + if (group.methodMatch.test(method) && !group.modifier.test(method.access())) { + groups[i].add(group.modifier.name + " " + value.name().replace('/', '.') + " " + method.name() + method.descriptor()); + } + } + } + // If there's neither a field nor a method predicate, this is a class AT + else if (!group.modifier.test(value.access().intValue())) { + groups[i].add(group.modifier.name + " " + value.name().replace('/', '.')); + + // If we AT a record we must ensure that its constructors have the same AT + if (value.hasSuperclass("java/lang/Record")) { + for (MethodInfo method : value.methods()) { + if (method.name().equals("")) { + groups[i].add(group.modifier.name + " " + value.name().replace('/', '.') + " " + method.name() + method.descriptor()); + } + } + } + } + } + } + } + + // Dump the ATs + var text = new StringBuilder(); + + text.append("# This file is generated based on the rules defined in the buildscript. DO NOT modify it manually.\n# Add more rules in the buildscript and then run the generateAccessTransformers task to update this file.\n\n"); + + for (int i = 0; i < groups.length; i++) { + // Check if the group found no targets. If it didn't, there's probably an error in the test and it should be reported + if (groups[i].isEmpty()) { + throw new IllegalStateException("Generated AT group '" + groupList.get(i).name + "' found no entries!"); + } + text.append("# ").append(groupList.get(i).name).append('\n'); + text.append(groups[i].stream().sorted().collect(Collectors.joining("\n"))); + text.append('\n'); + + if (i < groups.length - 1) text.append('\n'); + } + + var outFile = getAccessTransformer().getAsFile().get().toPath(); + if (!Files.exists(outFile.getParent())) { + Files.createDirectories(outFile.getParent()); + } + + FileUtils.writeStringSafe(outFile, text.toString(), StandardCharsets.UTF_8); + } + + public void classGroup(String name, Modifier modifier, SerializablePredicate match) { + getGroups().add(new AtGroup(name, modifier, match, null, null)); + } + + public void methodGroup(String name, Modifier modifier, SerializablePredicate targetTest, SerializablePredicate methodTest) { + getGroups().add(new AtGroup(name, modifier, targetTest, methodTest, null)); + } + + public void fieldGroup(String name, Modifier modifier, SerializablePredicate targetTest, SerializablePredicate fieldTest) { + getGroups().add(new AtGroup(name, modifier, targetTest, null, fieldTest)); + } + + public SerializablePredicate named(String name) { + return target -> target.getName().equals(name); + } + + public SerializablePredicate classesWithSuperclass(String superClass) { + return target -> target.hasSuperclass(superClass); + } + + public SerializablePredicate innerClassesOf(String parent) { + var parentFullName = parent + "$"; + return target -> target.name().startsWith(parentFullName); + } + + public SerializablePredicate methodsReturning(String type) { + var endMatch = ")L" + type + ";"; + return methodInfo -> methodInfo.descriptor().endsWith(endMatch); + } + + public SerializablePredicate fieldsOfType(SerializablePredicate type) { + return value -> type.test(value.type()); + } + + public SerializablePredicate matchAny() { + return value -> true; + } + + public record AtGroup(String name, Modifier modifier, SerializablePredicate classMatch, + @Nullable SerializablePredicate methodMatch, @Nullable SerializablePredicate fieldMatch) implements Serializable { + } + + public record Modifier(String name, boolean isFinal, int... validOpcodes) implements Serializable { + public boolean test(int value) { + if (isFinal && (value & Opcodes.ACC_FINAL) == 0) return false; + + for (int validOpcode : validOpcodes) { + if ((value & validOpcode) != 0) { + return true; + } + } + return false; + } + } +} diff --git a/buildSrc/src/main/java/net/neoforged/neodev/NeoDevPlugin.java b/buildSrc/src/main/java/net/neoforged/neodev/NeoDevPlugin.java index d38f91f46bb..0a5afa25390 100644 --- a/buildSrc/src/main/java/net/neoforged/neodev/NeoDevPlugin.java +++ b/buildSrc/src/main/java/net/neoforged/neodev/NeoDevPlugin.java @@ -70,14 +70,42 @@ public void apply(Project project) { // Task must run on sync to have MC resources available for IDEA nondelegated builds. NeoDevFacade.runTaskOnProjectSync(project, createSourceArtifacts); + // Obtain clean binary artifacts, needed to be able to generate ATs + var createCleanArtifacts = tasks.register("createCleanArtifacts", CreateCleanArtifacts.class, task -> { + task.setGroup(INTERNAL_GROUP); + task.setDescription("This task retrieves various files for the Minecraft version without applying NeoForge patches to them"); + var cleanArtifactsDir = neoDevBuildDir.map(dir -> dir.dir("artifacts/clean")); + task.getRawClientJar().set(cleanArtifactsDir.map(dir -> dir.file("raw-client.jar"))); + task.getCleanClientJar().set(cleanArtifactsDir.map(dir -> dir.file("client.jar"))); + task.getRawServerJar().set(cleanArtifactsDir.map(dir -> dir.file("raw-server.jar"))); + task.getCleanServerJar().set(cleanArtifactsDir.map(dir -> dir.file("server.jar"))); + task.getCleanJoinedJar().set(cleanArtifactsDir.map(dir -> dir.file("joined.jar"))); + task.getMergedMappings().set(cleanArtifactsDir.map(dir -> dir.file("merged-mappings.txt"))); + task.getNeoFormArtifact().set(mcAndNeoFormVersion.map(version -> "net.neoforged:neoform:" + version + "@zip")); + }); + + var genAts = project.getRootProject().file("src/main/resources/META-INF/accesstransformergenerated.cfg"); + + var genAtsTask = tasks.register("generateAccessTransformers", GenerateAccessTransformers.class, task -> { + task.setGroup(GROUP); + task.setDescription("Generate access transformers based on a set of rules defined in the buildscript"); + task.getInput().set(createCleanArtifacts.flatMap(CreateCleanArtifacts::getCleanJoinedJar)); + task.getAccessTransformer().set(genAts); + }); + // 2. Apply AT to the source jar from 1. - var atFile = project.getRootProject().file("src/main/resources/META-INF/accesstransformer.cfg"); + var atFiles = List.of( + project.getRootProject().file("src/main/resources/META-INF/accesstransformer.cfg"), + genAts + ); var applyAt = configureAccessTransformer( project, configurations, createSourceArtifacts, neoDevBuildDir, - atFile); + atFiles); + + applyAt.configure(task -> task.mustRunAfter(genAtsTask)); // 3. Apply patches to the source jar from 2. var patchesFolder = project.getRootProject().file("patches"); @@ -212,19 +240,6 @@ public void apply(Project project) { jarJarTask.configure(task -> task.setGroup(INTERNAL_GROUP)); universalJar.configure(task -> task.from(jarJarTask)); - var createCleanArtifacts = tasks.register("createCleanArtifacts", CreateCleanArtifacts.class, task -> { - task.setGroup(INTERNAL_GROUP); - task.setDescription("This task retrieves various files for the Minecraft version without applying NeoForge patches to them"); - var cleanArtifactsDir = neoDevBuildDir.map(dir -> dir.dir("artifacts/clean")); - task.getRawClientJar().set(cleanArtifactsDir.map(dir -> dir.file("raw-client.jar"))); - task.getCleanClientJar().set(cleanArtifactsDir.map(dir -> dir.file("client.jar"))); - task.getRawServerJar().set(cleanArtifactsDir.map(dir -> dir.file("raw-server.jar"))); - task.getCleanServerJar().set(cleanArtifactsDir.map(dir -> dir.file("server.jar"))); - task.getCleanJoinedJar().set(cleanArtifactsDir.map(dir -> dir.file("joined.jar"))); - task.getMergedMappings().set(cleanArtifactsDir.map(dir -> dir.file("merged-mappings.txt"))); - task.getNeoFormArtifact().set(mcAndNeoFormVersion.map(version -> "net.neoforged:neoform:" + version + "@zip")); - }); - var binaryPatchOutputs = configureBinaryPatchCreation( project, configurations, @@ -390,7 +405,7 @@ public void apply(Project project) { task.from(writeUserDevConfig.flatMap(CreateUserDevConfig::getUserDevConfig), spec -> { spec.rename(s -> "config.json"); }); - task.from(atFile, spec -> { + task.from(atFiles, spec -> { spec.into("ats/"); }); task.from(binaryPatchOutputs.binaryPatchesForMerged(), spec -> { @@ -434,7 +449,7 @@ private static TaskProvider configureAccessTransformer( NeoDevConfigurations configurations, TaskProvider createSourceArtifacts, Provider neoDevBuildDir, - File atFile) { + List atFiles) { // Pass -PvalidateAccessTransformers to validate ATs. var validateAts = project.getProviders().gradleProperty("validateAccessTransformers").map(p -> true).orElse(false); @@ -442,7 +457,7 @@ private static TaskProvider configureAccessTransformer( task.setGroup(INTERNAL_GROUP); task.classpath(configurations.getExecutableTool(Tools.JST)); task.getInputJar().set(createSourceArtifacts.flatMap(CreateMinecraftArtifacts::getSourcesArtifact)); - task.getAccessTransformer().set(atFile); + task.getAccessTransformers().from(atFiles); task.getValidate().set(validateAts); task.getOutputJar().set(neoDevBuildDir.map(dir -> dir.file("artifacts/access-transformed-sources.jar"))); task.getLibraries().from(configurations.neoFormClasspath); diff --git a/buildSrc/src/main/java/net/neoforged/neodev/utils/SerializablePredicate.java b/buildSrc/src/main/java/net/neoforged/neodev/utils/SerializablePredicate.java new file mode 100644 index 00000000000..9a42b1669e3 --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/utils/SerializablePredicate.java @@ -0,0 +1,10 @@ +package net.neoforged.neodev.utils; + +import java.io.Serializable; +import java.util.function.Predicate; + +@FunctionalInterface +public interface SerializablePredicate extends Serializable, Predicate { + @Override + boolean test(T value); +} diff --git a/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassInfo.java b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassInfo.java new file mode 100644 index 00000000000..a9a4102f12c --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassInfo.java @@ -0,0 +1,27 @@ +package net.neoforged.neodev.utils.structure; + +import org.apache.commons.lang3.mutable.MutableInt; +import org.gradle.api.Named; + +import java.util.List; + +public record ClassInfo(String name, MutableInt access, List parents, List methods, + List fields) implements Named { + public void addMethod(String name, String desc, int access) { + this.methods.add(new MethodInfo(name, desc, access)); + } + + public boolean hasSuperclass(String name) { + for (ClassInfo parent : parents) { + if (parent.hasSuperclass(name)) { + return true; + } + } + return this.name.equals(name); + } + + @Override + public String getName() { + return name; + } +} diff --git a/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassStructureVisitor.java b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassStructureVisitor.java new file mode 100644 index 00000000000..ae6f99ef5b8 --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/ClassStructureVisitor.java @@ -0,0 +1,83 @@ +package net.neoforged.neodev.utils.structure; + +import org.apache.commons.lang3.mutable.MutableInt; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.zip.ZipFile; + +public final class ClassStructureVisitor extends ClassVisitor { + private final Map classes; + ClassInfo current; + + private ClassStructureVisitor(Map classes) { + super(Opcodes.ASM9); + this.classes = classes; + } + + public static Map readJar(File file) throws IOException { + var map = new HashMap(); + var visitor = new ClassStructureVisitor(map); + try (var zip = new ZipFile(file)) { + var entries = zip.entries(); + while (entries.hasMoreElements()) { + var next = entries.nextElement(); + if (next.isDirectory() || !next.getName().endsWith(".class")) continue; + + try (var in = zip.getInputStream(next)) { + var reader = new ClassReader(in); + reader.accept(visitor, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); + } + } + } + return map; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { + current = getClass(name); + current.access().setValue(access); + if (superName != null) { + current.parents().add(getClass(superName)); + } + for (String iface : interfaces) { + current.parents().add(getClass(iface)); + } + } + + @Override + public void visitInnerClass(String name, String outerName, String innerName, int access) { + if (name.equals(current.name())) { + current.access().setValue(access); + } + } + + @Override + public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value) { + current.fields().add(new FieldInfo(name, getClass(Type.getType(descriptor).getInternalName()), access)); + return null; + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) { + current.addMethod(name, descriptor, access); + return null; + } + + private ClassInfo getClass(String name) { + var existing = classes.get(name); + if (existing != null) return existing; + existing = new ClassInfo(name, new MutableInt(0), new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + classes.put(name, existing); + return existing; + } +} diff --git a/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/FieldInfo.java b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/FieldInfo.java new file mode 100644 index 00000000000..378c634a8e0 --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/FieldInfo.java @@ -0,0 +1,10 @@ +package net.neoforged.neodev.utils.structure; + +import org.gradle.api.Named; + +public record FieldInfo(String name, ClassInfo type, int access) implements Named { + @Override + public String getName() { + return name; + } +} diff --git a/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/MethodInfo.java b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/MethodInfo.java new file mode 100644 index 00000000000..8ec02e36780 --- /dev/null +++ b/buildSrc/src/main/java/net/neoforged/neodev/utils/structure/MethodInfo.java @@ -0,0 +1,10 @@ +package net.neoforged.neodev.utils.structure; + +import org.gradle.api.Named; + +public record MethodInfo(String name, String descriptor, int access) implements Named { + @Override + public String getName() { + return name; + } +} diff --git a/projects/neoforge/build.gradle b/projects/neoforge/build.gradle index bc5638d3ed4..6fb662a1621 100644 --- a/projects/neoforge/build.gradle +++ b/projects/neoforge/build.gradle @@ -161,6 +161,67 @@ neoDev { } } +generateAccessTransformers { + // Make all state shards public + classGroup( + 'render state shard classes', PUBLIC, + innerClassesOf('net/minecraft/client/renderer/RenderStateShard') + ) + // Make all state shard fields public + fieldGroup( + 'render state shards', PUBLIC, + named('net/minecraft/client/renderer/RenderStateShard'), + fieldsOfType(classesWithSuperclass('net/minecraft/client/renderer/RenderStateShard')) + ) + + // Make all block constructors public so they can be used by mods + methodGroup( + 'block constructors', PUBLIC, + classesWithSuperclass('net/minecraft/world/level/block/Block'), + named('') + ) + // Make all particle constructors public so they can be used by mods + methodGroup( + 'particle constructors', PUBLIC, + classesWithSuperclass('net/minecraft/client/particle/Particle'), + named('') + ) + + // Make all criteria methods in the recipe provider protected so mods can use them + methodGroup( + 'recipe criteria', PROTECTED, + named('net/minecraft/data/recipes/RecipeProvider'), + methodsReturning('net/minecraft/advancements/Criterion') + ) + + // getStepSound is package-private and abstract, so mods couldn't otherwise extend from AbstractSkeleton + methodGroup( + 'skeleton step sound', PROTECTED, + classesWithSuperclass('net/minecraft/world/entity/monster/AbstractSkeleton'), + named('getStepSound') + ) + + // Make all noise generator setting factories public so mods can use them for custom dimensions + methodGroup( + 'noise generator', PUBLIC, + named('net/minecraft/world/level/levelgen/NoiseGeneratorSettings'), + methodsReturning('net/minecraft/world/level/levelgen/NoiseGeneratorSettings') + ) + + fieldGroup( + 'biome effects builder', PROTECTED, + named('net/minecraft/world/level/biome/BiomeSpecialEffects$Builder'), + matchAny() + ) + + // Make all creative tab ids accessible + fieldGroup( + 'creative tabs', PUBLIC, + named('net/minecraft/world/item/CreativeModeTabs'), + fieldsOfType(named('net/minecraft/resources/ResourceKey')) + ) +} + tasks.withType(Javadoc.class).configureEach { options.tags = [ 'apiNote:a:API Note:', diff --git a/settings.gradle b/settings.gradle index aff93fdd4ca..8ebcc3b576f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,6 +15,7 @@ plugins { gradle.ext.moddevgradle_plugin_version = moddevgradle_plugin_version gradle.ext.gson_version = gson_version gradle.ext.diffpatch_version = diffpatch_version +gradle.ext.asm_version = asm_version dependencyResolutionManagement { repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 1f3cdb8df4a..0497cdda0e8 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,3 +1,4 @@ +# Note: This file is for manually added ATs. When AT entries can be programmatically generated based on fixed rules you may define those rules in the build.gradle file public net.minecraft.advancements.CriteriaTriggers register(Ljava/lang/String;Lnet/minecraft/advancements/CriterionTrigger;)Lnet/minecraft/advancements/CriterionTrigger; # register default net.minecraft.client.KeyMapping isDown # isDown public-f net.minecraft.client.Options keyMappings # keyMappings @@ -47,27 +48,9 @@ public net.minecraft.client.renderer.RenderType create(Ljava/lang/String;Lcom/mo public net.minecraft.client.renderer.RenderType create(Ljava/lang/String;Lcom/mojang/blaze3d/vertex/VertexFormat;Lcom/mojang/blaze3d/vertex/VertexFormat$Mode;IZZLnet/minecraft/client/renderer/RenderType$CompositeState;)Lnet/minecraft/client/renderer/RenderType$CompositeRenderType; # create public net.minecraft.client.renderer.RenderType$OutlineProperty public net.minecraft.client.renderer.RenderType$CompositeState -public net.minecraft.client.renderer.RenderStateShard * protected-f net.minecraft.client.renderer.RenderStateShard$TextureStateShard blur # blur protected-f net.minecraft.client.renderer.RenderStateShard$TextureStateShard mipmap # mipmap public net.minecraft.client.renderer.RenderStateShard setupGlintTexturing(F)V -public net.minecraft.client.renderer.RenderStateShard$BooleanStateShard -public net.minecraft.client.renderer.RenderStateShard$ColorLogicStateShard -public net.minecraft.client.renderer.RenderStateShard$CullStateShard -public net.minecraft.client.renderer.RenderStateShard$DepthTestStateShard -public net.minecraft.client.renderer.RenderStateShard$EmptyTextureStateShard -public net.minecraft.client.renderer.RenderStateShard$LayeringStateShard -public net.minecraft.client.renderer.RenderStateShard$LightmapStateShard -public net.minecraft.client.renderer.RenderStateShard$LineStateShard -public net.minecraft.client.renderer.RenderStateShard$MultiTextureStateShard -public net.minecraft.client.renderer.RenderStateShard$OffsetTexturingStateShard -public net.minecraft.client.renderer.RenderStateShard$OutputStateShard -public net.minecraft.client.renderer.RenderStateShard$OverlayStateShard -public net.minecraft.client.renderer.RenderStateShard$ShaderStateShard -public net.minecraft.client.renderer.RenderStateShard$TextureStateShard -public net.minecraft.client.renderer.RenderStateShard$TexturingStateShard -public net.minecraft.client.renderer.RenderStateShard$TransparencyStateShard -public net.minecraft.client.renderer.RenderStateShard$WriteMaskStateShard #endgroup default net.minecraft.client.renderer.chunk.RenderChunk wrapped public net.minecraft.client.renderer.block.model.BlockElement uvsByFace(Lnet/minecraft/core/Direction;)[F # uvsByFace @@ -118,9 +101,6 @@ public net.minecraft.core.particles.SimpleParticleType (Z)V # constructor protected net.minecraft.data.loot.BlockLootSubProvider createSilkTouchOnlyTable(Lnet/minecraft/world/level/ItemLike;)Lnet/minecraft/world/level/storage/loot/LootTable$Builder; # createSilkTouchOnlyTable protected net.minecraft.data.loot.BlockLootSubProvider createPotFlowerItemTable(Lnet/minecraft/world/level/ItemLike;)Lnet/minecraft/world/level/storage/loot/LootTable$Builder; # createPotFlowerItemTable protected net.minecraft.data.loot.BlockLootSubProvider createSelfDropDispatchTable(Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/storage/loot/predicates/LootItemCondition$Builder;Lnet/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Builder;)Lnet/minecraft/world/level/storage/loot/LootTable$Builder; # createSelfDropDispatchTable -protected net.minecraft.data.recipes.RecipeProvider insideOf(Lnet/minecraft/world/level/block/Block;)Lnet/minecraft/advancements/Criterion; # insideOf -protected net.minecraft.data.recipes.RecipeProvider inventoryTrigger([Lnet/minecraft/advancements/critereon/ItemPredicate;)Lnet/minecraft/advancements/Criterion; # inventoryTrigger -protected net.minecraft.data.recipes.RecipeProvider has(Lnet/minecraft/advancements/critereon/MinMaxBounds$Ints;Lnet/minecraft/world/level/ItemLike;)Lnet/minecraft/advancements/Criterion; # has protected net.minecraft.data.recipes.RecipeProvider getBaseBlock(Lnet/minecraft/data/BlockFamily;Lnet/minecraft/data/BlockFamily$Variant;)Lnet/minecraft/world/level/block/Block; # getBaseBlock protected net.minecraft.data.recipes.RecipeProvider buttonBuilder(Lnet/minecraft/world/level/ItemLike;Lnet/minecraft/world/item/crafting/Ingredient;)Lnet/minecraft/data/recipes/RecipeBuilder; # buttonBuilder protected net.minecraft.data.recipes.RecipeProvider fenceBuilder(Lnet/minecraft/world/level/ItemLike;Lnet/minecraft/world/item/crafting/Ingredient;)Lnet/minecraft/data/recipes/RecipeBuilder; # fenceBuilder @@ -134,7 +114,6 @@ protected net.minecraft.data.recipes.RecipeProvider polishedBuilder(Lnet/minecra protected net.minecraft.data.recipes.RecipeProvider pressurePlateBuilder(Lnet/minecraft/data/recipes/RecipeCategory;Lnet/minecraft/world/level/ItemLike;Lnet/minecraft/world/item/crafting/Ingredient;)Lnet/minecraft/data/recipes/RecipeBuilder; # pressurePlateBuilder protected net.minecraft.data.recipes.RecipeProvider nineBlockStorageRecipes(Lnet/minecraft/data/recipes/RecipeCategory;Lnet/minecraft/world/level/ItemLike;Lnet/minecraft/data/recipes/RecipeCategory;Lnet/minecraft/world/level/ItemLike;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V # nineBlockStorageRecipes protected net.minecraft.data.recipes.RecipeProvider simpleCookingRecipe(Ljava/lang/String;Lnet/minecraft/world/item/crafting/RecipeSerializer;Lnet/minecraft/world/item/crafting/AbstractCookingRecipe$Factory;ILnet/minecraft/world/level/ItemLike;Lnet/minecraft/world/level/ItemLike;F)V # simpleCookingRecipe -protected net.minecraft.data.recipes.RecipeProvider inventoryTrigger([Lnet/minecraft/advancements/critereon/ItemPredicate$Builder;)Lnet/minecraft/advancements/Criterion; # inventoryTrigger public net.minecraft.data.recipes.RecipeProvider$Runner protected net.minecraft.data.recipes.packs.VanillaRecipeProvider (Lnet/minecraft/core/HolderLookup$Provider;Lnet/minecraft/data/recipes/RecipeOutput;)V public net.minecraft.data.recipes.packs.VanillaRecipeProvider COAL_SMELTABLES # COAL_SMELTABLES @@ -196,10 +175,6 @@ public net.minecraft.world.entity.Mob goalSelector # goalSelector public net.minecraft.world.entity.Mob targetSelector # targetSelector public net.minecraft.world.entity.ai.sensing.SensorType (Ljava/util/function/Supplier;)V # constructor protected net.minecraft.world.entity.item.PrimedTnt explode()V # explode - make it easier to extend TNTEntity with custom explosion logic -protected net.minecraft.world.entity.monster.AbstractSkeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; # getStepSound - make AbstractSkeletonEntity implementable -protected net.minecraft.world.entity.monster.Skeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; # getStepSound - make AbstractSkeletonEntity implementable -protected net.minecraft.world.entity.monster.Stray getStepSound()Lnet/minecraft/sounds/SoundEvent; # getStepSound - make AbstractSkeletonEntity implementable -protected net.minecraft.world.entity.monster.WitherSkeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; # getStepSound - make AbstractSkeletonEntity implementable public net.minecraft.world.entity.npc.VillagerType (Ljava/lang/String;)V # constructor public net.minecraft.world.entity.player.Player closeContainer()V # closeContainer protected net.minecraft.world.entity.projectile.Projectile (Lnet/minecraft/world/entity/EntityType;Lnet/minecraft/world/level/Level;)V # constructor @@ -211,20 +186,6 @@ public net.minecraft.world.inventory.AnvilMenu repairItemCountCost # repairItemC public net.minecraft.world.inventory.MenuType (Lnet/minecraft/world/inventory/MenuType$MenuSupplier;Lnet/minecraft/world/flag/FeatureFlagSet;)V # constructor public net.minecraft.world.inventory.MenuType$MenuSupplier public net.minecraft.world.item.CreativeModeTab$TabVisibility -public net.minecraft.world.item.CreativeModeTabs COLORED_BLOCKS # COLORED_BLOCKS -public net.minecraft.world.item.CreativeModeTabs SPAWN_EGGS # SPAWN_EGGS -public net.minecraft.world.item.CreativeModeTabs SEARCH # SEARCH -public net.minecraft.world.item.CreativeModeTabs NATURAL_BLOCKS # NATURAL_BLOCKS -public net.minecraft.world.item.CreativeModeTabs BUILDING_BLOCKS # BUILDING_BLOCKS -public net.minecraft.world.item.CreativeModeTabs FUNCTIONAL_BLOCKS # FUNCTIONAL_BLOCKS -public net.minecraft.world.item.CreativeModeTabs COMBAT # COMBAT -public net.minecraft.world.item.CreativeModeTabs OP_BLOCKS # OP_BLOCKS -public net.minecraft.world.item.CreativeModeTabs FOOD_AND_DRINKS # FOOD_AND_DRINKS -public net.minecraft.world.item.CreativeModeTabs TOOLS_AND_UTILITIES # TOOLS_AND_UTILITIES -public net.minecraft.world.item.CreativeModeTabs HOTBAR # HOTBAR -public net.minecraft.world.item.CreativeModeTabs INGREDIENTS # INGREDIENTS -public net.minecraft.world.item.CreativeModeTabs REDSTONE_BLOCKS # REDSTONE_BLOCKS -public net.minecraft.world.item.CreativeModeTabs INVENTORY # INVENTORY #group public net.minecraft.world.item.Item public net.minecraft.world.item.DiggerItem (Lnet/minecraft/world/item/ToolMaterial;Lnet/minecraft/tags/TagKey;FFLnet/minecraft/world/item/Item$Properties;)V #endgroup @@ -252,124 +213,9 @@ public net.minecraft.world.level.biome.BiomeGenerationSettings (Lnet/minec protected net.minecraft.world.level.biome.BiomeGenerationSettings$PlainBuilder features # features protected net.minecraft.world.level.biome.BiomeGenerationSettings$PlainBuilder carvers # carvers protected net.minecraft.world.level.biome.BiomeGenerationSettings$PlainBuilder addFeatureStepsUpTo(I)V # addFeatureStepsUpTo -#group protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder * -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder fogColor # fogColor -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder waterColor # waterColor -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder waterFogColor # waterFogColor -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder skyColor # skyColor -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder foliageColorOverride # foliageColorOverride -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder grassColorOverride # grassColorOverride -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder grassColorModifier # grassColorModifier -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientParticle # ambientParticle -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientLoopSoundEvent # ambientLoopSoundEvent -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientMoodSettings # ambientMoodSettings -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientAdditionsSettings # ambientAdditionsSettings -protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder backgroundMusic # backgroundMusic -#endgroup protected net.minecraft.world.level.biome.MobSpawnSettings$Builder spawners # spawners protected net.minecraft.world.level.biome.MobSpawnSettings$Builder mobSpawnCosts # mobSpawnCosts protected net.minecraft.world.level.biome.MobSpawnSettings$Builder creatureGenerationProbability # creatureGenerationProbability -#group public net.minecraft.world.level.block.Block -public net.minecraft.world.level.block.AttachedStemBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.AzaleaBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BarrierBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BaseCoralFanBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BaseCoralPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BaseCoralPlantTypeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BaseCoralWallFanBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BigDripleafBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BigDripleafStemBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.BlastFurnaceBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.ButtonBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;ILnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CactusBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CakeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CandleCakeBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CartographyTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CarvedPumpkinBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.ChestBlock (Ljava/util/function/Supplier;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.ChorusFlowerBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.ChorusPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CoralFanBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CoralPlantBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CoralWallFanBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CraftingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.CropBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.DeadBushBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.DecoratedPotBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.DirtPathBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.DispenserBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.DoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.EnchantingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.EndGatewayBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.EndPortalBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.EndRodBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.EnderChestBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.FarmBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.FletchingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.FungusBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.FurnaceBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.GrindstoneBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.HalfTransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.HangingRootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.IronBarsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.JigsawBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.JukeboxBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.KelpBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.KelpPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.LadderBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.LecternBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.LeverBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.LiquidBlock (Lnet/minecraft/world/level/material/FlowingFluid;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.LoomBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.MangroveRootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.NetherWartBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.NyliumBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PinkPetalsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PipeBlock (FLnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PlayerHeadBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PlayerWallHeadBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PoweredRailBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PressurePlateBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.PumpkinBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RailBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RedstoneTorchBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RedstoneWallTorchBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RepeaterBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RodBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.RootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SaplingBlock (Lnet/minecraft/world/level/block/grower/TreeGrower;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.ScaffoldingBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SeaPickleBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SeagrassBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SkullBlock (Lnet/minecraft/world/level/block/SkullBlock$Type;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SmithingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SmokerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SnowLayerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SnowyDirtBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SpawnerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SpongeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.StairBlock (Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.StemBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.StructureBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.StructureVoidBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.SugarCaneBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.TallGrassBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.TorchBlock (Lnet/minecraft/core/particles/SimpleParticleType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.TransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.TrapDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WallSkullBlock (Lnet/minecraft/world/level/block/SkullBlock$Type;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WallTorchBlock (Lnet/minecraft/core/particles/SimpleParticleType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WaterlilyBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WaterloggedTransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WeatheringCopperDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WeatheringCopperGrateBlock (Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WeightedPressurePlateBlock (ILnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WetSpongeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WitherSkullBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WitherWallSkullBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -public net.minecraft.world.level.block.WoolCarpetBlock (Lnet/minecraft/world/item/DyeColor;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V # constructor -#endgroup public net.minecraft.world.level.block.Block popExperience(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;I)V # popExperience public net.minecraft.world.level.block.Blocks always(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/EntityType;)Ljava/lang/Boolean; # always public net.minecraft.world.level.block.Blocks never(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/EntityType;)Ljava/lang/Boolean; # never @@ -411,13 +257,6 @@ private-f net.minecraft.world.level.levelgen.DebugLevelSource GRID_WIDTH # GRID_ private-f net.minecraft.world.level.levelgen.DebugLevelSource GRID_HEIGHT # GRID_HEIGHT public-f net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator protected net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator iterateNoiseColumn(Lnet/minecraft/world/level/LevelHeightAccessor;Lnet/minecraft/world/level/levelgen/RandomState;IILorg/apache/commons/lang3/mutable/MutableObject;Ljava/util/function/Predicate;)Ljava/util/OptionalInt; # iterateNoiseColumn -#group public net.minecraft.world.level.levelgen.NoiseGeneratorSettings *() -public net.minecraft.world.level.levelgen.NoiseGeneratorSettings caves(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; # caves -public net.minecraft.world.level.levelgen.NoiseGeneratorSettings end(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; # end -public net.minecraft.world.level.levelgen.NoiseGeneratorSettings overworld(Lnet/minecraft/data/worldgen/BootstrapContext;ZZ)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; # overworld -public net.minecraft.world.level.levelgen.NoiseGeneratorSettings floatingIslands(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; # floatingIslands -public net.minecraft.world.level.levelgen.NoiseGeneratorSettings nether(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; # nether -#endgroup public net.minecraft.world.level.levelgen.feature.featuresize.FeatureSizeType (Lcom/mojang/serialization/MapCodec;)V # constructor public net.minecraft.world.level.levelgen.feature.foliageplacers.FoliagePlacerType (Lcom/mojang/serialization/MapCodec;)V # constructor public net.minecraft.world.level.levelgen.feature.rootplacers.RootPlacerType (Lcom/mojang/serialization/MapCodec;)V # constructor @@ -433,49 +272,6 @@ private-f net.minecraft.world.level.storage.loot.LootPool bonusRolls # bonusRoll public net.minecraft.server.network.ServerConfigurationPacketListenerImpl finishCurrentTask(Lnet/minecraft/server/network/ConfigurationTask$Type;)V public com.mojang.blaze3d.vertex.VertexFormatElement$Usage$SetupState -# Below you will find particle constructor ATs -protected net.minecraft.client.particle.AttackSweepParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.BlockMarker (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/block/state/BlockState;)V # constructor -protected net.minecraft.client.particle.BreakingItemParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/renderer/item/ItemStackRenderState;)V # constructor -protected net.minecraft.client.particle.BubbleColumnUpParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.BubbleParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.BubblePopParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.CampfireSmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDZ)V # constructor -protected net.minecraft.client.particle.CritParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.DragonBreathParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.DripParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V # constructor -protected net.minecraft.client.particle.EndRodParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.FallingDustParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDFFFLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.FireworkParticles$OverlayParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -protected net.minecraft.client.particle.FireworkParticles$SparkParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/ParticleEngine;Lnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.FlameParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.FlyStraightTowardsParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDII)V # constructor -protected net.minecraft.client.particle.FlyTowardsPositionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.GlowParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.GustSeedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDII)V # constructor -protected net.minecraft.client.particle.HeartParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -protected net.minecraft.client.particle.HugeExplosionSeedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -protected net.minecraft.client.particle.LavaParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -protected net.minecraft.client.particle.MobAppearanceParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -protected net.minecraft.client.particle.NoteParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDD)V # constructor -protected net.minecraft.client.particle.PlayerCloudParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.ReversePortalParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.SculkChargeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.SculkChargePopParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.ShriekParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDI)V # constructor -protected net.minecraft.client.particle.SoulParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.SpellParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.SpitParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.SplashParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.SquidInkParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDILnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.SuspendedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/client/particle/SpriteSet;DDD)V # constructor -protected net.minecraft.client.particle.SuspendedTownParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V # constructor -protected net.minecraft.client.particle.TotemParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.VibrationSignalParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/gameevent/PositionSource;I)V # constructor -protected net.minecraft.client.particle.WakeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V # constructor -protected net.minecraft.client.particle.WaterCurrentDownParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V # constructor -# End of particle constructor ATs group - # EnchantmentHelper methods needed for adding custom enchantments public net.minecraft.world.item.enchantment.EnchantmentHelper runIterationOnItem(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/enchantment/EnchantmentHelper$EnchantmentVisitor;)V public net.minecraft.world.item.enchantment.EnchantmentHelper runIterationOnItem(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/EquipmentSlot;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/enchantment/EnchantmentHelper$EnchantmentInSlotVisitor;)V diff --git a/src/main/resources/META-INF/accesstransformergenerated.cfg b/src/main/resources/META-INF/accesstransformergenerated.cfg new file mode 100644 index 00000000000..76f5e7fedd5 --- /dev/null +++ b/src/main/resources/META-INF/accesstransformergenerated.cfg @@ -0,0 +1,380 @@ +# This file is generated based on the rules defined in the buildscript. DO NOT modify it manually. +# Add more rules in the buildscript and then run the generateAccessTransformers task to update this file. + +# render state shard classes +public net.minecraft.client.renderer.RenderStateShard$BooleanStateShard +public net.minecraft.client.renderer.RenderStateShard$ColorLogicStateShard +public net.minecraft.client.renderer.RenderStateShard$CullStateShard +public net.minecraft.client.renderer.RenderStateShard$DepthTestStateShard +public net.minecraft.client.renderer.RenderStateShard$EmptyTextureStateShard +public net.minecraft.client.renderer.RenderStateShard$LayeringStateShard +public net.minecraft.client.renderer.RenderStateShard$LightmapStateShard +public net.minecraft.client.renderer.RenderStateShard$LineStateShard +public net.minecraft.client.renderer.RenderStateShard$MultiTextureStateShard +public net.minecraft.client.renderer.RenderStateShard$MultiTextureStateShard$Entry +public net.minecraft.client.renderer.RenderStateShard$MultiTextureStateShard$Entry (Lnet/minecraft/resources/ResourceLocation;ZZ)V +public net.minecraft.client.renderer.RenderStateShard$OffsetTexturingStateShard +public net.minecraft.client.renderer.RenderStateShard$OutputStateShard +public net.minecraft.client.renderer.RenderStateShard$OverlayStateShard +public net.minecraft.client.renderer.RenderStateShard$ShaderStateShard +public net.minecraft.client.renderer.RenderStateShard$TextureStateShard +public net.minecraft.client.renderer.RenderStateShard$TexturingStateShard +public net.minecraft.client.renderer.RenderStateShard$TransparencyStateShard +public net.minecraft.client.renderer.RenderStateShard$WriteMaskStateShard + +# render state shards +public net.minecraft.client.renderer.RenderStateShard ADDITIVE_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard BLOCK_SHEET +public net.minecraft.client.renderer.RenderStateShard BLOCK_SHEET_MIPPED +public net.minecraft.client.renderer.RenderStateShard CLOUDS_TARGET +public net.minecraft.client.renderer.RenderStateShard COLOR_DEPTH_WRITE +public net.minecraft.client.renderer.RenderStateShard COLOR_WRITE +public net.minecraft.client.renderer.RenderStateShard CROSSHAIR_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard CRUMBLING_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard CULL +public net.minecraft.client.renderer.RenderStateShard DEFAULT_LINE +public net.minecraft.client.renderer.RenderStateShard DEFAULT_TEXTURING +public net.minecraft.client.renderer.RenderStateShard DEPTH_WRITE +public net.minecraft.client.renderer.RenderStateShard ENTITY_GLINT_TEXTURING +public net.minecraft.client.renderer.RenderStateShard EQUAL_DEPTH_TEST +public net.minecraft.client.renderer.RenderStateShard GLINT_TEXTURING +public net.minecraft.client.renderer.RenderStateShard GLINT_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard GREATER_DEPTH_TEST +public net.minecraft.client.renderer.RenderStateShard ITEM_ENTITY_TARGET +public net.minecraft.client.renderer.RenderStateShard LEQUAL_DEPTH_TEST +public net.minecraft.client.renderer.RenderStateShard LIGHTMAP +public net.minecraft.client.renderer.RenderStateShard LIGHTNING_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard MAIN_TARGET +public net.minecraft.client.renderer.RenderStateShard MOJANG_LOGO_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard NAUSEA_OVERLAY_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard NO_COLOR_LOGIC +public net.minecraft.client.renderer.RenderStateShard NO_CULL +public net.minecraft.client.renderer.RenderStateShard NO_DEPTH_TEST +public net.minecraft.client.renderer.RenderStateShard NO_LAYERING +public net.minecraft.client.renderer.RenderStateShard NO_LIGHTMAP +public net.minecraft.client.renderer.RenderStateShard NO_OVERLAY +public net.minecraft.client.renderer.RenderStateShard NO_SHADER +public net.minecraft.client.renderer.RenderStateShard NO_TEXTURE +public net.minecraft.client.renderer.RenderStateShard NO_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard OR_REVERSE_COLOR_LOGIC +public net.minecraft.client.renderer.RenderStateShard OUTLINE_TARGET +public net.minecraft.client.renderer.RenderStateShard OVERLAY +public net.minecraft.client.renderer.RenderStateShard OVERLAY_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard PARTICLES_TARGET +public net.minecraft.client.renderer.RenderStateShard PARTICLE_SHADER +public net.minecraft.client.renderer.RenderStateShard POLYGON_OFFSET_LAYERING +public net.minecraft.client.renderer.RenderStateShard POSITION_COLOR_LIGHTMAP_SHADER +public net.minecraft.client.renderer.RenderStateShard POSITION_COLOR_SHADER +public net.minecraft.client.renderer.RenderStateShard POSITION_COLOR_TEX_LIGHTMAP_SHADER +public net.minecraft.client.renderer.RenderStateShard POSITION_SHADER +public net.minecraft.client.renderer.RenderStateShard POSITION_TEXTURE_COLOR_SHADER +public net.minecraft.client.renderer.RenderStateShard POSITION_TEX_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ARMOR_CUTOUT_NO_CULL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ARMOR_ENTITY_GLINT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ARMOR_TRANSLUCENT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_BEACON_BEAM_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_BREEZE_WIND_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_CLOUDS_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_CRUMBLING_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_CUTOUT_MIPPED_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_CUTOUT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_END_GATEWAY_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_END_PORTAL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENERGY_SWIRL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_ALPHA_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_CUTOUT_NO_CULL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_CUTOUT_NO_CULL_Z_OFFSET_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_CUTOUT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_DECAL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_GLINT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_NO_OUTLINE_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_SHADOW_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_SMOOTH_CUTOUT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_SOLID_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_TRANSLUCENT_EMISSIVE_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ENTITY_TRANSLUCENT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_EYES_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GLINT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GLINT_TRANSLUCENT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GUI_GHOST_RECIPE_OVERLAY_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GUI_OVERLAY_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GUI_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_GUI_TEXT_HIGHLIGHT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_ITEM_ENTITY_TRANSLUCENT_CULL_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_LEASH_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_LIGHTNING_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_LINES_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_OUTLINE_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_SOLID_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_BACKGROUND_SEE_THROUGH_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_BACKGROUND_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_INTENSITY_SEE_THROUGH_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_INTENSITY_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_SEE_THROUGH_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TEXT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TRANSLUCENT_MOVING_BLOCK_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TRANSLUCENT_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_TRIPWIRE_SHADER +public net.minecraft.client.renderer.RenderStateShard RENDERTYPE_WATER_MASK_SHADER +public net.minecraft.client.renderer.RenderStateShard TRANSLUCENT_TARGET +public net.minecraft.client.renderer.RenderStateShard TRANSLUCENT_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard VIEW_OFFSET_Z_LAYERING +public net.minecraft.client.renderer.RenderStateShard VIEW_OFFSET_Z_LAYERING_FORWARD +public net.minecraft.client.renderer.RenderStateShard VIGNETTE_TRANSPARENCY +public net.minecraft.client.renderer.RenderStateShard WEATHER_TARGET +public net.minecraft.client.renderer.RenderStateShard WORLD_BORDER_LAYERING + +# block constructors +public net.minecraft.world.level.block.AbstractBannerBlock (Lnet/minecraft/world/item/DyeColor;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.AbstractCandleBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.AbstractChestBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;Ljava/util/function/Supplier;)V +public net.minecraft.world.level.block.AbstractFurnaceBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.AttachedStemBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.AzaleaBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BarrierBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseCoralFanBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseCoralPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseCoralPlantTypeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseCoralWallFanBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseEntityBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BasePressurePlateBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;Lnet/minecraft/world/level/block/state/properties/BlockSetType;)V +public net.minecraft.world.level.block.BaseRailBlock (ZLnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BaseTorchBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BigDripleafBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BigDripleafStemBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BlastFurnaceBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.BushBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.ButtonBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;ILnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CactusBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CakeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CandleCakeBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CartographyTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CarvedPumpkinBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.ChestBlock (Ljava/util/function/Supplier;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.ChorusFlowerBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.ChorusPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CoralFanBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CoralPlantBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CoralWallFanBlock (Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CraftingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CreakingHeartBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CropBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.CrossCollisionBlock (FFFFFLnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DeadBushBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DecoratedPotBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DiodeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DirectionalBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DirtPathBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DispenserBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.DoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.EnchantingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.EndGatewayBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.EndPortalBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.EndRodBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.EnderChestBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.FarmBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.FletchingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.FungusBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.FurnaceBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.GrindstoneBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.GrowingPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;Lnet/minecraft/core/Direction;Lnet/minecraft/world/phys/shapes/VoxelShape;Z)V +public net.minecraft.world.level.block.GrowingPlantBodyBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;Lnet/minecraft/core/Direction;Lnet/minecraft/world/phys/shapes/VoxelShape;Z)V +public net.minecraft.world.level.block.GrowingPlantHeadBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;Lnet/minecraft/core/Direction;Lnet/minecraft/world/phys/shapes/VoxelShape;ZD)V +public net.minecraft.world.level.block.HalfTransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.HangingRootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.HorizontalDirectionalBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.IronBarsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.JigsawBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.JukeboxBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.KelpBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.KelpPlantBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.LadderBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.LecternBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.LeverBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.LiquidBlock (Lnet/minecraft/world/level/material/FlowingFluid;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.LoomBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.MangroveRootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.NetherWartBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.NyliumBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PinkPetalsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PipeBlock (FLnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PlayerHeadBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PlayerWallHeadBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PoweredRailBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PressurePlateBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.PumpkinBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RailBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RedstoneTorchBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RedstoneWallTorchBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RepeaterBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RodBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.RootsBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SaplingBlock (Lnet/minecraft/world/level/block/grower/TreeGrower;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.ScaffoldingBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SeaPickleBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SeagrassBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SignBlock (Lnet/minecraft/world/level/block/state/properties/WoodType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SkullBlock (Lnet/minecraft/world/level/block/SkullBlock$Type;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SmithingTableBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SmokerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SnowLayerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SnowyDirtBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SpawnerBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SpongeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SpreadingSnowyDirtBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.StairBlock (Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.StemBlock (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.StructureBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.StructureVoidBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.SugarCaneBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.TallGrassBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.TorchBlock (Lnet/minecraft/core/particles/SimpleParticleType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.TransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.TrapDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WallSkullBlock (Lnet/minecraft/world/level/block/SkullBlock$Type;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WallTorchBlock (Lnet/minecraft/core/particles/SimpleParticleType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WaterlilyBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WaterloggedTransparentBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WeatheringCopperDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WeatheringCopperGrateBlock (Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock (Lnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/WeatheringCopper$WeatherState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WeightedPressurePlateBlock (ILnet/minecraft/world/level/block/state/properties/BlockSetType;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WetSpongeBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WitherSkullBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WitherWallSkullBlock (Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V +public net.minecraft.world.level.block.WoolCarpetBlock (Lnet/minecraft/world/item/DyeColor;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V + +# particle constructors +public net.minecraft.client.particle.AshParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.AttackSweepParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.BaseAshSmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDFFFDDDFLnet/minecraft/client/particle/SpriteSet;FIFZ)V +public net.minecraft.client.particle.BlockMarker (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/block/state/BlockState;)V +public net.minecraft.client.particle.BreakingItemParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/renderer/item/ItemStackRenderState;)V +public net.minecraft.client.particle.BreakingItemParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/client/renderer/item/ItemStackRenderState;)V +public net.minecraft.client.particle.BubbleColumnUpParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.BubbleParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.BubblePopParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.CampfireSmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDZ)V +public net.minecraft.client.particle.CritParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.DragonBreathParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.DripParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V +public net.minecraft.client.particle.DripParticle$CoolingDripHangParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +public net.minecraft.client.particle.DripParticle$DripHangParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +public net.minecraft.client.particle.DripParticle$DripLandParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V +public net.minecraft.client.particle.DripParticle$DripstoneFallAndLandParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +public net.minecraft.client.particle.DripParticle$FallAndLandParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +public net.minecraft.client.particle.DripParticle$FallingParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V +public net.minecraft.client.particle.DripParticle$FallingParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;I)V +public net.minecraft.client.particle.DripParticle$HoneyFallAndLandParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +public net.minecraft.client.particle.DustColorTransitionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/core/particles/DustColorTransitionOptions;Lnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.DustParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/core/particles/DustParticleOptions;Lnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.DustParticleBase (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/core/particles/ScalableParticleOptionsBase;Lnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.DustPlumeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.EndRodParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.ExplodeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.FallingDustParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDFFFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.FallingLeavesParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/client/particle/SpriteSet;FFZZFF)V +public net.minecraft.client.particle.FireworkParticles$OverlayParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.FireworkParticles$SparkParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/ParticleEngine;Lnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.FlameParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.FlyStraightTowardsParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDII)V +public net.minecraft.client.particle.FlyTowardsPositionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.FlyTowardsPositionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDZLnet/minecraft/client/particle/Particle$LifetimeAlpha;)V +public net.minecraft.client.particle.GlowParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.GustParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.GustSeedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDII)V +public net.minecraft.client.particle.HeartParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.HugeExplosionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.HugeExplosionSeedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.ItemPickupParticle (Lnet/minecraft/client/renderer/entity/EntityRenderDispatcher;Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/Vec3;)V +public net.minecraft.client.particle.LargeSmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.LavaParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.MobAppearanceParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.NoRenderParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.NoRenderParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.NoteParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDD)V +public net.minecraft.client.particle.Particle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.PlayerCloudParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.PortalParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.ReversePortalParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.RisingParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.SculkChargeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SculkChargePopParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.ShriekParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDI)V +public net.minecraft.client.particle.SimpleAnimatedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/client/particle/SpriteSet;F)V +public net.minecraft.client.particle.SingleQuadParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.SingleQuadParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.SmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SnowflakeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SonicBoomParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SoulParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SpellParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SpitParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SplashParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.SquidInkParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDILnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.SuspendedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/client/particle/SpriteSet;DDD)V +public net.minecraft.client.particle.SuspendedParticle (Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/client/particle/SpriteSet;DDDDDD)V +public net.minecraft.client.particle.SuspendedTownParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.TextureSheetParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.TextureSheetParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V +public net.minecraft.client.particle.TotemParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.TrackingEmitter (Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/particles/ParticleOptions;ILnet/minecraft/world/phys/Vec3;)V +public net.minecraft.client.particle.TrailParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/world/phys/Vec3;I)V +public net.minecraft.client.particle.TrialSpawnerDetectionParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.VibrationSignalParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/gameevent/PositionSource;I)V +public net.minecraft.client.particle.WakeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.WaterCurrentDownParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.WaterDropParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDD)V +public net.minecraft.client.particle.WhiteAshParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V +public net.minecraft.client.particle.WhiteSmokeParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDFLnet/minecraft/client/particle/SpriteSet;)V + +# recipe criteria +protected net.minecraft.data.recipes.RecipeProvider has(Lnet/minecraft/advancements/critereon/MinMaxBounds$Ints;Lnet/minecraft/world/level/ItemLike;)Lnet/minecraft/advancements/Criterion; +protected net.minecraft.data.recipes.RecipeProvider insideOf(Lnet/minecraft/world/level/block/Block;)Lnet/minecraft/advancements/Criterion; +protected net.minecraft.data.recipes.RecipeProvider inventoryTrigger([Lnet/minecraft/advancements/critereon/ItemPredicate$Builder;)Lnet/minecraft/advancements/Criterion; +protected net.minecraft.data.recipes.RecipeProvider inventoryTrigger([Lnet/minecraft/advancements/critereon/ItemPredicate;)Lnet/minecraft/advancements/Criterion; + +# skeleton step sound +protected net.minecraft.world.entity.monster.AbstractSkeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; +protected net.minecraft.world.entity.monster.Skeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; +protected net.minecraft.world.entity.monster.Stray getStepSound()Lnet/minecraft/sounds/SoundEvent; +protected net.minecraft.world.entity.monster.WitherSkeleton getStepSound()Lnet/minecraft/sounds/SoundEvent; + +# noise generator +public net.minecraft.world.level.levelgen.NoiseGeneratorSettings caves(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; +public net.minecraft.world.level.levelgen.NoiseGeneratorSettings end(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; +public net.minecraft.world.level.levelgen.NoiseGeneratorSettings floatingIslands(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; +public net.minecraft.world.level.levelgen.NoiseGeneratorSettings nether(Lnet/minecraft/data/worldgen/BootstrapContext;)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; +public net.minecraft.world.level.levelgen.NoiseGeneratorSettings overworld(Lnet/minecraft/data/worldgen/BootstrapContext;ZZ)Lnet/minecraft/world/level/levelgen/NoiseGeneratorSettings; + +# biome effects builder +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientAdditionsSettings +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientLoopSoundEvent +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientMoodSettings +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder ambientParticle +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder backgroundMusic +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder backgroundMusicVolume +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder fogColor +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder foliageColorOverride +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder grassColorModifier +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder grassColorOverride +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder skyColor +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder waterColor +protected net.minecraft.world.level.biome.BiomeSpecialEffects$Builder waterFogColor + +# creative tabs +public net.minecraft.world.item.CreativeModeTabs BUILDING_BLOCKS +public net.minecraft.world.item.CreativeModeTabs COLORED_BLOCKS +public net.minecraft.world.item.CreativeModeTabs COMBAT +public net.minecraft.world.item.CreativeModeTabs FOOD_AND_DRINKS +public net.minecraft.world.item.CreativeModeTabs FUNCTIONAL_BLOCKS +public net.minecraft.world.item.CreativeModeTabs HOTBAR +public net.minecraft.world.item.CreativeModeTabs INGREDIENTS +public net.minecraft.world.item.CreativeModeTabs INVENTORY +public net.minecraft.world.item.CreativeModeTabs NATURAL_BLOCKS +public net.minecraft.world.item.CreativeModeTabs OP_BLOCKS +public net.minecraft.world.item.CreativeModeTabs REDSTONE_BLOCKS +public net.minecraft.world.item.CreativeModeTabs SEARCH +public net.minecraft.world.item.CreativeModeTabs SPAWN_EGGS +public net.minecraft.world.item.CreativeModeTabs TOOLS_AND_UTILITIES diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index d839c54b6e0..53b17ead2e4 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -18,3 +18,8 @@ license="LGPL v2.1" [[mixins]] config = "neoforge.mixins.json" + +[[accessTransformers]] + file="META-INF/accesstransformer.cfg" +[[accessTransformers]] + file="META-INF/accesstransformergenerated.cfg"