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
tasks.withType(JavaCompile).configureEach {
// 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
loader_version=0.14.10
# Mod Properties
mod_version=1.1+1.18
mod_version=1.2+1.18
maven_group=zone.oat.supersecretrevival
archives_base_name=super-secret-revival
# Dependencies

View File

@ -3,14 +3,15 @@ package zone.oat.supersecretrevival;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.util.Identifier;
import zone.oat.supersecretrevival.mixin.GameRendererAccessorMixin;
public class ShaderControls {
private static final GameRenderer renderer = MinecraftClient.getInstance().gameRenderer;
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());
renderer.loadShader(shader);
((GameRendererAccessorMixin) renderer).invokeLoadShader(shader);
}
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": [],
"client": [
"CancelClickSoundMixin",
"GameRendererAccessorMixin",
"SecretSettingsButtonMixin"
],
"server": [],