Use VFPListEntry abstraction for protocol screens

This commit is contained in:
FlorianMichael 2024-04-27 00:04:47 +02:00
parent 6fa75395d5
commit 6e21d8d946
3 changed files with 10 additions and 14 deletions

View File

@ -44,7 +44,8 @@ public abstract class VFPListEntry extends AlwaysSelectedEntryListWidget.Entry<V
private int entryWidth;
private int entryHeight;
public abstract void mappedRender(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta);
public void mappedRender(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
}
public void mappedMouseClicked(double mouseX, double mouseY, int button) {
}

View File

@ -21,12 +21,12 @@ package de.florianmichael.viafabricplus.screen.base;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.screen.VFPList;
import de.florianmichael.viafabricplus.screen.VFPListEntry;
import de.florianmichael.viafabricplus.screen.VFPScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
@ -62,7 +62,7 @@ public class PerServerVersionScreen extends VFPScreen {
this.renderTitle(context);
}
public class SlotList extends VFPList<SharedSlot> {
public class SlotList extends VFPList<VFPListEntry> {
public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) {
super(minecraftClient, width, height, top, bottom, entryHeight);
@ -72,14 +72,11 @@ public class PerServerVersionScreen extends VFPScreen {
}
}
// Dummy class files used to have a shared superclass for ResetSlot and ProtocolSlot
public abstract class SharedSlot extends AlwaysSelectedEntryListWidget.Entry<SharedSlot> {
public abstract class SharedSlot extends VFPListEntry {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
playClickSound();
public void mappedMouseClicked(double mouseX, double mouseY, int button) {
close();
return super.mouseClicked(mouseX, mouseY, button);
}
}

View File

@ -22,12 +22,12 @@ package de.florianmichael.viafabricplus.screen.base;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.protocoltranslator.ProtocolTranslator;
import de.florianmichael.viafabricplus.screen.VFPList;
import de.florianmichael.viafabricplus.screen.VFPListEntry;
import de.florianmichael.viafabricplus.screen.VFPScreen;
import de.florianmichael.viafabricplus.screen.settings.SettingsScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
@ -66,7 +66,7 @@ public class ProtocolSelectionScreen extends VFPScreen {
this.renderTitle(context);
}
public static class SlotList extends VFPList<ProtocolSlot> {
public static class SlotList extends VFPList<VFPListEntry> {
public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) {
super(minecraftClient, width, height, top, bottom, entryHeight);
@ -75,7 +75,7 @@ public class ProtocolSelectionScreen extends VFPScreen {
}
}
public static class ProtocolSlot extends AlwaysSelectedEntryListWidget.Entry<ProtocolSlot> {
public static class ProtocolSlot extends VFPListEntry {
private final ProtocolVersion protocolVersion;
@ -89,10 +89,8 @@ public class ProtocolSelectionScreen extends VFPScreen {
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
public void mappedMouseClicked(double mouseX, double mouseY, int button) {
ProtocolTranslator.setTargetVersion(this.protocolVersion);
playClickSound();
return super.mouseClicked(mouseX, mouseY, button);
}
@Override