swap accesswideners for mixins

This commit is contained in:
Jill 2022-11-07 18:38:44 +03:00
parent 805a99b17e
commit d68e28ba0a
6 changed files with 28 additions and 15 deletions

View File

@ -33,10 +33,6 @@ processResources {
} }
} }
loom {
accessWidenerPath = file("src/main/resources/supersecretrevival.accesswidener")
}
def targetJavaVersion = 17 def targetJavaVersion = 17
tasks.withType(JavaCompile).configureEach { tasks.withType(JavaCompile).configureEach {
// ensure that the encoding is set to UTF-8, no matter what the system default is // ensure that the encoding is set to UTF-8, no matter what the system default is

View File

@ -6,7 +6,7 @@ minecraft_version=1.18.2
yarn_mappings=1.18.2+build.4 yarn_mappings=1.18.2+build.4
loader_version=0.14.10 loader_version=0.14.10
# Mod Properties # Mod Properties
mod_version=1.1+1.18 mod_version=1.2+1.18
maven_group=zone.oat.supersecretrevival maven_group=zone.oat.supersecretrevival
archives_base_name=super-secret-revival archives_base_name=super-secret-revival
# Dependencies # Dependencies

View File

@ -3,14 +3,15 @@ package zone.oat.supersecretrevival;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import zone.oat.supersecretrevival.mixin.GameRendererAccessorMixin;
public class ShaderControls { public class ShaderControls {
private static final GameRenderer renderer = MinecraftClient.getInstance().gameRenderer; private static final GameRenderer renderer = MinecraftClient.getInstance().gameRenderer;
public static void setRandomShader() { public static void setRandomShader() {
Identifier shader = GameRenderer.SHADERS_LOCATIONS[renderer.random.nextInt(GameRenderer.SHADER_COUNT)]; Identifier shader = GameRendererAccessorMixin.getShaderLocations()[((GameRendererAccessorMixin) renderer).getRandom().nextInt(GameRenderer.SHADER_COUNT)];
Mod.LOGGER.info("Loading shader " + shader.getPath()); Mod.LOGGER.info("Loading shader " + shader.getPath());
renderer.loadShader(shader); ((GameRendererAccessorMixin) renderer).invokeLoadShader(shader);
} }
public static void disableShader() { public static void disableShader() {

View File

@ -0,0 +1,23 @@
package zone.oat.supersecretrevival.mixin;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.gen.Invoker;
import java.util.Random;
@Mixin(GameRenderer.class)
public interface GameRendererAccessorMixin {
@Accessor
Random getRandom();
@Accessor("SHADERS_LOCATIONS")
public static Identifier[] getShaderLocations() {
throw new AssertionError();
}
@Invoker("loadShader")
public void invokeLoadShader(Identifier id);
}

View File

@ -1,8 +0,0 @@
accessWidener v1 named
# Lnet/minecraft/client/render/GameRenderer;SHADERS_LOCATIONS:[Lnet/minecraft/util/Identifier;
accessible field net/minecraft/client/render/GameRenderer SHADERS_LOCATIONS [Lnet/minecraft/util/Identifier;
# Lnet/minecraft/client/render/GameRenderer;random:Ljava/util/Random;
accessible field net/minecraft/client/render/GameRenderer random Ljava/util/Random;
# Lnet/minecraft/client/render/GameRenderer;loadShader(Lnet/minecraft/util/Identifier;)V
accessible method net/minecraft/client/render/GameRenderer loadShader (Lnet/minecraft/util/Identifier;)V

View File

@ -6,6 +6,7 @@
"mixins": [], "mixins": [],
"client": [ "client": [
"CancelClickSoundMixin", "CancelClickSoundMixin",
"GameRendererAccessorMixin",
"SecretSettingsButtonMixin" "SecretSettingsButtonMixin"
], ],
"server": [], "server": [],