|
1 | 1 | package com.aetherteam.cumulus.mixin.mixins.client; |
2 | 2 |
|
3 | 3 | import com.aetherteam.cumulus.client.CumulusClient; |
| 4 | +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; |
| 5 | +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; |
4 | 6 | import net.minecraft.client.Minecraft; |
5 | 7 | import net.minecraft.client.sounds.MusicManager; |
6 | 8 | import net.minecraft.sounds.Music; |
7 | 9 | import net.minecraft.sounds.Musics; |
8 | 10 | import org.spongepowered.asm.mixin.Mixin; |
9 | 11 | import org.spongepowered.asm.mixin.injection.At; |
10 | | -import org.spongepowered.asm.mixin.injection.ModifyVariable; |
11 | 12 |
|
12 | 13 | @Mixin(MusicManager.class) |
13 | 14 | public class MusicManagerMixin { |
14 | 15 | /** |
15 | 16 | * This mixin modifies the return of {@link Minecraft#getSituationalMusic()} as it is given to the music variable in {@link MusicManager}. |
16 | | - * @param music The original {@link Music} variable. |
17 | 17 | * @return The modified {@link Music} variable. |
18 | 18 | */ |
19 | | - @ModifyVariable(method = "tick()V", at = @At(value = "STORE")) |
20 | | - public Music injected(Music music) { |
| 19 | + @WrapOperation(method = "tick()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSituationalMusic()Lnet/minecraft/sounds/Music;")) |
| 20 | + public Music injected(Minecraft instance, Operation<Music> original) { |
| 21 | + Music music = original.call(instance); |
21 | 22 | if (music == Musics.MENU && CumulusClient.MENU_HELPER.getActiveMusic() != null) { |
22 | 23 | return CumulusClient.MENU_HELPER.getActiveMusic(); |
23 | 24 | } |
|
0 commit comments