From f944d3d5791a0edb69591153708d75c16b76ab06 Mon Sep 17 00:00:00 2001 From: JrTRinny <85090668+JrTRinny@users.noreply.github.com> Date: Thu, 21 Oct 2021 23:40:34 +0700 Subject: [PATCH] deselectable content selection UI (#6205) --- core/src/mindustry/content/Blocks.java | 2 -- .../mindustry/world/blocks/payloads/Constructor.java | 12 ++++++++++++ .../world/blocks/payloads/PayloadSource.java | 11 +++++++++++ .../mindustry/world/blocks/units/UnitFactory.java | 11 +++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 99b4f79633..2d32e621be 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2163,14 +2163,12 @@ public class Blocks implements ContentList{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; - group = BlockGroup.units; }}; payloadVoid = new PayloadVoid("payload-void"){{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; - group = BlockGroup.units; }}; //TODO move diff --git a/core/src/mindustry/world/blocks/payloads/Constructor.java b/core/src/mindustry/world/blocks/payloads/Constructor.java index f1583a8532..29bc115041 100644 --- a/core/src/mindustry/world/blocks/payloads/Constructor.java +++ b/core/src/mindustry/world/blocks/payloads/Constructor.java @@ -6,6 +6,7 @@ import arc.scene.ui.layout.*; import arc.util.*; import arc.util.io.*; import mindustry.*; +import mindustry.gen.*; import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.storage.*; @@ -57,6 +58,17 @@ public class Constructor extends BlockProducer{ ItemSelection.buildTable(table, content.blocks().select(Constructor.this::canProduce), () -> recipe, this::configure); } + @Override + public boolean onConfigureTileTapped(Building other){ + if(this == other){ + deselect(); + configure(null); + return false; + } + + return true; + } + @Override public Object config(){ return recipe; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadSource.java b/core/src/mindustry/world/blocks/payloads/PayloadSource.java index d1f37a436b..0ce47e0828 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadSource.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadSource.java @@ -91,6 +91,17 @@ public class PayloadSource extends PayloadBlock{ () -> (UnlockableContent)config(), this::configure); } + @Override + public boolean onConfigureTileTapped(Building other){ + if(this == other){ + deselect(); + configure(null); + return false; + } + + return true; + } + @Override public Object config(){ return unit == null ? block : unit; diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 948b85f0ff..7daff235ea 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -166,6 +166,17 @@ public class UnitFactory extends UnitBlock{ } } + @Override + public boolean onConfigureTileTapped(Building other){ + if(this == other){ + deselect(); + configure(null); + return false; + } + + return true; + } + @Override public boolean acceptPayload(Building source, Payload payload){ return false;