From 27d5d98ec084d41a4e25a45476c96fca246fc1d4 Mon Sep 17 00:00:00 2001 From: Ranzu <66495944+Ranzuu@users.noreply.github.com> Date: Mon, 20 Apr 2026 17:13:46 +0200 Subject: [PATCH 1/4] Refactor styling - remove unused trade_available.png + code - add new asset (tile_cooldown) - because drawing with the drawRoundedRect was breaking half pixels - refactor theme to be gt standard (tabs/right panel) - add new color enum (trade_display_text_color) - change assets to be static - in/out icons from other pr --- .../blocks/gui/MTEVendingMachineGui.java | 2 +- .../blocks/gui/TradeItemDisplayWidget.java | 38 ++++++--------- .../vendingmachine/gui/GuiTextures.java | 44 ++++++------------ .../vendingmachine/util/GuiParams.java | 1 + .../textures/gui/background/input.png | Bin 797 -> 286 bytes .../background/list_trade_button_pressed.png | Bin 3116 -> 3012 bytes .../list_trade_button_unpressed.png | Bin 3115 -> 3012 bytes .../textures/gui/background/output.png | Bin 762 -> 250 bytes .../textures/gui/background/panel_side.png | Bin 3165 -> 3026 bytes .../gui/background/trade_available.png | Bin 259 -> 0 bytes .../gui/background/trade_button_pressed.png | Bin 262 -> 453 bytes .../gui/background/trade_button_unpressed.png | Bin 240 -> 453 bytes .../textures/gui/overlay/tile_cooldown.png | Bin 0 -> 428 bytes .../textures/gui/overlay/tile_selected.png | Bin 162 -> 503 bytes .../textures/gui/overlay/tile_tradeable.png | Bin 170 -> 488 bytes .../vendingmachine/textures/gui/tabs_left.png | Bin 3096 -> 3115 bytes 16 files changed, 31 insertions(+), 54 deletions(-) delete mode 100644 src/main/resources/assets/vendingmachine/textures/gui/background/trade_available.png create mode 100644 src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_cooldown.png diff --git a/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java b/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java index 24637e1..969beae 100644 --- a/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java +++ b/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java @@ -89,7 +89,7 @@ public class MTEVendingMachineGui extends MTEMultiBlockBaseGui { public static final int TILE_ITEMS_PER_ROW = 3; public static final int TILE_ITEM_HEIGHT = 25; public static final int TILE_ITEM_WIDTH = 47; - public static final int LIST_ITEM_HEIGHT = 14; + public static final int LIST_ITEM_HEIGHT = 15; public static final int LIST_ITEM_WIDTH = 153; private static final int COIN_COLUMN_WIDTH = 40; diff --git a/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java b/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java index afa2f57..3b63599 100644 --- a/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java +++ b/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java @@ -3,6 +3,7 @@ import net.minecraft.item.ItemStack; import org.jetbrains.annotations.NotNull; +import org.lwjgl.opengl.GL11; import com.cleanroommc.modularui.api.drawable.IKey; import com.cleanroommc.modularui.api.value.ISyncOrValue; @@ -93,32 +94,23 @@ public void draw(ModularGuiContext context, WidgetThemeEntry widgetTheme) { GuiDraw.drawText(" " + this.display.display.stackSize, 4, 9, 1.0f, textColor, false); GuiDraw.drawItem(item, 26, 4, 16, 16, context.getCurrentDrawingZ()); if (this.display.tradeableNow) { - GuiTextures.OVERLAY_TRADEABLE.draw( - 1, - 1, - MTEVendingMachineGui.TILE_ITEM_WIDTH - 2, - MTEVendingMachineGui.TILE_ITEM_HEIGHT - 2); + GL11.glColor4f(1f, 1f, 1f, 1f); + GuiTextures.OVERLAY_TRADEABLE + .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } if (!this.checkVmActive() || this.display.hasCooldown || !this.display.enabled) { - GuiDraw.drawRoundedRect( - 1, - 1, - MTEVendingMachineGui.TILE_ITEM_WIDTH - 2, - MTEVendingMachineGui.TILE_ITEM_HEIGHT - 2, - GuiParams.trade_display_disabled_color.getColor(true), - GuiParams.trade_display_tile_disabled_corner_radius.getInt(), - GuiParams.trade_display_tile_disabled_corner_radius_segments.getInt()); + GL11.glColor4f(1f, 1f, 1f, 1f); + GuiTextures.OVERLAY_COOLDOWN + .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } if (this.display.tgID.equals(this.rootPanel.currentSelected)) { - GuiTextures.OVERLAY_SELECTED.draw( - 1, - 1, - MTEVendingMachineGui.TILE_ITEM_WIDTH - 2, - MTEVendingMachineGui.TILE_ITEM_HEIGHT - 2); + GL11.glColor4f(1f, 1f, 1f, 1f); + GuiTextures.OVERLAY_SELECTED + .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } this.overlay( IKey.str(display.hasCooldown ? this.display.cooldownText : "") - .style(IKey.WHITE)); + .color(GuiParams.trade_display_text_color.getColor(false))); if (this.display.isFavourite) { GuiTextures.FAVOURITE_SPRITE.draw(context, 4, 4, 6, 6, widgetTheme.getTheme()); } @@ -140,7 +132,7 @@ public void draw(ModularGuiContext context, WidgetThemeEntry widgetTheme) { 1, 1, 3, - MTEVendingMachineGui.LIST_ITEM_HEIGHT - 3, + MTEVendingMachineGui.LIST_ITEM_HEIGHT - 2, this.display.tradeableNow ? GuiParams.trade_display_list_tradable_now_color.getColor(true) : GuiParams.trade_display_list_untradable_now_color.getColor(true)); if (!this.checkVmActive() || this.display.hasCooldown || !this.display.enabled) { @@ -155,13 +147,13 @@ public void draw(ModularGuiContext context, WidgetThemeEntry widgetTheme) { GuiDraw.drawRect( 1, 1, - 2, - MTEVendingMachineGui.LIST_ITEM_HEIGHT - 3, + 3, + MTEVendingMachineGui.LIST_ITEM_HEIGHT - 2, GuiParams.trade_display_list_current_selected_color.getColor(true)); } this.overlay( IKey.str(display.hasCooldown && this.display.enabled ? this.display.cooldownText : "") - .style(IKey.WHITE) + .color(GuiParams.trade_display_text_color.getColor(false)) .scale(0.9f)); if (this.display.isFavourite) { GuiTextures.FAVOURITE_SPRITE.draw(context, 139, 2, 10, 10, widgetTheme.getTheme()); diff --git a/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java b/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java index 9c0af9e..6e6cadc 100644 --- a/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java +++ b/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java @@ -10,32 +10,16 @@ public final class GuiTextures { - public static final UITexture OVERLAY_TRADE_AVAILABLE_HIGHLIGHT = UITexture.builder() - .location(VendingMachine.MODID, "gui/overlay/trade_available") - .imageSize(47, 25) - .adaptable(6) - .name("trade_available_highlight") - .build(); - public static final UITexture OVERLAY_TRADE_DISABLED = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/trade_disabled") .imageSize(47, 25) - .adaptable(4) .canApplyTheme() .name("trade_disabled") .build(); - public static final UITexture TRADE_AVAILABLE_BACKGROUND = UITexture.builder() - .location(VendingMachine.MODID, "gui/background/trade_available") - .imageSize(18, 18) - .canApplyTheme() - .name("trade_available_background") - .build(); - public static final UITexture SIDE_PANEL_BACKGROUND = UITexture.builder() .location(VendingMachine.MODID, "gui/background/panel_side") - .imageSize(195, 136) - .adaptable(4) + .imageSize(50, 214) .canApplyTheme() .name("panel_side_background") .build(); @@ -48,55 +32,55 @@ public final class GuiTextures { .name("text_field_background") .build(); - // TODO: Restore canApplyTheme to trade button textures after scrolling texture bug is fixed in MUI2 public static final UITexture TILE_TRADE_BUTTON_UNPRESSED = UITexture.builder() .location(VendingMachine.MODID, "gui/background/trade_button_unpressed") .canApplyTheme() - .imageSize(195, 136) - .adaptable(4) + .imageSize(47, 25) .name("trade_button_unpressed") .build(); public static final UITexture TILE_TRADE_BUTTON_PRESSED = UITexture.builder() .location(VendingMachine.MODID, "gui/background/trade_button_pressed") .canApplyTheme() - .imageSize(195, 136) - .adaptable(4) + .imageSize(47, 25) .name("trade_button_pressed") .build(); public static final UITexture LIST_TRADE_BUTTON_UNPRESSED = UITexture.builder() .location(VendingMachine.MODID, "gui/background/list_trade_button_unpressed") .canApplyTheme() - .imageSize(195, 136) - .adaptable(2) + .imageSize(154, 14) .name("list_trade_button_unpressed") .build(); public static final UITexture LIST_TRADE_BUTTON_PRESSED = UITexture.builder() .location(VendingMachine.MODID, "gui/background/list_trade_button_pressed") .canApplyTheme() - .imageSize(195, 136) - .adaptable(2) + .imageSize(154, 14) .name("list_trade_button_pressed") .build(); public static final UITexture OVERLAY_TRADEABLE = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/tile_tradeable") - .imageSize(20, 20) - .adaptable(2) + .imageSize(47, 25) .nonOpaque() .name("overlay_tradeable") .build(); public static final UITexture OVERLAY_SELECTED = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/tile_selected") - .imageSize(20, 20) - .adaptable(2) + .imageSize(47, 25) .nonOpaque() .name("overlay_selected") .build(); + public static final UITexture OVERLAY_COOLDOWN = UITexture.builder() + .location(VendingMachine.MODID, "gui/overlay/tile_cooldown") + .imageSize(47, 25) + .nonOpaque() + .name("overlay_cooldown") + .build(); + public static final UITexture MODE_TILE = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/mode_tile") .imageSize(32, 32) diff --git a/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java b/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java index 4b4ec0d..2b5b6e2 100644 --- a/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java +++ b/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java @@ -22,6 +22,7 @@ public enum GuiParams { trade_display_list_tradable_now_color(0x883CFF00), trade_display_list_untradable_now_color(0x88333333), trade_display_list_current_selected_color(0xAA039BE5), + trade_display_text_color(0xFFFFFFFF), trade_display_tile_disabled_corner_radius(1), trade_display_tile_disabled_corner_radius_segments(1), diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/input.png b/src/main/resources/assets/vendingmachine/textures/gui/background/input.png index d1f01f71c06c8bf9eff4c244d06c173829fafb8c..509d54f9938bce41232b76e2ecc24684847f59c5 100644 GIT binary patch delta 199 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 literal 3116 zcmai0X*kpi7ylz8WZ#;|mSvQ6l3kV=j4iuCXfz?$GE+v@u`gr2p)A?6#_LMR)`;ve z27{1nDI!bOX{cWBbD#Ii``q{559gfc{Lc0}=hI2FykW$~a)AW^05)R;-1^jZp9HujH8y~$D5AsxA9YLz{8Um#y4gT%#r6x9C(*j zdkLw@o+u`|b2|Wo53q=BXwc`U8q(*|hfSyWAx#`Gwd+eokM*O8mk2!@*i1t z-&vWH{+O!H-I0=x0t>93rM5ylq|h-q<9OXZ%t}2t?1l;e$(WP>>~C|&M-H6yw-=A2FGio9hM*0yOy>=CeA zVPxx$58I#Ig7z}iGH^;TS5-fckP3Luz{oQ8`?=3W2~-iLp8>-BTqhD81cgTi@SzGb zQM0V3n*%%q#$5e)U24%2Do6LvvYFPb#91oWXqE$gx!48WaA5#)nM;&8^v;#hZ9HqA z5yN*<@>p(8!7(}dCmz{i_H%$=A|efK1c$b8TaA2ua^ggrK0Zk}!P)J)iDIv2~SD zb^LmX$J)&`2<}1~zy@nBwz|tr;|pQBq{v*+<@B7(hp_==p>{ScR-kKe2dX9_AKl#f z7|RgGxfN^CoxRBAz@igX$rZ`TrSUXbk&FM0p?-Rh1T&Xd%|q@odN1AChr(qdtx1UV z%7L4_AOiy>OS4C;Z$EM?K2S^vIz=h%e1w^h6kh{<1GqtulBOO9?n`m2sCW36#+1-T z5?k;6=eK>7Ub2L8hH{58YNp|1E-mA*FV${2YuzAR>9JdM!b)S2Se_Q}EADyD?G%pQ zy`7fXo)qRkViEe6-Q-F#Mh(?WTTFxWB)AUP3Z#h58_18%t6CD9QU;x&F1y}q>98Aq+eSVUv{{B2C~Cz ze`NxKyX@||| zC1vE@EsD@+{?z!?F6Hfb^|(gqfoatDpJ?O73Gp`+5`v>T3q8*FMnrygxP5<@hyh`n!NY zh3OO1kjC!0;;q}Uj8TBUhIHF0>23^`>SOjX|@L~HN+bZj7U|jTQlNEJQr^KG^CWTl;>$)>8<{t z{zv@?bnR_qpKB6@z|#}ZkN#NtF>kq2fF?WFiq-16UZS={6aQ!soGdRp<&fV&rE>R5 z=1UrJk0mN4$|Y{Am*j&+_Qxa3n@lTPe75AbcnX;?Oqh)Aw+gEk60K5?rL|2Sn9mn# z=rOz6_bcZj6e~BV6;7MsDlH3zH_gZXCS->vpP1n#uPz2>e zpHB^@vN>CrK0zWuI3ka_dC;ww5c>P`v_`xq)y0>oskDq|-FaSp^6|LjX4;1E^$S6b z&Hd$-A47+>k3=Zi_WsVFf@YZCBtGRSy79Rv|N7&A^)FvmC}^T-$aa3Bwtua{E6k41 z=*-?~7`fof(N~?|`Gb>s))9d;*E=p>+g7m8{5!*oKQbMQXn-z)G!ujp+7vWhw!np| zVarL!k10rEU12*vc5{5-BzK$et(IQ41Z2!JyPpe&R_V**tIr{nJ1 z{)=)OzQ5XY0(q{sZr5*L(a8y4`+k1^+g4?YMNv4zQS9Dv|Cnab=}Re!Mp&BzK!_9o zM8*OD?G%b!1AqWU09Z!>fJP1g2w?Nuth7!8%vgk@KLD_w{-x~Qbp4pBJEx!^&cFd@ zgYm!xy4`mNVD3Kt!TzE)xPUue7*Sgc#;2=tDGUJU)QsVJwn4L-lrH8-%X9E9<=iZa z{R%6KJxa7eF`M|BKmhrTz)$@aWW9-dVs%j7X$wa{hu1t znSbn~drmR>A4dJB>3O}sW%K9Ul)oeVUuuT`f2TiF%m_>B!!Nf|=?EP_hTA)L8R??^ Q(^CV+1~=e;=%b?l4GSidW7wlEeTYjf*|*P@EnBL`ML?Y$^cg zOaTC_CsZeq1OP$^f}x?MsiC2~Wk}$4f}bY?2;wN3kBv@f^)Jcj9(Dxxl+ zjup2nP+^x+vJqyMZ6R(n{N%rKqos#&J@X!N_%`-KtKlv`^{wRa$eXv1yR{j&@xiWQ zijxCV?NO!=dY~)#U_WG1wkSYVs1w#I4;QB=KWGyZC5o?v06|48gx0jMbP$u5ZCGDa zbbYNpcm@0demOnB$NybkWC$`-3mlh!F*B=kvU(P-(p75id=^Oc+CK#g_Ma^{hR<=t zJIdt1vSV-z&WmkL#l?kVjY8XBP{{*ZNej<*ulxX9dZ<3tb7J_O7(lxYEKlNy(Wj3B z3g~Fx=9M=Q-t35!KLoG%r`SlGZ`yd>hHjdWvvo(8}&XlR;b2>O9hIcosK@0aX!moltZz&9o;FP9t z)aJ2{4}CL~H*x`uZb6f;dEm*J3zUL`Ac+XeFB@Y!(+OgHZ2BL?+ErRxxqN#&6+tQ6 z8NIi5WM?D}nR^}h2}|{5`yS|{016;zCl53aM2tJC#$)?RS_`aM3Eqx#IVd^+mQEJv zqKF~&;X@)qdg4QToAG9rJU{f0dxK8s31~s!l(*lsSqBy=0xrC12{SJI4WPAyysk%) zMsbrzZA^rblpcA053zdv3zqUyqG-e5gJKc}^?lL|!IOz6^Bo!DzofPKoG29rJbk*} zQaSN4iKDH8=JBPK$a2WxR*|6tn>Q22HG*Ux^3S~bxr||fD-zOQFD&zIYexyl#pSkE z3+g2cLU4v6;{5FR?W5u*r&^59$|stfyOLBR?_`1q5r*j(XONUdsPP4bBDgwbthFFD z(ag|a4_bHYk|?V!=|q7WYvz6KyWdCZoA|DI zNaW_t_pj|;b=1cn@b+k%t4{;P&`>!P1=iZ*R%IVi4jK@hOY(H%8v@VA%&X6zo0kuh z-H|qKD`octEwTh<#qKAmc4&?r(_kR0*mS(>_PQy&$mGuLnoQyi z;$vd^I@MgsH}lUfaSu?$iTaGFjNJ#jw(-YY6~+}`-y2fKDZYoRE3X(xAW9Wy73yt~ z#>}g$MU#*&f=a{Py1S`TRz3;VS^X-duB8qHYE5ZPE|E#BB4)1J%$mZ=)9TXbB6y{1 z)0I8wY;_@n_jxQ!`@5&_lDieVwV;Nd^2sW|svA3WF zeHwkaAgd44chh_6zA_@%vBiPuZu<7lYsJtIY6vYvw%(xLw*Gv`($wr~z-r3s%c=8| zM^y5p)}df2Bvka|)hiEdi%yQ5WJ(D`vC5-%@mcFx;H&|aKW%?l<=EKbHZ3tWqtBvn z5srz)Y{s3uE5#wUo@QAEKF_*sPFv}g{7QpgCKa4`ulikg9j2kEfz`-&eCpUd((r;t zP9{Glm;E{piRU*wZd+(xhadb0NIa&~j0$lxplJ zs{|6hesDFslb`8&)3th>A^xtjL-}t;>-WT};@}%A0Ta#>SS4vCQ>6_hF>_CIy9d+R zVcGjW#ewa}GUQ8t%vqA=nD;1QKP3A#vX`0gcG1!DRMhD@2O>VIriM9*ud~NE5FF8X z8$1NX5Q)8{K0(zO85t%QZV={3XYZW_(Xy1Hei(WwSi_K$JL z?;}e}6Vhzk+07xRue!aB!_n=nE$)vxBCs_j&u0Suc13t1?%5R%_6U_h=j_(QGaC{b zR2y@*zwazZzld@jgEmD*9jWMd?7|O^3+y)RZf@(Y4z6I=I2QoPZ$~Vl%V+w|sA*Pe zCQC>``=!>EhR(4Rw)K+(lGTdNTO-dPYt)JG9*y!dejZsXPd3Ubl2mVmww^y;DV{G5 z5w9-$YP;m5D@PD_IC!q+l9$CmPMI%sKJ6>F6y?i6NXS3JT~8Xik!-7UWxXPwX=-=A@YUeicGMFqwfYTs>AYP8aW?wM~K z_$v{gSP0vM*}wu(hA8ZHQ?C`~FXl!y$pbsdnu%%@t)muV+lFsmuN2`*%0qrO;zLQC+I=*A=J(a`Lg%yOh`C32wJ^$oq z>^~E*H0Ijm&Y@uw=UaTyO6V!{5vs$R!6xM16LwkRqpI^emrq?5U2K_WFUX86RPK0} z5(${uA-OT#1tL(9GVd23Gd(dnC~YoFE(6ij?$EpJx`7B>H>Jsw@K zqcGv|mgG2Q^BgxK^f`ZXelwf4P0Q$A?v1lj#r#DY4y%n0T;I$1=u=YG+xb}K++{6# zY}okK-umIS(wP!Oo715=+K-r^;7@Np>wgQvAx;?X6s#guO!(6MaC;yO{ zaP0W&?c74NbhQ6P``x~Qz~Ql&)*qKRsUz72banlP-;?0 zB1tPGd=kF1IN4YfiCFUbk{eq&d-Rv<`0-NXsq`$l!9B*7`&{x=XEtu|ebWhjtXx`E z`(w`C{f|j2yCst)Q<6_4Z)IN3EGhX?5^w>(=eHa2W9{c`eD1$uD`N6@*e|ci#?I0m zG*J6@I3eSMY`fKGvOVCupPkIVjawfXly0H$b+QH6m^{J#O#`*Jw| literal 3115 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 Q(@g`0dbf~&>SCh)4M}H`;s5{u diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/output.png b/src/main/resources/assets/vendingmachine/textures/gui/background/output.png index 08ca9e6ab96c7a2249544b90e76edba95771d35a..42ce1776cbef97c6f3cf716d74e157459ad9115c 100644 GIT binary patch delta 163 zcmV;U09^n21^NMyUw;6FNklJg3Oq>7! delta 679 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 literal 3165 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 E0HRB0xBvhE literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^hk>|*g&9b$IOk*rq*&4&eH|GXHuiJ>Nn{1`8HiROGkCiCxvX(^b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png b/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png index 16f834075f45b1fdf410a1c9d0a6a36f83a60a14..57348b66cbacba63379cff0842e3b00e1e81137e 100644 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^`amqn!3HE3vXsjJDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9EFK(QD{Mz;%3?SO)kC9V-A!TD(=<%vb93;~Imc_n&&t|1Dh zdWL$2hFu(D=YWcKq(*qAd3tIwZ~!^13{s4&42(dQ7Z6KB*&yd=FfxP1nSg9VMkWS9 zARPt7ne8lK@f;u<1R~Wr8D20WXmnc{7=V%!*cn)WY7LBx4Hy?d%mvxWx&UI;6L+v4@_9rJ0I+ZlqNqFVNd zDXw=tk)0SP7oN0J<-O;>bylZ$cmdKI;Vst0HDo^ga7~l literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#|)48wfLsOmTJu3QCu_ zMwA5Sr{P*AeOHKHUqKdq!Zu_%=xATcwqM9C3uXk3ZYu)=P;vr00}D{CfswHR;{u4eAUjzXK+Kv3WP<<` z&}1gC${^gS-s}9Ip1~mNr{9HouIM zn3bUMQr2M4lB*`RHXQABA#EwiX)+74=cqhqoBv5wDd$tLYs`jqi$7aGw!UymWTk=7 zOs?)z_ASLFaUUPuocUz+#JIR)*Yr-Syx0GA`sRy`or|6>&iJVjW!E*WUuo|io6fhJ z{w)8z`jt`es?T=org1+wCBm%jdLXN?l<@=88E1V{gTe~DWM4f5&VN# literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#|)48wfLsOmTJu3QCu_ zMwA5Sr&U&z-aWPw;ltl>dk}5{;w^|Gg^$nbg;SahV0S#dA MboFyt=akR{0Mn*5ivR!s diff --git a/src/main/resources/assets/vendingmachine/textures/gui/tabs_left.png b/src/main/resources/assets/vendingmachine/textures/gui/tabs_left.png index ba713ee7e04058abce7b364b56e8bbf74c1ef909..81b4502271871c8d92a401577d41cbec47c139ce 100644 GIT binary patch delta 346 zcmbOsv07q+1SbbG0|Nu=hl7b573;Yi|NsAg?AWnq&z_Z*mWGCg0;QH0U$q5NY$ZW{ z!9dyn{~0##U$P%4!dc)ESBeX3=Dz{4lD&+JKinf{Bqo+@k=8c{q}nSqm3taU N%+uA+Wt~$(69A^GaytM3 delta 301 zcmZ22F+*a41SbnK0|UbW2AzbBiuGKMK=%Lt|BoFz*4^D58X5}Z`bxfQ22yM#L4LtN zssH~OHt%1uA1K0E;1OBOz`%D9gc)~C%zg_Ll$iXGOPbR%C-0UWkk>PrjoZvz0LY30 z;>>my21X#A1;ik5vy7491<-aF9gvurSEA?V8lqsTXQ*d6xs+SJ-Xq_-`_pFOLqO%} zo-U3d9>?EK-pJVyAi^wM(D;Jw5zDSa(htmU){A=g?p64-j(g{~gvV^6!Xh>$&0U(D zX Date: Mon, 20 Apr 2026 17:16:27 +0200 Subject: [PATCH 2/4] optimizing images (#87) Co-authored-by: Ranzu <66495944+Ranzuu@users.noreply.github.com> --- .../background/list_trade_button_pressed.png | Bin 3012 -> 3008 bytes .../list_trade_button_unpressed.png | Bin 3012 -> 3008 bytes .../textures/gui/background/panel_side.png | Bin 3026 -> 3020 bytes .../gui/background/trade_button_pressed.png | Bin 453 -> 446 bytes .../gui/background/trade_button_unpressed.png | Bin 453 -> 446 bytes .../textures/gui/overlay/tile_cooldown.png | Bin 428 -> 399 bytes .../textures/gui/overlay/tile_selected.png | Bin 503 -> 447 bytes .../textures/gui/overlay/tile_tradeable.png | Bin 488 -> 445 bytes .../vendingmachine/textures/gui/tabs_left.png | Bin 3115 -> 3087 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/list_trade_button_pressed.png b/src/main/resources/assets/vendingmachine/textures/gui/background/list_trade_button_pressed.png index ad1846269b7a6c050328359817dc8c8e5b38618c..819ab787be1bd0b9ef46ae2be67bd6c5e8b5dd72 100644 GIT binary patch delta 78 zcmX>ien5PJ1Sboz-A!Z9bC`m*?R5;6Hpe|q(q#6(cnx;fGpgd~Y osA;37!AxT^rXHYb0m8rl00Y#4nblmsG5`Po07*qoM6N<$f?GKpaR2}S diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/list_trade_button_unpressed.png b/src/main/resources/assets/vendingmachine/textures/gui/background/list_trade_button_unpressed.png index cf2976005bcd849111910c3ccb256905ecdabeee..185b9418295ec553f2b2ef2db8993c8bbfcd1715 100644 GIT binary patch delta 78 zcmX>ien5PJ1Sboz-A!Z9bC`m*?R5;6Hpe|q(q#6(cnx;fGpgd~Y osA;37!AxT^rXHYb0m8rl00Y#4nblmsG5`Po07*qoM6N<$f?GKpaR2}S diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/panel_side.png b/src/main/resources/assets/vendingmachine/textures/gui/background/panel_side.png index e1a390a0fedf0764f2cd5011dc113cbe4f4e32f0..5f8dc329e0fe2b37d3a4892f429d5f5a16aedc25 100644 GIT binary patch delta 93 zcmca4enxzP1SbnH1)o4weI&!{F)a=d#Wzp$P!V0wAvd delta 99 zcmX>jeo1_S1SbnK0|P_ikuzc&6_dIBEInNuLn02pJ#EO#pdi3bP0l+XkK=`kc4 diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/trade_button_pressed.png b/src/main/resources/assets/vendingmachine/textures/gui/background/trade_button_pressed.png index c1acaaaffac8733099f71283362fe804a5bb6b12..146996ae2d2a0e7d03fb735d652690d368fa1473 100644 GIT binary patch delta 104 zcmX@gypMT;1SbnK0|P^_R+j!oMK8u+J5LwK5RKsEg2V%CF)|V|EE^fc*xB6H2yrQJ zs_Gn=(byQ65t8)6OM_WeW=iiy#ssItV`_O17`z-K7`mAmZvAo7UoeR`5@;lYr>mdK II;Vst0MG9pX8-^I delta 111 zcmV-#0FeK_1H}W77zqdi0001%+J`Q&AxZ&SMM*?KR5(xVlratfFbD#v^8Yti8t0b1 z-Xg<=H~|tiESXp~r@XU6RJ;5z$*iY*ef$UG-}%f>`Gl^EHUgaus$H96LvACa2v0+V Ro)G{5002ovPDHLkV1hA1E4Kgu diff --git a/src/main/resources/assets/vendingmachine/textures/gui/background/trade_button_unpressed.png b/src/main/resources/assets/vendingmachine/textures/gui/background/trade_button_unpressed.png index 9989293355bad425e21db930902d14c85b655614..4e8e6559bb072698a46b412ce549d7d54a1347c9 100644 GIT binary patch delta 104 zcmX@gypMT;1SbnK0|P^_R+j!oMK8u+J5LwK5RKsEg2V%CF)|V|EE^fc*xB6H2yrQJ zs_Gn=(byQ65t8)6OM_WeW=iiy#ssItV`_O17`z-K7`mAmZvAo7UoeR`5@;lYr>mdK II;Vst0MG9pX8-^I delta 111 zcmV-#0FeK_1H}W77zqdi0001%+J`Q&AxZ&SMM*?KR5(xVlratfFbD#v^8Yti8t0b1 z-Xg<=H~|tiESXp~r@XU6RJ;5z$*iY*ef$UG-}%f>`Gl^EHUgaus$H96LvACa2v0+V Ro)G{5002ovPDHLkV1hA1E4Kgu diff --git a/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_cooldown.png b/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_cooldown.png index 6f0815666c289b09e3cb3f0031bdacbedc9c0007..58d8ea15782b5dcc9df19836e945f42e402f97e3 100644 GIT binary patch delta 88 zcmZ3(+|Rtho-x4M)5S3);_%z^8+jQFcn)v)^FL_bYv#LFD;F@nzj8+X_KD3OvK@H$ je?SKMKaviFF#od7y!I|Yxy0cZ0}yz+`njxgN@xNA>OL*u delta 117 zcmV-*0E+*Q1FQqEKLKr6NklY+vBU2qWh?u-hEk8RAWi976 zbG~lmtaz310~hEx>cL~H#)IQo9M9r-7RR$Vp2hJjj%RT^%NOzWsa0}s4>q|Cf~bfE X7cvAa7k`F600000NkvXXu0mjf_pUEi diff --git a/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png b/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png index 57348b66cbacba63379cff0842e3b00e1e81137e..dbf43707203fa9df4587f6f9581f5a3d283ae759 100644 GIT binary patch delta 137 zcmV;40CxZP1HS{XKLLMhNklrl^D=MH==`oAo~{( zNfO~6NpY3ub|^_9so`DVxq%_RcGh*c@Kxlh&JMo|82pa;#5??q;K73j4<0=DQqRV4oMm-JbSS`Zr<#0000uIQ#IOu&0#hgBLI2K)ROXyJfu&xH1M6YJ#qiu>3Lp zrjk4(e+e(kRPx?1FE6{G?SxAH?gPt2+h`H;T7+yB=1T7t~$%O vO1>Re%l#K=dzxcGH3qh`t7Sa7K0tH=U6MC7|BPvP00000NkvXXu0mjf*Gtw#1l_E@#*o$gBdjb o#YyrTyx;gB7w`~|_JaVQ1_&Qy4}zu&$%?JL5ah$`q+E5}68%%0Gm2bYAh|*_q_4 zkzQWL)-KB=?=Skx+32x}qUED#`6yaGik6Qey}Ue$?Xvu*^Q$WAGE=JaKCYGv;K~#O gD@DL+adiRk0?b1%H8bbL_5c6?07*qoM6N<$f;GWZ^i`7zqRe0002M04!j!A$|*RTS-JgR7l5T2t@$_454U%0Vsw7(6|hQ z6fgo6FexE`0z&|!APN{&FsfiEDo{2?00V{q5f^0O$PgN2jG`bAMcze#fpFFv&6}eN nMiq?a&C%!{RWO=2iOrh;)pb=b2;)yQ00000NkvXXu0mjf8hsQw{9MI?*7E#RZ36uRt|V<}+Fbwu5dc60a0 Date: Wed, 22 Apr 2026 23:10:37 +0800 Subject: [PATCH 3/4] some changes (#88) --- .../blocks/gui/MTEVendingMachineGui.java | 2 +- .../blocks/gui/TradeItemDisplayWidget.java | 6 +----- .../vendingmachine/gui/GuiTextures.java | 14 +++++++------- .../vendingmachine/util/GuiParams.java | 4 +--- .../textures/gui/overlay/tile_selected.png | Bin 447 -> 2923 bytes 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java b/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java index 3830cc8..38a8395 100644 --- a/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java +++ b/src/main/java/com/cubefury/vendingmachine/blocks/gui/MTEVendingMachineGui.java @@ -87,7 +87,7 @@ public class MTEVendingMachineGui extends MTEMultiBlockBaseGui { public static final int TILE_ITEMS_PER_ROW = 3; public static final int TILE_ITEM_HEIGHT = 25; public static final int TILE_ITEM_WIDTH = 47; - public static final int LIST_ITEM_HEIGHT = 15; + public static final int LIST_ITEM_HEIGHT = 14; public static final int LIST_ITEM_WIDTH = 153; private static final int COIN_COLUMN_WIDTH = 40; diff --git a/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java b/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java index 3b63599..7678cb0 100644 --- a/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java +++ b/src/main/java/com/cubefury/vendingmachine/blocks/gui/TradeItemDisplayWidget.java @@ -3,7 +3,6 @@ import net.minecraft.item.ItemStack; import org.jetbrains.annotations.NotNull; -import org.lwjgl.opengl.GL11; import com.cleanroommc.modularui.api.drawable.IKey; import com.cleanroommc.modularui.api.value.ISyncOrValue; @@ -94,17 +93,14 @@ public void draw(ModularGuiContext context, WidgetThemeEntry widgetTheme) { GuiDraw.drawText(" " + this.display.display.stackSize, 4, 9, 1.0f, textColor, false); GuiDraw.drawItem(item, 26, 4, 16, 16, context.getCurrentDrawingZ()); if (this.display.tradeableNow) { - GL11.glColor4f(1f, 1f, 1f, 1f); GuiTextures.OVERLAY_TRADEABLE .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } if (!this.checkVmActive() || this.display.hasCooldown || !this.display.enabled) { - GL11.glColor4f(1f, 1f, 1f, 1f); GuiTextures.OVERLAY_COOLDOWN .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } if (this.display.tgID.equals(this.rootPanel.currentSelected)) { - GL11.glColor4f(1f, 1f, 1f, 1f); GuiTextures.OVERLAY_SELECTED .draw(0, 0, MTEVendingMachineGui.TILE_ITEM_WIDTH, MTEVendingMachineGui.TILE_ITEM_HEIGHT); } @@ -147,7 +143,7 @@ public void draw(ModularGuiContext context, WidgetThemeEntry widgetTheme) { GuiDraw.drawRect( 1, 1, - 3, + 2, MTEVendingMachineGui.LIST_ITEM_HEIGHT - 2, GuiParams.trade_display_list_current_selected_color.getColor(true)); } diff --git a/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java b/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java index 6e6cadc..e422cad 100644 --- a/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java +++ b/src/main/java/com/cubefury/vendingmachine/gui/GuiTextures.java @@ -10,16 +10,10 @@ public final class GuiTextures { - public static final UITexture OVERLAY_TRADE_DISABLED = UITexture.builder() - .location(VendingMachine.MODID, "gui/overlay/trade_disabled") - .imageSize(47, 25) - .canApplyTheme() - .name("trade_disabled") - .build(); - public static final UITexture SIDE_PANEL_BACKGROUND = UITexture.builder() .location(VendingMachine.MODID, "gui/background/panel_side") .imageSize(50, 214) + .adaptable(4) .canApplyTheme() .name("panel_side_background") .build(); @@ -36,6 +30,7 @@ public final class GuiTextures { .location(VendingMachine.MODID, "gui/background/trade_button_unpressed") .canApplyTheme() .imageSize(47, 25) + .adaptable(4) .name("trade_button_unpressed") .build(); @@ -43,6 +38,7 @@ public final class GuiTextures { .location(VendingMachine.MODID, "gui/background/trade_button_pressed") .canApplyTheme() .imageSize(47, 25) + .adaptable(4) .name("trade_button_pressed") .build(); @@ -50,6 +46,7 @@ public final class GuiTextures { .location(VendingMachine.MODID, "gui/background/list_trade_button_unpressed") .canApplyTheme() .imageSize(154, 14) + .adaptable(4) .name("list_trade_button_unpressed") .build(); @@ -63,6 +60,7 @@ public final class GuiTextures { public static final UITexture OVERLAY_TRADEABLE = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/tile_tradeable") .imageSize(47, 25) + .adaptable(4) .nonOpaque() .name("overlay_tradeable") .build(); @@ -70,6 +68,7 @@ public final class GuiTextures { public static final UITexture OVERLAY_SELECTED = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/tile_selected") .imageSize(47, 25) + .adaptable(4) .nonOpaque() .name("overlay_selected") .build(); @@ -77,6 +76,7 @@ public final class GuiTextures { public static final UITexture OVERLAY_COOLDOWN = UITexture.builder() .location(VendingMachine.MODID, "gui/overlay/tile_cooldown") .imageSize(47, 25) + .adaptable(4) .nonOpaque() .name("overlay_cooldown") .build(); diff --git a/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java b/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java index 2b5b6e2..c52efa9 100644 --- a/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java +++ b/src/main/java/com/cubefury/vendingmachine/util/GuiParams.java @@ -22,9 +22,7 @@ public enum GuiParams { trade_display_list_tradable_now_color(0x883CFF00), trade_display_list_untradable_now_color(0x88333333), trade_display_list_current_selected_color(0xAA039BE5), - trade_display_text_color(0xFFFFFFFF), - trade_display_tile_disabled_corner_radius(1), - trade_display_tile_disabled_corner_radius_segments(1), + trade_display_text_color(0xFFFFFF), // new line to prevent merge conflicts ; diff --git a/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png b/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png index dbf43707203fa9df4587f6f9581f5a3d283ae759..2610ec04c9435682945f3a520e2d71dfc0b75776 100644 GIT binary patch delta 2916 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 O0000 Date: Wed, 22 Apr 2026 17:11:33 +0200 Subject: [PATCH 4/4] optimizing images (#89) Co-authored-by: Ranzu <66495944+Ranzuu@users.noreply.github.com> --- .../textures/gui/overlay/tile_selected.png | Bin 2923 -> 2894 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png b/src/main/resources/assets/vendingmachine/textures/gui/overlay/tile_selected.png index 2610ec04c9435682945f3a520e2d71dfc0b75776..102be94f45641dccc4fe07d96bb4e43cdd408ad5 100644 GIT binary patch delta 119 zcmV--0EqwV7S0y1-wJP9Nkl`N%<=41914&D_*>K@#4jc7cXAC_z&>3HgzrFxEe^^AOv}D ZGXPZgLT?HXHk<$e002ovPDHLkV1i|THYNZ7 delta 149 zcmV;G0BZlv7V8$U-wJy6#CEboJkE_00000NkvXXu0mjf D2y90~