VisualOverhaul 5.0.1 - Port to 1.20

- Update to 1.20
- Fix #41 & #40
This commit is contained in:
Motschen
2023-06-11 13:15:10 +02:00
parent c6ccdb0d95
commit e9539ba28f
6 changed files with 26 additions and 44 deletions

View File

@@ -5,7 +5,7 @@ import eu.midnightdust.visualoverhaul.config.VOConfig;
import eu.midnightdust.visualoverhaul.mixin.TextureManagerAccessor;
import eu.midnightdust.visualoverhaul.util.ModIconUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.texture.*;
import net.minecraft.client.util.math.MatrixStack;
@@ -18,7 +18,7 @@ import org.apache.logging.log4j.LogManager;
import java.io.InputStream;
import java.util.Properties;
public class IconicButtons extends DrawableHelper {
public class IconicButtons {
MinecraftClient client = MinecraftClient.getInstance();
private String buttonId;
private Text prevText;
@@ -31,7 +31,7 @@ public class IconicButtons extends DrawableHelper {
buttonId = (widget.getMessage().getContent() instanceof TranslatableTextContent translatableTextContent) ? translatableTextContent.getKey().toLowerCase() : "";
if (VOConfig.buttonIcons && !buttonId.equals("")) {
if (VOConfig.debug) System.out.println(buttonId);
iconId = new Identifier("iconic", "textures/gui/icons/" + buttonId.toLowerCase()+".png");
iconId = Identifier.tryParse("iconic:textures/gui/icons/" + buttonId.toLowerCase()+".png");
if (buttonId.endsWith(".midnightconfig.title"))
{
iconId = new Identifier("modid", buttonId.replace(".midnightconfig.title", "") + "_icon");
@@ -54,7 +54,7 @@ public class IconicButtons extends DrawableHelper {
if (abstractTexture == MissingSprite.getMissingSpriteTexture()) iconId = null;
}
}
public void renderIcons(MatrixStack matrices, ClickableWidget widget, float alpha) {
public void renderIcons(DrawContext context, ClickableWidget widget, float alpha) {
if (widget.getMessage() == null) return;
if (prevText != widget.getMessage()) init(widget);
if (VOConfig.buttonIcons && !buttonId.equals("") && iconId != null) {
@@ -64,7 +64,6 @@ public class IconicButtons extends DrawableHelper {
boolean showLeftWhenBoth = (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.BOTH) && !limitedSpace) || (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.BOTH) && widget.getX() < scaledWidth/2);
boolean showRightWhenBoth = (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.BOTH) && !limitedSpace) || (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.BOTH) && widget.getX() > scaledWidth/2);
RenderSystem.setShaderTexture(0, iconId);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, alpha);
if (!widget.active) RenderSystem.setShaderColor(0.3F, 0.3F, 0.3F, alpha);
RenderSystem.enableBlend();
@@ -74,10 +73,10 @@ public class IconicButtons extends DrawableHelper {
int size = 20-inset*2;
if (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.LEFT) || showLeftWhenBoth || (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.LOCATION) && widget.getX() < scaledWidth/2))
drawTexture(matrices, widget.getX()+inset, widget.getY()+inset, 0, 0, size, size, size, size);
context.drawTexture(iconId, widget.getX()+inset, widget.getY()+inset, 0, 0, size, size, size, size);
if (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.RIGHT) || showRightWhenBoth || (VOConfig.buttonIconPosition.equals(VOConfig.IconPosition.LOCATION) && widget.getX()+widget.getWidth() > scaledWidth/2))
drawTexture(matrices, widget.getX()+widget.getWidth()-20+inset, widget.getY()+inset, 0, 0, size, size, size, size);
context.drawTexture(iconId, widget.getX()+widget.getWidth()-20+inset, widget.getY()+inset, 0, 0, size, size, size, size);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
}

View File

@@ -2,11 +2,6 @@ package eu.midnightdust.visualoverhaul;
import eu.midnightdust.visualoverhaul.config.VOConfig;
import net.minecraft.block.Block;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.color.world.BiomeColors;
import net.minecraft.client.item.ModelPredicateProviderRegistry;
import net.minecraft.item.MusicDiscItem;
import net.minecraft.util.Identifier;
import static eu.midnightdust.visualoverhaul.VisualOverhaul.MOD_ID;

View File

@@ -1,9 +1,9 @@
package eu.midnightdust.visualoverhaul.mixin;
import eu.midnightdust.visualoverhaul.IconicButtons;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.gui.widget.PressableWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@@ -22,8 +22,8 @@ public abstract class MixinPressableWidget extends ClickableWidget {
iconicButtons = new IconicButtons(this);
}
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/PressableWidget;drawMessage(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/font/TextRenderer;I)V", shift = At.Shift.BEFORE), method = "renderButton")
private void iconic$onRenderButton(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) {
iconicButtons.renderIcons(matrices, this, this.alpha);
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/PressableWidget;drawMessage(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/client/font/TextRenderer;I)V", shift = At.Shift.BEFORE), method = "renderButton")
private void iconic$onRenderButton(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
iconicButtons.renderIcons(context, this, this.alpha);
}
}

View File

@@ -1,9 +1,9 @@
package eu.midnightdust.visualoverhaul.mixin;
import eu.midnightdust.visualoverhaul.IconicButtons;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.gui.widget.SliderWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@@ -22,8 +22,8 @@ public abstract class MixinSliderWidget extends ClickableWidget {
iconicButtons = new IconicButtons(this);
}
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/SliderWidget;drawScrollableText(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/font/TextRenderer;II)V", shift = At.Shift.BEFORE), method = "renderButton")
private void iconic$onRenderButton(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) {
iconicButtons.renderIcons(matrices, this, this.alpha);
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/SliderWidget;drawScrollableText(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/client/font/TextRenderer;II)V", shift = At.Shift.BEFORE), method = "renderButton")
private void iconic$onRenderButton(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
iconicButtons.renderIcons(context, this, this.alpha);
}
}