From 7d81c228a34383285c31c24f5aa3448b8ccc4d8f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 6 Sep 2025 23:27:40 -0400 Subject: [PATCH] v3.2.4: slight adjustments to new status pane and menu pane UI --- core/src/main/assets/interfaces/menu_pane.png | Bin 233 -> 242 bytes .../main/assets/interfaces/status_pane.png | Bin 1051 -> 1061 bytes .../scenes/GameScene.java | 21 +++++++++------ .../shatteredpixeldungeon/ui/MenuPane.java | 18 ++++++------- .../shatteredpixeldungeon/ui/StatusPane.java | 24 +++++++++--------- 5 files changed, 34 insertions(+), 29 deletions(-) diff --git a/core/src/main/assets/interfaces/menu_pane.png b/core/src/main/assets/interfaces/menu_pane.png index 83666e69360ad57e106d92858e8bc64ac3936a00..cc6d1d92f5e632e8d9f37fd608f41d86d61ac9e8 100644 GIT binary patch delta 206 zcmaFK_=$0XPJMMlaYjyJXk@(X5gcy=QV$f@*naSW+oOimDSVRYj0Ii_)7X5&>IUP%_?4YSG>8p|de@KG_4 z)kxUN1r#z^)uzPUqI;?!nn&V*f`k{ZBICQo0`YGf1KejzO7sLWGFvgU?qV>K7m;H- zQ4_F2eF4{ua+3v|XXZ3$C2Y-N1WLSOT=7jxTGC(w3q!KEOF+teMO&aN7(8A5T-G@y GGywowkwP#4 delta 197 zcmV;$06PEj0qFsdEPrThVO3dBqo$Q5Cm|#zASx^+DJvu*Bp!Q!b8~oXkCTLhhneSBZG->TZACgA_is!1~4#!QbS09`!K{;dmz*%20jM#AS4}t0!RUw4~hl{ zQ~}kr1T=y20#pHwjs|2tC>jh;R-Mup6r_g00000NkvXXu0mjfc~d?q diff --git a/core/src/main/assets/interfaces/status_pane.png b/core/src/main/assets/interfaces/status_pane.png index 17355fe16caa6510caea275b9e563864366d9d29..cbe1ff0000f7fed1175d9f999b01f5f6cf014921 100644 GIT binary patch delta 778 zcmV+l1NHoy2&D*+EC~Pr06suDRasDxHUEDNV^0_W0007XQchF<0OhwZN&o-?$4Nv% zRCodG+6ikDK@`C8|C^aj4~P<|^b4fe0xA^bKD_lSdn-2-DCttD_zkQG8eH3uowYy~ z*k%eo*qH^KAJ@Wg{F|^Zg?U2n1P#FmH)#a)JQ@x`2otFtT1|~IfI(FAA<93$@~8vcuL&VPZ!K}CTvi@^fOR%}WZ9`|U4RGl0i$rh$Z{?*Uw}5i zI1@fH2%d=A02>al20Q}?kR-quLQD?G0XZNCwFua9H$8oI+})Qc>pk*ruYh=pko122tbkME7+oItHL@1;B1P3 z?TR&KZwatx5(MmiC-4@GNX30)jkQOtRF=p@SZAQ+iA@IP7??al>oa|l$0&b&qF3?+ zosaZOo}%)Bp2;(`-qR;}j?z1NB`?rNCeT?^8Fqso}yQtH+pc!2?3BrcZkocMwS-gcL%WL1cEF2_IRK45D_} ztl2Z98AQj2gdL?AM0pS)f7_u$D*$02h=O%(_-m_=rTtL#Lpm+zBlMUG(+;oMQ z1vX5IQ}(|LeDmY95DpI;G6d!o62~;+HADj8aKuSk~D53(gT0) zh?zAtg-FqCHzGM8+|7ykdsY)j^0*P{0X}$Qg6Fi_lHx(UCSc-;nRsqR5|J!`3yzrJ z5W-jh=N&QLffzY}K?0m3#^rzl1+T zUCagaz=1a`$_s$iVu-JRfL; z3A|Hrz=tdLDu*$h{l!a!H9s<4lImCbq)$oo3%$~3r1_bC>2s3&M9=gEseXT?Px_KX zKhP_EMVjyFm%b*+cl1o(aNt`86~wr50DfeFk>!9KkOOi+4#)vHK)l3bPDmW%x58RL zIN~G>qzxD_kThU0kTzg2kThU0kTzg2kTzg|@%ICHz>ouSz*`>hrlRFX3AlF_|4kAC zM8VFpV2l8!=j{B^)Z+vc?!SLK+~R4Z0YfPFces`T!5s+*jr|>Nbie?#@7?|mH#T4Z z+V^gMhuaPqBEsU@{tmYtFhs53w@=u)!ivsrryO(tezk2MB}}N;^8Z)`;FuA&QO%6@ zQJ4rYUlaFURnOP7kCwlJk2%zyKD*DX4!b2T;VE$n~VHwDPM?sCM yCDse`g871FAOr3N)vKmhAIuZx8GFiF+ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index b88cc431e..fb5c310c2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -368,11 +368,6 @@ public class GameScene extends PixelScene { int uiSize = SPDSettings.interfaceSize(); - menu = new MenuPane(); - menu.camera = uiCamera; - menu.setPos( uiCamera.width-MenuPane.WIDTH-insets.right, largeInsetTop); - add(menu); - //TODO make top bar transparent and add 1px of top status and menu bar to it? //most cutouts supported by the game are small @@ -397,14 +392,24 @@ public class GameScene extends PixelScene { } } + float screentop = largeInsetTop; + if (screentop == 0 && uiSize == 0){ + screentop--; //on mobile UI, if we render in fullscreen, clip the top 1px; + } + + menu = new MenuPane(); + menu.camera = uiCamera; + menu.setPos( uiCamera.width-MenuPane.WIDTH-insets.right, screentop); + add(menu); + status = new StatusPane( SPDSettings.interfaceSize() > 0 ); status.camera = uiCamera; StatusPane.cutoutOffset = mediumCutoutOffset; - status.setRect(insets.left, uiSize > 0 ? uiCamera.height-39-insets.bottom : largeInsetTop, uiCamera.width - insets.left - insets.right, 0 ); + status.setRect(insets.left, uiSize > 0 ? uiCamera.height-39-insets.bottom : screentop, uiCamera.width - insets.left - insets.right, 0 ); add(status); if (uiSize < 2 && largeInsetTop != 0) { - SkinnedBlock bar = new SkinnedBlock(uiCamera.width, largeInsetTop, TextureCache.createSolid(0xFF1C1E18)); + SkinnedBlock bar = new SkinnedBlock(uiCamera.width, largeInsetTop, TextureCache.createSolid(0x88000000)); bar.camera = uiCamera; add(bar); @@ -415,7 +420,7 @@ public class GameScene extends PixelScene { boss = new BossHealthBar(); boss.camera = uiCamera; - boss.setPos( insets.left + 6 + (uiCamera.width - insets.left - insets.right - boss.width())/2, largeInsetTop + 21 + mediumCutoutOffset); + boss.setPos( (uiCamera.width - boss.width())/2, screentop + 26); add(boss); resume = new ResumeIndicator(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java index 829f36118..01c3b87d4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java @@ -75,10 +75,10 @@ public class MenuPane extends Component { protected void createChildren() { super.createChildren(); - bg = new Image(Assets.Interfaces.MENU, 1, 0, 31, 20); + bg = new Image(Assets.Interfaces.MENU, 1, 0, 31, 21); add(bg); - versionOverflowBG = new NinePatch(bg.texture, 1, 23, 6, 7, 3, 0, 2, 0); + versionOverflowBG = new NinePatch(bg.texture, 1, 22, 6, 8, 3, 0, 2, 0); add(versionOverflowBG); version = new BitmapText( "v" + Game.version , PixelScene.pixelFont); @@ -168,14 +168,14 @@ public class MenuPane extends Component { float overFlow = version.width()-(bg.width()-4-rightMargin); if (overFlow >= 1){ version.x = x + 2 - overFlow; - versionOverflowBG.size(overFlow+3, 7); + versionOverflowBG.size(overFlow+3, 8); versionOverflowBG.x = version.x-3; versionOverflowBG.y = y; } else { version.x = x + 3; versionOverflowBG.visible = false; } - version.y = y + 2 - (version.baseLine()*version.scale.y)/2f; + version.y = y + 3 - (version.baseLine()*version.scale.y)/2f; version.y -= .001f; PixelScene.align(version); @@ -184,7 +184,7 @@ public class MenuPane extends Component { btnJournal.setPos( btnMenu.left() - btnJournal.width() + 2, y ); depthIcon.x = btnJournal.left() - 7 + (7 - depthIcon.width())/2f - 0.1f; - depthIcon.y = y+7; + depthIcon.y = y+8; PixelScene.align(depthIcon); depthText.scale.set(PixelScene.align(0.67f)); @@ -239,7 +239,7 @@ public class MenuPane extends Component { super(); width = bg.width + 4; - height = bg.height + 9; + height = bg.height + 10; } @Override @@ -267,7 +267,7 @@ public class MenuPane extends Component { super.layout(); bg.x = x + 2; - bg.y = y + 7; + bg.y = y + 8; journalIcon.x = bg.x + (bg.width() - journalIcon.width())/2f; journalIcon.y = bg.y + (bg.height() - journalIcon.height())/2f; @@ -372,7 +372,7 @@ public class MenuPane extends Component { super(); width = image.width + 4; - height = image.height + 9; + height = image.height + 10; } @Override @@ -388,7 +388,7 @@ public class MenuPane extends Component { super.layout(); image.x = x + 2; - image.y = y + 7; + image.y = y + 8; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java index e7aebe87a..5993b7efb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java @@ -90,7 +90,7 @@ public class StatusPane extends Component { if (large) bg = new NinePatch( asset, 0, 64, 41, 39, 33, 0, 4, 0 ); //right part is transparent now so Ninepatching doesn't actually do anything - else bg = new NinePatch( asset, 0, 0, 128, 35, 85, 0, 45, 0 ); + else bg = new NinePatch( asset, 0, 0, 128, 38, 85, 0, 45, 0 ); add( bg ); heroInfo = new Button(){ @@ -121,16 +121,16 @@ public class StatusPane extends Component { add( compass ); if (large) rawShielding = new Image(asset, 0, 112, 128, 9); - else rawShielding = new Image(asset, 0, 40, 50, 4); + else rawShielding = new Image(asset, 0, 44, 50, 4); rawShielding.alpha(0.5f); add(rawShielding); if (large) shieldedHP = new Image(asset, 0, 112, 128, 9); - else shieldedHP = new Image(asset, 0, 40, 50, 4); + else shieldedHP = new Image(asset, 0, 44, 50, 4); add(shieldedHP); if (large) hp = new Image(asset, 0, 103, 128, 9); - else hp = new Image(asset, 0, 36, 50, 4); + else hp = new Image(asset, 0, 40, 50, 4); add( hp ); hpText = new BitmapText(PixelScene.pixelFont); @@ -147,7 +147,7 @@ public class StatusPane extends Component { add(heroInfoOnBar); if (large) exp = new Image(asset, 0, 121, 128, 7); - else exp = new Image(asset, 0, 44, 17, 4); + else exp = new Image(asset, 0, 48, 17, 4); add( exp ); expText = new BitmapText(PixelScene.pixelFont); @@ -173,7 +173,7 @@ public class StatusPane extends Component { @Override protected void layout() { - height = large ? 39 : 35; + height = large ? 39 : 38; bg.x = x; bg.y = y; @@ -181,10 +181,10 @@ public class StatusPane extends Component { else bg.size( width, bg.height ); avatar.x = bg.x - avatar.width / 2f + 15; - avatar.y = bg.y - avatar.height / 2f + (large ? 15 : 14); + avatar.y = bg.y - avatar.height / 2f + 16; PixelScene.align(avatar); - heroInfo.setRect( x, y, 30, large ? 40 : 35 ); + heroInfo.setRect( x, y, 30, large ? 40 : 36 ); compass.x = avatar.x + avatar.width / 2f - compass.origin.x; compass.y = avatar.y + avatar.height / 2f - compass.origin.y; @@ -213,10 +213,10 @@ public class StatusPane extends Component { busy.y = y + bg.height - 9; } else { exp.x = x+2; - exp.y = y+29; + exp.y = y+30; hp.x = shieldedHP.x = rawShielding.x = x + 30; - hp.y = shieldedHP.y = rawShielding.y = y + 1; + hp.y = shieldedHP.y = rawShielding.y = y + 2; hpText.scale.set(PixelScene.align(0.5f)); hpText.x = hp.x + 1; @@ -232,7 +232,7 @@ public class StatusPane extends Component { heroInfoOnBar.setRect(heroInfo.right(), y, 50, 9); - buffs.setRect( x + 31, y + 7 + cutoutOffset, 50, 8 ); + buffs.setRect( x + 31, y + 8 + cutoutOffset, 50, 8 ); busy.x = x + 1; busy.y = y + 37; @@ -320,7 +320,7 @@ public class StatusPane extends Component { level.text( Integer.toString( lastLvl ) ); level.measure(); level.x = x + 25.5f - level.width() / 2f; - level.y = y + 28.0f - level.baseLine() / 2f; + level.y = y + 31.0f - level.baseLine() / 2f; } PixelScene.align(level); }