From 6a2c6e3a749f4edf908314aa7cf09d71244e36fc Mon Sep 17 00:00:00 2001 From: JniTrRny <85090668+JniTrRny@users.noreply.github.com> Date: Mon, 8 Aug 2022 00:10:12 +0700 Subject: [PATCH] the return of deselectable (#7319) --- core/src/mindustry/ui/dialogs/ColorPicker.java | 2 +- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- .../world/blocks/logic/CanvasBlock.java | 10 ++++++++++ .../world/blocks/payloads/PayloadSource.java | 18 ++++++++++++++++++ .../world/blocks/power/LightBlock.java | 13 ++++++++++++- .../world/blocks/units/UnitAssembler.java | 4 +++- 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ColorPicker.java b/core/src/mindustry/ui/dialogs/ColorPicker.java index 97eb3ea13e..8fa0856f4f 100644 --- a/core/src/mindustry/ui/dialogs/ColorPicker.java +++ b/core/src/mindustry/ui/dialogs/ColorPicker.java @@ -158,7 +158,7 @@ public class ColorPicker extends BaseDialog{ return false; } }).get(); - }); + }).grow(); buttons.clear(); addCloseButton(); diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index dda0708dd7..d99304ca55 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -60,7 +60,7 @@ public class ModsDialog extends BaseDialog{ searchtxt = res; rebuildBrowser(); }).growX().get(); - table.button(Icon.list, Styles.clearNonei, 32f, () -> { + table.button(Icon.list, Styles.emptyi, 32f, () -> { orderDate = !orderDate; rebuildBrowser(); }).update(b -> b.getStyle().imageUp = (orderDate ? Icon.list : Icon.star)).size(40f).get() diff --git a/core/src/mindustry/world/blocks/logic/CanvasBlock.java b/core/src/mindustry/world/blocks/logic/CanvasBlock.java index a74316bb8d..feb17ccfa0 100644 --- a/core/src/mindustry/world/blocks/logic/CanvasBlock.java +++ b/core/src/mindustry/world/blocks/logic/CanvasBlock.java @@ -224,6 +224,16 @@ public class CanvasBlock extends Block{ }).size(40f); } + @Override + public boolean onConfigureBuildTapped(Building other){ + if(this == other){ + deselect(); + return false; + } + + return true; + } + @Override public byte[] config(){ return data; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadSource.java b/core/src/mindustry/world/blocks/payloads/PayloadSource.java index 8905d3fed3..9a2012fc5e 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadSource.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadSource.java @@ -2,6 +2,7 @@ package mindustry.world.blocks.payloads; import arc.graphics.g2d.*; import arc.math.*; +import arc.math.geom.*; import arc.scene.ui.layout.*; import arc.util.*; import arc.util.io.*; @@ -33,6 +34,7 @@ public class PayloadSource extends PayloadBlock{ noUpdateDisabled = true; clearOnDoubleTap = true; regionRotated1 = 1; + commandable = true; config(Block.class, (PayloadSourceBuild build, Block block) -> { if(canProduce(block) && build.block != block){ @@ -83,8 +85,19 @@ public class PayloadSource extends PayloadBlock{ public class PayloadSourceBuild extends PayloadBlockBuild{ public UnitType unit; public Block block; + public @Nullable Vec2 commandPos; public float scl; + @Override + public Vec2 getCommandPosition(){ + return commandPos; + } + + @Override + public void onCommand(Vec2 target){ + commandPos = target; + } + @Override public void buildConfiguration(Table table){ ItemSelection.buildTable(PayloadSource.this, table, @@ -110,6 +123,11 @@ public class PayloadSource extends PayloadBlock{ scl = 0f; if(unit != null){ payload = new UnitPayload(unit.create(team)); + + Unit p = ((UnitPayload)payload).unit; + if(commandPos != null && p.isCommandable()){ + p.command().commandPosition(commandPos); + } }else if(block != null){ payload = new BuildPayload(block, team); } diff --git a/core/src/mindustry/world/blocks/power/LightBlock.java b/core/src/mindustry/world/blocks/power/LightBlock.java index 12191f572d..882323d131 100644 --- a/core/src/mindustry/world/blocks/power/LightBlock.java +++ b/core/src/mindustry/world/blocks/power/LightBlock.java @@ -13,6 +13,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.input.*; import mindustry.logic.*; +import mindustry.ui.*; import mindustry.world.*; import mindustry.world.meta.*; @@ -86,12 +87,22 @@ public class LightBlock extends Block{ @Override public void buildConfiguration(Table table){ - table.button(Icon.pencil, () -> { + table.button(Icon.pencil, Styles.cleari, () -> { ui.picker.show(Tmp.c1.set(color).a(0.5f), false, res -> configure(res.rgba())); deselect(); }).size(40f); } + @Override + public boolean onConfigureBuildTapped(Building other){ + if(this == other){ + deselect(); + return false; + } + + return true; + } + @Override public void drawLight(){ Drawf.light(x, y, lightRadius * Math.min(smoothTime, 2f), Tmp.c1.set(color), brightness * efficiency); diff --git a/core/src/mindustry/world/blocks/units/UnitAssembler.java b/core/src/mindustry/world/blocks/units/UnitAssembler.java index c686a2cf1f..7c6efb7cb8 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssembler.java +++ b/core/src/mindustry/world/blocks/units/UnitAssembler.java @@ -298,6 +298,8 @@ public class UnitAssembler extends PayloadBlock{ for(var module : modules){ Drawf.selected(module, Pal.accent); } + + Drawf.dashRect(Tmp.c1.set(Pal.accent).lerp(Pal.remove, invalidWarmup), getRect(Tmp.r1, x, y, rotation)); } @Override @@ -320,7 +322,7 @@ public class UnitAssembler extends PayloadBlock{ prev = mod.block; } - t.label(() -> "[accent] -> []" + unit().emoji() + " " + unit().name); + t.label(() -> "[accent] -> []" + unit().emoji() + " " + unit().localizedName); }).pad(4).padLeft(0f).fillX().left(); }