Skip to content

Commit

Permalink
1.6 part 4
Browse files Browse the repository at this point in the history
- Fix crash on '5' and '6' platforms, due to injecting not being right as a result of changes
  • Loading branch information
hamarb123 committed Oct 8, 2023
1 parent 09da8d6 commit a97e819
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,17 @@
import net.minecraft.client.gui.screen.option.MouseOptionsScreen;
import net.minecraft.client.gui.widget.OptionListWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.OrderedText;

@Mixin(MouseOptionsScreen.class)
public abstract class MouseOptionsScreenMixin5
{
@Shadow
private OptionListWidget buttonList;

@SuppressWarnings("unchecked")
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;IIF)V", at = @At("RETURN"), cancellable = true)
@Inject(method = "method_25394(Lnet/minecraft/class_4587;IIF)V", at = @At("RETURN"), cancellable = true, remap = false)
private void render(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo info)
{
List<OrderedText> list = (List<OrderedText>)FabricReflectionHelper.GameOptionsScreen_getHoveredButtonTooltip(this.buttonList, mouseX, mouseY);
List<?> list = (List<?>)FabricReflectionHelper.GameOptionsScreen_getHoveredButtonTooltip(this.buttonList, mouseX, mouseY);
if (list != null) ((ScreenAccessor7)this).renderOrderedTooltip(matrices, list, mouseX, mouseY);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,14 @@
import net.minecraft.client.gui.screen.option.MouseOptionsScreen;
import net.minecraft.client.gui.widget.OptionListWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.OrderedText;

@Mixin(MouseOptionsScreen.class)
public class MouseOptionsScreenMixin6
{
@Shadow
private OptionListWidget buttonList;

@SuppressWarnings("unchecked")
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;IIF)V", at = @At("RETURN"), cancellable = true)
@Inject(method = "method_25394(Lnet/minecraft/class_4587;IIF)V", at = @At("RETURN"), cancellable = true, remap = false)
private void render(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo info)
{
Optional<?> optional = buttonList.getHoveredWidget(mouseX, mouseY);
Expand All @@ -42,8 +40,7 @@ else if (FabricReflectionHelper.DoubleOptionSliderWidget().isInstance(optional.g
Optional<List<?>> optional2 = FabricReflectionHelper.Option_getTooltip(option);
if (optional2.isPresent())
{
//cast is purely to satisfy syntax
((ScreenAccessor7)this).renderOrderedTooltip(matrices, (List<? extends OrderedText>)optional2.get(), mouseX, mouseY);
((ScreenAccessor7)this).renderOrderedTooltip(matrices, optional2.get(), mouseX, mouseY);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.OrderedText;

@Mixin(targets = "net.minecraft.class_437" /*Screen*/, remap = false)
public interface ScreenAccessor7
{
@Invoker(value = "method_25417(Lnet/minecraft/class_4587;Ljava/util/List;II)V", remap = false)
public void renderOrderedTooltip(MatrixStack matrices, List<? extends OrderedText> lines, int x, int y);
public void renderOrderedTooltip(MatrixStack matrices, List<?> lines, int x, int y);
}

0 comments on commit a97e819

Please sign in to comment.