diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index 638ccad12e..394f464045 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -142,7 +142,8 @@ public class TypeIO{ case 5 -> content.getByID(ContentType.all[read.b()], read.s()); case 6 -> { short length = read.s(); - IntSeq arr = new IntSeq(); for(int i = 0; i < length; i ++) arr.add(read.i()); + IntSeq arr = new IntSeq(length); + for(int i = 0; i < length; i ++) arr.add(read.i()); yield arr; } case 7 -> new Point2(read.i(), read.i()); diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index 762051b93d..1915bcd974 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -93,21 +93,11 @@ public class ResearchDialog extends BaseDialog{ shouldPause = true; - Runnable checkMargin = () -> { - if(Core.graphics.isPortrait() && showTechSelect){ - itemDisplay.marginTop(60f); - }else{ - itemDisplay.marginTop(0f); - } - itemDisplay.invalidate(); - itemDisplay.layout(); - }; - - onResize(checkMargin); + onResize(this::checkMargin); shown(() -> { - checkMargin.run(); - Core.app.post(checkMargin); + checkMargin(); + Core.app.post(this::checkMargin); Planet currPlanet = ui.planet.isShown() ? ui.planet.state.planet : @@ -187,6 +177,16 @@ public class ResearchDialog extends BaseDialog{ }); } + void checkMargin(){ + if(Core.graphics.isPortrait() && showTechSelect){ + itemDisplay.marginTop(60f); + }else{ + itemDisplay.marginTop(0f); + } + itemDisplay.invalidate(); + itemDisplay.layout(); + } + public void rebuildItems(){ items = new ItemSeq(){ //store sector item amounts for modifications @@ -698,6 +698,10 @@ public class ResearchDialog extends BaseDialog{ } addChild(infoTable); + + checkMargin(); + Core.app.post(() -> checkMargin()); + infoTable.pack(); infoTable.act(Core.graphics.getDeltaTime()); }