diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index f5f2207cb9..6f040714e8 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -410,10 +410,7 @@ public class PlacementFragment extends Fragment{ } Seq getCategories(){ - returnCatArray.clear(); - returnCatArray.addAll(Category.all); - returnCatArray.sort((c1, c2) -> Boolean.compare(categoryEmpty[c1.ordinal()], categoryEmpty[c2.ordinal()])); - return returnCatArray; + return returnCatArray.clear().addAll(Category.all).sort((c1, c2) -> Boolean.compare(categoryEmpty[c1.ordinal()], categoryEmpty[c2.ordinal()])); } Seq getByCategory(Category cat){ @@ -421,18 +418,11 @@ public class PlacementFragment extends Fragment{ } Seq getUnlockedByCategory(Category cat){ - return returnArray.selectFrom(content.blocks(), block -> block.category == cat && block.isVisible() && unlocked(block)).sort((b1, b2) -> { - int locked = -Boolean.compare(unlocked(b1), unlocked(b2)); - if(locked != 0) return locked; - return Boolean.compare(!b1.isPlaceable(), !b2.isPlaceable()); - }); + return returnArray.selectFrom(content.blocks(), block -> block.category == cat && block.isVisible() && unlocked(block)).sort((b1, b2) -> Boolean.compare(!b1.isPlaceable(), !b2.isPlaceable())); } Block getSelectedBlock(Category cat){ - if(selectedBlocks.get(cat) == null){ - selectedBlocks.put(cat, getByCategory(cat).find(this::unlocked)); - } - return selectedBlocks.get(cat); + return selectedBlocks.get(cat, () -> getByCategory(cat).find(this::unlocked)); } boolean unlocked(Block block){