From 0aa313e37c3754a1751afd3f6ff169c289c01acc Mon Sep 17 00:00:00 2001 From: zethnest <16971676+zethnest@users.noreply.github.com> Date: Wed, 17 Jun 2020 04:29:44 +0800 Subject: [PATCH] fixed-hotkey implementation (#2170) --- .../ui/fragments/PlacementFragment.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 9703c32d58..9ca009c3d0 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -115,7 +115,7 @@ public class PlacementFragment extends Fragment{ for(int i = 0; i < blockSelect.length; i++){ if(Core.input.keyTap(blockSelect[i])){ if(i > 9) { //select block directionally - Seq blocks = getByCategory(currentCategory); + Seq blocks = getUnlockedByCategory(currentCategory); Block currentBlock = getSelectedBlock(currentCategory); for(int j = 0; j < blocks.size; j++){ if(blocks.get(j) == currentBlock){ @@ -140,7 +140,7 @@ public class PlacementFragment extends Fragment{ } }else if(blockSelectEnd || Time.timeSinceMillis(blockSelectSeqMillis) > Core.settings.getInt("blockselecttimeout")){ //1st number of combo, select category //select only visible categories - if(!getByCategory(Category.all[i]).isEmpty()){ + if(!getUnlockedByCategory(Category.all[i]).isEmpty()){ currentCategory = Category.all[i]; if(input.block != null){ input.block = getSelectedBlock(currentCategory); @@ -158,6 +158,7 @@ public class PlacementFragment extends Fragment{ blockSelectEnd = true; } Seq blocks = getByCategory(currentCategory); + if(!unlocked(blocks.get(i))) return true; input.block = (i < blocks.size) ? blocks.get(i) : null; selectedBlocks.put(currentCategory, input.block); blockSelectSeqMillis = Time.millis(); @@ -203,7 +204,8 @@ public class PlacementFragment extends Fragment{ ButtonGroup group = new ButtonGroup<>(); group.setMinCheckCount(0); - for(Block block : getByCategory(currentCategory)){ + for(Block block : getUnlockedByCategory(currentCategory)){ + if(!unlocked(block)) continue; if(index++ % rowWidth == 0){ blockTable.row(); } @@ -384,7 +386,7 @@ public class PlacementFragment extends Fragment{ //update category empty values for(Category cat : Category.all){ - Seq blocks = getByCategory(cat); + Seq blocks = getUnlockedByCategory(cat); categoryEmpty[cat.ordinal()] = blocks.isEmpty(); } @@ -423,6 +425,16 @@ public class PlacementFragment extends Fragment{ } Seq getByCategory(Category cat){ + returnArray.clear(); + for(Block block : content.blocks()){ + if(block.category == cat && block.isVisible()){ + returnArray.add(block); + } + } + return returnArray; + } + + Seq getUnlockedByCategory(Category cat){ returnArray.clear(); for(Block block : content.blocks()){ if(block.category == cat && block.isVisible() && unlocked(block)){