From 2508d1da25d435630bd8c7ffaf88df2a50c6e62b Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Mon, 11 Jul 2022 14:08:44 -0700 Subject: [PATCH] Button split - Replace project page button with separate CurseForge and Modrinth buttons - Add null check to mc.gameMode in ToolboxHandlerClient.onKeyInput --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + src/generated/resources/.cache/cache | 32 ++++++------- .../resources/assets/create/lang/en_us.json | 1 - .../assets/create/lang/unfinished/de_de.json | 1 - .../assets/create/lang/unfinished/es_cl.json | 1 - .../assets/create/lang/unfinished/es_es.json | 1 - .../assets/create/lang/unfinished/fr_fr.json | 3 +- .../assets/create/lang/unfinished/it_it.json | 3 +- .../assets/create/lang/unfinished/ja_jp.json | 1 - .../assets/create/lang/unfinished/ko_kr.json | 1 - .../assets/create/lang/unfinished/nl_nl.json | 3 +- .../assets/create/lang/unfinished/pl_pl.json | 1 - .../assets/create/lang/unfinished/pt_br.json | 1 - .../assets/create/lang/unfinished/pt_pt.json | 3 +- .../assets/create/lang/unfinished/ro_ro.json | 1 - .../assets/create/lang/unfinished/ru_ru.json | 1 - .../assets/create/lang/unfinished/zh_cn.json | 1 - .../assets/create/lang/unfinished/zh_tw.json | 1 - src/main/java/com/simibubi/create/Create.java | 2 +- .../toolbox/ToolboxHandlerClient.java | 2 +- .../config/ui/OpenCreateMenuButton.java | 5 +- .../create/foundation/gui/AllGuiTextures.java | 2 + .../foundation/gui/CreateMainMenuScreen.java | 45 ++++++++++++++++-- .../assets/create/lang/default/interface.json | 1 - .../gui/platform_icons/curseforge.png | Bin 0 -> 6226 bytes .../textures/gui/platform_icons/modrinth.png | Bin 0 -> 14862 bytes 26 files changed, 66 insertions(+), 48 deletions(-) create mode 100644 src/main/resources/assets/create/textures/gui/platform_icons/curseforge.png create mode 100644 src/main/resources/assets/create/textures/gui/platform_icons/modrinth.png diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 2e10eacb5..023bb55e3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -49,6 +49,7 @@ body: label: Mod Version description: The version of the mod you were using when the bug occured options: + - "0.5.0a" - "0.5.0" - "0.4.1" - "0.4.0f" diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 447b93686..49dbe71ac 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -559,22 +559,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json -7bf329d0e72e8262525335e8dc24b25d876abe16 assets/create/lang/en_us.json -cc4ad2cab36c5545e9033d877fff0dc72b55aad3 assets/create/lang/unfinished/de_de.json -c4e07a8e6bfa28cb280d95f8600f6873fafe078f assets/create/lang/unfinished/es_cl.json -c1a4222a108fb10f4900f4ea4ce5c762d04f4917 assets/create/lang/unfinished/es_es.json -6a1a568f4f84a80f4338a858a3147173604a4ea6 assets/create/lang/unfinished/fr_fr.json -b36117021a8b4c431351079cf22a16958cb6f5f9 assets/create/lang/unfinished/it_it.json -af401cde90e194ecb384f8091041fbb232e6672f assets/create/lang/unfinished/ja_jp.json -5d87b8a918076da4fbc74cbea3d96aff7549f3cf assets/create/lang/unfinished/ko_kr.json -fb68a89d423ef73d9204e6d75b7e2b3ae21daad7 assets/create/lang/unfinished/nl_nl.json -65d04135f46e435a7d20b58dc24fc374a091cd85 assets/create/lang/unfinished/pl_pl.json -9cc304bfe85f01592077a84135962d8478999384 assets/create/lang/unfinished/pt_br.json -1252dc9c586fd55e80cd838aeb60932fc29c4e92 assets/create/lang/unfinished/pt_pt.json -42d9d2510ee559254fe6683c7ac07c6a018820c0 assets/create/lang/unfinished/ro_ro.json -ad92bbff37632e230d1736cf2be1220dcef8dc19 assets/create/lang/unfinished/ru_ru.json -e4da496b24c1fa434e9ed43dfa5c8945446dd5a2 assets/create/lang/unfinished/zh_cn.json -9756888c28dbc5358b4a80bdb7f85a9cafffa53e assets/create/lang/unfinished/zh_tw.json +0912780ccfaa354b7e087bbba6566e9b9a671532 assets/create/lang/en_us.json +2e8f7904ef8505d4801f5ca6f49dc0f02abd4dfe assets/create/lang/unfinished/de_de.json +88c44f31d872f8c81e1bacc87723f2f5dcc9223b assets/create/lang/unfinished/es_cl.json +8297f8bd9645fa5164f771186045008322bdb09b assets/create/lang/unfinished/es_es.json +3f15c1c88813587118eeb6d8924bd5ca4740c3c5 assets/create/lang/unfinished/fr_fr.json +988f0a32fe31ab650b954dc4e79019a8f9c62817 assets/create/lang/unfinished/it_it.json +f55115e4346dbcb621d13cd0507f513e800cb1dd assets/create/lang/unfinished/ja_jp.json +e5aa8d44679a9f9e9834dd0035e83e4afb6880f9 assets/create/lang/unfinished/ko_kr.json +71baa135eabfc47c6ea0c91c228de5ba75cb0ab0 assets/create/lang/unfinished/nl_nl.json +978c4f49816e89e00c9f52d6adc6d8c28e07f444 assets/create/lang/unfinished/pl_pl.json +e5f41a077f9e43fcc9703766df83ceee8f3f9408 assets/create/lang/unfinished/pt_br.json +bc235c04748b43160b62400dee47713d98b97093 assets/create/lang/unfinished/pt_pt.json +ac1f0cd7fa76ebcbc3020b82c4d93716a98c225c assets/create/lang/unfinished/ro_ro.json +f4cce36c92c3c776e190c82b99e5b4ed8930c835 assets/create/lang/unfinished/ru_ru.json +c10de552797c819ed686aa9ec345f34c8424a007 assets/create/lang/unfinished/zh_cn.json +82adbce8f58913d07a5d3545ddd40873340ae406 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index a7a4426a6..d1a71b87d 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -883,7 +883,6 @@ "create.menu.configure": "Configure...", "create.menu.ponder_index": "Ponder Index", "create.menu.only_ingame": "Available in the Pause Menu", - "create.menu.project_page": "Project Page", "create.menu.report_bugs": "Report Issues", "create.menu.support": "Support Us", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 36d734b4b..28ef4ec41 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -884,7 +884,6 @@ "create.menu.configure": "Konfigurieren...", "create.menu.ponder_index": "Ponder-Verzeichnis", "create.menu.only_ingame": "Im Pause-Menü verfügbar", - "create.menu.project_page": "Projektseite", "create.menu.report_bugs": "Fehler melden", "create.menu.support": "Unterstütze uns", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index f12c40786..fe7636b63 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -884,7 +884,6 @@ "create.menu.configure": "Configurar...", "create.menu.ponder_index": "Reflexionar el índice", "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del Proyecto", "create.menu.report_bugs": "Reportar Problemas", "create.menu.support": "Apóyanos", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index a635085b6..4f994e89b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -884,7 +884,6 @@ "create.menu.configure": "Configurar...", "create.menu.ponder_index": "Índice", "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", "create.menu.report_bugs": "Reportar problemas", "create.menu.support": "Apóyenos", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index e1b9b260c..b9eb5f596 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2132", + "_": "Missing Localizations: 2131", "_": "->------------------------] Game Elements [------------------------<-", @@ -884,7 +884,6 @@ "create.menu.configure": "UNLOCALIZED: Configure...", "create.menu.ponder_index": "UNLOCALIZED: Ponder Index", "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "UNLOCALIZED: Project Page", "create.menu.report_bugs": "UNLOCALIZED: Report Issues", "create.menu.support": "UNLOCALIZED: Support Us", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index bebbbd15a..aa6e0e635 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1903", + "_": "Missing Localizations: 1902", "_": "->------------------------] Game Elements [------------------------<-", @@ -884,7 +884,6 @@ "create.menu.configure": "UNLOCALIZED: Configure...", "create.menu.ponder_index": "UNLOCALIZED: Ponder Index", "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "UNLOCALIZED: Project Page", "create.menu.report_bugs": "UNLOCALIZED: Report Issues", "create.menu.support": "UNLOCALIZED: Support Us", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 62287952b..288bba56a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -884,7 +884,6 @@ "create.menu.configure": "設定...", "create.menu.ponder_index": "思案目次", "create.menu.only_ingame": "一時停止メニューで利用可能", - "create.menu.project_page": "プロジェクトページ", "create.menu.report_bugs": "バグ報告", "create.menu.support": "私たちを応援する", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 8fc191cd6..453299206 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -884,7 +884,6 @@ "create.menu.configure": "설정...", "create.menu.ponder_index": "분석 메뉴", "create.menu.only_ingame": "일시 정지 메뉴에서 가능합니다", - "create.menu.project_page": "Curseforge 페이지", "create.menu.report_bugs": "버그 제보하기", "create.menu.support": "후원하기", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 936543836..438cab225 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2480", + "_": "Missing Localizations: 2479", "_": "->------------------------] Game Elements [------------------------<-", @@ -884,7 +884,6 @@ "create.menu.configure": "UNLOCALIZED: Configure...", "create.menu.ponder_index": "UNLOCALIZED: Ponder Index", "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "UNLOCALIZED: Project Page", "create.menu.report_bugs": "UNLOCALIZED: Report Issues", "create.menu.support": "UNLOCALIZED: Support Us", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 0a26cc90b..c9a850282 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -884,7 +884,6 @@ "create.menu.configure": "Konfiguracja...", "create.menu.ponder_index": "Katalog analiz", "create.menu.only_ingame": "Dostępne w menu gry", - "create.menu.project_page": "Strona projektu", "create.menu.report_bugs": "Zgłoś błąd", "create.menu.support": "Wesprzyj nas", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 3bf5b17ed..138f9873f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -884,7 +884,6 @@ "create.menu.configure": "Configurar...", "create.menu.ponder_index": "Tabela do ponderamento", "create.menu.only_ingame": "Disponível no menu de pausa", - "create.menu.project_page": "Página do projeto", "create.menu.report_bugs": "Informar um erro", "create.menu.support": "Suporte nós", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index dcb5ce470..67f3a513b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2189", + "_": "Missing Localizations: 2188", "_": "->------------------------] Game Elements [------------------------<-", @@ -884,7 +884,6 @@ "create.menu.configure": "UNLOCALIZED: Configure...", "create.menu.ponder_index": "UNLOCALIZED: Ponder Index", "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "UNLOCALIZED: Project Page", "create.menu.report_bugs": "UNLOCALIZED: Report Issues", "create.menu.support": "UNLOCALIZED: Support Us", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 9805091eb..a94619124 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -884,7 +884,6 @@ "create.menu.configure": "Configurează...", "create.menu.ponder_index": "Indecele de Chibzuire", "create.menu.only_ingame": "Valabil în Meniul Jocului", - "create.menu.project_page": "Pagina de Proiect", "create.menu.report_bugs": "Raportează Probleme", "create.menu.support": "Susține-ne", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index af87cbc53..4376e62c3 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -884,7 +884,6 @@ "create.menu.configure": "Настроить...", "create.menu.ponder_index": "Все размышления", "create.menu.only_ingame": "Доступно в меню Паузы", - "create.menu.project_page": "Страница проекта", "create.menu.report_bugs": "Нашли ошибку?", "create.menu.support": "Поддержите нас", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index c52235773..09f21c42b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -884,7 +884,6 @@ "create.menu.configure": "配置……", "create.menu.ponder_index": "思索索引", "create.menu.only_ingame": "仅在游戏内暂停菜单中可用", - "create.menu.project_page": "项目主页", "create.menu.report_bugs": "报告问题", "create.menu.support": "支持我们", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 1427621c9..d80142aa2 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -884,7 +884,6 @@ "create.menu.configure": "設定", "create.menu.ponder_index": "示範目錄", "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "專案頁面", "create.menu.report_bugs": "回報問題", "create.menu.support": "支持我們", diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 28626f116..a16b9e91f 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -64,7 +64,7 @@ public class Create { public static final String ID = "create"; public static final String NAME = "Create"; - public static final String VERSION = "0.5-unstable"; + public static final String VERSION = "0.5a"; public static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java index 29907503c..a4c61f2fc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java @@ -103,7 +103,7 @@ public class ToolboxHandlerClient { public static void onKeyInput(int key, boolean pressed) { Minecraft mc = Minecraft.getInstance(); - if (mc.gameMode.getPlayerMode() == GameType.SPECTATOR) + if (mc.gameMode == null || mc.gameMode.getPlayerMode() == GameType.SPECTATOR) return; if (key != AllKeys.TOOLBELT.getBoundCode()) diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/OpenCreateMenuButton.java b/src/main/java/com/simibubi/create/foundation/config/ui/OpenCreateMenuButton.java index 71a796e67..24473882f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/OpenCreateMenuButton.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/OpenCreateMenuButton.java @@ -36,10 +36,7 @@ public class OpenCreateMenuButton extends Button { } @Override - public void render(PoseStack mstack, int mouseX, int mouseY, float pticks) { - super.render(mstack, mouseX, mouseY, pticks); - if (!visible) - return; + public void renderBg(PoseStack mstack, Minecraft mc, int mouseX, int mouseY) { Minecraft.getInstance().getItemRenderer().renderGuiItem(ICON, x + 2, y + 2); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index b594fdd07..53f9571e8 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -21,6 +21,8 @@ public enum AllGuiTextures implements ScreenElement { TERRAINZAPPER_INACTIVE_PARAM("curiosities", 238, 0, 18, 18), LOGO("logo", 256, 256), + CURSEFORGE_LOGO("platform_icons/curseforge", 256, 256), + MODRINTH_LOGO("platform_icons/modrinth", 256, 256), SCHEMATIC("schematics", 192, 121), SCHEMATIC_SLOT("widgets", 54, 0, 16, 16), diff --git a/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java b/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java index 386382ca6..51889c28f 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java @@ -17,12 +17,14 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.Util; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.ConfirmLinkScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.TitleScreen; import net.minecraft.client.renderer.CubeMap; import net.minecraft.client.renderer.PanoramaRenderer; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -35,7 +37,11 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { new ResourceLocation("textures/gui/title/background/panorama_overlay.png"); public static final PanoramaRenderer PANORAMA = new PanoramaRenderer(PANORAMA_RESOURCES); - public static final String PROJECT_LINK = "https://www.curseforge.com/minecraft/mc-mods/create"; + private static final Component CURSEFORGE_TOOLTIP = new TextComponent("CurseForge").withStyle(s -> s.withColor(0xFC785C).withBold(true)); + private static final Component MODRINTH_TOOLTIP = new TextComponent("Modrinth").withStyle(s -> s.withColor(0x3FD32B).withBold(true)); + + public static final String CURSEFORGE_LINK = "https://www.curseforge.com/minecraft/mc-mods/create"; + public static final String MODRINTH_LINK = "https://modrinth.com/mod/create"; public static final String ISSUE_TRACKER_LINK = "https://github.com/Creators-of-Create/Create/issues"; public static final String SUPPORT_LINK = "https://github.com/Creators-of-Create/Create/wiki/Supporting-the-Project"; @@ -146,11 +152,20 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { gettingStarted.active = !(parent instanceof TitleScreen); addRenderableWidget(gettingStarted); - addRenderableWidget(new Button(center - 100, yStart + 48 + -16, bShortWidth, bHeight, Lang.translateDirect("menu.project_page"), - $ -> linkTo(PROJECT_LINK))); - addRenderableWidget(new Button(center + 2, yStart + 68, bShortWidth, bHeight, Lang.translateDirect("menu.report_bugs"), + addRenderableWidget(new PlatformIconButton(center - 100, yStart + 48 + -16, bShortWidth / 2, bHeight, + AllGuiTextures.CURSEFORGE_LOGO, 0.085f, + b -> linkTo(CURSEFORGE_LINK), + (b, ps, mx, my) -> renderTooltip(ps, CURSEFORGE_TOOLTIP, mx, my))); + addRenderableWidget(new PlatformIconButton(center - 50, yStart + 48 + -16, bShortWidth / 2, bHeight, + AllGuiTextures.MODRINTH_LOGO, 0.0575f, + b -> linkTo(MODRINTH_LINK), + (b, ps, mx, my) -> renderTooltip(ps, MODRINTH_TOOLTIP, mx, my))); + + addRenderableWidget(new Button(center + 2, yStart + 68, bShortWidth, bHeight, + Lang.translateDirect("menu.report_bugs"), $ -> linkTo(ISSUE_TRACKER_LINK))); - addRenderableWidget(new Button(center - 100, yStart + 68, bShortWidth, bHeight, Lang.translateDirect("menu.support"), + addRenderableWidget(new Button(center - 100, yStart + 68, bShortWidth, bHeight, + Lang.translateDirect("menu.support"), $ -> linkTo(SUPPORT_LINK))); } @@ -189,4 +204,24 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { return true; } + protected static class PlatformIconButton extends Button { + protected final AllGuiTextures icon; + protected final float scale; + + public PlatformIconButton(int pX, int pY, int pWidth, int pHeight, AllGuiTextures icon, float scale, OnPress pOnPress, OnTooltip pOnTooltip) { + super(pX, pY, pWidth, pHeight, TextComponent.EMPTY, pOnPress, pOnTooltip); + this.icon = icon; + this.scale = scale; + } + + @Override + protected void renderBg(PoseStack pPoseStack, Minecraft pMinecraft, int pMouseX, int pMouseY) { + pPoseStack.pushPose(); + pPoseStack.translate(x + width / 2 - (icon.width * scale) / 2, y + height / 2 - (icon.height * scale) / 2, 0); + pPoseStack.scale(scale, scale, 1); + icon.render(pPoseStack, 0, 0); + pPoseStack.popPose(); + } + } + } diff --git a/src/main/resources/assets/create/lang/default/interface.json b/src/main/resources/assets/create/lang/default/interface.json index 97d486037..5c8e1cd9f 100644 --- a/src/main/resources/assets/create/lang/default/interface.json +++ b/src/main/resources/assets/create/lang/default/interface.json @@ -26,7 +26,6 @@ "create.menu.configure": "Configure...", "create.menu.ponder_index": "Ponder Index", "create.menu.only_ingame": "Available in the Pause Menu", - "create.menu.project_page": "Project Page", "create.menu.report_bugs": "Report Issues", "create.menu.support": "Support Us", diff --git a/src/main/resources/assets/create/textures/gui/platform_icons/curseforge.png b/src/main/resources/assets/create/textures/gui/platform_icons/curseforge.png new file mode 100644 index 0000000000000000000000000000000000000000..6482975c494e02522f34a10894bb434f1ccc7194 GIT binary patch literal 6226 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 YzkS2@~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/gui/platform_icons/modrinth.png b/src/main/resources/assets/create/textures/gui/platform_icons/modrinth.png new file mode 100644 index 0000000000000000000000000000000000000000..c855919c95d0669437fe184f73a93a7a29e99a2c GIT binary patch literal 14862 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