the return of deselectable (#7319)

This commit is contained in:
JniTrRny
2022-08-08 00:10:12 +07:00
committed by GitHub
parent a28601d91c
commit 6a2c6e3a74
6 changed files with 45 additions and 4 deletions

View File

@@ -158,7 +158,7 @@ public class ColorPicker extends BaseDialog{
return false;
}
}).get();
});
}).grow();
buttons.clear();
addCloseButton();

View File

@@ -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()

View File

@@ -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;

View File

@@ -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<Payload>{
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);
}

View File

@@ -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);

View File

@@ -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();
}