diff --git a/.deepsource.toml b/.deepsource.toml index a202464..4995727 100644 --- a/.deepsource.toml +++ b/.deepsource.toml @@ -5,4 +5,4 @@ name = "java" enabled = true [analyzers.meta] -runtime_version = "16" \ No newline at end of file +runtime_version = "17" diff --git a/build.gradle b/build.gradle index f8cffed..9e722e8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id "co.uzzu.dotenv.gradle" version "2.0.0" - id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false + id "architectury-plugin" version "3.+" + id "dev.architectury.loom" version "1.3.+" apply false id "com.matthewprenger.cursegradle" version "1.4.0" apply false id "com.modrinth.minotaur" version "2.+" apply false } @@ -18,18 +18,15 @@ subprojects { } dependencies { - compileOnly "org.projectlombok:lombok:${project.version_lombok}" - annotationProcessor "org.projectlombok:lombok:${project.version_lombok}" + compileOnly "org.projectlombok:lombok:${rootProject.version_lombok}" + annotationProcessor "org.projectlombok:lombok:${rootProject.version_lombok}" minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" mappings loom.layered() { officialMojangMappings() - parchment("org.parchmentmc.data:parchment-1.18.2:2022.06.26@zip") + parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchmentmc_version}@zip") } - - implementation "com.google.code.gson:gson:${project.version_gson}" - implementation("com.google.guava:guava:${project.version_guava}") } ext { @@ -94,4 +91,4 @@ task publishAll(group: "publishing") { [":${it.name}:modrinth", ":${it.name}:curseforge"] }.flatten() dependsOn(subs) -} \ No newline at end of file +} diff --git a/changelog.md b/changelog.md index d0a4035..ef89402 100644 --- a/changelog.md +++ b/changelog.md @@ -1,2 +1 @@ -- [CHORE] refactor -- [FIX] keymap layouts not loading on quilt loader 0.18.x \ No newline at end of file +fix: publish the correct build diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/Keymap.java b/common/src/main/java/com/github/einjerjar/mc/keymap/Keymap.java index a50262a..841f4cf 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/Keymap.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/Keymap.java @@ -17,14 +17,20 @@ @Accessors(fluent = true, chain = true) public class Keymap { - public static final String MOD_ID = "keymap"; - public static final String SERVER_WARN = "Keymap is being ran on a DedicatedServer environment, even though it can only work on Client side environment"; - @Getter protected static final String MOD_NAME = "keymap"; - @Getter protected static final Logger logger = LogManager.getLogger(); - @Getter protected static KeyMapping kmOpenMapper; + public static final String MOD_ID = "keymap"; + public static final String SERVER_WARN = + "Keymap is being ran on a DedicatedServer environment, even though it can only work on Client side environment"; - private Keymap() { - } + @Getter + protected static final String MOD_NAME = "keymap"; + + @Getter + protected static final Logger logger = LogManager.getLogger(); + + @Getter + protected static KeyMapping kmOpenMapper; + + private Keymap() {} /** * General mod setup @@ -34,14 +40,11 @@ public static void init() { logger.info("Keymap loaded, loader={}, dev={}", PLATFORM.loader(), PLATFORM.dev()); kmOpenMapper = KEYBIND.create( - InputConstants.Type.KEYSYM, - InputConstants.KEY_GRAVE, - "keymap.keyOpenKeymap", - "keymap.keyCat" - ); + InputConstants.Type.KEYSYM, InputConstants.KEY_GRAVE, "keymap.keyOpenKeymap", "keymap.keyCat"); for (KeyLayout keyLayout : KeyLayout.layouts().values()) { - logger.debug("Layout for {} @ {}", + logger.debug( + "Layout for {} @ {}", keyLayout.meta().code(), keyLayout.meta().name()); } @@ -57,5 +60,4 @@ public static void init() { logger.warn(Credits.instance().toString()); } - -} \ No newline at end of file +} diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/ConfigScreen.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/ConfigScreen.java index 8642023..8c2fd42 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/ConfigScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/ConfigScreen.java @@ -2,14 +2,13 @@ import com.github.einjerjar.mc.keymap.config.KeymapConfig; import com.github.einjerjar.mc.widgets.utils.Point; -import com.github.einjerjar.mc.widgets.utils.Text; import com.github.einjerjar.mc.widgets2.ELabel2; import com.github.einjerjar.mc.widgets2.ELineToggleButton; import com.github.einjerjar.mc.widgets2.EScreen2; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; -import org.jetbrains.annotations.NotNull; public class ConfigScreen extends EScreen2 { @@ -18,7 +17,8 @@ public ConfigScreen(Screen parent) { targetScreenWidth = 450; } - @Override protected void onInit() { + @Override + protected void onInit() { children.clear(); Style bold = Style.EMPTY.withBold(true); @@ -26,11 +26,9 @@ public ConfigScreen(Screen parent) { // General ELabel2 labelGeneral = new ELabel2( - Text.translatable("keymap.catGeneral").withStyle(bold), - scr.left(), scr.top(), scr.w(), h); + Component.translatable("keymap.catGeneral").withStyle(bold), scr.left(), scr.top(), scr.w(), h); ELineToggleButton toggleReplaceKeybind = new ELineToggleButton( - Text.translatable("keymap.optReplaceKeybindScreen"), - scr.left(), scr.top() + h, scr.w(), h); + Component.translatable("keymap.optReplaceKeybindScreen"), scr.left(), scr.top() + h, scr.w(), h); toggleReplaceKeybind.padding(new Point<>(4)); toggleReplaceKeybind.value(KeymapConfig.instance().replaceKeybindScreen()); @@ -38,11 +36,9 @@ public ConfigScreen(Screen parent) { // Layout ELabel2 labelLayout = new ELabel2( - Text.translatable("keymap.catLayout").withStyle(bold), - scr.left(), scr.top() + h * 2, scr.w(), h); + Component.translatable("keymap.catLayout").withStyle(bold), scr.left(), scr.top() + h * 2, scr.w(), h); ELineToggleButton toggleAutoSelectLayout = new ELineToggleButton( - Text.translatable("keymap.optAutoSelectLayout"), - scr.left(), scr.top() + h * 3, scr.w(), h); + Component.translatable("keymap.optAutoSelectLayout"), scr.left(), scr.top() + h * 3, scr.w(), h); toggleAutoSelectLayout.padding(new Point<>(4)); toggleAutoSelectLayout.value(KeymapConfig.instance().autoSelectLayout()); @@ -50,11 +46,13 @@ public ConfigScreen(Screen parent) { // Tooltips ELabel2 labelTooltips = new ELabel2( - Text.translatable("keymap.catTooltips").withStyle(bold), - scr.left(), scr.top() + h * 4, scr.w(), h); + Component.translatable("keymap.catTooltips").withStyle(bold), + scr.left(), + scr.top() + h * 4, + scr.w(), + h); ELineToggleButton toggleShowHelpTooltips = new ELineToggleButton( - Text.translatable("keymap.optShowHelpTooltips"), - scr.left(), scr.top() + h * 5, scr.w(), h); + Component.translatable("keymap.optShowHelpTooltips"), scr.left(), scr.top() + h * 5, scr.w(), h); toggleShowHelpTooltips.padding(new Point<>(4)); toggleShowHelpTooltips.value(KeymapConfig.instance().showHelpTooltips()); @@ -62,20 +60,19 @@ public ConfigScreen(Screen parent) { // Extra ELabel2 labelExtra = new ELabel2( - Text.translatable("keymap.catExtra").withStyle(bold), - scr.left(), scr.top() + h * 6, scr.w(), h); + Component.translatable("keymap.catExtra").withStyle(bold), scr.left(), scr.top() + h * 6, scr.w(), h); ELineToggleButton toggleFirstOpenDone = new ELineToggleButton( - Text.translatable("keymap.optFirstOpenDoneExtra"), - scr.left(), scr.top() + h * 7, scr.w(), h); + Component.translatable("keymap.optFirstOpenDoneExtra"), scr.left(), scr.top() + h * 7, scr.w(), h); ELineToggleButton toggleDebug = new ELineToggleButton( - Text.translatable("keymap.optDebug"), - scr.left(), scr.top() + h * 8, scr.w(), h); + Component.translatable("keymap.optDebug"), scr.left(), scr.top() + h * 8, scr.w(), h); ELineToggleButton toggleDebug2 = new ELineToggleButton( - Text.translatable("keymap.optDebug2"), - scr.left(), scr.top() + h * 9, scr.w(), h); + Component.translatable("keymap.optDebug2"), scr.left(), scr.top() + h * 9, scr.w(), h); ELineToggleButton toggleMad = new ELineToggleButton( - Text.translatable("keymap.optCrashOnProblematicError"), - scr.left(), scr.top() + h * 10, scr.w(), h); + Component.translatable("keymap.optCrashOnProblematicError"), + scr.left(), + scr.top() + h * 10, + scr.w(), + h); toggleFirstOpenDone.padding(new Point<>(4)); toggleFirstOpenDone.value(KeymapConfig.instance().firstOpenDone()); @@ -109,15 +106,18 @@ public ConfigScreen(Screen parent) { children.add(toggleMad); } - @Override protected void preRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - super.preRender(poseStack, mouseX, mouseY, partialTick); + @Override + protected void preRender(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.preRender(guiGraphics, mouseX, mouseY, partialTick); } - @Override protected void postRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void postRender(GuiGraphics poseStack, int mouseX, int mouseY, float partialTick) { // postRender } - @Override public void onClose() { + @Override + public void onClose() { KeymapConfig.save(); super.onClose(); } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/CreditsScreen.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/CreditsScreen.java index f764972..ea1948e 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/CreditsScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/CreditsScreen.java @@ -3,65 +3,50 @@ import com.github.einjerjar.mc.keymap.objects.Credits; import com.github.einjerjar.mc.keymap.utils.Utils; import com.github.einjerjar.mc.widgets.*; -import com.github.einjerjar.mc.widgets.utils.Text; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; public class CreditsScreen extends EScreen { protected ScrollTextList listHelp; - protected ELabel lblTitle; - protected EButton btnClose; + protected ELabel lblTitle; + protected EButton btnClose; protected CreditsScreen(Screen parent) { - super(parent, Text.translatable("keymap.scrCredits")); + super(parent, Component.translatable("keymap.scrCredits")); } - @Override protected void onInit() { + @Override + protected void onInit() { scr = scrFromWidth(Math.min(450, width)); - lblTitle = new ELabel( - scr.left() + padding.x(), - scr.top() + padding.y(), - scr.w() - padding.x() * 2, - 16 - ); - lblTitle.text(Text.translatable("keymap.lblCredits")); + lblTitle = new ELabel(scr.left() + padding.x(), scr.top() + padding.y(), scr.w() - padding.x() * 2, 16); + lblTitle.text(Component.translatable("keymap.lblCredits")); lblTitle.center(true); - StringBuilder layoutCredits = new StringBuilder(Utils.translate("keymap.lblCreditsLayout")); + StringBuilder layoutCredits = new StringBuilder(Utils.translate("keymap.lblCreditsLayout")); StringBuilder languageCredits = new StringBuilder(Utils.translate("keymap.lblCreditsLanguage")); StringBuilder coreCredits = new StringBuilder(Utils.translate("keymap.lblCreditsCore")); for (Credits.LayoutCredits lay : Credits.instance().layout()) { - layoutCredits - .append("\n\n- ") - .append(lay.key()); + layoutCredits.append("\n\n- ").append(lay.key()); for (String name : lay.name()) { - layoutCredits - .append("\n - ") - .append(name); + layoutCredits.append("\n - ").append(name); } } for (Credits.LanguageCredits lang : Credits.instance().language()) { - languageCredits - .append("\n\n- ") - .append(lang.lang()); + languageCredits.append("\n\n- ").append(lang.lang()); for (String name : lang.name()) { - languageCredits - .append("\n - ") - .append(name); + languageCredits.append("\n - ").append(name); } } for (Credits.CoreCredits contrib : Credits.instance().core()) { - coreCredits - .append("\n\n- ") - .append(contrib.name()); + coreCredits.append("\n\n- ").append(contrib.name()); for (String c : contrib.contributions()) { - coreCredits - .append("\n - ") - .append(c); + coreCredits.append("\n - ").append(c); } } @@ -70,14 +55,10 @@ protected CreditsScreen(Screen parent) { lblTitle.left(), lblTitle.bottom() + padding.y(), lblTitle.rect().w(), - scr.h() - padding.y() * 3 - 16 - ); + scr.h() - padding.y() * 3 - 16); - btnClose = new EButton(Text.translatable("keymap.btnClearSearch"), - listHelp.right() - 16, - scr.y() + padding.y(), - 16, - 16); + btnClose = new EButton( + Component.translatable("keymap.btnClearSearch"), listHelp.right() - 16, scr.y() + padding.y(), 16, 16); btnClose.clickAction(this::onBtnCloseClicked); @@ -90,8 +71,9 @@ protected void onBtnCloseClicked(EWidget source) { onClose(); } - @Override protected void preRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - fill(poseStack, 0, 0, width, height, 0x55000000); - if (scr != null) drawOutline(poseStack, scr, 0xFFFFFFFF); + @Override + protected void preRenderScreen(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.fill(0, 0, width, height, 0x55000000); + if (scr != null) drawOutline(guiGraphics, scr, 0xFFFFFFFF); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/HelpScreen.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/HelpScreen.java index 00a533f..7a770b4 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/HelpScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/HelpScreen.java @@ -2,29 +2,26 @@ import com.github.einjerjar.mc.keymap.utils.Utils; import com.github.einjerjar.mc.widgets.*; -import com.github.einjerjar.mc.widgets.utils.Text; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; public class HelpScreen extends EScreen { protected ScrollTextList listHelp; - protected ELabel lblTitle; - protected EButton btnClose; + protected ELabel lblTitle; + protected EButton btnClose; protected HelpScreen(Screen parent) { - super(parent, Text.translatable("keymap.scrHelp")); + super(parent, Component.translatable("keymap.scrHelp")); } - @Override protected void onInit() { + @Override + protected void onInit() { scr = scrFromWidth(Math.min(450, width)); - lblTitle = new ELabel( - scr.left() + padding.x(), - scr.top() + padding.y(), - scr.w() - padding.x() * 2, - 16 - ); - lblTitle.text(Text.translatable("keymap.scrHelp")); + lblTitle = new ELabel(scr.left() + padding.x(), scr.top() + padding.y(), scr.w() - padding.x() * 2, 16); + lblTitle.text(Component.translatable("keymap.scrHelp")); lblTitle.center(true); listHelp = ScrollTextList.createFromString( @@ -32,14 +29,10 @@ protected HelpScreen(Screen parent) { lblTitle.left(), lblTitle.bottom() + padding.y(), lblTitle.rect().w(), - scr.h() - padding.y() * 3 - 16 - ); + scr.h() - padding.y() * 3 - 16); - btnClose = new EButton(Text.translatable("keymap.btnClearSearch"), - listHelp.right() - 16, - scr.y() + padding.y(), - 16, - 16); + btnClose = new EButton( + Component.translatable("keymap.btnClearSearch"), listHelp.right() - 16, scr.y() + padding.y(), 16, 16); btnClose.clickAction(this::onBtnCloseClicked); @@ -52,8 +45,9 @@ protected void onBtnCloseClicked(EWidget source) { onClose(); } - @Override protected void preRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - fill(poseStack, 0, 0, width, height, 0x55000000); - if (scr != null) drawOutline(poseStack, scr, 0xFFFFFFFF); + @Override + protected void preRenderScreen(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.fill(0, 0, width, height, 0x55000000); + if (scr != null) drawOutline(guiGraphics, scr, 0xFFFFFFFF); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/KeymapScreen.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/KeymapScreen.java index 1bf6b56..95019d4 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/KeymapScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/KeymapScreen.java @@ -21,39 +21,41 @@ import com.github.einjerjar.mc.widgets.EInput; import com.github.einjerjar.mc.widgets.EScreen; import com.github.einjerjar.mc.widgets.EWidget; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; import java.util.List; public class KeymapScreen extends EScreen { - protected int lastKeyCode; - protected KeyComboData lastKeyComboData; + protected int lastKeyCode; + protected KeyComboData lastKeyComboData; protected VirtualKeyboardWidget vkBasic; protected VirtualKeyboardWidget vkExtra; protected VirtualKeyboardWidget vkMouse; protected VirtualKeyboardWidget vkNumpad; - protected KeymapListWidget listKm; + protected KeymapListWidget listKm; protected CategoryListWidget listCat; - protected EButton btnReset; - protected EButton btnResetAll; - protected EButton btnClearSearch; - protected EButton btnOpenSettings; - protected EButton btnOpenLayouts; - protected EButton btnOpenHelp; - protected EButton btnOpenCredits; - protected EInput inpSearch; + protected EButton btnReset; + protected EButton btnResetAll; + protected EButton btnClearSearch; + protected EButton btnOpenSettings; + protected EButton btnOpenLayouts; + protected EButton btnOpenHelp; + protected EButton btnOpenCredits; + protected EInput inpSearch; protected List vks; public KeymapScreen(Screen parent) { - super(parent, Text.translatable("keymap.scrMain")); + super(parent, Component.translatable("keymap.scrMain")); } - @Override protected void onInit() { + @Override + protected void onInit() { KeyLayout layout = KeyLayout.getLayoutWithCode(KeymapConfig.instance().customLayout()); KeymappingNotifier.load(); @@ -61,7 +63,8 @@ public KeymapScreen(Screen parent) { initVks(layout); int spaceLeft = scr.w() - padding.x() * 3 - vkBasic.rect().w(); - listKm = new KeymapListWidget(font.lineHeight, + listKm = new KeymapListWidget( + font.lineHeight, vkBasic.right() + padding.x(), vkBasic.top(), spaceLeft, @@ -72,63 +75,65 @@ public KeymapScreen(Screen parent) { vkNumpad.right() + padding.x(), vkNumpad.top(), vkBasic.right() - vkNumpad.right() - padding.x(), - vkNumpad.rect().h() - ); - + vkNumpad.rect().h()); listKm.onItemSelected(this::onListKmSelected); listKm.onItemSelected(this::onListKmSelected); listCat.onItemSelected(this::onListCatSelected); - inpSearch = new EInput(listKm.left(), scr.y() + padding.y(), listKm.rect().w() - 16 - padding.x(), 16); + inpSearch = + new EInput(listKm.left(), scr.y() + padding.y(), listKm.rect().w() - 16 - padding.x(), 16); inpSearch.onChanged(this::onSearchChanged); - btnReset = new EButton(Text.translatable("keymap.btnReset"), + btnReset = new EButton( + Component.translatable("keymap.btnReset"), listKm.left(), listKm.bottom() + padding.y(), (listKm.rect().w() - padding.x()) / 2, 16); - btnResetAll = new EButton(Text.translatable("keymap.btnResetAll"), + btnResetAll = new EButton( + Component.translatable("keymap.btnResetAll"), btnReset.right() + padding.x(), listKm.bottom() + padding.y(), (listKm.rect().w() - padding.x()) / 2, 16); int vkSplit = (vkBasic.rect().w() - padding.x()) / 4; - btnOpenSettings = new EButton(Text.translatable("keymap.btnOpenSettings"), + btnOpenSettings = new EButton( + Component.translatable("keymap.btnOpenSettings"), scr.x() + padding.x(), scr.y() + padding.y(), vkSplit, 16); - btnOpenLayouts = new EButton(Text.translatable("keymap.btnOpenLayouts"), + btnOpenLayouts = new EButton( + Component.translatable("keymap.btnOpenLayouts"), btnOpenSettings.right() + padding.x(), scr.y() + padding.y(), vkSplit, 16); - btnOpenCredits = new EButton(Text.translatable("keymap.btnOpenCredits"), + btnOpenCredits = new EButton( + Component.translatable("keymap.btnOpenCredits"), btnOpenLayouts.right() + padding.x(), scr.y() + padding.y(), vkSplit, 16); - btnOpenHelp = new EButton(Text.translatable("keymap.btnOpenHelp"), + btnOpenHelp = new EButton( + Component.translatable("keymap.btnOpenHelp"), btnOpenCredits.right() + padding.x(), scr.y() + padding.y(), vkBasic.right() - btnOpenCredits.right() - padding.x(), 16); - btnClearSearch = new EButton(Text.translatable("keymap.btnClearSearch"), - listKm.right() - 16, - scr.y() + padding.y(), - 16, - 16); + btnClearSearch = new EButton( + Component.translatable("keymap.btnClearSearch"), listKm.right() - 16, scr.y() + padding.y(), 16, 16); if (KeymapConfig.instance().showHelpTooltips()) { - btnReset.setTooltip(Text.translatable("keymap.btnResetTip")); - btnResetAll.setTooltip(Text.translatable("keymap.btnResetAllTip")); - btnOpenSettings.setTooltip(Text.translatable("keymap.btnOpenSettingsTip")); - btnOpenLayouts.setTooltip(Text.translatable("keymap.btnOpenLayoutsTip")); - btnOpenCredits.setTooltip(Text.translatable("keymap.btnOpenCreditsTip")); - btnOpenHelp.setTooltip(Text.translatable("keymap.btnOpenHelpTip")); - btnClearSearch.setTooltip(Text.translatable("keymap.btnClearSearchTip2")); + btnReset.setTooltip(Component.translatable("keymap.btnResetTip")); + btnResetAll.setTooltip(Component.translatable("keymap.btnResetAllTip")); + btnOpenSettings.setTooltip(Component.translatable("keymap.btnOpenSettingsTip")); + btnOpenLayouts.setTooltip(Component.translatable("keymap.btnOpenLayoutsTip")); + btnOpenCredits.setTooltip(Component.translatable("keymap.btnOpenCreditsTip")); + btnOpenHelp.setTooltip(Component.translatable("keymap.btnOpenHelpTip")); + btnClearSearch.setTooltip(Component.translatable("keymap.btnClearSearchTip2")); } btnReset.clickAction(this::onBtnResetClicked); @@ -171,7 +176,8 @@ public KeymapScreen(Screen parent) { } protected void initVks(KeyLayout layout) { - vks = VKUtil.genLayout(layout, + vks = VKUtil.genLayout( + layout, scr.x() + padding.x(), scr.y() + padding.y() * 2 + 16, this::onVKKeyClicked, @@ -182,13 +188,14 @@ protected void initVks(KeyLayout layout) { } } - vkBasic = vks.get(0); - vkExtra = vks.get(1); - vkMouse = vks.get(2); + vkBasic = vks.get(0); + vkExtra = vks.get(1); + vkMouse = vks.get(2); vkNumpad = vks.get(3); } - @Override public void onClose() { + @Override + public void onClose() { KeymappingNotifier.clearSubscribers(); super.onClose(); } @@ -223,9 +230,9 @@ protected void onListCatSelected(EWidget source) { protected void onSearchChanged(EInput source, String newText) { listKm.filterString(newText); if (newText.isEmpty()) { - btnClearSearch.setTooltip(Text.translatable("keymap.btnClearSearchTip2")); + btnClearSearch.setTooltip(Component.translatable("keymap.btnClearSearchTip2")); } else { - btnClearSearch.setTooltip(Text.translatable("keymap.btnClearSearchTip")); + btnClearSearch.setTooltip(Component.translatable("keymap.btnClearSearchTip")); } listKm.setItemSelected(null); } @@ -250,7 +257,8 @@ protected void onBtnResetAllClicked(EWidget source) { setFocused(null); } - @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { EWidget focus = (EWidget) getFocused(); if (focus == null && keyCode == InputConstants.KEY_F && hasControlDown()) { setFocused(inpSearch); @@ -268,13 +276,14 @@ protected void onBtnResetAllClicked(EWidget source) { return true; } KeyComboData kd = new KeyComboData(keyCode, KeyType.KEYBOARD, hasAltDown(), hasShiftDown(), hasControlDown()); - lastKeyCode = keyCode; + lastKeyCode = keyCode; lastKeyComboData = kd; return !KeymapRegistry.MODIFIER_KEYS().contains(keyCode); } - @Override public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + @Override + public boolean keyReleased(int keyCode, int scanCode, int modifiers) { if (getFocused() != listKm) { return super.keyReleased(keyCode, scanCode, modifiers); } @@ -288,7 +297,8 @@ protected void onBtnResetAllClicked(EWidget source) { return super.keyReleased(keyCode, scanCode, modifiers); } - @Override public boolean onMouseClicked(double mouseX, double mouseY, int button) { + @Override + public boolean onMouseClicked(double mouseX, double mouseY, int button) { if (getFocused() == listKm && hoveredWidget != listKm) { listKm.setItemSelected(null); } @@ -297,13 +307,15 @@ protected void onBtnResetAllClicked(EWidget source) { private void onVKKeyClicked(VirtualKeyboardWidget source) { if (source.lastActionFrom() == null) return; - KeyComboData kd = new KeyComboData(source.lastActionFrom().key().code(), + KeyComboData kd = new KeyComboData( + source.lastActionFrom().key().code(), source.lastActionFrom().key().mouse() ? KeyType.MOUSE : KeyType.KEYBOARD, false, false, false); if (!listKm.setKey(kd)) { - inpSearch.text(String.format("[%s]", + inpSearch.text(String.format( + "[%s]", source.lastActionFrom().mcKey().getDisplayName().getString().toLowerCase())); } } @@ -320,8 +332,9 @@ private void onListKmSelected(EWidget source) { // was for debugging, ignore for now } - @Override protected void preRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - fill(poseStack, 0, 0, width, height, 0x55000000); - if (scr != null) drawOutline(poseStack, scr, 0xFFFFFFFF); + @Override + protected void preRenderScreen(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.fill(0, 0, width, height, 0x55000000); + if (scr != null) drawOutline(guiGraphics, scr, 0xFFFFFFFF); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/LayoutSelectionScreen.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/LayoutSelectionScreen.java index 770b84b..6671385 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/LayoutSelectionScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/screen/LayoutSelectionScreen.java @@ -8,33 +8,35 @@ import com.github.einjerjar.mc.keymap.utils.VKUtil; import com.github.einjerjar.mc.widgets.*; import com.github.einjerjar.mc.widgets.utils.Styles; -import com.github.einjerjar.mc.widgets.utils.Text; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Map; public class LayoutSelectionScreen extends EScreen { protected List vks; - protected VirtualKeyboardWidget vkBasic; - protected VirtualKeyboardWidget vkExtra; - protected VirtualKeyboardWidget vkMouse; - protected VirtualKeyboardWidget vkNumpad; - protected ValueMapList listLayouts; - protected EButton btnSave; - protected EButton btnCancel; - protected EButton btnClose; - protected ELabel lblScreenLabel; - protected ELabel lblCreditTitle; - protected ELabel lblCreditName; + protected VirtualKeyboardWidget vkBasic; + protected VirtualKeyboardWidget vkExtra; + protected VirtualKeyboardWidget vkMouse; + protected VirtualKeyboardWidget vkNumpad; + protected ValueMapList listLayouts; + protected EButton btnSave; + protected EButton btnCancel; + protected EButton btnClose; + protected ELabel lblScreenLabel; + protected ELabel lblCreditTitle; + protected ELabel lblCreditName; public LayoutSelectionScreen(Screen parent) { - super(parent, Text.literal("Keymap Layout")); + super(parent, Component.literal("Keymap Layout")); } - @Override protected void onInit() { + @Override + protected void onInit() { KeyLayout layout = KeyLayout.getLayoutWithCode(KeymapConfig.instance().customLayout()); KeymappingNotifier.load(); @@ -42,7 +44,8 @@ public LayoutSelectionScreen(Screen parent) { initVks(layout); int spaceLeft = scr.w() - padding.x() * 3 - vkBasic.rect().w(); - listLayouts = new ValueMapList(font.lineHeight, + listLayouts = new ValueMapList( + font.lineHeight, vkBasic.right() + padding.x(), vkBasic.top(), spaceLeft, @@ -51,57 +54,50 @@ public LayoutSelectionScreen(Screen parent) { for (Map.Entry v : KeyLayout.layouts().entrySet()) { listLayouts.addItem(new ValueMapList.ValueMapEntry<>( - KeyLayout.layouts().get(v.getKey()).meta().name(), - v.getKey(), - listLayouts)); + KeyLayout.layouts().get(v.getKey()).meta().name(), v.getKey(), listLayouts)); } listLayouts.onItemSelected(this::onLayoutSelected); listLayouts.setItemSelectedWithValue(KeymapConfig.instance().customLayout()); - btnSave = new EButton( - Text.translatable("keymap.btnSave"), + btnSave = new EButton( + Component.translatable("keymap.btnSave"), listLayouts.left(), listLayouts.bottom() + padding.y(), (listLayouts.rect().w() - padding.x()) / 2, - 16 - ); + 16); btnCancel = new EButton( - Text.translatable("keymap.btnCancel"), + Component.translatable("keymap.btnCancel"), listLayouts.right() - btnSave.rect().w(), btnSave.top(), btnSave.rect().w(), - 16 - ); + 16); btnSave.clickAction(this::onBtnSaveClicked); btnCancel.clickAction(this::onBtnCancelClicked); lblScreenLabel = new ELabel( - Text.translatable("keymap.scrLayout"), - scr.left(), scr.top() + padding.y(), scr.w(), 16 - ); + Component.translatable("keymap.scrLayout"), scr.left(), scr.top() + padding.y(), scr.w(), 16); lblCreditTitle = new ELabel( - Text.translatable("keymap.lblCredits"), + Component.translatable("keymap.lblCredits"), vkNumpad.right() + padding.x(), vkNumpad.top() + padding.y() * 2, vkBasic.right() - vkNumpad.right() - padding.x(), - font.lineHeight - ); - lblCreditName = new ELabel( - Text.literal(qAuthor(layout)).withStyle(Styles.headerBold()), + font.lineHeight); + lblCreditName = new ELabel( + Component.literal(qAuthor(layout)).withStyle(Styles.headerBold()), lblCreditTitle.left(), lblCreditTitle.bottom() + padding.y(), lblCreditTitle.rect().w(), - font.lineHeight - ); + font.lineHeight); lblScreenLabel.center(true); lblCreditTitle.center(true); lblCreditName.center(true); creditVis(layout); - btnClose = new EButton(Text.translatable("keymap.btnClearSearch"), + btnClose = new EButton( + Component.translatable("keymap.btnClearSearch"), listLayouts.right() - 16, scr.y() + padding.y(), 16, @@ -109,7 +105,6 @@ public LayoutSelectionScreen(Screen parent) { btnClose.clickAction(this::onBtnCloseClicked); - addRenderableWidget(listLayouts); addRenderableWidget(btnSave); addRenderableWidget(btnCancel); @@ -125,9 +120,9 @@ protected void initVks(KeyLayout layout) { addRenderableWidget(vk); } - vkBasic = vks.get(0); - vkExtra = vks.get(1); - vkMouse = vks.get(2); + vkBasic = vks.get(0); + vkExtra = vks.get(1); + vkMouse = vks.get(2); vkNumpad = vks.get(3); } @@ -143,7 +138,7 @@ protected void creditVis(KeyLayout layout) { String qa = qAuthor(layout); lblCreditTitle.visible(!qa.isBlank()); lblCreditName.visible(!qa.isBlank()); - lblCreditName.text(Text.literal(qa).withStyle(Styles.headerBold())); + lblCreditName.text(Component.literal(qa).withStyle(Styles.headerBold())); } protected void onBtnSaveClicked(EWidget source) { @@ -176,7 +171,8 @@ protected void onLayoutSelected(EWidget source) { creditVis(layout); } - @Override public void onClose() { + @Override + public void onClose() { KeymappingNotifier.clearSubscribers(); if (KeymapConfig.instance().firstOpenDone()) { super.onClose(); @@ -187,8 +183,9 @@ protected void onLayoutSelected(EWidget source) { } } - @Override protected void preRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - fill(poseStack, 0, 0, width, height, 0x55000000); - if (scr != null) drawOutline(poseStack, scr, 0xFFFFFFFF); + @Override + protected void preRenderScreen(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.fill(0, 0, width, height, 0x55000000); + if (scr != null) drawOutline(guiGraphics, scr, 0xFFFFFFFF); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/CategoryListWidget.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/CategoryListWidget.java index 6df464c..b7bbe74 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/CategoryListWidget.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/CategoryListWidget.java @@ -6,10 +6,9 @@ import com.github.einjerjar.mc.widgets.EList; import com.github.einjerjar.mc.widgets.utils.Rect; import com.github.einjerjar.mc.widgets.utils.Styles; -import com.github.einjerjar.mc.widgets.utils.Text; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; @@ -24,7 +23,8 @@ protected CategoryListWidget(int itemHeight, Rect rect) { super(itemHeight, rect); } - @Override public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { + @Override + public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { boolean ret = super.onMouseReleased(inside, mouseX, mouseY, button); setItemSelected(null); setLastItemSelected(null); @@ -32,31 +32,36 @@ protected CategoryListWidget(int itemHeight, Rect rect) { } public static class CategoryListEntry extends EListEntry { - @Getter protected CategoryHolder category; - @Getter protected Component keyString; + @Getter + protected CategoryHolder category; + + @Getter + protected Component keyString; public CategoryListEntry(CategoryHolder category, CategoryListWidget container) { super(container); - this.category = category; + this.category = category; this.keyString = this.category.getTranslatedName(); updateTooltips(); } - @Override public void updateTooltips() { + @Override + public void updateTooltips() { tooltips.clear(); - tooltips.add(Text.literal(keyString.getString()).withStyle(Styles.headerBold())); - tooltips.add(Text.literal(category.getModName()).withStyle(Styles.muted2())); + tooltips.add(Component.literal(keyString.getString()).withStyle(Styles.headerBold())); + tooltips.add(Component.literal(category.getModName()).withStyle(Styles.muted2())); if (KeymapConfig.instance().debug()) { - tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); - tooltips.add(Text.literal(String.format("Search: %s", - category.getFilterSlug())).withStyle(Styles.yellow())); + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + tooltips.add(Component.literal(String.format("Search: %s", category.getFilterSlug())) + .withStyle(Styles.yellow())); } } - @Override public void renderWidget(@NotNull PoseStack poseStack, Rect r, float partialTick) { + @Override + public void renderWidget(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick) { String trimmed = font.substrByWidth(keyString, r.w()).getString(); - drawString(poseStack, font, trimmed, r.x(), r.y(), getVariant().text()); + guiGraphics.drawString(font, trimmed, r.x(), r.y(), getVariant().text()); } } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeyWidget.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeyWidget.java index 0125be4..915e3b7 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeyWidget.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeyWidget.java @@ -10,27 +10,38 @@ import com.github.einjerjar.mc.widgets.utils.ColorGroups; import com.github.einjerjar.mc.widgets.utils.ColorSet; import com.github.einjerjar.mc.widgets.utils.Styles; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import net.minecraft.client.KeyMapping; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @Accessors(fluent = true, chain = true) public class KeyWidget extends EWidget implements KeymappingNotifier.KeybindingRegistrySubscriber { - @Getter protected KeyData key; - @Getter protected InputConstants.Key mcKey; - @Setter protected SimpleWidgetAction onClick; - @Setter protected SpecialKeyWidgetAction onSpecialClick; - @Getter @Setter protected boolean selected = false; - protected Component text; - protected boolean hasComplex = false; + @Getter + protected KeyData key; + + @Getter + protected InputConstants.Key mcKey; + + @Setter + protected SimpleWidgetAction onClick; + + @Setter + protected SpecialKeyWidgetAction onSpecialClick; + + @Getter + @Setter + protected boolean selected = false; + + protected Component text; + protected boolean hasComplex = false; public KeyWidget(KeyData key, int x, int y, int w, int h) { super(x, y, w, h); @@ -38,9 +49,9 @@ public KeyWidget(KeyData key, int x, int y, int w, int h) { } protected void _init(KeyData key) { - this.key = key; - this.text = Text.literal(key.name()); - this.mcKey = getMCKey(key); + this.key = key; + this.text = Component.literal(key.name()); + this.mcKey = getMCKey(key); this.tooltips = new ArrayList<>(); this.tooltips.add(mcKey.getDisplayName()); if (key.code() == -2) { @@ -69,13 +80,14 @@ public boolean isNormal() { } public boolean updateTooltipForOtherMouseKeys() { - tooltips.add(Text.literal(text.getString()).withStyle(Styles.header())); + tooltips.add(Component.literal(text.getString()).withStyle(Styles.header())); List boundKeys = new ArrayList<>(); // 10 mouse keys for (int i = 0; i < 10; i++) { if (KeymappingNotifier.keys().containsKey(i)) { for (KeyHolder k : KeymappingNotifier.keys().get(i)) { - boundKeys.add(Text.literal(String.format("[%s] %s", i, k.getTranslatedName().getString()))); + boundKeys.add(Component.literal( + String.format("[%s] %s", i, k.getTranslatedName().getString()))); } } } @@ -84,7 +96,7 @@ public boolean updateTooltipForOtherMouseKeys() { this.color(ColorGroups.WHITE); if (size > 0) { this.color(ColorGroups.GREEN); - tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); tooltips.addAll(boundKeys); } if (selected) this.color(ColorGroups.YELLOW); @@ -101,18 +113,21 @@ public boolean updateSpecialTooltip() { protected void updateDebugTooltips() { if (KeymapConfig.instance().debug()) { - tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); - tooltips.add(Text.literal(String.format("Code: %d", key.code())).withStyle(Styles.yellow())); - tooltips.add(Text.literal(String.format("Mouse?: %b", key.mouse())).withStyle(Styles.yellow())); - tooltips.add(Text.literal(String.format("Name: %s", key.name())).withStyle(Styles.yellow())); + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + tooltips.add( + Component.literal(String.format("Code: %d", key.code())).withStyle(Styles.yellow())); + tooltips.add( + Component.literal(String.format("Mouse?: %b", key.mouse())).withStyle(Styles.yellow())); + tooltips.add( + Component.literal(String.format("Name: %s", key.name())).withStyle(Styles.yellow())); } } // TODO: Intellij/Sonarlint complaining about cognitive complexity public void updateNormalTooltip() { - tooltips.add(Text.literal(String.format("(%s) ", - text.getString())).withStyle(Styles.yellow()).append(Text.literal(mcKey.getDisplayName().getString()).withStyle( - Styles.headerBold()))); + tooltips.add(Component.literal(String.format("(%s) ", text.getString())) + .withStyle(Styles.yellow()) + .append(Component.literal(mcKey.getDisplayName().getString()).withStyle(Styles.headerBold()))); hasComplex = KeymapRegistry.containsKey(key.code()); if (KeymappingNotifier.keys().containsKey(key.code())) { @@ -126,7 +141,7 @@ public void updateNormalTooltip() { } if (size > 0) { - tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); for (KeyHolder k : holders) { tooltips.add(k.getTranslatedName()); } @@ -137,15 +152,17 @@ public void updateNormalTooltip() { if (hasComplex) { List m = KeymapRegistry.getMappings(key.code()); - if (m.isEmpty() && tooltips.size() == 1) tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + if (m.isEmpty() && tooltips.size() == 1) + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); for (KeyMapping km : m) { - tooltips.add(Text.translatable(km.getName())); + tooltips.add(Component.translatable(km.getName())); } } if (selected) color(ColorGroups.YELLOW); } - @Override public void updateTooltips() { + @Override + public void updateTooltips() { tooltips.clear(); if (!updateSpecialTooltip()) { updateNormalTooltip(); @@ -158,7 +175,8 @@ protected InputConstants.Key getMCKey(KeyData key) { return InputConstants.Type.KEYSYM.getOrCreate(key.code()); } - @Override public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { + @Override + public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { if (isNormal()) { if (onClick != null) { onClick.run(this); @@ -173,17 +191,19 @@ protected InputConstants.Key getMCKey(KeyData key) { return false; } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { ColorSet colors = colorVariant(); - drawBg(poseStack, colors.bg()); + drawBg(guiGraphics, colors.bg()); if (hasComplex) { - fill(poseStack, right() - 6, bottom() - 6, right(), bottom(), 0xFF_ffff00); + guiGraphics.fill(right() - 6, bottom() - 6, right(), bottom(), 0xFF_ffff00); } - drawOutline(poseStack, colors.border()); - drawCenteredString(poseStack, font, text, midX(), midY() - font.lineHeight / 2 + 1, colors.text()); + drawOutline(guiGraphics, colors.border()); + guiGraphics.drawCenteredString(font, text, midX(), midY() - font.lineHeight / 2 + 1, colors.text()); } - @Override public void keybindingRegistryUpdated(boolean selected) { + @Override + public void keybindingRegistryUpdated(boolean selected) { this.selected = selected; updateTooltips(); } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeymapListWidget.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeymapListWidget.java index caf343a..284a3f3 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeymapListWidget.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/KeymapListWidget.java @@ -12,13 +12,12 @@ import com.github.einjerjar.mc.widgets.EList; import com.github.einjerjar.mc.widgets.utils.Rect; import com.github.einjerjar.mc.widgets.utils.Styles; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; @@ -33,14 +32,16 @@ public class KeymapListWidget extends EList { protected final List filteredItemList = new ArrayList<>(); - @Getter protected String filterString = ""; + @Getter + protected String filterString = ""; public KeymapListWidget(int itemHeight, int x, int y, int w, int h) { super(itemHeight, x, y, w, h); updateFilteredList(); } - @Override protected List filteredItems() { + @Override + protected List filteredItems() { return filteredItemList; } @@ -50,17 +51,20 @@ public KeymapListWidget filterString(String s) { return this; } - @Override public void updateFilteredList() { + @Override + public void updateFilteredList() { filteredItemList.clear(); if (filterString.trim().isBlank()) { filteredItemList.addAll(items); } else { for (KeymapListEntry item : items) { - List segments = Arrays.stream(filterString.split(" ")).filter(s -> !s.isBlank()).toList(); + List segments = Arrays.stream(filterString.split(" ")) + .filter(s -> !s.isBlank()) + .toList(); long matches = segments.stream() - .filter(s -> item.map - .getSearchString() - .contains(s)).toList().size(); + .filter(s -> item.map.getSearchString().contains(s)) + .toList() + .size(); if (matches == segments.size()) { filteredItemList.add(item); } @@ -69,21 +73,24 @@ public KeymapListWidget filterString(String s) { setScrollPos(0); } - @Override protected void setSelected(KeymapListEntry i, boolean selected) { + @Override + protected void setSelected(KeymapListEntry i, boolean selected) { if (i != null) { i.selected(selected); KeymappingNotifier.notifySubscriber(i.map.getSingleCode(), selected); } } - @Override public void setItemSelected(KeymapListEntry t) { + @Override + public void setItemSelected(KeymapListEntry t) { setLastItemSelected(itemSelected); setSelected(itemSelected, false); itemSelected = t; setSelected(itemSelected, true); } - @Override public void setLastItemSelected(KeymapListEntry t) { + @Override + public void setLastItemSelected(KeymapListEntry t) { setSelected(lastItemSelected, false); lastItemSelected = t; setSelected(lastItemSelected, true); @@ -146,10 +153,10 @@ public boolean setKey(KeyComboData kd) { if (!(item != null && item.map instanceof VanillaKeymap vk)) return false; int lastCode = vk.getSingleCode(); - int newCode = kd.keyCode() == InputConstants.KEY_ESCAPE ? -1 : kd.keyCode(); + int newCode = kd.keyCode() == InputConstants.KEY_ESCAPE ? -1 : kd.keyCode(); - int ko = KeymappingNotifier.keyOf(vk); - int kk = ko; + int ko = KeymappingNotifier.keyOf(vk); + int kk = ko; KeyComboData kl = KeymapRegistry.bindMap().get(vk.map()); if (kl != null) kk = kl.keyCode(); @@ -201,22 +208,28 @@ protected void updateAllEntryTooltips() { for (KeymapListEntry item : items) item.updateTooltips(); } - @Override public void sort() { + @Override + public void sort() { this.items().sort(Comparator.comparing(o -> o.map.getTranslatedName().getString())); - this.filteredItemList.sort(Comparator.comparing(o -> o.map.getTranslatedName().getString())); + this.filteredItemList.sort( + Comparator.comparing(o -> o.map.getTranslatedName().getString())); } @Accessors(fluent = true, chain = true) public static class KeymapListEntry extends EListEntry { - protected static final String CHAR_ASSIGNED = "⬛ "; - protected static final String CHAR_UNASSIGNED = "⬜ "; - protected static Integer CHAR_ASSIGN_W = null; - @Getter protected KeyHolder map; - @Getter protected Component keyString; + protected static final String CHAR_ASSIGNED = "⬛ "; + protected static final String CHAR_UNASSIGNED = "⬜ "; + protected static Integer CHAR_ASSIGN_W = null; + + @Getter + protected KeyHolder map; + + @Getter + protected Component keyString; public KeymapListEntry(KeyHolder map, KeymapListWidget container) { super(container); - this.map = map; + this.map = map; this.keyString = map.getTranslatedName(); updateTooltips(); } @@ -230,27 +243,28 @@ protected static int charW() { protected void updateDebugTooltips() { if (KeymapConfig.instance().debug()) { - tooltips.add(Text.literal(Utils.SEPARATOR).withStyle(Styles.muted())); - tooltips.add(Text.literal(String.format("Search: %s", - map.getSearchString())).withStyle(Styles.yellow())); + tooltips.add(Component.literal(Utils.SEPARATOR).withStyle(Styles.muted())); + tooltips.add(Component.literal(String.format("Search: %s", map.getSearchString())) + .withStyle(Styles.yellow())); } } - @Override public void updateTooltips() { + @Override + public void updateTooltips() { tooltips.clear(); - tooltips.add(Text.literal(this.keyString.getString()).withStyle(Styles.headerBold())); - tooltips.add(Text.literal(String.format("[@%s #%s]", - Language.getInstance().getOrDefault(this.map().getCategory()), - Language.getInstance().getOrDefault(this.map().getModName()) - )).withStyle(Styles.muted2())); - tooltips.add(map.isAssigned() ? map.getTranslatedKey() : Text.translatable("key.keyboard.unknown")); + tooltips.add(Component.literal(this.keyString.getString()).withStyle(Styles.headerBold())); + tooltips.add(Component.literal(String.format( + "[@%s #%s]", + Language.getInstance().getOrDefault(this.map().getCategory()), + Language.getInstance().getOrDefault(this.map().getModName()))) + .withStyle(Styles.muted2())); + tooltips.add(map.isAssigned() ? map.getTranslatedKey() : Component.translatable("key.keyboard.unknown")); updateDebugTooltips(); } - @Override public String toString() { - return "KeymapListEntryWidget{" + - "keyString=" + keyString.getString() + - '}'; + @Override + public String toString() { + return "KeymapListEntryWidget{" + "keyString=" + keyString.getString() + '}'; } public void resetKey() { @@ -258,16 +272,16 @@ public void resetKey() { } @Override - public void renderWidget(@NotNull PoseStack poseStack, Rect r, float partialTick) { + public void renderWidget(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick) { String trimmed = font.substrByWidth(keyString, r.w() - charW()).getString(); - drawString(poseStack, font, - map.isAssigned() - ? CHAR_ASSIGNED - : CHAR_UNASSIGNED, r.x(), r.y(), - map.isAssigned() - ? color.active().text() - : color.normal().text()); - drawString(poseStack, font, trimmed, r.x() + charW(), r.y(), getVariant().text()); + guiGraphics.drawString( + font, + map.isAssigned() ? CHAR_ASSIGNED : CHAR_UNASSIGNED, + r.x(), + r.y(), + map.isAssigned() ? color.active().text() : color.normal().text()); + guiGraphics.drawString( + font, trimmed, r.x() + charW(), r.y(), getVariant().text()); } } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/VirtualKeyboardWidget.java b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/VirtualKeyboardWidget.java index a3c3075..f2c5eab 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/VirtualKeyboardWidget.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/client/gui/widgets/VirtualKeyboardWidget.java @@ -4,22 +4,34 @@ import com.github.einjerjar.mc.keymap.keys.layout.KeyData; import com.github.einjerjar.mc.keymap.keys.layout.KeyRow; import com.github.einjerjar.mc.widgets.EWidget; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @Accessors(fluent = true, chain = true) public class VirtualKeyboardWidget extends EWidget { - @Getter protected final List childKeys = new ArrayList<>(); - protected final List keys; - @Getter @Setter protected int gap = 2; - @Setter protected SimpleWidgetAction onKeyClicked; - @Setter protected SpecialVKKeyClicked onSpecialKeyClicked; - @Getter protected KeyWidget lastActionFrom; + @Getter + protected final List childKeys = new ArrayList<>(); + + protected final List keys; + + @Getter + @Setter + protected int gap = 2; + + @Setter + protected SimpleWidgetAction onKeyClicked; + + @Setter + protected SpecialVKKeyClicked onSpecialKeyClicked; + + @Getter + protected KeyWidget lastActionFrom; public VirtualKeyboardWidget(List keys, int x, int y, int w, int h) { super(x, y, w, h); @@ -27,7 +39,8 @@ public VirtualKeyboardWidget(List keys, int x, int y, int w, int h) { init(); } - @Override public boolean isMouseOver(double mouseX, double mouseY) { + @Override + public boolean isMouseOver(double mouseX, double mouseY) { return false; } @@ -57,9 +70,10 @@ protected void _onSpecialKeyClicked(KeyWidget source, int button) { lastActionFrom = null; } - @Override protected void init() { - int w = 16; - int h = 16; + @Override + protected void init() { + int w = 16; + int h = 16; int currentX = left(); int currentY = top(); @@ -67,8 +81,8 @@ protected void _onSpecialKeyClicked(KeyWidget source, int button) { for (KeyRow kk : keys) { for (KeyData k : kk.row()) { - int ww = w + k.width(); - int hh = h + k.height(); + int ww = w + k.width(); + int hh = h + k.height(); KeyWidget kw = new KeyWidget(k, currentX, currentY, ww, hh); kw.onClick(this::_onKeyClicked); kw.onSpecialClick(this::_onSpecialKeyClicked); @@ -76,7 +90,7 @@ protected void _onSpecialKeyClicked(KeyWidget source, int button) { childKeys.add(kw); currentX += gap + ww; } - maxX = Math.max(currentX - gap, maxX); + maxX = Math.max(currentX - gap, maxX); currentX = left(); currentY += gap + h; } @@ -86,9 +100,10 @@ protected void _onSpecialKeyClicked(KeyWidget source, int button) { rect.h(currentY - top()); } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { for (KeyWidget kw : childKeys) { - kw.render(poseStack, mouseX, mouseY, partialTick); + kw.render(guiGraphics, mouseX, mouseY, partialTick); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/config/KeymapConfig.java b/common/src/main/java/com/github/einjerjar/mc/keymap/config/KeymapConfig.java index a4e8220..80eb631 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/config/KeymapConfig.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/config/KeymapConfig.java @@ -23,23 +23,23 @@ @AllArgsConstructor @Accessors(fluent = true) public class KeymapConfig { - static KeymapConfig instance; - static Gson gson = new GsonBuilder().setPrettyPrinting().create(); - private static File cfgFile = null; + static KeymapConfig instance; + static Gson gson = new GsonBuilder().setPrettyPrinting().create(); + private static File cfgFile = null; // extra - protected boolean firstOpenDone = false; + protected boolean firstOpenDone = false; // layout - protected boolean autoSelectLayout = false; - protected String customLayout = "en_us"; + protected boolean autoSelectLayout = false; + protected String customLayout = "en_us"; // general - protected boolean replaceKeybindScreen = true; - protected boolean malilibSupport = true; - protected boolean debug = false; - protected boolean debug2 = false; + protected boolean replaceKeybindScreen = true; + protected boolean malilibSupport = true; + protected boolean debug = false; + protected boolean debug2 = false; protected boolean crashOnProblematicError = false; // tooltip - protected boolean showHelpTooltips = true; + protected boolean showHelpTooltips = true; private static synchronized File cfgFile() { if (cfgFile == null) cfgFile = Services.PLATFORM.config("keymap.json"); diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/cross/Services.java b/common/src/main/java/com/github/einjerjar/mc/keymap/cross/Services.java index f39192b..318cba4 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/cross/Services.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/cross/Services.java @@ -29,8 +29,7 @@ public class Services { */ public static final ITickHelper TICK = PLATFORM.tickHelper(); - private Services() { - } + private Services() {} /** * Loads a class via the ServiceLoader, throws a RuntimeException when there is @@ -44,8 +43,6 @@ private Services() { public static T load(Class c) { return ServiceLoader.load(c) .findFirst() - .orElseThrow(() -> - new RuntimeException(String.format("Can't load service for %s", c.getName())) - ); + .orElseThrow(() -> new RuntimeException(String.format("Can't load service for %s", c.getName()))); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/cross/services/IKeybindHelper.java b/common/src/main/java/com/github/einjerjar/mc/keymap/cross/services/IKeybindHelper.java index 9d7cf33..1abe04a 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/cross/services/IKeybindHelper.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/cross/services/IKeybindHelper.java @@ -3,7 +3,6 @@ import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.KeyMapping; - /** * Helper service to be overridden loader specific ones */ @@ -18,10 +17,5 @@ public interface IKeybindHelper { * * @return A KeyMapping instance */ - KeyMapping create( - InputConstants.Type type, - int code, - String name, - String category - ); + KeyMapping create(InputConstants.Type type, int code, String name, String category); } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeyComboData.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeyComboData.java index ca13ffb..7a228e5 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeyComboData.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeyComboData.java @@ -25,7 +25,7 @@ public class KeyComboData { /** * The primary key's code */ - protected int keyCode; + protected int keyCode; /** * The type of key, mouse or board * TODO: Migrate to InputConstants @@ -63,9 +63,9 @@ public KeyComboData(InputConstants.Key k) { public KeyComboData(int keyCode, KeyType keyType, boolean alt, boolean shift, boolean ctrl) { this.keyCode = keyCode; this.keyType = keyType; - this.alt = alt; - this.shift = shift; - this.ctrl = ctrl; + this.alt = alt; + this.shift = shift; + this.ctrl = ctrl; if (isModifierOnly()) { this.alt = this.shift = this.ctrl = false; @@ -135,14 +135,20 @@ public boolean isModifierOnly() { return isModifier() && modifierCount() == 1; } - @Override public boolean equals(Object o) { + @Override + public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; KeyComboData that = (KeyComboData) o; - return keyCode == that.keyCode && alt == that.alt && shift == that.shift && ctrl == that.ctrl && keyType == that.keyType; + return keyCode == that.keyCode + && alt == that.alt + && shift == that.shift + && ctrl == that.ctrl + && keyType == that.keyType; } - @Override public int hashCode() { + @Override + public int hashCode() { return Objects.hash(keyCode, keyType, alt, shift, ctrl); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeymapRegistry.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeymapRegistry.java index 3755064..e684a39 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeymapRegistry.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/extrakeybind/KeymapRegistry.java @@ -34,12 +34,13 @@ public class KeymapRegistry { /** * The expected output of the parse json, also the type of the actual registry */ - public static final Type TYPE_BIND_MAP_KEY = new TypeToken>() { - }.getType(); + public static final Type TYPE_BIND_MAP_KEY = new TypeToken>() {}.getType(); /** * List of keys that are marked as modifiers */ - @Getter protected static final List MODIFIER_KEYS = Arrays.asList(InputConstants.KEY_LALT, + @Getter + protected static final List MODIFIER_KEYS = Arrays.asList( + InputConstants.KEY_LALT, InputConstants.KEY_RALT, InputConstants.KEY_LSHIFT, InputConstants.KEY_RSHIFT, @@ -49,33 +50,32 @@ public class KeymapRegistry { /** * TODO: Make only one instance in a centralized location, Keymap class probably? */ - protected static final Gson gson = new GsonBuilder().setPrettyPrinting().create(); + protected static final Gson gson = new GsonBuilder().setPrettyPrinting().create(); /** * The actual registry, bimap so we can search the other way around, also guava is lit */ - protected static final BiMap bindMap = HashBiMap.create(); + protected static final BiMap bindMap = HashBiMap.create(); /** * The registry, except, the string keys of the keymaps, the data that is saved and loaded */ - protected static Map bindMapKey = new HashMap<>(); + protected static Map bindMapKey = new HashMap<>(); /** * Reference to this class's config file */ - protected static File cfgFile = null; + protected static File cfgFile = null; /** * Whether the load function has been run */ - protected static boolean loaded = false; + protected static boolean loaded = false; - private KeymapRegistry() { - } + private KeymapRegistry() {} /** * The config file instance, if not available create it * * @return The config file instance */ - protected synchronized static File cfgFile() { + protected static synchronized File cfgFile() { return cfgFile != null ? cfgFile : Services.PLATFORM.config("keymap-keys.json"); } @@ -117,7 +117,8 @@ public static synchronized void load(boolean force) { List keyHolders = source.getKeyHolders(); if (keyHolders.isEmpty() || !(keyHolders.get(0) instanceof VanillaKeymap)) continue; - List vk = keyHolders.stream().map(VanillaKeymap.class::cast).toList(); + List vk = + keyHolders.stream().map(VanillaKeymap.class::cast).toList(); for (VanillaKeymap v : vk) { if (keys.contains(v.map().getName())) { @@ -128,8 +129,7 @@ public static synchronized void load(boolean force) { } catch (FileNotFoundException e) { Keymap.logger().info("No keymap complex-key save found"); } catch (Exception e) { - Keymap.logger().error("!! Can't read keymap's complex-key save !!"); - e.printStackTrace(); + Keymap.logger().error("!! Can't read keymap's complex-key save !!", e); } finally { loaded = true; } @@ -142,8 +142,7 @@ public static synchronized void save() { try (FileWriter writer = new FileWriter(cfgFile())) { gson.toJson(bindMapKey(), writer); } catch (Exception e) { - Keymap.logger().error("!! Can't save key config !!"); - e.printStackTrace(); + Keymap.logger().error("!! Can't save key config !!", e); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyData.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyData.java index a26e268..ba1ddf1 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyData.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyData.java @@ -17,25 +17,26 @@ public class KeyData { /** * The keycode */ - protected int code; + protected int code; /** * The text to display on the virtual key */ - protected String name; + protected String name; /** * Whether this key can be assigned (eg; super/windows keys should be disabled) */ - protected boolean enabled; + protected boolean enabled; /** * Whether the key is a mouse key */ - @Setter protected boolean mouse; + @Setter + protected boolean mouse; /** * Extra width for the key (can be negative) */ - protected int width; + protected int width; /** * Extra height for the key (can be negative) */ - protected int height; + protected int height; } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyLayout.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyLayout.java index c8b4591..24c182d 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyLayout.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/KeyLayout.java @@ -31,30 +31,37 @@ public class KeyLayout { /** * Where the default layouts are located */ - private static final String LAYOUT_ROOT = "assets/keymap/layouts"; + private static final String LAYOUT_ROOT = "assets/keymap/layouts"; /** * The default layout (en_us (iirc)) * TODO: Check if this is even used at all */ - @Getter protected static KeyLayout layoutDefault; + @Getter + protected static KeyLayout layoutDefault; /** * The current layout * TODO: Check if this is even used at all */ - @Getter protected static KeyLayout layoutCurrent; + @Getter + protected static KeyLayout layoutCurrent; /** * List of all registered layouts and their name codes */ - @Getter protected static HashMap layouts = new HashMap<>(); + @Getter + protected static HashMap layouts = new HashMap<>(); /** * The metadata for this layout instance */ - @Getter @Setter protected KeyMeta meta; + @Getter + @Setter + protected KeyMeta meta; /** * The actual key groups */ - @Getter @Setter protected Keys keys; + @Getter + @Setter + protected Keys keys; /** * Registers a layout @@ -90,16 +97,17 @@ protected static void updateMouseKeys(List rows) { public static void loadKeys() { layouts.clear(); - GsonBuilder builder = new GsonBuilder().setPrettyPrinting(); - Gson gson = builder.create(); - ClassLoader loader = KeyLayout.class.getClassLoader(); - Stream files = null; - FileSystem fs; + GsonBuilder builder = new GsonBuilder().setPrettyPrinting(); + Gson gson = builder.create(); + ClassLoader loader = KeyLayout.class.getClassLoader(); + Stream files = null; + FileSystem fs; try { Keymap.logger().warn(loader.getResource("/")); Keymap.logger().warn(loader.getResource(LAYOUT_ROOT)); - URI layoutUri = Objects.requireNonNull(Objects.requireNonNull(loader.getResource(LAYOUT_ROOT)).toURI()); + URI layoutUri = Objects.requireNonNull( + Objects.requireNonNull(loader.getResource(LAYOUT_ROOT)).toURI()); Keymap.logger().warn("Keymap layout stream: {}", layoutUri); Keymap.logger().warn("Keymap layout stream scheme: {}", layoutUri.getScheme()); Path path; @@ -126,8 +134,8 @@ public static void loadKeys() { } private static void tryLoadLayout(Gson gson, ClassLoader loader, Path p) { - try (InputStreamReader reader = - new InputStreamReader(Objects.requireNonNull(loader.getResourceAsStream(p.toString())), StandardCharsets.UTF_8)) { + try (InputStreamReader reader = new InputStreamReader( + Objects.requireNonNull(loader.getResourceAsStream(p.toString())), StandardCharsets.UTF_8)) { registerLayout(gson.fromJson(reader, KeyLayout.class)); } catch (Exception e) { Keymap.logger().warn("Can't load {} ; {}", p.getFileName(), e.getMessage()); diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/Keys.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/Keys.java index 3a3a868..1fbac21 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/Keys.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/layout/Keys.java @@ -17,17 +17,17 @@ public class Keys { /** * Contains keys available on most baords */ - protected List basic = new ArrayList<>(); + protected List basic = new ArrayList<>(); /** * Contains the basic mouse keys and special handler for extra keys */ - protected List mouse = new ArrayList<>(); + protected List mouse = new ArrayList<>(); /** * Contains the insert/home/pgup etc keys */ - protected List extra = new ArrayList<>(); + protected List extra = new ArrayList<>(); /** * Self-explanatory :3 */ protected List numpad = new ArrayList<>(); -} \ No newline at end of file +} diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/KeymappingNotifier.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/KeymappingNotifier.java index 4d5453b..282b02c 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/KeymappingNotifier.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/KeymappingNotifier.java @@ -203,11 +203,7 @@ public static void updateKey(Integer lastCode, Integer newCode, KeyHolder holder if (containsHolder(holder)) { String msg = String.format( "KeyHolder was not removed by the last removeKey call! [lastCode=%d, newCode=%d, keyOf=%d, holder=%s]", - lastCode, - newCode, - keyOf(holder), - holder.getTranslatableName() - ); + lastCode, newCode, keyOf(holder), holder.getTranslatableName()); if (KeymapConfig.instance().crashOnProblematicError()) { throw (new RuntimeException(msg)); } else { diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/AllCategorySource.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/AllCategorySource.java index 020e5b3..413a7ef 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/AllCategorySource.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/AllCategorySource.java @@ -10,12 +10,13 @@ */ public class AllCategorySource implements CategorySource { - - @Override public List getCategoryHolders() { + @Override + public List getCategoryHolders() { return List.of(new AllCategory()); } - @Override public boolean canUseSource() { + @Override + public boolean canUseSource() { return true; } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/CategorySources.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/CategorySources.java index a0a3852..9936795 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/CategorySources.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/CategorySources.java @@ -15,14 +15,15 @@ public class CategorySources { /** * Known list of sources */ - @Getter protected static List sources = new ArrayList<>(); + @Getter + protected static List sources = new ArrayList<>(); /** * Whether the collect function has been called once */ - @Getter protected static boolean collected = false; + @Getter + protected static boolean collected = false; - private CategorySources() { - } + private CategorySources() {} /** * Gathers the known category sources, should really only be called once to avoid diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/VanillaCategorySource.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/VanillaCategorySource.java index 1f8cc66..d4b0dcb 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/VanillaCategorySource.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/category/VanillaCategorySource.java @@ -13,7 +13,8 @@ */ public class VanillaCategorySource implements CategorySource { - @Override public List getCategoryHolders() { + @Override + public List getCategoryHolders() { List categories = new ArrayList<>(); for (KeyMapping km : Minecraft.getInstance().options.keyMappings) { String cat = km.getCategory(); @@ -28,7 +29,8 @@ public class VanillaCategorySource implements CategorySource { return categoryHolders; } - @Override public boolean canUseSource() { + @Override + public boolean canUseSource() { return true; } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/KeymapSources.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/KeymapSources.java index 6cc2052..b968ec5 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/KeymapSources.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/KeymapSources.java @@ -15,14 +15,15 @@ public class KeymapSources { /** * Known list of sources */ - @Getter protected static List sources = new ArrayList<>(); + @Getter + protected static List sources = new ArrayList<>(); /** * Whether the collect function has been called once */ - @Getter protected static boolean collected = false; + @Getter + protected static boolean collected = false; - private KeymapSources() { - } + private KeymapSources() {} /** * Gathers the known keymap sources, should really only be called once to avoid diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/VanillaKeymapSource.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/VanillaKeymapSource.java index 66401d2..79cd762 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/VanillaKeymapSource.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/sources/keymap/VanillaKeymapSource.java @@ -12,7 +12,8 @@ * Source for vanilla keybinds */ public final class VanillaKeymapSource implements KeymapSource { - @Override public List getKeyHolders() { + @Override + public List getKeyHolders() { List keymaps = new ArrayList<>(); for (KeyMapping km : Minecraft.getInstance().options.keyMappings) { KeyHolder kh = new VanillaKeymap(km); @@ -21,7 +22,8 @@ public final class VanillaKeymapSource implements KeymapSource { return keymaps; } - @Override public boolean canUseSource() { + @Override + public boolean canUseSource() { return true; } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/AllCategory.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/AllCategory.java index b916f89..2a4f057 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/AllCategory.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/AllCategory.java @@ -1,6 +1,5 @@ package com.github.einjerjar.mc.keymap.keys.wrappers.categories; -import com.github.einjerjar.mc.widgets.utils.Text; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; @@ -11,28 +10,32 @@ public class AllCategory implements CategoryHolder { /** * Translation key */ - protected static final String CAT_ALL = "keymap.listCatAll"; + protected static final String CAT_ALL = "keymap.listCatAll"; /** * Cached reference to the translated Component */ - protected final Component translatedName = Text.translatable(CAT_ALL); + protected final Component translatedName = Component.translatable(CAT_ALL); - @Override public String getTranslatableName() { + @Override + public String getTranslatableName() { return CAT_ALL; } - @Override public Component getTranslatedName() { + @Override + public Component getTranslatedName() { return translatedName; } - @Override public String getModName() { + @Override + public String getModName() { return Language.getInstance().getOrDefault(CAT_ALL); } /** * @return Empty string to remove all filters, and show all categories */ - @Override public String getFilterSlug() { + @Override + public String getFilterSlug() { return ""; } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/VanillaCategory.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/VanillaCategory.java index 6ec0007..c568003 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/VanillaCategory.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/categories/VanillaCategory.java @@ -1,7 +1,5 @@ package com.github.einjerjar.mc.keymap.keys.wrappers.categories; -import com.github.einjerjar.mc.keymap.utils.Utils; -import com.github.einjerjar.mc.widgets.utils.Text; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; @@ -21,38 +19,41 @@ public class VanillaCategory implements CategoryHolder { "key.categories.gameplay", "key.categories.ui", "key.categories.inventory", - "key.categories.creative" - ); + "key.categories.creative"); /** * The specific vanilla category this object references */ - protected final String category; + protected final String category; /** * Cached copy of this category's translated name as a Component */ protected final Component translatedName; public VanillaCategory(String category) { - this.category = category; - this.translatedName = Text.translatable(category); + this.category = category; + this.translatedName = Component.translatable(category); } - @Override public String getTranslatableName() { + @Override + public String getTranslatableName() { return category; } - @Override public Component getTranslatedName() { + @Override + public Component getTranslatedName() { return translatedName; } - @Override public String getModName() { + @Override + public String getModName() { String s = category; if (MC_CATEGORIES.contains(category)) s = "advancements.story.root.title"; return Language.getInstance().getOrDefault(s); } - @Override public String getFilterSlug() { + @Override + public String getFilterSlug() { return String.format("@%s", Language.getInstance().getOrDefault(category)); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/keys/VanillaKeymap.java b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/keys/VanillaKeymap.java index 8004c10..6964ad4 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/keys/VanillaKeymap.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/keys/wrappers/keys/VanillaKeymap.java @@ -4,7 +4,6 @@ import com.github.einjerjar.mc.keymap.keys.extrakeybind.KeymapRegistry; import com.github.einjerjar.mc.keymap.keys.wrappers.categories.VanillaCategory; import com.github.einjerjar.mc.keymap.utils.Utils; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; import lombok.Getter; import lombok.experimental.Accessors; @@ -26,99 +25,116 @@ public class VanillaKeymap implements KeyHolder { * The container for the current holder's key * TODO: Turn to single int */ - protected final List codes = new ArrayList<>(); + protected final List codes = new ArrayList<>(); /** * Reference to Minecraft's actual Keybind */ - @Getter protected KeyMapping map; + @Getter + protected KeyMapping map; /** * Cached copy of the Keybinding's translated name for performance */ - protected Component translatedName; + protected Component translatedName; /** * Cached copy of the assigned keys translated name for performance */ - protected Component translatedKey; + protected Component translatedKey; /** * TODO: remove */ - protected boolean complex; + protected boolean complex; /** * Cached copy of the keybinding's search string for performance */ - protected String searchString; + protected String searchString; public VanillaKeymap(KeyMapping map) { - this.map = map; - this.translatedName = Text.translatable(map.getName()); + this.map = map; + this.translatedName = Component.translatable(map.getName()); updateProps(map.key); } - @Override public List getCode() { + @Override + public List getCode() { return codes; } - @Override public Integer getSingleCode() { + @Override + public Integer getSingleCode() { return codes.get(0); } - @Override public Integer getKeyHash() { + @Override + public Integer getKeyHash() { return Objects.hash(map.key.getValue()); } - @Override public boolean isComplex() { + @Override + public boolean isComplex() { return complex; } - @Override public KeyComboData getComplexCode() { + @Override + public KeyComboData getComplexCode() { return null; } - @Override public String getTranslatableName() { + @Override + public String getTranslatableName() { return map.getName(); } - @Override public String getCategory() { + @Override + public String getCategory() { return map.getCategory(); } - @Override public Component getTranslatedName() { + @Override + public Component getTranslatedName() { return translatedName; } - @Override public String getTranslatableKey() { + @Override + public String getTranslatableKey() { return map.key.getName(); } - @Override public Component getTranslatedKey() { + @Override + public Component getTranslatedKey() { return translatedKey; } - @Override public String getSearchString() { + @Override + public String getSearchString() { return searchString; } - @Override public boolean setKey(List keys, boolean mouse) { + @Override + public boolean setKey(List keys, boolean mouse) { if (keys == null || keys.isEmpty()) return false; InputConstants.Type type = mouse ? InputConstants.Type.MOUSE : InputConstants.Type.KEYSYM; - InputConstants.Key key = type.getOrCreate(keys.get(0)); + InputConstants.Key key = type.getOrCreate(keys.get(0)); updateProps(key); Minecraft.getInstance().options.setKey(map, key); + KeyMapping.resetMapping(); return true; } - @Override public String getModName() { + @Override + public String getModName() { String s = getCategory(); if (VanillaCategory.MC_CATEGORIES.contains(getCategory())) s = "advancements.story.root.title"; return Language.getInstance().getOrDefault(s); } - @Override public boolean resetKey() { + @Override + public boolean resetKey() { updateProps(map.getDefaultKey()); return true; } - @Override public boolean isAssigned() { + @Override + public boolean isAssigned() { return map.key.getValue() != -1 || KeymapRegistry.contains(map); } @@ -141,22 +157,24 @@ protected String searchableKey() { */ protected void updateSearchString() { String cat = Language.getInstance().getOrDefault(getCategory()); - searchString = String.format("%s [%s] $%s {%s} #%s (%s) @%s", - translatedName.getString(), - // name - searchableKey(), - // [key] - Utils.slugify(searchableKey()), - // $key-slug - getModName(), - // {mod} - getModName(), - // #mod - cat, - // (cat) - cat - // @cat - ).toLowerCase(); + searchString = String.format( + "%s [%s] $%s {%s} #%s (%s) @%s", + translatedName.getString(), + // name + searchableKey(), + // [key] + Utils.slugify(searchableKey()), + // $key-slug + getModName(), + // {mod} + getModName(), + // #mod + cat, + // (cat) + cat + // @cat + ) + .toLowerCase(); } /** @@ -171,23 +189,25 @@ public void updateProps(InputConstants.Key key) { codes.add(key.getValue()); if (KeymapRegistry.bindMap().containsKey(map)) { - KeyComboData k = KeymapRegistry.bindMap().get(map); - String kk = k.toKeyString(); - translatedKey = Text.literal(kk); + KeyComboData k = KeymapRegistry.bindMap().get(map); + String kk = k.toKeyString(); + translatedKey = Component.literal(kk); } else { translatedKey = key.getDisplayName(); } updateSearchString(); } - @Override public boolean equals(Object o) { + @Override + public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; VanillaKeymap that = (VanillaKeymap) o; return map.equals(that.map) && codes.equals(that.codes); } - @Override public int hashCode() { + @Override + public int hashCode() { return Objects.hash(map, codes); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/ControlsOptionsScreenMixin.java b/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/ControlsOptionsScreenMixin.java index c644474..d0bf20e 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/ControlsOptionsScreenMixin.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/ControlsOptionsScreenMixin.java @@ -3,7 +3,6 @@ import com.github.einjerjar.mc.keymap.client.gui.screen.KeymapScreen; import com.github.einjerjar.mc.keymap.client.gui.screen.LayoutSelectionScreen; import com.github.einjerjar.mc.keymap.config.KeymapConfig; -import com.github.einjerjar.mc.widgets.utils.Text; import net.minecraft.client.Options; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.events.GuiEventListener; @@ -36,17 +35,17 @@ public ControlsOptionsScreenMixin(Screen arg, Options arg2, Component arg3) { private void onInit(CallbackInfo ci) { if (!KeymapConfig.instance().replaceKeybindScreen()) return; int i = this.width / 2 - 155; - int j = i + 160; - int k = this.height / 6 - 12; + int x = i + 160; + int y = this.height / 6 - 12; for (GuiEventListener child : children()) { - if (child instanceof Button bb && bb.x == j && bb.y == k) { + if (child instanceof Button bb && bb.getX() == x && bb.getY() == y) { this.removeWidget(bb); - this.addRenderableWidget(new Button(j, - k, - 150, - 20, - Text.translatable("keymap.keyCat"), this::clickHandler)); + + this.addRenderableWidget(Button.builder(Component.translatable("keymap.keyCat"), this::clickHandler) + .pos(x, y) + .size(150, 20) + .build()); break; } } @@ -65,4 +64,4 @@ protected void clickHandler(Button button) { minecraft.setScreen(scr); } -} \ No newline at end of file +} diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/KeyboardHandlerMixin.java b/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/KeyboardHandlerMixin.java index d9133cf..1d9b378 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/KeyboardHandlerMixin.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/mixin/KeyboardHandlerMixin.java @@ -18,8 +18,11 @@ */ @Mixin(KeyboardHandler.class) public class KeyboardHandlerMixin { - private KeyComboData lastValidCombo = null; - @Shadow @Final private Minecraft minecraft; + private KeyComboData lastValidCombo = null; + + @Shadow + @Final + private Minecraft minecraft; /** * Listens for keypress and checks if there is any matching keybind from the registry, @@ -37,14 +40,13 @@ private void onKeyPress(long windowPointer, int key, int scanCode, int action, i if (windowPointer != minecraft.getWindow().getWindow()) return; Screen screen = minecraft.screen; - if (screen == null || screen.passEvents) { - KeyComboData kd = new KeyComboData(key, - Screen.hasAltDown(), - Screen.hasShiftDown(), - Screen.hasControlDown()); - if (lastValidCombo != null && action == 0 - && lastValidCombo.keyCode() == kd.keyCode() - && KeymapRegistry.bindMap().inverse().containsKey(lastValidCombo)) { + if (screen == null) { + KeyComboData kd = + new KeyComboData(key, Screen.hasAltDown(), Screen.hasShiftDown(), Screen.hasControlDown()); + if (lastValidCombo != null + && action == 0 + && lastValidCombo.keyCode() == kd.keyCode() + && KeymapRegistry.bindMap().inverse().containsKey(lastValidCombo)) { KeyMapping k = KeymapRegistry.bindMap().inverse().get(lastValidCombo); k.setDown(false); diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/objects/Credits.java b/common/src/main/java/com/github/einjerjar/mc/keymap/objects/Credits.java index dff6770..1cfc156 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/objects/Credits.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/objects/Credits.java @@ -21,12 +21,12 @@ @AllArgsConstructor @Accessors(fluent = true) public class Credits { - private static final String CREDITS_ROOT = "assets/keymap/credits.json"; - static Credits instance; + private static final String CREDITS_ROOT = "assets/keymap/credits.json"; + static Credits instance; List language; - List layout; - List core; + List layout; + List core; @Getter @Setter @@ -35,7 +35,7 @@ public class Credits { @AllArgsConstructor @Accessors(fluent = true) public static class LanguageCredits { - String lang; + String lang; List name; } @@ -46,7 +46,7 @@ public static class LanguageCredits { @AllArgsConstructor @Accessors(fluent = true) public static class LayoutCredits { - String key; + String key; List name; } @@ -57,7 +57,7 @@ public static class LayoutCredits { @AllArgsConstructor @Accessors(fluent = true) public static class CoreCredits { - String name; + String name; List contributions; } @@ -70,11 +70,12 @@ public static synchronized Credits instance() { public static void loadCredits() { GsonBuilder builder = new GsonBuilder().setPrettyPrinting(); - Gson gson = builder.create(); - ClassLoader loader = Credits.class.getClassLoader(); + Gson gson = builder.create(); + ClassLoader loader = Credits.class.getClassLoader(); try { - URI creditUri = Objects.requireNonNull(loader.getResource(CREDITS_ROOT)).toURI(); + URI creditUri = + Objects.requireNonNull(loader.getResource(CREDITS_ROOT)).toURI(); if (creditUri.getScheme().equals("jar")) { // simple notice, since sonarlint/intellij is complaining about readability @@ -87,7 +88,8 @@ public static void loadCredits() { // ----------------- another try-catch block ends here ----------------- } - try (InputStreamReader reader = new InputStreamReader(Objects.requireNonNull(loader.getResourceAsStream(CREDITS_ROOT)), StandardCharsets.UTF_8)) { + try (InputStreamReader reader = new InputStreamReader( + Objects.requireNonNull(loader.getResourceAsStream(CREDITS_ROOT)), StandardCharsets.UTF_8)) { instance = gson.fromJson(reader, Credits.class); } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/utils/Utils.java b/common/src/main/java/com/github/einjerjar/mc/keymap/utils/Utils.java index 073a3aa..467204b 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/utils/Utils.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/utils/Utils.java @@ -1,6 +1,5 @@ package com.github.einjerjar.mc.keymap.utils; - import net.minecraft.locale.Language; import java.text.Normalizer; @@ -12,13 +11,12 @@ public class Utils { /** * Redundant string used in the mod */ - public static final String SEPARATOR = "--------------------"; - protected static final int MAX_SLUG_LENGTH = 256; - protected static Language languageInstance = null; + public static final String SEPARATOR = "--------------------"; - private Utils() { - } + protected static final int MAX_SLUG_LENGTH = 256; + protected static Language languageInstance = null; + private Utils() {} /** * Gets the language instace for quick translations without going through components @@ -76,13 +74,14 @@ public static double clamp(double x, double min, double max) { * @return The sluggified string */ public static String slugify(final String s) { - final String intermediateResult = Normalizer - .normalize(s, Normalizer.Form.NFD) + final String intermediateResult = Normalizer.normalize(s, Normalizer.Form.NFD) .replaceAll("[^\\p{ASCII}]", "") - .replaceAll("[^-_a-zA-Z\\d]", "-").replaceAll("\\s+", "-") - .replaceAll("-+", "-").replaceAll("^-", "") - .replaceAll("-$", "").toLowerCase(); - return intermediateResult.substring(0, - Math.min(MAX_SLUG_LENGTH, intermediateResult.length())); + .replaceAll("[^-_a-zA-Z\\d]", "-") + .replaceAll("\\s+", "-") + .replaceAll("-+", "-") + .replaceAll("^-", "") + .replaceAll("-$", "") + .toLowerCase(); + return intermediateResult.substring(0, Math.min(MAX_SLUG_LENGTH, intermediateResult.length())); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/keymap/utils/VKUtil.java b/common/src/main/java/com/github/einjerjar/mc/keymap/utils/VKUtil.java index 25e8e26..9147a7c 100644 --- a/common/src/main/java/com/github/einjerjar/mc/keymap/utils/VKUtil.java +++ b/common/src/main/java/com/github/einjerjar/mc/keymap/utils/VKUtil.java @@ -10,8 +10,7 @@ * General util to reduce code repetition when generating VK layouts */ public class VKUtil { - private VKUtil() { - } + private VKUtil() {} /** * Generate a dumb layout without any action handlers @@ -37,23 +36,19 @@ public static List genLayout(KeyLayout layout, int x, int * * @return A list of VirtualKeyboardWidget instances */ - public static List genLayout(KeyLayout layout, int x, int y, EWidget.SimpleWidgetAction onClick, VirtualKeyboardWidget.SpecialVKKeyClicked onSpecialClick) { + public static List genLayout( + KeyLayout layout, + int x, + int y, + EWidget.SimpleWidgetAction onClick, + VirtualKeyboardWidget.SpecialVKKeyClicked onSpecialClick) { VirtualKeyboardWidget vkBasic = new VirtualKeyboardWidget(layout.keys().basic(), x, y, 0, 0); - VirtualKeyboardWidget vkExtra = new VirtualKeyboardWidget(layout.keys().extra(), - vkBasic.left(), - vkBasic.bottom() + 4, - 0, - 0); - VirtualKeyboardWidget vkMouse = new VirtualKeyboardWidget(layout.keys().mouse(), - vkExtra.left(), - vkExtra.bottom() + 2, - 0, - 0); - VirtualKeyboardWidget vkNumpad = new VirtualKeyboardWidget(layout.keys().numpad(), - vkMouse.right() + 4, - vkBasic.bottom() + 4, - 0, - 0); + VirtualKeyboardWidget vkExtra = + new VirtualKeyboardWidget(layout.keys().extra(), vkBasic.left(), vkBasic.bottom() + 4, 0, 0); + VirtualKeyboardWidget vkMouse = + new VirtualKeyboardWidget(layout.keys().mouse(), vkExtra.left(), vkExtra.bottom() + 2, 0, 0); + VirtualKeyboardWidget vkNumpad = + new VirtualKeyboardWidget(layout.keys().numpad(), vkMouse.right() + 4, vkBasic.bottom() + 4, 0, 0); List vks = List.of(vkBasic, vkExtra, vkMouse, vkNumpad); diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/EButton.java b/common/src/main/java/com/github/einjerjar/mc/widgets/EButton.java index 809ecfc..c9f05fa 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/EButton.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/EButton.java @@ -1,34 +1,42 @@ package com.github.einjerjar.mc.widgets; import com.github.einjerjar.mc.widgets.utils.ColorSet; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; @Accessors(fluent = true, chain = true) public class EButton extends EWidget { - @Getter @Setter Component text; - @Setter SimpleWidgetAction clickAction; + @Getter + @Setter + Component text; + + @Setter + SimpleWidgetAction clickAction; public EButton(Component text, int x, int y, int w, int h) { super(x, y, w, h); this.text = text; } - @Override public void setTooltip(Component tip) { + @Override + public void setTooltip(Component tip) { super.setTooltip(tip); } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { ColorSet colors = colorVariant(); - drawBg(poseStack, colors.bg()); - drawOutline(poseStack, colors.border()); - drawCenteredString(poseStack, font, text, midX(), midY() - font.lineHeight / 2 + 1, colors.text()); + drawBg(guiGraphics, colors.bg()); + drawOutline(guiGraphics, colors.border()); + guiGraphics.drawCenteredString(font, text, midX(), midY() - font.lineHeight / 2 + 1, colors.text()); } - @Override public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { + @Override + public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { if (clickAction != null) { clickAction.run(this); return true; diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/EInput.java b/common/src/main/java/com/github/einjerjar/mc/widgets/EInput.java index 9d311eb..25c9c56 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/EInput.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/EInput.java @@ -2,22 +2,26 @@ import com.github.einjerjar.mc.keymap.utils.Utils; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import net.minecraft.SharedConstants; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.locale.Language; +import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) public class EInput extends EWidget { - protected final StringBuilder text = new StringBuilder(); - protected final String placeholder = Language.getInstance().getOrDefault("keymap.inpSearchPlaceholder"); + protected final StringBuilder text = new StringBuilder(); + protected final String placeholder = Language.getInstance().getOrDefault("keymap.inpSearchPlaceholder"); protected String display = ""; - @Getter int cursor = 0; - @Setter EInputChangedAction onChanged; + @Getter + int cursor = 0; + + @Setter + EInputChangedAction onChanged; public EInput(int x, int y, int w, int h) { super(x, y, w, h); @@ -38,14 +42,16 @@ public void moveCursor(int offset) { protected void updateDisplay() { display = text.toString(); - int maxW = rect.w() - padding.x() * 2; + int maxW = rect.w() - padding.x() * 2; int tWidth = font.width(display); if (tWidth > maxW) { StringBuilder temp = new StringBuilder(text); - display = new StringBuilder(font.plainSubstrByWidth(temp.reverse().toString(), maxW)).reverse().toString(); + display = new StringBuilder(font.plainSubstrByWidth(temp.reverse().toString(), maxW)) + .reverse() + .toString(); temp.reverse(); - int delta = text.length() - display.length(); + int delta = text.length() - display.length(); int cDelta = cursor - delta; if (cDelta <= 0) { display = font.plainSubstrByWidth(temp.substring(Math.max(0, cursor - 1), temp.length()), maxW); @@ -92,7 +98,8 @@ protected void write(char s) { moveCursor(1); } - @Override protected boolean onCharTyped(char codePoint, int modifiers) { + @Override + protected boolean onCharTyped(char codePoint, int modifiers) { if (SharedConstants.isAllowedChatCharacter(codePoint)) { write(codePoint); return true; @@ -100,7 +107,8 @@ protected void write(char s) { return false; } - @Override protected boolean onKeyPressed(int keyCode, int scanCode, int modifiers) { + @Override + protected boolean onKeyPressed(int keyCode, int scanCode, int modifiers) { if (keyCode == InputConstants.KEY_BACKSPACE) { boolean isLast = cursor == text.length(); textDelete(1); @@ -132,14 +140,20 @@ protected void write(char s) { return false; } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - drawBg(poseStack); - drawOutline(poseStack); + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + drawBg(guiGraphics); + drawOutline(guiGraphics); - if (display.length() > 0) { - drawString(poseStack, font, display, left() + padding.x(), top() + padding.y(), colorVariant().text()); + if (!display.isEmpty()) { + guiGraphics.drawString( + font, + display, + left() + padding.x(), + top() + padding.y(), + colorVariant().text()); } else { - drawString(poseStack, + guiGraphics.drawString( font, placeholder, left() + padding.x(), @@ -153,7 +167,7 @@ protected void write(char s) { cPosX = font.width(display.substring(0, Math.min(cDelta <= 0 ? 1 : cDelta, display.length()))); } - hLine(poseStack, + guiGraphics.hLine( left() + padding.x() + cPosX, left() + padding.x() + cPosX + 4, bottom() - padding.y(), diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/ELabel.java b/common/src/main/java/com/github/einjerjar/mc/widgets/ELabel.java index 6ad3ed6..36794a3 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/ELabel.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/ELabel.java @@ -1,17 +1,24 @@ package com.github.einjerjar.mc.widgets; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; +@Getter @Accessors(fluent = true, chain = true) public class ELabel extends EWidget { - @Getter @Setter Component text; - @Getter @Setter boolean centerX; - @Getter @Setter boolean centerY; + @Setter + Component text; + + @Setter + boolean centerX; + + @Setter + boolean centerY; public ELabel(int x, int y, int w, int h) { super(x, y, w, h); @@ -41,9 +48,10 @@ public void center(boolean xy) { this.centerY = xy; } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { int x = centerX ? midX() : left(); int y = centerY ? midY() - font.lineHeight / 2 : top(); - drawCenteredString(poseStack, font, text, x, y, colorVariant().text()); + guiGraphics.drawCenteredString(font, text, x, y, colorVariant().text()); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/EList.java b/common/src/main/java/com/github/einjerjar/mc/widgets/EList.java index 124d844..faa2fcb 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/EList.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/EList.java @@ -3,13 +3,16 @@ import com.github.einjerjar.mc.keymap.config.KeymapConfig; import com.github.einjerjar.mc.widgets.utils.*; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.*; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; @@ -22,25 +25,40 @@ public abstract class EList> extends EWidget { protected final Point lastClick = new Point<>(0d); - @Getter protected boolean dragging; - @Getter protected int itemHeight; - @Getter protected int scrollBarWidth = 6; - @Getter protected int scrollSpeed = 8; - @Getter protected List items = new ArrayList<>(); - @Getter protected T itemHovered; - @Getter protected T itemSelected; - @Getter protected T lastItemSelected; + @Getter + protected boolean dragging; - protected Minecraft client; - protected double scrollOffset = 0; - protected double lastDrag; - protected double lastScrollPos; - protected boolean canDeselectItem = true; - protected boolean lastClickWasInside = false; - protected boolean didDrag = false; + @Getter + protected int itemHeight; + + @Getter + protected int scrollBarWidth = 6; + + @Getter + protected int scrollSpeed = 8; - @Setter SimpleWidgetAction> onItemSelected; + @Getter + protected List items = new ArrayList<>(); + @Getter + protected T itemHovered; + + @Getter + protected T itemSelected; + + @Getter + protected T lastItemSelected; + + protected Minecraft client; + protected double scrollOffset = 0; + protected double lastDrag; + protected double lastScrollPos; + protected boolean canDeselectItem = true; + protected boolean lastClickWasInside = false; + protected boolean didDrag = false; + + @Setter + SimpleWidgetAction> onItemSelected; // region Constructor protected EList(int itemHeight, int x, int y, int w, int h) { @@ -130,8 +148,10 @@ protected double maxScroll() { } protected boolean inScrollbar(double mouseX, double mouseY) { - return mouseY >= top() + padding.y() && mouseY <= bottom() - padding.y() && - mouseX >= scrollBarX() && mouseX <= scrollBarWidth + scrollBarX(); + return mouseY >= top() + padding.y() + && mouseY <= bottom() - padding.y() + && mouseX >= scrollBarX() + && mouseX <= scrollBarWidth + scrollBarX(); } public void setScrollPos(double pos) { @@ -145,22 +165,23 @@ public void relativeScrollPos(double pos) { // endregion protected void _init(int itemHeight) { - this.client = Minecraft.getInstance(); - this.itemHeight = itemHeight; + this.client = Minecraft.getInstance(); + this.itemHeight = itemHeight; this.allowRightClick = true; } // region Render - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { if (KeymapConfig.instance().debug()) { - drawOutline(poseStack, 0xff_ff0000); + drawOutline(guiGraphics, 0xff_ff0000); } - renderList(poseStack, mouseX, mouseY, partialTick); + renderList(guiGraphics, mouseX, mouseY, partialTick); renderScrollBar(); } protected void renderScrollBar() { - Tesselator ts = Tesselator.getInstance(); + Tesselator ts = Tesselator.getInstance(); BufferBuilder bb = ts.getBuilder(); int ch = contentHeight(); @@ -168,7 +189,6 @@ protected void renderScrollBar() { if (ch == 0) return; - RenderSystem.disableTexture(); RenderSystem.enableBlend(); RenderSystem.setShader(GameRenderer::getPositionColorShader); @@ -180,13 +200,13 @@ protected void renderScrollBar() { bb.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); - int scrollTop = (int) (scrollOffset * scroll); + int scrollTop = (int) (scrollOffset * scroll); int scrollHeight = (int) (eh * scroll); - int scrollLeft = right() - padding.x(); - int padTop = top() + padding.y(); + int scrollLeft = right() - padding.x(); + int padTop = top() + padding.y(); int actualScrollTop = padTop + scrollTop; - int scrollBottom = actualScrollTop + scrollHeight; + int scrollBottom = actualScrollTop + scrollHeight; WidgetUtils.drawQuad(ts, bb, scrollLeft, right(), padTop, bottom() - padding.y(), colScrollBg, false); WidgetUtils.drawQuad(ts, bb, scrollLeft, right(), actualScrollTop, scrollBottom, colScrollFg, false); @@ -194,25 +214,27 @@ protected void renderScrollBar() { ts.end(); } - protected void renderList(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void renderList(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { if (itemHovered != null) itemHovered.hovered(false); itemHovered = getHoveredItem(mouseX, mouseY); if (itemHovered != null) itemHovered.hovered(true); for (int i = 0; i < size(); i++) { T e = filteredItems().get(i); - Rect r = new Rect(left() + padding.x(), + Rect r = new Rect( + left() + padding.x(), top() + i * itemHeight + padding.y() - ((int) scrollOffset), rect.w() - padding.x() * 2, itemHeight); if (r.midY() > rect.bottom() - padding.y() || r.midY() < rect.top() + padding.y()) continue; - e.render(poseStack, r, partialTick); + e.render(guiGraphics, r, partialTick); } } @Nullable - @Override public List getTooltips() { + @Override + public List getTooltips() { if (itemHovered != null) return itemHovered.getTooltips(); return null; } @@ -223,7 +245,8 @@ protected void sort() { // endregion - @Override public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { + @Override + public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int button) { if (didDrag) { didDrag = false; return false; @@ -255,19 +278,22 @@ protected void sort() { return true; } - @Override protected boolean onMouseScrolled(double mouseX, double mouseY, double delta) { - relativeScrollPos(-delta * scrollSpeed); + @Override + protected boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { + relativeScrollPos(-scrollY * scrollSpeed); return true; } - @Override public EWidget focused(boolean focused) { + @Override + public EWidget focused(boolean focused) { if (!focused && itemSelected != null && canDeselectItem) { setItemSelected(null); } return super.focused(focused); } - @Override public boolean onMouseClicked(boolean inside, double mouseX, double mouseY, int button) { + @Override + public boolean onMouseClicked(boolean inside, double mouseX, double mouseY, int button) { lastClickWasInside = inside; lastClick.setXY(mouseX, mouseY); lastScrollPos = scrollOffset; @@ -277,7 +303,8 @@ protected void sort() { return getHoveredItem(mouseX, mouseY) != null; } - @Override protected boolean onMouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { + @Override + protected boolean onMouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { if (!lastClickWasInside) return false; didDrag = true; setScrollPos(lastScrollPos - (mouseY - lastClick.y())); @@ -285,21 +312,29 @@ protected void sort() { } @Accessors(fluent = true, chain = true) - public abstract static class EListEntry> extends GuiComponent implements Tooltipped { - protected final Font font; + public abstract static class EListEntry> implements Tooltipped { + protected final Font font; protected final List tooltips = new ArrayList<>(); - @Getter @Setter protected boolean selected = false; - @Getter @Setter protected boolean hovered = false; - @Getter protected EList container; - protected ColorGroup color = new ColorGroup( + @Getter + @Setter + protected boolean selected = false; + + @Getter + @Setter + protected boolean hovered = false; + + @Getter + protected EList container; + + protected ColorGroup color = new ColorGroup( new ColorSet(0xffffff, ColorType.NORMAL), new ColorSet(0xff3333, ColorType.HOVER), new ColorSet(0x00ff00, ColorType.ACTIVE), new ColorSet(0xffffff, ColorType.DISABLED)); protected EListEntry(EList container) { - font = Minecraft.getInstance().font; + font = Minecraft.getInstance().font; this.container = container; } @@ -309,12 +344,13 @@ protected ColorSet getVariant() { return color.normal(); } - @Override public List getTooltips() { + @Override + public List getTooltips() { return tooltips; } - public void render(@NotNull PoseStack poseStack, Rect r, float partialTick) { - renderWidget(poseStack, r, partialTick); + public void render(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick) { + renderWidget(guiGraphics, r, partialTick); } public void updateTooltips() { @@ -327,6 +363,6 @@ public void provideTooltips(List tips) { tooltips.addAll(tips); } - public abstract void renderWidget(@NotNull PoseStack poseStack, Rect r, float partialTick); + public abstract void renderWidget(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/EScreen.java b/common/src/main/java/com/github/einjerjar/mc/widgets/EScreen.java index 4edc767..2449d08 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/EScreen.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/EScreen.java @@ -4,11 +4,10 @@ import com.github.einjerjar.mc.widgets.utils.ColorGroups; import com.github.einjerjar.mc.widgets.utils.Point; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; @@ -18,26 +17,29 @@ @Accessors(fluent = true, chain = true) public abstract class EScreen extends Screen { - protected final Point margin = new Point<>(6); + protected final Point margin = new Point<>(6); protected final Point padding = new Point<>(4); protected boolean autoRenderChild = true; - protected boolean clickState = false; - protected boolean renderBg = true; - protected EWidget hoveredWidget = null; - protected ELabel debugFocus; - protected ELabel debugHover; - protected Rect scr; - @Getter Screen parent; + protected boolean clickState = false; + protected boolean renderBg = true; + protected EWidget hoveredWidget = null; + protected ELabel debugFocus; + protected ELabel debugHover; + protected Rect scr; + + @Getter + Screen parent; protected EScreen(Screen parent, Component text) { super(text); this.parent = parent; } - @Override protected void init() { - debugFocus = new ELabel(Text.literal("focused"), 0, 4, width, font.lineHeight); - debugHover = new ELabel(Text.literal("hovered"), 0, 14, width, font.lineHeight); + @Override + protected void init() { + debugFocus = new ELabel(Component.literal("focused"), 0, 4, width, font.lineHeight); + debugHover = new ELabel(Component.literal("hovered"), 0, 14, width, font.lineHeight); debugFocus.color(ColorGroups.WHITE); debugHover.color(ColorGroups.WHITE); debugFocus.center(true); @@ -47,16 +49,14 @@ protected EScreen(Screen parent, Component text) { } protected Rect scrFromWidth(int w) { - return new Rect(Math.max((width - w) / 2, 0) + margin.x(), - margin.y(), - w - margin.x() * 2, - height - margin.y() * 2); + return new Rect( + Math.max((width - w) / 2, 0) + margin.x(), margin.y(), w - margin.x() * 2, height - margin.y() * 2); } protected abstract void onInit(); - - @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { EWidget focus = (EWidget) getFocused(); if (focus != null && focus.keyPressed(keyCode, scanCode, modifiers)) return true; @@ -78,11 +78,13 @@ protected boolean onCharTyped(char chr, int modifiers) { return false; } - @Override public boolean charTyped(char chr, int modifiers) { + @Override + public boolean charTyped(char chr, int modifiers) { return onCharTyped(chr, modifiers); } - @Override public void onClose() { + @Override + public void onClose() { assert minecraft != null; minecraft.setScreen(parent); } @@ -91,7 +93,8 @@ public boolean onMouseClicked(double mouseX, double mouseY, int button) { return false; } - @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { clickState = true; // Click always resets focused element @@ -122,7 +125,8 @@ public boolean onMouseReleased(double mouseX, double mouseY, int button) { return false; } - @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { setDragging(false); // Prevents flick from previous screen to pass through if (!clickState) return false; @@ -150,62 +154,67 @@ public boolean onMouseDragged(double mouseX, double mouseY, int button, double d return focus.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); } - @Override public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { return onMouseDragged(mouseX, mouseY, button, deltaX, deltaY); } - public boolean onMouseScrolled(double mouseX, double mouseY, double amount) { + public boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { if (hoveredWidget == null) return false; - return hoveredWidget.mouseScrolled(mouseX, mouseY, amount); + return hoveredWidget.mouseScrolled(mouseX, mouseY, scrollX, scrollY); } - @Override public boolean mouseScrolled(double mouseX, double mouseY, double amount) { - return onMouseScrolled(mouseX, mouseY, amount); + @Override + public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { + return onMouseScrolled(mouseX, mouseY, scrollX, scrollY); } public List widgets() { - return children().stream().filter(EWidget.class::isInstance).map(EWidget.class::cast).toList(); + return children().stream() + .filter(EWidget.class::isInstance) + .map(EWidget.class::cast) + .toList(); } - @Override public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - if (renderBg) renderBackground(poseStack); - preRenderScreen(poseStack, mouseX, mouseY, partialTick); + @Override + public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + if (renderBg) renderBackground(guiGraphics, mouseX, mouseY, partialTick); + preRenderScreen(guiGraphics, mouseX, mouseY, partialTick); hoveredWidget = null; if (autoRenderChild) { for (EWidget d : widgets()) { - d.render(poseStack, mouseX, mouseY, partialTick); + d.render(guiGraphics, mouseX, mouseY, partialTick); if (d.rect().contains(mouseX, mouseY)) { hoveredWidget = d; } } } - postRenderScreen(poseStack, mouseX, mouseY, partialTick); + postRenderScreen(guiGraphics, mouseX, mouseY, partialTick); if (KeymapConfig.instance().debug2()) { - fill(poseStack, 0, 0, width, 30, 0x66_000000); - debugHover.text(Text.literal(hoveredWidget != null ? hoveredWidget.getClass().getName() : "none")); - debugFocus.text(Text.literal(getFocused() != null ? getFocused().getClass().getName() : "none")); - debugHover.render(poseStack, mouseX, mouseY, partialTick); - debugFocus.render(poseStack, mouseX, mouseY, partialTick); + guiGraphics.fill(0, 0, width, 30, 0x66_000000); + debugHover.text(Component.literal( + hoveredWidget != null ? hoveredWidget.getClass().getName() : "none")); + debugFocus.text(Component.literal( + getFocused() != null ? getFocused().getClass().getName() : "none")); + debugHover.render(guiGraphics, mouseX, mouseY, partialTick); + debugFocus.render(guiGraphics, mouseX, mouseY, partialTick); } - postRenderDebugScreen(poseStack, mouseX, mouseY, partialTick); + postRenderDebugScreen(guiGraphics, mouseX, mouseY, partialTick); - if (hoveredWidget != null && hoveredWidget.getTooltips() != null) renderTooltip(poseStack, - hoveredWidget.getTooltips(), - Optional.empty(), - mouseX, - mouseY); + if (hoveredWidget != null && hoveredWidget.getTooltips() != null) + guiGraphics.renderTooltip(font, hoveredWidget.getTooltips(), Optional.empty(), mouseX, mouseY); } - protected void preRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void preRenderScreen(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { // override to render after the bg, but before the widgets } - protected void postRenderScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void postRenderScreen(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { // override to render after the widgets, but not before the debug } - protected void postRenderDebugScreen(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void postRenderDebugScreen(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { // override to render after debug } @@ -225,26 +234,26 @@ public int bottom() { return height; } - public void drawOutline(PoseStack poseStack, int left, int top, int right, int bottom, int color) { - hLine(poseStack, left, right, top, color); - hLine(poseStack, left, right, bottom, color); - vLine(poseStack, left, top, bottom, color); - vLine(poseStack, right, top, bottom, color); + public void drawOutline(GuiGraphics guiGraphics, int left, int top, int right, int bottom, int color) { + guiGraphics.hLine(left, right, top, color); + guiGraphics.hLine(left, right, bottom, color); + guiGraphics.vLine(left, top, bottom, color); + guiGraphics.vLine(right, top, bottom, color); } - public void drawOutline(PoseStack poseStack, int color) { - drawOutline(poseStack, left(), top(), right(), bottom(), color); + public void drawOutline(GuiGraphics guiGraphics, int color) { + drawOutline(guiGraphics, left(), top(), right(), bottom(), color); } - public void drawOutline(PoseStack poseStack, Rect r, int color) { - drawOutline(poseStack, r.left(), r.top(), r.right(), r.bottom(), color); + public void drawOutline(GuiGraphics guiGraphics, Rect r, int color) { + drawOutline(guiGraphics, r.left(), r.top(), r.right(), r.bottom(), color); } - public void drawBg(PoseStack poseStack, int left, int top, int right, int bottom, int color) { - fill(poseStack, left, top, right, bottom, color); + public void drawBg(GuiGraphics guiGraphics, int left, int top, int right, int bottom, int color) { + guiGraphics.fill(left, top, right, bottom, color); } - public void drawBg(PoseStack poseStack, int color) { - drawBg(poseStack, left(), top(), right(), bottom(), color); + public void drawBg(GuiGraphics guiGraphics, int color) { + drawBg(guiGraphics, left(), top(), right(), bottom(), color); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/EWidget.java b/common/src/main/java/com/github/einjerjar/mc/widgets/EWidget.java index 3d91e61..617f897 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/EWidget.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/EWidget.java @@ -2,14 +2,13 @@ import com.github.einjerjar.mc.keymap.config.KeymapConfig; import com.github.einjerjar.mc.widgets.utils.*; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.client.gui.components.Widget; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -23,21 +22,45 @@ import java.util.List; @Accessors(fluent = true, chain = true) -public abstract class EWidget extends GuiComponent implements Widget, GuiEventListener, NarratableEntry, Tooltipped { - protected Font font = Minecraft.getInstance().font; - @Getter @Setter protected ColorGroup color = ColorGroups.WHITE; - @Getter @Setter protected Rect rect; +public abstract class EWidget implements Renderable, GuiEventListener, NarratableEntry, Tooltipped { + protected Font font = Minecraft.getInstance().font; - @Getter @Setter protected boolean visible = true; - @Getter @Setter protected boolean enabled = true; - @Getter @Setter protected boolean focused = false; - @Getter protected boolean active = false; - @Getter protected boolean hovered = false; - @Getter protected boolean allowRightClick = false; + @Getter + @Setter + protected ColorGroup color = ColorGroups.WHITE; - @Getter @Setter protected List tooltips; + @Getter + @Setter + protected Rect rect; - @Getter @Setter protected Point padding = new Point<>(4); + @Getter + @Setter + protected boolean visible = true; + + @Getter + @Setter + protected boolean enabled = true; + + @Getter + @Setter + protected boolean focused = false; + + @Getter + protected boolean active = false; + + @Getter + protected boolean hovered = false; + + @Getter + protected boolean allowRightClick = false; + + @Getter + @Setter + protected List tooltips; + + @Getter + @Setter + protected Point padding = new Point<>(4); protected EWidget(int x, int y, int w, int h) { this.rect = new Rect(x, y, w, h); @@ -47,7 +70,8 @@ protected EWidget(Rect rect) { this.rect = rect; } - @Override public List getTooltips() { + @Override + public List getTooltips() { return tooltips; } @@ -63,7 +87,8 @@ protected boolean onCharTyped(char codePoint, int modifiers) { return false; } - @Override public boolean charTyped(char codePoint, int modifiers) { + @Override + public boolean charTyped(char codePoint, int modifiers) { if (enabled() && visible() && focused()) return onCharTyped(codePoint, modifiers); return false; } @@ -77,14 +102,24 @@ protected ColorSet colorVariant() { return color.getVariant(hovered, active, !enabled); } - @Override public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY - , float partialTick) { + @Override + public void setFocused(boolean focused) { + focused(focused); + } + + @Override + public boolean isFocused() { + return focused(); + } + + @Override + public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { if (!visible) return; hovered = isMouseOver(mouseX, mouseY); if (KeymapConfig.instance().debug()) { - drawOutline(poseStack, 0x44_ff0000); + drawOutline(guiGraphics, 0x44_ff0000); } - renderWidget(poseStack, mouseX, mouseY, partialTick); + renderWidget(guiGraphics, mouseX, mouseY, partialTick); } public void updateTooltips() { @@ -95,14 +130,15 @@ public boolean onMouseClicked(boolean inside, double mouseX, double mouseY, int return true; } - @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { if (!hovered) { active = false; onMouseClicked(false, mouseX, mouseY, button); return false; } if (!allowRightClick && button != 0) return false; - playSound(SoundEvents.UI_BUTTON_CLICK); + playSound(SoundEvents.UI_BUTTON_CLICK.value()); this.active = true; return onMouseClicked(true, mouseX, mouseY, button); } @@ -111,7 +147,8 @@ public boolean onMouseReleased(boolean inside, double mouseX, double mouseY, int return false; } - @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { this.active = false; if (!hovered) { onMouseReleased(false, mouseX, mouseY, button); @@ -125,7 +162,8 @@ protected boolean onKeyPressed(int keyCode, int scanCode, int modifiers) { return false; } - @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { if (!focused) return false; return onKeyPressed(keyCode, scanCode, modifiers); } @@ -134,25 +172,27 @@ protected boolean onMouseDragged(double mouseX, double mouseY, int button, doubl return false; } - @Override public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { if (!enabled) return false; return onMouseDragged(mouseX, mouseY, button, dragX, dragY); } - protected boolean onMouseScrolled(double mouseX, double mouseY, double delta) { + protected boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { return false; } - @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { + @Override + public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { if (!enabled) return false; - return onMouseScrolled(mouseX, mouseY, delta); + return onMouseScrolled(mouseX, mouseY, scrollX, scrollY); } // ------------------------------------ // Override by subclass // ------------------------------------ - protected abstract void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick); + protected abstract void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick); // ------------------------------------ // Utils @@ -182,31 +222,31 @@ public int midY() { return rect.midY(); } - public void drawOutline(PoseStack poseStack, int left, int top, int right, int bottom, int color) { - hLine(poseStack, left, right, top, color); - hLine(poseStack, left, right, bottom, color); - vLine(poseStack, left, top, bottom, color); - vLine(poseStack, right, top, bottom, color); + public void drawOutline(@NotNull GuiGraphics guiGraphics, int left, int top, int right, int bottom, int color) { + guiGraphics.hLine(left, right, top, color); + guiGraphics.hLine(left, right, bottom, color); + guiGraphics.vLine(left, top, bottom, color); + guiGraphics.vLine(right, top, bottom, color); } - public void drawOutline(PoseStack poseStack, int color) { - drawOutline(poseStack, left(), top(), right(), bottom(), color); + public void drawOutline(@NotNull GuiGraphics guiGraphics, int color) { + drawOutline(guiGraphics, left(), top(), right(), bottom(), color); } - public void drawOutline(PoseStack poseStack) { - drawOutline(poseStack, colorVariant().border()); + public void drawOutline(@NotNull GuiGraphics guiGraphics) { + drawOutline(guiGraphics, colorVariant().border()); } - public void drawBg(PoseStack poseStack, int left, int top, int right, int bottom, int color) { - fill(poseStack, left, top, right, bottom, color); + public void drawBg(@NotNull GuiGraphics guiGraphics, int left, int top, int right, int bottom, int color) { + guiGraphics.fill(left, top, right, bottom, color); } - public void drawBg(PoseStack poseStack, int color) { - drawBg(poseStack, left(), top(), right(), bottom(), color); + public void drawBg(@NotNull GuiGraphics guiGraphics, int color) { + drawBg(guiGraphics, left(), top(), right(), bottom(), color); } - public void drawBg(PoseStack poseStack) { - drawBg(poseStack, colorVariant().bg()); + public void drawBg(@NotNull GuiGraphics guiGraphics) { + drawBg(guiGraphics, colorVariant().bg()); } @Override @@ -226,13 +266,15 @@ protected void playSound(SoundEvent sound) { playSound(sound, 1f); } - @Override public NarrationPriority narrationPriority() { + @Override + public NarrationPriority narrationPriority() { if (focused) return NarrationPriority.FOCUSED; if (hovered) return NarrationPriority.HOVERED; return NarrationPriority.NONE; } - @Override public void updateNarration(@NotNull NarrationElementOutput narrationElementOutput) { + @Override + public void updateNarration(@NotNull NarrationElementOutput narrationElementOutput) { // IDK, but required by an extended/implemented class, so yeah // tho method name is looks descriptive enough } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/ScrollTextList.java b/common/src/main/java/com/github/einjerjar/mc/widgets/ScrollTextList.java index 8a3f8e1..45f2606 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/ScrollTextList.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/ScrollTextList.java @@ -1,11 +1,11 @@ package com.github.einjerjar.mc.widgets; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) @@ -21,7 +21,7 @@ public static ScrollTextList createFromString(String s, int x, int y, int w, int public static ScrollTextList createFromString(String[] lines, int x, int y, int w, int h) { ScrollTextList list = new ScrollTextList(x, y, w, h); - Font f = Minecraft.getInstance().font; + Font f = Minecraft.getInstance().font; for (String line : lines) { int fullWidth = f.width(line); int lineWidth = w - list.padding.x() * 2; @@ -34,9 +34,9 @@ public static ScrollTextList createFromString(String[] lines, int x, int y, int String currentLine = line; String trimmedLine = f.plainSubstrByWidth(line, lineWidth); String tempLine; - int ix = 0; + int ix = 0; while (!trimmedLine.equals(currentLine)) { - tempLine = currentLine; + tempLine = currentLine; currentLine = currentLine.substring(trimmedLine.length()); if (currentLine.startsWith(" ") || trimmedLine.endsWith(" ")) { list.addLine(trimmedLine, ix); @@ -64,15 +64,17 @@ public void addLine(String line) { } public static class ScrollTextEntry extends EListEntry { - @Getter protected String text; + @Getter + protected String text; protected ScrollTextEntry(String text, EList container) { super(container); this.text = text; } - @Override public void renderWidget(@NotNull PoseStack poseStack, Rect r, float partialTick) { - drawString(poseStack, font, text, r.left(), r.top(), getVariant().text()); + @Override + public void renderWidget(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick) { + guiGraphics.drawString(font, text, r.left(), r.top(), getVariant().text()); } } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/ValueMapList.java b/common/src/main/java/com/github/einjerjar/mc/widgets/ValueMapList.java index b109239..dde6efa 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/ValueMapList.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/ValueMapList.java @@ -1,9 +1,9 @@ package com.github.einjerjar.mc.widgets; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -15,9 +15,10 @@ public ValueMapList(int itemHeight, int x, int y, int w, int h, boolean canDesel this.canDeselectItem = canDeselectItem; } - @Override protected void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - super.renderWidget(poseStack, mouseX, mouseY, partialTick); - drawOutline(poseStack, 0xff_ffffff); + @Override + protected void renderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.renderWidget(guiGraphics, mouseX, mouseY, partialTick); + drawOutline(guiGraphics, 0xff_ffffff); } public void setItemSelectedWithKey(String key) { @@ -39,18 +40,22 @@ public void setItemSelectedWithValue(T value) { } public static class ValueMapEntry extends EListEntry> { - @Getter protected String key; - @Getter protected V value; + @Getter + protected String key; + + @Getter + protected V value; public ValueMapEntry(String key, V value, ValueMapList container) { super(container); - this.key = key; + this.key = key; this.value = value; } - @Override public void renderWidget(@NotNull PoseStack poseStack, Rect r, float partialTick) { + @Override + public void renderWidget(@NotNull GuiGraphics guiGraphics, Rect r, float partialTick) { String trimmed = font.plainSubstrByWidth(key, r.w()); - drawString(poseStack, font, trimmed, r.x(), r.y(), getVariant().text()); + guiGraphics.drawString(font, trimmed, r.x(), r.y(), getVariant().text()); } } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroup.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroup.java index cbbaa67..ae26082 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroup.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroup.java @@ -9,22 +9,29 @@ @EqualsAndHashCode @Accessors(fluent = true, chain = true) public final class ColorGroup { - @Getter private final ColorSet normal; - @Getter private final ColorSet hover; - @Getter private final ColorSet active; - @Getter private final ColorSet disabled; + @Getter + private final ColorSet normal; + + @Getter + private final ColorSet hover; + + @Getter + private final ColorSet active; + + @Getter + private final ColorSet disabled; public ColorGroup(ColorSet normal, ColorSet hover, ColorSet active, ColorSet disabled) { - this.normal = normal; - this.hover = hover; - this.active = active; + this.normal = normal; + this.hover = hover; + this.active = active; this.disabled = disabled; } public ColorGroup(int color) { - this.normal = new ColorSet(color, ColorType.NORMAL); - this.hover = new ColorSet(color, ColorType.HOVER); - this.active = new ColorSet(color, ColorType.ACTIVE); + this.normal = new ColorSet(color, ColorType.NORMAL); + this.hover = new ColorSet(color, ColorType.HOVER); + this.active = new ColorSet(color, ColorType.ACTIVE); this.disabled = new ColorSet(color, ColorType.DISABLED); } @@ -34,4 +41,4 @@ public ColorSet getVariant(boolean hover, boolean active, boolean disabled) { if (hover) return this.hover; return this.normal; } -} \ No newline at end of file +} diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroups.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroups.java index 694a1f4..b246bd9 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroups.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorGroups.java @@ -1,15 +1,14 @@ package com.github.einjerjar.mc.widgets.utils; public class ColorGroups { - public static final ColorGroup WHITE = new ColorGroup(0xffffff); - public static final ColorGroup GREEN = new ColorGroup(0x00ff00); - public static final ColorGroup BLUE = new ColorGroup(0x0000ff); - public static final ColorGroup RED = new ColorGroup(0xff0000); - public static final ColorGroup PINK = new ColorGroup(0xff8888); + public static final ColorGroup WHITE = new ColorGroup(0xffffff); + public static final ColorGroup GREEN = new ColorGroup(0x00ff00); + public static final ColorGroup BLUE = new ColorGroup(0x0000ff); + public static final ColorGroup RED = new ColorGroup(0xff0000); + public static final ColorGroup PINK = new ColorGroup(0xff8888); public static final ColorGroup YELLOW = new ColorGroup(0xffff00); public static final ColorGroup PURPLE = new ColorGroup(0xff00ff); - public static final ColorGroup CYAN = new ColorGroup(0x00ffff); + public static final ColorGroup CYAN = new ColorGroup(0x00ffff); - private ColorGroups() { - } + private ColorGroups() {} } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorSet.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorSet.java index b2edaf1..7dc0c42 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorSet.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/ColorSet.java @@ -10,45 +10,50 @@ @Accessors(fluent = true, chain = true) @SuppressWarnings("java:S1121") public final class ColorSet { - @Getter private final int text; - @Getter private final int bg; - @Getter private final int border; + @Getter + private final int text; + + @Getter + private final int bg; + + @Getter + private final int border; public ColorSet(int text, int bg, int border) { - this.text = text; - this.bg = bg; + this.text = text; + this.bg = bg; this.border = border; } public ColorSet(int color, ColorType colorType) { - int base = color & 0x00_ffffff; - int cText = 0xff_000000 | base; + int base = color & 0x00_ffffff; + int cText = 0xff_000000 | base; int cBorder = 0xff_000000 | base; - int cBg = 0x55_000000 | base; + int cBg = 0x55_000000 | base; switch (colorType) { case HOVER -> cBg = 0x88_000000 | base; case ACTIVE -> { - cBg = 0xff_000000 | base; + cBg = 0xff_000000 | base; cText = 0xff_000000 | returnDarkerColor(base); } case DISABLED -> { - cText = 0x88_000000 | base; + cText = 0x88_000000 | base; cBorder = 0x88_000000 | base; - cBg = 0x33_000000 | base; + cBg = 0x33_000000 | base; } } - this.text = cText; + this.text = cText; this.border = cBorder; - this.bg = cBg; + this.bg = cBg; } private static int returnDarkerColor(int color) { float ratio = 1.0f - 0.2f; - int a = (color >> 24) & 0xFF; - int r = (int) (((color >> 16) & 0xFF) * ratio); - int g = (int) (((color >> 8) & 0xFF) * ratio); - int b = (int) ((color & 0xFF) * ratio); + int a = (color >> 24) & 0xFF; + int r = (int) (((color >> 16) & 0xFF) * ratio); + int g = (int) (((color >> 8) & 0xFF) * ratio); + int b = (int) ((color & 0xFF) * ratio); return (a << 24) | (r << 16) | (g << 8) | b; } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Point.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Point.java index 914d652..e5440b2 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Point.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Point.java @@ -8,8 +8,13 @@ @Accessors(fluent = true, chain = true) public class Point { - @Getter @Setter T x; - @Getter @Setter T y; + @Getter + @Setter + T x; + + @Getter + @Setter + T y; public Point(T x, T y) { this.x = x; @@ -26,14 +31,16 @@ public void setXY(T x, T y) { this.y = y; } - @Override public boolean equals(Object o) { + @Override + public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Point point = (Point) o; return Objects.equals(x, point.x) && Objects.equals(y, point.y); } - @Override public int hashCode() { + @Override + public int hashCode() { return Objects.hash(x, y); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Rect.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Rect.java index 9a02588..cceafc6 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Rect.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Rect.java @@ -8,10 +8,21 @@ @Accessors(fluent = true, chain = true) public class Rect { - @Getter @Setter int x; - @Getter @Setter int y; - @Getter @Setter int w; - @Getter @Setter int h; + @Getter + @Setter + int x; + + @Getter + @Setter + int y; + + @Getter + @Setter + int w; + + @Getter + @Setter + int h; public Rect(int x, int y, int w, int h) { this.x = x; @@ -20,13 +31,15 @@ public Rect(int x, int y, int w, int h) { this.h = h; } - @Override public boolean equals(Object o) { + @Override + public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Rect rect)) return false; return x == rect.x && y == rect.y && w == rect.w && h == rect.h; } - @Override public int hashCode() { + @Override + public int hashCode() { return Objects.hash(x, y, w, h); } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Styles.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Styles.java index b23418c..ec1c17f 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Styles.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Styles.java @@ -6,32 +6,39 @@ @Accessors(fluent = true, chain = true) public class Styles { - @Getter protected static final Style headerBold = Style.EMPTY - .withBold(true) - .withColor(0x00ff00) - .withItalic(true); - - @Getter protected static final Style header = Style.EMPTY - .withColor(0x00ff00) - .withItalic(true); - @Getter protected static final Style muted = Style.EMPTY - .withColor(0x555555); - @Getter protected static final Style muted2 = Style.EMPTY - .withColor(0x888888); - @Getter protected static final Style normal = Style.EMPTY; - @Getter protected static final Style red = Style.EMPTY - .withColor(0xff0000); - @Getter protected static final Style green = Style.EMPTY - .withColor(0x00ff00); - @Getter protected static final Style blue = Style.EMPTY - .withColor(0x0000ff); - @Getter protected static final Style yellow = Style.EMPTY - .withColor(0xffff00); - @Getter protected static final Style cyan = Style.EMPTY - .withColor(0x00ffff); - @Getter protected static final Style purple = Style.EMPTY - .withColor(0xff00ff); - - private Styles() { - } + @Getter + protected static final Style headerBold = + Style.EMPTY.withBold(true).withColor(0x00ff00).withItalic(true); + + @Getter + protected static final Style header = Style.EMPTY.withColor(0x00ff00).withItalic(true); + + @Getter + protected static final Style muted = Style.EMPTY.withColor(0x555555); + + @Getter + protected static final Style muted2 = Style.EMPTY.withColor(0x888888); + + @Getter + protected static final Style normal = Style.EMPTY; + + @Getter + protected static final Style red = Style.EMPTY.withColor(0xff0000); + + @Getter + protected static final Style green = Style.EMPTY.withColor(0x00ff00); + + @Getter + protected static final Style blue = Style.EMPTY.withColor(0x0000ff); + + @Getter + protected static final Style yellow = Style.EMPTY.withColor(0xffff00); + + @Getter + protected static final Style cyan = Style.EMPTY.withColor(0x00ffff); + + @Getter + protected static final Style purple = Style.EMPTY.withColor(0xff00ff); + + private Styles() {} } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Text.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Text.java deleted file mode 100644 index 9a90191..0000000 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/Text.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.github.einjerjar.mc.widgets.utils; - -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; - -public class Text { - - private Text() { - } - - public static MutableComponent literal(String s) { - return new TextComponent(s); - } - - public static MutableComponent translatable(String s) { - return new TranslatableComponent(s); - } -} diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/WidgetUtils.java b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/WidgetUtils.java index 30ab05e..b5fe003 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets/utils/WidgetUtils.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets/utils/WidgetUtils.java @@ -8,8 +8,7 @@ import net.minecraft.client.renderer.GameRenderer; public class WidgetUtils { - private WidgetUtils() { - } + private WidgetUtils() {} public static double clamp(double x, double min, double max) { return Math.max(Math.min(x, max), min); @@ -19,17 +18,25 @@ public static int clamp(int x, int min, int max) { return Math.max(Math.min(x, max), min); } - public static void drawQuad(Tesselator ts, BufferBuilder bb, int left, int right, int top, int bottom, int color, boolean initAndBuild) { + public static void drawQuad( + Tesselator ts, + BufferBuilder bb, + int left, + int right, + int top, + int bottom, + int color, + boolean initAndBuild) { if (initAndBuild) { RenderSystem.setShader(GameRenderer::getPositionColorShader); bb.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); } SColor lColor = new SColor(color); - int a = lColor.a; - int r = lColor.r; - int g = lColor.g; - int b = lColor.b; + int a = lColor.a; + int r = lColor.r; + int g = lColor.g; + int b = lColor.b; bb.vertex(left, bottom, 0.0D).color(r, g, b, a).endVertex(); bb.vertex(right, bottom, 0.0D).color(r, g, b, a).endVertex(); diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/ColorOption.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/ColorOption.java index 2003859..b269c85 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/ColorOption.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/ColorOption.java @@ -18,17 +18,34 @@ public class ColorOption { .build(); @Builder.Default - @Getter @Setter protected int color = 0xFFFFFF; + @Getter + @Setter + protected int color = 0xFFFFFF; + @Builder.Default - @Getter @Setter protected int transparencyBase = 0x00_000000; + @Getter + @Setter + protected int transparencyBase = 0x00_000000; + @Builder.Default - @Getter @Setter protected int transparencyHover = 0x33_000000; + @Getter + @Setter + protected int transparencyHover = 0x33_000000; + @Builder.Default - @Getter @Setter protected int transparencyActive = 0x55_000000; + @Getter + @Setter + protected int transparencyActive = 0x55_000000; + @Builder.Default - @Getter @Setter protected int transparencyFocus = 0x11_000000; + @Getter + @Setter + protected int transparencyFocus = 0x11_000000; + @Builder.Default - @Getter @Setter protected int transparencyDisabled = 0x00_000000; + @Getter + @Setter + protected int transparencyDisabled = 0x00_000000; public int base() { return transparencyBase | color; @@ -67,4 +84,4 @@ public int fromState(WidgetState s) { } return base(); } -} \ No newline at end of file +} diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EButton2.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EButton2.java index 13c1663..f3ec99b 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EButton2.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EButton2.java @@ -1,24 +1,31 @@ package com.github.einjerjar.mc.widgets2; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) public class EButton2 extends EWidget2 { - @Getter @Setter protected Component text; + @Getter + @Setter + protected Component text; - @Setter protected EAction onClick = null; - @Setter protected EAction onRightClick = null; + @Setter + protected EAction onClick = null; + + @Setter + protected EAction onRightClick = null; public EButton2(Component text, int x, int y, int w, int h) { super(x, y, w, h); this.text(text); } - @Override protected boolean onLeftMouseReleased(double mouseX, double mouseY, int button) { + @Override + protected boolean onLeftMouseReleased(double mouseX, double mouseY, int button) { if (onClick != null) { onClick.run((T) this); return true; @@ -26,7 +33,8 @@ public EButton2(Component text, int x, int y, int w, int h) { return false; } - @Override protected boolean onRightMouseReleased(double mouseX, double mouseY, int button) { + @Override + protected boolean onRightMouseReleased(double mouseX, double mouseY, int button) { if (onRightClick != null) { onRightClick.run((T) this); return true; @@ -34,11 +42,13 @@ public EButton2(Component text, int x, int y, int w, int h) { return false; } - @Override protected void preRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - U.bbg(poseStack, rect, ColorOption.baseBG, ColorOption.baseFG, state()); + @Override + protected void preRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + U.bbg(guiGraphics, rect, ColorOption.baseBG, ColorOption.baseFG, state()); } - @Override protected void onRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - drawCenteredString(poseStack, font, text, center().x(), center().y() - font.lineHeight / 2 + 1, tColor()); + @Override + protected void onRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.drawCenteredString(font, text, center().x(), center().y() - font.lineHeight / 2 + 1, tColor()); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/ELabel2.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/ELabel2.java index 2d68395..06f7cea 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/ELabel2.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/ELabel2.java @@ -1,17 +1,21 @@ package com.github.einjerjar.mc.widgets2; import com.github.einjerjar.mc.widgets.utils.Point; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; +@Getter @Accessors(fluent = true) public class ELabel2 extends EWidget2 { - @Getter @Setter protected Component text; - @Getter @Setter protected Point centered = new Point<>(true); + @Setter + protected Component text; + + @Setter + protected Point centered = new Point<>(true); public ELabel2(@NotNull Component text, int x, int y, int w, int h) { super(x, y, w, h); @@ -19,14 +23,15 @@ public ELabel2(@NotNull Component text, int x, int y, int w, int h) { focusable(false); } - @Override protected void onRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - int y = (centered.y() ? center().y() - font.lineHeight / 2 : rect().top()) + 1; + @Override + protected void onRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + int y = (centered.y() ? center().y() - font.lineHeight / 2 : rect().top()) + 1; int lColor = tColor(); if (centered.x()) { - drawCenteredString(poseStack, font, text, center().x(), y, lColor); + guiGraphics.drawCenteredString(font, text, center().x(), y, lColor); } else { - drawString(poseStack, font, text, rect().left(), y, lColor); + guiGraphics.drawString(font, text, rect().left(), y, lColor); } } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/ELineToggleButton.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/ELineToggleButton.java index 620d761..6d4e25c 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/ELineToggleButton.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/ELineToggleButton.java @@ -1,9 +1,10 @@ package com.github.einjerjar.mc.widgets2; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) public class ELineToggleButton extends EToggleButton { @@ -13,20 +14,23 @@ public ELineToggleButton(Component text, int x, int y, int w, int h) { super(text, x, y, w, h); } - @Override protected void init() { + @Override + protected void init() { super.init(); int boxS = rect.h() - padding.y() * 2; checkBox = new Rect(rect.right() - padding.x() - boxS, rect.top() + padding.y(), boxS, boxS); } - @Override protected void preRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - U.bg(poseStack, rect, ColorOption.baseBG.fromState(state())); + @Override + protected void preRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + U.bg(guiGraphics, rect, ColorOption.baseBG.fromState(state())); } - @Override protected void onRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - drawString(poseStack, font, text, padding.x() + rect.left(), center().y() - font.lineHeight / 2 + 1, tColor()); - U.outline(poseStack, checkBox, ColorOption.baseFG.fromState(state())); - if (value()) U.bg(poseStack, checkBox, ColorOption.baseFG.base()); + @Override + protected void onRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.drawString(font, text, padding.x() + rect.left(), center().y() - font.lineHeight / 2 + 1, tColor()); + U.outline(guiGraphics, checkBox, ColorOption.baseFG.fromState(state())); + if (value()) U.bg(guiGraphics, checkBox, ColorOption.baseFG.base()); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2.java index 15981f3..e0f724e 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2.java @@ -1,18 +1,16 @@ package com.github.einjerjar.mc.widgets2; -import com.github.einjerjar.mc.widgets.utils.Text; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) public abstract class EScreen2 extends EScreen2Utils { protected EScreen2(Screen parent) { - this(parent, Text.translatable("SCREEN")); + this(parent, Component.translatable("SCREEN")); assert minecraft != null; } @@ -21,7 +19,8 @@ protected EScreen2(Screen parent, Component text) { this.parent = parent; } - @Override protected void init() { + @Override + protected void init() { super.init(); int tw = targetScreenWidth == -1 ? width : targetScreenWidth; scr = scrFromWidth(Math.min(tw, width)); @@ -85,34 +84,33 @@ protected boolean onMouseDragged(double mouseX, double mouseY, int button, doubl return false; } - protected boolean onMouseScrolled(double mouseX, double mouseY, double delta) { + protected boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { return false; } - protected void preRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - renderBackground(poseStack); + protected void preRender(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + renderBackground(guiGraphics, mouseX, mouseY, partialTick); } - protected void onRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void onRender(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { hoverWidget(null); for (EWidget2 w : children) { if (w.rect.contains(mouseX, mouseY)) hoverWidget(w); - w.render(poseStack, mouseX, mouseY, partialTick); + w.render(guiGraphics, mouseX, mouseY, partialTick); } } - protected void postRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + protected void postRender(GuiGraphics poseStack, int mouseX, int mouseY, float partialTick) {} - } - - @Override public void onClose() { + @Override + public void onClose() { assert minecraft != null; minecraft.setScreen(parent); } - @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (focusWidget() != null && focusWidget().keyPressed(keyCode, scanCode, modifiers)) - return true; + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (focusWidget() != null && focusWidget().keyPressed(keyCode, scanCode, modifiers)) return true; if (keyCode == InputConstants.KEY_ESCAPE) { boolean r = false; @@ -127,12 +125,14 @@ protected void postRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, return onKeyPressed(keyCode, scanCode, modifiers); } - @Override public boolean charTyped(char codePoint, int modifiers) { + @Override + public boolean charTyped(char codePoint, int modifiers) { if (focusWidget() != null && focusWidget().charTyped(codePoint, modifiers)) return true; return onCharTyped(codePoint, modifiers); } - @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { clickState = true; if (focusWidget() != null && hoverWidget() != focusWidget()) { @@ -149,7 +149,8 @@ protected void postRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, return onMouseClicked(mouseX, mouseY, button); } - @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { if (!clickState) return false; clickState = false; @@ -171,19 +172,22 @@ protected void postRender(@NotNull PoseStack poseStack, int mouseX, int mouseY, return r || onMouseReleased(mouseX, mouseY, button); } - @Override public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { if (!clickState) return false; return onMouseDragged(mouseX, mouseY, button, dragX, dragY); } - @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { - return onMouseScrolled(mouseX, mouseY, delta); + @Override + public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { + return onMouseScrolled(mouseX, mouseY, scrollX, scrollY); } - @Override public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - preRender(poseStack, mouseX, mouseY, partialTick); - onRender(poseStack, mouseX, mouseY, partialTick); - postRender(poseStack, mouseX, mouseY, partialTick); + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + preRender(guiGraphics, mouseX, mouseY, partialTick); + onRender(guiGraphics, mouseX, mouseY, partialTick); + postRender(guiGraphics, mouseX, mouseY, partialTick); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2Utils.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2Utils.java index 0bbe17c..93044a5 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2Utils.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EScreen2Utils.java @@ -2,9 +2,9 @@ import com.github.einjerjar.mc.widgets.utils.Point; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.NotNull; @@ -15,13 +15,20 @@ @Accessors(fluent = true) public abstract class EScreen2Utils extends Screen { - @Getter protected final Point margin = new Point<>(6); - @Getter protected final Point padding = new Point<>(6); + @Getter + protected final Point margin = new Point<>(6); - @Getter protected int targetScreenWidth = -1; - @Getter protected int minScreenWidth = 10; + @Getter + protected final Point padding = new Point<>(6); - @Getter protected List children = new ArrayList<>(); + @Getter + protected int targetScreenWidth = -1; + + @Getter + protected int minScreenWidth = 10; + + @Getter + protected List children = new ArrayList<>(); // Last active private EWidget2 focusWidget; @@ -30,11 +37,14 @@ public abstract class EScreen2Utils extends Screen { // Mouse clicking private EWidget2 activeWidget; - @Getter protected Rect scr; + @Getter + protected Rect scr; - @Getter protected Screen parent; + @Getter + protected Screen parent; - @Nullable protected EWidget2 focusWidget() { + @Nullable + protected EWidget2 focusWidget() { if (focusWidget != null) { if (focusWidget.focused) return focusWidget; focusWidget(null); @@ -42,7 +52,8 @@ public abstract class EScreen2Utils extends Screen { return null; } - @Nullable protected EWidget2 hoverWidget() { + @Nullable + protected EWidget2 hoverWidget() { if (hoverWidget != null) { if (hoverWidget.hovered) return hoverWidget; hoverWidget(null); @@ -50,7 +61,8 @@ public abstract class EScreen2Utils extends Screen { return null; } - @Nullable protected EWidget2 activeWidget() { + @Nullable + protected EWidget2 activeWidget() { if (activeWidget != null) { if (activeWidget.active) return activeWidget; activeWidget(null); @@ -59,15 +71,13 @@ public abstract class EScreen2Utils extends Screen { } protected void focusWidget(EWidget2 w) { - if (focusWidget != w && focusWidget != null) - focusWidget.focused(false); + if (focusWidget != w && focusWidget != null) focusWidget.focused(false); focusWidget = w; if (w != null) w.focused(true); } protected void hoverWidget(EWidget2 w) { - if (hoverWidget != w && hoverWidget != null) - hoverWidget.hovered(false); + if (hoverWidget != w && hoverWidget != null) hoverWidget.hovered(false); hoverWidget = w; if (hoverWidget != null) { hoverWidget.hovered(true); @@ -75,8 +85,7 @@ protected void hoverWidget(EWidget2 w) { } protected void activeWidget(EWidget2 w) { - if (activeWidget != w && activeWidget != null) - activeWidget.active(false); + if (activeWidget != w && activeWidget != null) activeWidget.active(false); activeWidget = w; if (w != null) w.active(true); } @@ -91,41 +100,34 @@ protected EScreen2Utils(Component component) { super(component); } - protected void drawOutline(@NotNull PoseStack ps, int l, int t, int r, int b, int c) { - U.outline(ps, l, t, r, b, c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, int l, int t, int r, int b, int c) { + U.outline(guiGraphics, l, t, r, b, c); } - protected void drawOutline(@NotNull PoseStack ps, Rect r, int c) { - drawOutline(ps, r.left(), r.top(), r.right(), r.bottom(), c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, Rect r, int c) { + drawOutline(guiGraphics, r.left(), r.top(), r.right(), r.bottom(), c); } - protected void drawOutline(@NotNull PoseStack ps, int c) { - drawOutline(ps, scr, c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, int c) { + drawOutline(guiGraphics, scr, c); } - protected void drawOutsideOutline(@NotNull PoseStack ps, Rect r, int c) { - drawOutline(ps, r.left() - 1, r.top() - 1, r.right() - 1, r.bottom() - 1, c); + protected void drawOutsideOutline(@NotNull GuiGraphics guiGraphics, Rect r, int c) { + drawOutline(guiGraphics, r.left() - 1, r.top() - 1, r.right() - 1, r.bottom() - 1, c); } - protected void drawOutsideOutline(@NotNull PoseStack ps, int c) { - drawOutsideOutline(ps, scr, c); + protected void drawOutsideOutline(@NotNull GuiGraphics guiGraphics, int c) { + drawOutsideOutline(guiGraphics, scr, c); } protected Rect scrFromWidth(int w) { if (w == -1) w = width; w = Math.max(Math.min(w, width - margin.x() * 2), minScreenWidth); return new Rect( - Math.max((width - w) / 2, 0) + margin.x(), - margin.y(), - w - margin.x() * 2, - height - margin.y() * 2 - ); + Math.max((width - w) / 2, 0) + margin.x(), margin.y(), w - margin.x() * 2, height - margin.y() * 2); } protected Point center() { - return new Point<>( - (scr.left() + scr.right()) / 2, - (scr.top() + scr.bottom()) / 2 - ); + return new Point<>((scr.left() + scr.right()) / 2, (scr.top() + scr.bottom()) / 2); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EToggleButton.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EToggleButton.java index 57e7491..45562dd 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EToggleButton.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EToggleButton.java @@ -1,17 +1,19 @@ package com.github.einjerjar.mc.widgets2; -import com.github.einjerjar.mc.widgets.utils.Text; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; @Accessors(fluent = true) public class EToggleButton extends EButton2 implements EValueContainer { protected boolean value = false; - @Getter @Setter EAction onToggle = null; + @Getter + @Setter + EAction onToggle = null; public EToggleButton(Component text, int x, int y, int w, int h) { super(text, x, y, w, h); @@ -23,15 +25,23 @@ public EToggleButton(Component text, int x, int y, int w, int h) { }); } - @Override public Boolean value() { + @Override + public Boolean value() { return value; } - @Override public void value(Boolean v) { + @Override + public void value(Boolean v) { this.value = v; } - @Override protected void onRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - drawCenteredString(poseStack, font, Text.literal("").append(text).append(": ").append(Boolean.TRUE.equals(value()) ? "ON" : "OFF"), center().x(), center().y() - font.lineHeight / 2 + 1, tColor()); + @Override + protected void onRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + guiGraphics.drawCenteredString( + font, + Component.literal("").append(text).append(": ").append(Boolean.TRUE.equals(value()) ? "ON" : "OFF"), + center().x(), + center().y() - font.lineHeight / 2 + 1, + tColor()); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2.java index 0599f44..1448d5b 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2.java @@ -1,8 +1,8 @@ package com.github.einjerjar.mc.widgets2; import com.github.einjerjar.mc.keymap.Keymap; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.experimental.Accessors; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.sounds.SoundEvents; import org.jetbrains.annotations.NotNull; @@ -12,11 +12,9 @@ protected EWidget2(int x, int y, int w, int h) { super(x, y, w, h); } - protected void init() { - } + protected void init() {} - protected void updateTooltips() { - } + protected void updateTooltips() {} protected boolean onMouseClicked(double mouseX, double mouseY, int button) { return true; @@ -41,7 +39,7 @@ private boolean handleMouseClick(double mouseX, double mouseY, int button) { protected boolean onMouseReleased(double mouseX, double mouseY, int button) { if (handleMouseClick(mouseX, mouseY, button)) { - playSound(SoundEvents.UI_BUTTON_CLICK); + playSound(SoundEvents.UI_BUTTON_CLICK.value()); return true; } return false; @@ -75,17 +73,15 @@ protected boolean onMouseDragged(double mouseX, double mouseY, int button, doubl return false; } - protected boolean onMouseScrolled(double mouseX, double mouseY, double delta) { + protected boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { return false; } - protected void preRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - } + protected void preRenderWidget(@NotNull GuiGraphics poseStack, int mouseX, int mouseY, float partialTick) {} - protected abstract void onRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick); + protected abstract void onRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick); - protected void postRenderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - } + protected void postRenderWidget(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {} private boolean onEscape() { return false; @@ -95,13 +91,15 @@ public boolean escape() { return onEscape(); } - @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { if (!rect.contains(mouseX, mouseY)) return false; return onMouseClicked(mouseX, mouseY, button); } - @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { if (!active()) return false; if (!rect.contains(mouseX, mouseY)) { @@ -112,25 +110,30 @@ public boolean escape() { return onMouseReleased(mouseX, mouseY, button); } - @Override public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) { return onMouseDragged(mouseX, mouseY, button, dragX, dragY); } - @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { - return onMouseScrolled(mouseX, mouseY, delta); + @Override + public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { + return onMouseScrolled(mouseX, mouseY, scrollX, scrollY); } - @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return onKeyPressed(keyCode, scanCode, modifiers); } - @Override public boolean charTyped(char codePoint, int modifiers) { + @Override + public boolean charTyped(char codePoint, int modifiers) { return onCharTyped(codePoint, modifiers); } - @Override public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY, float partialTick) { - preRenderWidget(poseStack, mouseX, mouseY, partialTick); - onRenderWidget(poseStack, mouseX, mouseY, partialTick); - postRenderWidget(poseStack, mouseX, mouseY, partialTick); + @Override + public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + preRenderWidget(guiGraphics, mouseX, mouseY, partialTick); + onRenderWidget(guiGraphics, mouseX, mouseY, partialTick); + postRenderWidget(guiGraphics, mouseX, mouseY, partialTick); } } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2Utils.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2Utils.java index 9bec0c1..33bc1fe 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2Utils.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/EWidget2Utils.java @@ -3,14 +3,13 @@ import com.github.einjerjar.mc.widgets.utils.Point; import com.github.einjerjar.mc.widgets.utils.Rect; import com.github.einjerjar.mc.widgets.utils.Tooltipped; -import com.mojang.blaze3d.vertex.PoseStack; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.client.gui.components.Widget; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -23,24 +22,52 @@ import java.util.List; @Accessors(fluent = true) -public abstract class EWidget2Utils extends GuiComponent implements Widget, GuiEventListener, NarratableEntry, Tooltipped { +public abstract class EWidget2Utils implements Renderable, GuiEventListener, NarratableEntry, Tooltipped { protected final Font font = Minecraft.getInstance().font; - @Getter @Setter protected Rect rect; + @Getter + @Setter + protected Rect rect; - @Getter @Setter protected boolean visible = true; - @Getter @Setter protected boolean enabled = true; - @Getter @Setter protected boolean focused = false; - @Getter @Setter protected boolean active = false; - @Getter @Setter protected boolean hovered = false; - @Getter @Setter protected boolean focusable = false; + @Getter + @Setter + protected boolean visible = true; + @Getter + @Setter + protected boolean enabled = true; - @Getter @Setter protected int color = 0xFFFFFF; - @Getter @Setter protected int transparency = 0xFF_000000; + @Getter + @Setter + protected boolean focused = false; - @Getter @Setter protected List tooltips = new ArrayList<>(); - @Getter @Setter protected Point padding = new Point<>(0); + @Getter + @Setter + protected boolean active = false; + + @Getter + @Setter + protected boolean hovered = false; + + @Getter + @Setter + protected boolean focusable = false; + + @Getter + @Setter + protected int color = 0xFFFFFF; + + @Getter + @Setter + protected int transparency = 0xFF_000000; + + @Getter + @Setter + protected List tooltips = new ArrayList<>(); + + @Getter + @Setter + protected Point padding = new Point<>(0); protected EWidget2Utils(int x, int y, int w, int h) { this.rect = new Rect(x, y, w, h); @@ -58,23 +85,30 @@ protected int tColor() { return tColor(transparency); } - protected void drawOutline(@NotNull PoseStack ps, int l, int t, int r, int b, int c) { - U.outline(ps, l, t, r, b, c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, int l, int t, int r, int b, int c) { + U.outline(guiGraphics, l, t, r, b, c); } - protected void drawOutline(@NotNull PoseStack ps, Rect r, int c) { - drawOutline(ps, r.left(), r.top(), r.right(), r.bottom(), c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, Rect r, int c) { + drawOutline(guiGraphics, r.left(), r.top(), r.right(), r.bottom(), c); } - protected void drawOutline(@NotNull PoseStack ps, int c) { - drawOutline(ps, rect, c); + protected void drawOutline(@NotNull GuiGraphics guiGraphics, int c) { + drawOutline(guiGraphics, rect, c); } protected Point center() { - return new Point<>( - (rect.left() + rect.right()) / 2, - (rect.top() + rect.bottom()) / 2 - ); + return new Point<>((rect.left() + rect.right()) / 2, (rect.top() + rect.bottom()) / 2); + } + + @Override + public void setFocused(boolean focused) { + focused(focused); + } + + @Override + public boolean isFocused() { + return focused(); } public WidgetState state() { @@ -97,7 +131,8 @@ protected void playSound(SoundEvent sound) { playSound(sound, 1f); } - @Override public List getTooltips() { + @Override + public List getTooltips() { return tooltips; } @@ -110,10 +145,11 @@ public void setTooltips(@NotNull List tips) { tooltips = tips; } - @Override public @NotNull NarrationPriority narrationPriority() { + @Override + public @NotNull NarrationPriority narrationPriority() { return NarrationPriority.NONE; } - @Override public void updateNarration(@NotNull NarrationElementOutput narrationElementOutput) { - } + @Override + public void updateNarration(@NotNull NarrationElementOutput narrationElementOutput) {} } diff --git a/common/src/main/java/com/github/einjerjar/mc/widgets2/U.java b/common/src/main/java/com/github/einjerjar/mc/widgets2/U.java index fdb8ecb..b1255ab 100644 --- a/common/src/main/java/com/github/einjerjar/mc/widgets2/U.java +++ b/common/src/main/java/com/github/einjerjar/mc/widgets2/U.java @@ -1,8 +1,7 @@ package com.github.einjerjar.mc.widgets2; import com.github.einjerjar.mc.widgets.utils.Rect; -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; import org.jetbrains.annotations.NotNull; public class U { @@ -13,51 +12,51 @@ public enum Mouse { MIDDLE, } - public static void hl(@NotNull PoseStack ps, int l, int r, int t, int c) { + public static void hl(@NotNull GuiGraphics guiGraphics, int l, int r, int t, int c) { if (l > r) { int x = l; l = r; r = x; } - GuiComponent.fill(ps, l, t, r, t + 1, c); + guiGraphics.fill(l, t, r, t + 1, c); } - public static void vl(@NotNull PoseStack ps, int t, int b, int l, int c) { + public static void vl(@NotNull GuiGraphics guiGraphics, int t, int b, int l, int c) { if (t > b) { int x = t; t = b; b = x; } - GuiComponent.fill(ps, l, t, l + 1, b, c); + guiGraphics.fill(l, t, l + 1, b, c); } - public static void outline(@NotNull PoseStack ps, int l, int t, int r, int b, int c) { - hl(ps, l, r + 1, t, c); - hl(ps, l, r + 1, b, c); - vl(ps, t + 1, b, l, c); - vl(ps, t + 1, b, r, c); + public static void outline(@NotNull GuiGraphics guiGraphics, int l, int t, int r, int b, int c) { + hl(guiGraphics, l, r + 1, t, c); + hl(guiGraphics, l, r + 1, b, c); + vl(guiGraphics, t + 1, b, l, c); + vl(guiGraphics, t + 1, b, r, c); } - public static void outline(@NotNull PoseStack ps, Rect r, int c) { - outline(ps, r.left(), r.top(), r.right(), r.bottom(), c); + public static void outline(@NotNull GuiGraphics guiGraphics, Rect r, int c) { + outline(guiGraphics, r.left(), r.top(), r.right(), r.bottom(), c); } - public static void bg(@NotNull PoseStack ps, int l, int t, int r, int b, int c) { - GuiComponent.fill(ps, l, t, r, b, c); + public static void bg(@NotNull GuiGraphics guiGraphics, int l, int t, int r, int b, int c) { + guiGraphics.fill(l, t, r, b, c); } - public static void bg(@NotNull PoseStack ps, Rect r, int c) { - bg(ps, r.left(), r.top(), r.right(), r.bottom(), c); + public static void bg(@NotNull GuiGraphics guiGraphics, Rect r, int c) { + bg(guiGraphics, r.left(), r.top(), r.right(), r.bottom(), c); } - public static void bbg(@NotNull PoseStack ps, Rect r, int bg, int fg) { - bg(ps, r, bg); - outline(ps, r, fg); + public static void bbg(@NotNull GuiGraphics guiGraphics, Rect r, int bg, int fg) { + bg(guiGraphics, r, bg); + outline(guiGraphics, r, fg); } - public static void bbg(@NotNull PoseStack ps, Rect r, ColorOption bg, ColorOption fg, WidgetState s) { - bbg(ps, r, bg.fromState(s), fg.fromState(s)); + public static void bbg(@NotNull GuiGraphics guiGraphics, Rect r, ColorOption bg, ColorOption fg, WidgetState s) { + bbg(guiGraphics, r, bg.fromState(s), fg.fromState(s)); } } diff --git a/fabric/build.gradle b/fabric/build.gradle index e60bde4..4306218 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -25,14 +25,6 @@ dependencies { modImplementation "com.terraformersmc:modmenu:${project.version_mod_menu}" - modRuntimeOnly "maven.modrinth:lithium:${project.version_lithium}" - modRuntimeOnly "maven.modrinth:starlight:${project.version_starlight}" - modRuntimeOnly "maven.modrinth:ferrite-core:${project.version_ferrite_core}" - modRuntimeOnly "maven.modrinth:lazydfu:${project.version_lazydfu}" - modRuntimeOnly "maven.modrinth:ksyxis:${project.version_ksyxis}" - modRuntimeOnly "maven.modrinth:c2me-fabric:${project.version_c2me}" - modRuntimeOnly "maven.modrinth:notenoughcrashes:${project.version_nec}" - common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } } @@ -49,18 +41,18 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier = "dev-shadow" } remapJar { injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier = null } jar { - classifier "dev" + archiveClassifier = "dev" } sourcesJar { @@ -148,4 +140,4 @@ curseforge { debug = publishDebug forgeGradleIntegration = false } -} \ No newline at end of file +} diff --git a/fabric/gradle.properties b/fabric/gradle.properties index bce6fc1..fc98b99 100644 --- a/fabric/gradle.properties +++ b/fabric/gradle.properties @@ -1,9 +1 @@ -# Performance -version_lithium=mc1.18.2-0.7.10 -version_starlight=1.0.2+1.18.2 -version_ferrite_core=4.2.1-fabric -version_lazydfu=0.1.2 -version_ksyxis=1.1 -version_c2me=0.2.0+alpha.7.0+1.18.2 -version_nec=4.1.6+1.18.2-fabric -version_mod_menu=3.2.4 \ No newline at end of file +version_mod_menu=8.0.0 diff --git a/forge/build.gradle b/forge/build.gradle index ac5c2e2..ca0fe1b 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -50,17 +50,17 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier = "dev-shadow" } remapJar { - input.set shadowJar.archiveFile + inputFile.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier = null } jar { - classifier "dev" + archiveClassifier = "dev" } sourcesJar { @@ -97,13 +97,14 @@ modrinth { throw new GradleException("Modrinth token not set!") } token = env.MODRINTH_API.value - projectId = "keymap" + projectId = env.MODRINTH_ID.value versionNumber = version versionType = rootProject.mod_version_type - uploadFile = jar + uploadFile = remapJar debugMode = publishDebug - gameVersions = ["1.18.2"] + gameVersions = [rootProject.minecraft_version] loaders = ["forge"] + changelog = rootProject.file("changelog.md").text } curseforge { @@ -135,4 +136,4 @@ curseforge { debug = publishDebug forgeGradleIntegration = false } -} \ No newline at end of file +} diff --git a/forge/src/main/java/com/github/einjerjar/mc/keymapforge/KeymapForge.java b/forge/src/main/java/com/github/einjerjar/mc/keymapforge/KeymapForge.java index 48fe72e..d4a25d4 100644 --- a/forge/src/main/java/com/github/einjerjar/mc/keymapforge/KeymapForge.java +++ b/forge/src/main/java/com/github/einjerjar/mc/keymapforge/KeymapForge.java @@ -3,7 +3,7 @@ import com.github.einjerjar.mc.keymap.Keymap; import com.github.einjerjar.mc.keymap.client.gui.screen.ConfigScreen; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.ConfigGuiHandler; +import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; @@ -24,8 +24,7 @@ public static File configDirProvider(String name) { // Prevents referent issue from fml public static class IDK { - private IDK() { - } + private IDK() {} private static void serverInit() { Keymap.logger().warn(Keymap.SERVER_WARN); @@ -34,8 +33,11 @@ private static void serverInit() { private static void clientInit() { Keymap.init(); - ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, - () -> new ConfigGuiHandler.ConfigGuiFactory((minecraft, parent) -> new ConfigScreen(parent))); + ModLoadingContext.get() + .registerExtensionPoint( + ConfigScreenHandler.ConfigScreenFactory.class, + () -> new ConfigScreenHandler.ConfigScreenFactory( + (minecraft, parent) -> new ConfigScreen(parent))); } } } diff --git a/forge/src/main/java/com/github/einjerjar/mc/keymapforge/cross/services/ForgeKeybindHelper.java b/forge/src/main/java/com/github/einjerjar/mc/keymapforge/cross/services/ForgeKeybindHelper.java index f66fc00..7b23d26 100644 --- a/forge/src/main/java/com/github/einjerjar/mc/keymapforge/cross/services/ForgeKeybindHelper.java +++ b/forge/src/main/java/com/github/einjerjar/mc/keymapforge/cross/services/ForgeKeybindHelper.java @@ -3,20 +3,18 @@ import com.github.einjerjar.mc.keymap.cross.services.IKeybindHelper; import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.KeyMapping; -import net.minecraftforge.client.ClientRegistry; +import net.minecraft.client.Minecraft; +import net.minecraft.client.Options; +import org.apache.commons.lang3.ArrayUtils; public class ForgeKeybindHelper implements IKeybindHelper { - @Override public KeyMapping create(InputConstants.Type type, int code, String name, String category) { - KeyMapping k = new KeyMapping( - name, - type, - code, - category - ); - - ClientRegistry.registerKeyBinding(k); + @Override + public KeyMapping create(InputConstants.Type type, int code, String name, String category) { + KeyMapping k = new KeyMapping(name, type, code, category); + Options options = Minecraft.getInstance().options; + options.keyMappings = ArrayUtils.add(options.keyMappings, k); return k; } } diff --git a/gradle.properties b/gradle.properties index c7f5798..a36c299 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.daemon=true org.gradle.parallel=true #org.gradle.configureondemand=true -minecraft_version=1.18.2 +minecraft_version=1.20.2 # Architectury architectury_version=4.9.83 @@ -15,16 +15,16 @@ maven_group=com.github.einjerjar.mc mod_version_type = beta mod_subversion = 1 -mod_version = 0.8.0 +mod_version = 0.9.0 # Loader Dependencies -fabric_loader_version=0.14.9 -fabric_api_version=0.58.0+1.18.2 +fabric_loader_version=0.14.24 +fabric_api_version=0.90.7+1.20.2 -forge_version=1.18.2-40.1.73 +forge_version=1.20.2-48.0.37 # Non MC Dependencies -version_gson=2.9.0 -version_guava=31.1-jre -version_lombok=1.18.24 \ No newline at end of file +version_lombok=1.18.30 + +parchmentmc_version=2023.10.22 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 856da69..db9a6b8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists \ No newline at end of file +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 37292d5..1b6c787 100644 --- a/gradlew +++ b/gradlew @@ -127,12 +127,14 @@ if [ -n "$JAVA_HOME" ] ; then fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi @@ -229,4 +231,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 477c896..107acd3 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -86,4 +86,4 @@ exit /b 1 :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega \ No newline at end of file +:omega