From e81438a7a9e860c958dc6d9b2672626cc30df82d Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 4 May 2022 22:31:53 -0400 Subject: [PATCH] Styles documented --- core/assets/maps/erekirwavemap.msav | Bin 38460 -> 38544 bytes .../src/mindustry/editor/MapEditorDialog.java | 18 ++-- .../editor/SectorGenerateDialog.java | 2 +- core/src/mindustry/editor/WaveInfoDialog.java | 6 +- core/src/mindustry/input/DesktopInput.java | 8 +- core/src/mindustry/input/MobileInput.java | 10 +-- core/src/mindustry/logic/LCanvas.java | 4 +- core/src/mindustry/logic/LStatements.java | 10 +-- core/src/mindustry/mod/Mods.java | 2 +- core/src/mindustry/ui/ItemsDisplay.java | 2 +- core/src/mindustry/ui/Styles.java | 81 ++++++++++++------ .../ui/dialogs/CustomRulesDialog.java | 8 +- .../src/mindustry/ui/dialogs/FileChooser.java | 4 +- core/src/mindustry/ui/dialogs/HostDialog.java | 4 +- core/src/mindustry/ui/dialogs/JoinDialog.java | 4 +- .../mindustry/ui/dialogs/LanguageDialog.java | 2 +- core/src/mindustry/ui/dialogs/LoadDialog.java | 4 +- .../mindustry/ui/dialogs/LoadoutDialog.java | 2 +- core/src/mindustry/ui/dialogs/MapsDialog.java | 10 +-- core/src/mindustry/ui/dialogs/ModsDialog.java | 16 ++-- .../mindustry/ui/dialogs/PaletteDialog.java | 2 +- .../mindustry/ui/dialogs/PlanetDialog.java | 14 +-- .../mindustry/ui/dialogs/ResearchDialog.java | 4 +- .../ui/dialogs/SchematicsDialog.java | 6 +- .../mindustry/ui/fragments/HudFragment.java | 4 +- .../mindustry/ui/fragments/MenuFragment.java | 2 +- .../ui/fragments/PlacementFragment.java | 4 +- .../mindustry/world/blocks/ItemSelection.java | 2 +- .../world/blocks/campaign/LaunchPad.java | 2 +- .../world/blocks/logic/CanvasBlock.java | 4 +- .../world/blocks/logic/LogicBlock.java | 2 +- .../world/blocks/logic/MessageBlock.java | 2 +- 32 files changed, 140 insertions(+), 105 deletions(-) diff --git a/core/assets/maps/erekirwavemap.msav b/core/assets/maps/erekirwavemap.msav index 291face780c8389baccf7e945f7ef4a978fa7f1a..d6f81b7b49aa3305ad8d7dd8e7d7a990fe1c452a 100644 GIT binary patch delta 35618 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 z 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 DTGZLq delta 35519 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 z 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 addTool = tool -> { - ImageButton button = new ImageButton(ui.getIcon(tool.name()), Styles.clearTogglei); + ImageButton button = new ImageButton(ui.getIcon(tool.name()), Styles.squareTogglei); button.clicked(() -> { view.setTool(tool); if(lastTable[0] != null){ @@ -516,7 +516,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ table.button(b -> { b.left(); b.marginLeft(6); - b.setStyle(Styles.clearTogglet); + b.setStyle(Styles.flatTogglet); b.add(Core.bundle.get("toolmode." + name)).left(); b.row(); b.add(Core.bundle.get("toolmode." + name + ".description")).color(Color.lightGray).left(); @@ -556,16 +556,16 @@ public class MapEditorDialog extends Dialog implements Disposable{ tools.defaults().size(size, size); - tools.button(Icon.menu, Styles.cleari, menu::show); + tools.button(Icon.menu, Styles.flati, menu::show); - ImageButton grid = tools.button(Icon.grid, Styles.clearTogglei, () -> view.setGrid(!view.isGrid())).get(); + ImageButton grid = tools.button(Icon.grid, Styles.squareTogglei, () -> view.setGrid(!view.isGrid())).get(); addTool.get(EditorTool.zoom); tools.row(); - ImageButton undo = tools.button(Icon.undo, Styles.cleari, editor::undo).get(); - ImageButton redo = tools.button(Icon.redo, Styles.cleari, editor::redo).get(); + ImageButton undo = tools.button(Icon.undo, Styles.flati, editor::undo).get(); + ImageButton redo = tools.button(Icon.redo, Styles.flati, editor::redo).get(); addTool.get(EditorTool.pick); @@ -587,7 +587,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ addTool.get(EditorTool.fill); addTool.get(EditorTool.spray); - ImageButton rotate = tools.button(Icon.right, Styles.cleari, () -> editor.rotation = (editor.rotation + 1) % 4).get(); + ImageButton rotate = tools.button(Icon.right, Styles.flati, () -> editor.rotation = (editor.rotation + 1) % 4).get(); rotate.getImage().update(() -> { rotate.getImage().setRotation(editor.rotation * 90); rotate.getImage().setOrigin(Align.center); @@ -605,7 +605,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ int i = 0; for(Team team : Team.baseTeams){ - ImageButton button = new ImageButton(Tex.whiteui, Styles.clearTogglePartiali); + ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNoneTogglei); button.margin(4f); button.getImageCell().grow(); button.getStyle().imageUpColor = team.color; @@ -788,7 +788,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.toLowerCase())) ) continue; - ImageButton button = new ImageButton(Tex.whiteui, Styles.clearTogglei); + ImageButton button = new ImageButton(Tex.whiteui, Styles.squareTogglei); button.getStyle().imageUp = new TextureRegionDrawable(region); button.clicked(() -> editor.drawBlock = block); button.resizeImage(8 * 4f); diff --git a/core/src/mindustry/editor/SectorGenerateDialog.java b/core/src/mindustry/editor/SectorGenerateDialog.java index 6a4f646380..3d09823ff6 100644 --- a/core/src/mindustry/editor/SectorGenerateDialog.java +++ b/core/src/mindustry/editor/SectorGenerateDialog.java @@ -38,7 +38,7 @@ public class SectorGenerateDialog extends BaseDialog{ for(var plan : content.planets()){ if(plan.generator == null || plan.sectors.size == 0) continue; - p.button(plan.localizedName, Styles.clearTogglet, () -> { + p.button(plan.localizedName, Styles.flatTogglet, () -> { planet = plan; sector = Math.min(sector, planet.sectors.size - 1); seed = 0; diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index 083a6a7d8e..26699b5d4f 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -57,7 +57,7 @@ public class WaveInfoDialog extends BaseDialog{ dialog.setFillParent(false); dialog.cont.table(Tex.button, t -> { for(Sort s : Sort.all){ - t.button("@waves.sort." + s, Styles.clearTogglet, () -> { + t.button("@waves.sort." + s, Styles.flatTogglet, () -> { sort = s; dialog.hide(); buildGroups(); @@ -346,7 +346,7 @@ public class WaveInfoDialog extends BaseDialog{ } for(var spawn : spawner.getSpawns()){ - p.button(spawn.x + ", " + spawn.y, Styles.clearTogglet, () -> { + p.button(spawn.x + ", " + spawn.y, Styles.flatTogglet, () -> { group.spawn = Point2.pack(spawn.x, spawn.y); dialog.hide(); }).size(110f, 45f).checked(spawn.pos() == group.spawn); @@ -361,7 +361,7 @@ public class WaveInfoDialog extends BaseDialog{ } } - p.button("@waves.spawn.all", Styles.clearTogglet, () -> { + p.button("@waves.spawn.all", Styles.flatTogglet, () -> { group.spawn = -1; dialog.hide(); }).size(110f, 45f).checked(-1 == group.spawn); diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 120f04f504..3916240be5 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -457,19 +457,19 @@ public class DesktopInput extends InputHandler{ table.row(); table.left().margin(0f).defaults().size(48f).left(); - table.button(Icon.paste, Styles.clearPartiali, () -> { + table.button(Icon.paste, Styles.clearNonei, () -> { ui.schematics.show(); }).tooltip("@schematics"); - table.button(Icon.book, Styles.clearPartiali, () -> { + table.button(Icon.book, Styles.clearNonei, () -> { ui.database.show(); }).tooltip("@database"); - table.button(Icon.tree, Styles.clearPartiali, () -> { + table.button(Icon.tree, Styles.clearNonei, () -> { ui.research.show(); }).visible(() -> state.isCampaign()).tooltip("@research"); - table.button(Icon.map, Styles.clearPartiali, () -> { + table.button(Icon.map, Styles.clearNonei, () -> { ui.planet.show(); }).visible(() -> state.isCampaign()).tooltip("@planetmap"); } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 588fc3db68..bd0aecb493 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -189,18 +189,18 @@ public class MobileInput extends InputHandler implements GestureListener{ table.row(); table.left().margin(0f).defaults().size(48f); - table.button(Icon.hammer, Styles.clearTogglePartiali, () -> { + table.button(Icon.hammer, Styles.clearNoneTogglei, () -> { mode = mode == breaking ? block == null ? none : placing : breaking; lastBlock = block; }).update(l -> l.setChecked(mode == breaking)).name("breakmode"); //diagonal swap button - table.button(Icon.diagonal, Styles.clearTogglePartiali, () -> { + table.button(Icon.diagonal, Styles.clearNoneTogglei, () -> { Core.settings.put("swapdiagonal", !Core.settings.getBool("swapdiagonal")); }).update(l -> l.setChecked(Core.settings.getBool("swapdiagonal"))); //rotate button - table.button(Icon.right, Styles.clearTogglePartiali, () -> { + table.button(Icon.right, Styles.clearNoneTogglei, () -> { if(block != null && block.rotate){ rotation = Mathf.mod(rotation + 1, 4); }else{ @@ -219,7 +219,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }); //confirm button - table.button(Icon.ok, Styles.clearPartiali, () -> { + table.button(Icon.ok, Styles.clearNonei, () -> { for(BuildPlan plan : selectPlans){ Tile tile = plan.tile(); @@ -273,7 +273,7 @@ public class MobileInput extends InputHandler implements GestureListener{ t.table(Tex.pane, b -> { b.defaults().size(50f); - ImageButtonStyle style = Styles.clearPartiali; + ImageButtonStyle style = Styles.clearNonei; b.button(Icon.save, style, this::showSchematicSave).disabled(f -> lastSchematic == null || lastSchematic.file != null); b.button(Icon.cancel, style, () -> { diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index 3e39986cb7..1e9065225c 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -452,7 +452,9 @@ public class LCanvas extends Table{ public JumpCurve curve; public JumpButton(Prov getter, Cons setter){ - super(Tex.logicNode, Styles.colori); + super(Tex.logicNode, new ImageButtonStyle(){{ + imageUpColor = Color.white; + }}); to = getter; addListener(listener = new ClickListener()); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 3dfaf82aaf..26cf3cea9e 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -491,7 +491,7 @@ public class LStatements{ int c = 0; for(Item item : Vars.content.items()){ if(!item.unlockedNow()) continue; - i.button(new TextureRegionDrawable(item.uiIcon), Styles.cleari, iconSmall, () -> { + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { stype("@" + item.name); hide.run(); }).size(40f); @@ -505,7 +505,7 @@ public class LStatements{ int c = 0; for(Liquid item : Vars.content.liquids()){ if(!item.unlockedNow()) continue; - i.button(new TextureRegionDrawable(item.uiIcon), Styles.cleari, iconSmall, () -> { + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { stype("@" + item.name); hide.run(); }).size(40f); @@ -531,7 +531,7 @@ public class LStatements{ for(int i = 0; i < tables.length; i++){ int fi = i; - t.button(icons[i], Styles.clearTogglei, () -> { + t.button(icons[i], Styles.squareTogglei, () -> { selected = fi; stack.clearChildren(); @@ -870,7 +870,7 @@ public class LStatements{ int c = 0; for(UnitType item : Vars.content.units()){ if(!item.unlockedNow() || item.isHidden() || !item.logicControllable) continue; - i.button(new TextureRegionDrawable(item.uiIcon), Styles.cleari, iconSmall, () -> { + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { type = "@" + item.name; field.setText(type); hide.run(); @@ -1033,7 +1033,7 @@ public class LStatements{ int c = 0; for(Item item : Vars.content.items()){ if(!item.unlockedNow()) continue; - i.button(new TextureRegionDrawable(item.uiIcon), Styles.cleari, iconSmall, () -> { + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { ore = "@" + item.name; rebuild(table); hide.run(); diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index fc4208c003..5e4ae643f1 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -561,7 +561,7 @@ public class Mods implements Loadable{ d.left().marginLeft(15f); for(Content c : m.erroredContent){ d.add(c.minfo.sourceFile.nameWithoutExtension()).left().padRight(10); - d.button("@details", Icon.downOpen, Styles.transt, () -> { + d.button("@details", Icon.downOpen, Styles.cleart, () -> { new Dialog(""){{ setFillParent(true); cont.pane(e -> e.add(c.minfo.error).wrap().grow().labelAlign(Align.center, Align.left)).grow(); diff --git a/core/src/mindustry/ui/ItemsDisplay.java b/core/src/mindustry/ui/ItemsDisplay.java index ce3e05a30c..7bcf147915 100644 --- a/core/src/mindustry/ui/ItemsDisplay.java +++ b/core/src/mindustry/ui/ItemsDisplay.java @@ -52,7 +52,7 @@ public class ItemsDisplay extends Table{ } }).scrollX(false), false).setDuration(0.3f); - c.button("@globalitems", Icon.downOpen, Styles.clearTogglet, col::toggle).update(t -> { + c.button("@globalitems", Icon.downOpen, Styles.flatTogglet, col::toggle).update(t -> { t.setChecked(col.isCollapsed()); ((Image)t.getChildren().get(1)).setDrawable(col.isCollapsed() ? Icon.upOpen : Icon.downOpen); }).padBottom(4).left().fillX().margin(12f).minWidth(200f); diff --git a/core/src/mindustry/ui/Styles.java b/core/src/mindustry/ui/Styles.java index ecd5d549c2..42e0832e81 100644 --- a/core/src/mindustry/ui/Styles.java +++ b/core/src/mindustry/ui/Styles.java @@ -32,18 +32,57 @@ public class Styles{ public static TextButtonStyle defaultt, /** Flat, square, opaque. */ flatt, + /** Flat, square, toggleable. */ + flatTogglet, + /** Flat, square, gray border.*/ + flatBordert, /** No background whatsoever, only text. */ nonet, - clearPartialt, - clearTogglet, + /** Similar to flatToggle, but slightly tweaked for logic. */ logicTogglet, - clearToggleMenut, - togglet, transt, + /** Similar to flatToggle, but with a transparent base background. */ + flatToggleMenut, + /** Toggle variant of default style. */ + togglet, + /** Partially transparent square button. */ + cleart, + /** Similar to flatToggle, but without a darker border. */ fullTogglet, + /** Toggle-able version of flatBorder. */ squareTogglet, + /** Special square button for logic dialogs. */ logict; - public static ImageButtonStyle defaulti, nodei, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali; + /** Default image button style - gray corners at 45 degrees. */ + public static ImageButtonStyle defaulti, + /** Used for research nodes in the tech tree. */ + nodei, + /** No background, tints the image itself when hovered. */ + emptyi, + /** Toggleable variant of emptyi */ + emptyTogglei, + /** Displays border around image when selected; used in placement fragment. */ + selecti, + /** Pure black version of emptyi, used for logic toolbar. */ + logici, + /** Used for toolbar in map generation filters. */ + geni, + /** Gray, toggleable, no backvround. */ + grayi, + /** Flat, square, black background. */ + flati, + /** Square border. */ + squarei, + /** Square border, toggleable. */ + squareTogglei, + /** No background unless focused, no border. */ + clearNonei, + /** Partially transparent black background. */ + cleari, + /** Toggleable variant of cleari. */ + clearTogglei, + /** clearNone, but toggleable. */ + clearNoneTogglei; public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, noBarPane; public static SliderStyle defaultSlider; @@ -113,7 +152,7 @@ public class Styles{ down = flatOver; up = underlineWhite; }}; - clearPartialt = new TextButtonStyle(){{ + flatBordert = new TextButtonStyle(){{ down = flatOver; up = pane; over = flatDownBase; @@ -121,7 +160,7 @@ public class Styles{ fontColor = Color.white; disabledFontColor = Color.gray; }}; - transt = new TextButtonStyle(){{ + cleart = new TextButtonStyle(){{ down = flatDown; up = none; over = flatOver; @@ -129,7 +168,7 @@ public class Styles{ fontColor = Color.white; disabledFontColor = Color.gray; }}; - clearTogglet = new TextButtonStyle(){{ + flatTogglet = new TextButtonStyle(){{ font = Fonts.def; fontColor = Color.white; checked = flatDown; @@ -149,7 +188,7 @@ public class Styles{ disabled = black; disabledFontColor = Color.gray; }}; - clearToggleMenut = new TextButtonStyle(){{ + flatToggleMenut = new TextButtonStyle(){{ font = Fonts.def; fontColor = Color.white; checked = flatDown; @@ -206,7 +245,7 @@ public class Styles{ imageOverColor = Color.lightGray; imageUpColor = Color.white; }}; - emptytogglei = new ImageButtonStyle(){{ + emptyTogglei = new ImageButtonStyle(){{ imageCheckedColor = Color.white; imageDownColor = Color.white; imageUpColor = Color.gray; @@ -216,33 +255,27 @@ public class Styles{ up = none; }}; logici = new ImageButtonStyle(){{ - //imageDownColor = Pal.accent; imageUpColor = Color.black; }}; geni = new ImageButtonStyle(){{ imageDownColor = Pal.accent; imageUpColor = Color.black; }}; - colori = new ImageButtonStyle(){{ - //imageDownColor = Pal.accent; - imageUpColor = Color.white; - }}; - accenti = new ImageButtonStyle(){{ - //imageDownColor = Pal.accent; + grayi = new ImageButtonStyle(){{ imageUpColor = Color.lightGray; imageDownColor = Color.white; }}; - cleari = new ImageButtonStyle(){{ + flati = new ImageButtonStyle(){{ down = flatOver; up = black; over = flatOver; }}; - clearFulli = new ImageButtonStyle(){{ + squarei = new ImageButtonStyle(){{ down = whiteui; up = pane; over = flatDown; }}; - clearPartiali = new ImageButtonStyle(){{ + clearNonei = new ImageButtonStyle(){{ down = flatDown; up = none; over = flatOver; @@ -250,13 +283,13 @@ public class Styles{ imageDisabledColor = Color.gray; imageUpColor = Color.white; }}; - clearTogglei = new ImageButtonStyle(){{ + squareTogglei = new ImageButtonStyle(){{ down = flatDown; checked = flatDown; up = black; over = flatOver; }}; - clearTransi = new ImageButtonStyle(){{ + cleari = new ImageButtonStyle(){{ down = flatDown; up = black6; over = flatOver; @@ -264,13 +297,13 @@ public class Styles{ imageDisabledColor = Color.lightGray; imageUpColor = Color.white; }}; - clearToggleTransi = new ImageButtonStyle(){{ + clearTogglei = new ImageButtonStyle(){{ down = flatDown; checked = flatDown; up = black6; over = flatOver; }}; - clearTogglePartiali = new ImageButtonStyle(){{ + clearNoneTogglei = new ImageButtonStyle(){{ down = flatDown; checked = flatDown; up = none; diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index aec0d63672..3cbff45c3c 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -68,7 +68,7 @@ public class CustomRulesDialog extends BaseDialog{ b.image(con.uiIcon).size(iconMed).padRight(3); b.add(con.localizedName).color(Color.lightGray).padLeft(3).growX().left().wrap(); - b.button(Icon.cancel, Styles.clearPartiali, () -> { + b.button(Icon.cancel, Styles.clearNonei, () -> { set.remove(con); rebuild[0].run(); }).size(70f).pad(-4f).padLeft(0f); @@ -87,7 +87,7 @@ public class CustomRulesDialog extends BaseDialog{ int[] i = {0}; content.getBy(type).each(b -> !set.contains(b) && pred.get(b), b -> { int cols = mobile && Core.graphics.isPortrait() ? 4 : 12; - t.button(new TextureRegionDrawable(b.uiIcon), Styles.cleari, iconMed, () -> { + t.button(new TextureRegionDrawable(b.uiIcon), Styles.flati, iconMed, () -> { set.add(b); rebuild[0].run(); dialog.hide(); @@ -224,7 +224,7 @@ public class CustomRulesDialog extends BaseDialog{ main.table(Tex.button, t -> { t.margin(10f); var group = new ButtonGroup<>(); - var style = Styles.clearTogglet; + var style = Styles.flatTogglet; t.defaults().size(140f, 50f); @@ -285,7 +285,7 @@ public class CustomRulesDialog extends BaseDialog{ t.add(text).left().padRight(5); for(Team team : Team.baseTeams){ - t.button(Tex.whiteui, Styles.clearTogglei, 38f, () -> { + t.button(Tex.whiteui, Styles.squareTogglei, 38f, () -> { cons.get(team); }).pad(1f).checked(b -> prov.get() == team).size(60f).tooltip(team.localized()).with(i -> i.getStyle().imageUpColor = team.color); } diff --git a/core/src/mindustry/ui/dialogs/FileChooser.java b/core/src/mindustry/ui/dialogs/FileChooser.java index 8307743a4f..8188d97514 100644 --- a/core/src/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/mindustry/ui/dialogs/FileChooser.java @@ -196,7 +196,7 @@ public class FileChooser extends BaseDialog{ Fi[] names = getFileNames(); Image upimage = new Image(Icon.upOpen); - TextButton upbutton = new TextButton(".." + directory.toString(), Styles.clearTogglet); + TextButton upbutton = new TextButton(".." + directory.toString(), Styles.flatTogglet); upbutton.clicked(() -> { directory = directory.parent(); setLastDirectory(directory); @@ -218,7 +218,7 @@ public class FileChooser extends BaseDialog{ String filename = file.name(); - TextButton button = new TextButton(filename.replace("[", "[["), Styles.clearTogglet); + TextButton button = new TextButton(filename.replace("[", "[["), Styles.flatTogglet); button.getLabel().setWrap(false); button.getLabel().setEllipsis(true); group.add(button); diff --git a/core/src/mindustry/ui/dialogs/HostDialog.java b/core/src/mindustry/ui/dialogs/HostDialog.java index 8432977984..f0d3dc867d 100644 --- a/core/src/mindustry/ui/dialogs/HostDialog.java +++ b/core/src/mindustry/ui/dialogs/HostDialog.java @@ -29,9 +29,9 @@ public class HostDialog extends BaseDialog{ ui.listfrag.rebuild(); }).grow().pad(8).get().setMaxLength(40); - ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { + ImageButton button = t.button(Tex.whiteui, Styles.squarei, 40, () -> { new PaletteDialog().show(color -> { - player.color().set(color); + player.color.set(color); Core.settings.put("color-0", color.rgba()); }); }).size(54f).get(); diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 675cf56cd6..db54850d77 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -322,7 +322,7 @@ public class JoinDialog extends BaseDialog{ Core.settings.put("name", text); }).grow().pad(8).maxTextLength(maxNameLength); - ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { + ImageButton button = t.button(Tex.whiteui, Styles.squarei, 40, () -> { new PaletteDialog().show(color -> { player.color().set(color); Core.settings.put("color-0", color.rgba8888()); @@ -424,7 +424,7 @@ public class JoinDialog extends BaseDialog{ //button for showing/hiding servers ImageButton[] image = {null}; - image[0] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.accenti, () -> { + image[0] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.grayi, () -> { group.setHidden(!group.hidden()); image[0].getStyle().imageUp = group.hidden() ? Icon.eyeOffSmall : Icon.eyeSmall; if(group.hidden() && !showHidden){ diff --git a/core/src/mindustry/ui/dialogs/LanguageDialog.java b/core/src/mindustry/ui/dialogs/LanguageDialog.java index 7469cee7a5..5d77a0d7bc 100644 --- a/core/src/mindustry/ui/dialogs/LanguageDialog.java +++ b/core/src/mindustry/ui/dialogs/LanguageDialog.java @@ -71,7 +71,7 @@ public class LanguageDialog extends BaseDialog{ ButtonGroup group = new ButtonGroup<>(); for(Locale loc : locales){ - TextButton button = new TextButton(getDisplayName(loc), Styles.clearTogglet); + TextButton button = new TextButton(getDisplayName(loc), Styles.flatTogglet); button.clicked(() -> { if(getLocale().equals(loc)) return; Core.settings.put("locale", loc.toString()); diff --git a/core/src/mindustry/ui/dialogs/LoadDialog.java b/core/src/mindustry/ui/dialogs/LoadDialog.java index 3b8f3dc1b9..7f3fa5662f 100644 --- a/core/src/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadDialog.java @@ -65,7 +65,7 @@ public class LoadDialog extends BaseDialog{ TextureRegionDrawable icon = Vars.ui.getIcon("mode" + Strings.capitalize(mode.name())); boolean sandbox = mode == Gamemode.sandbox; if(Core.atlas.isFound(icon.getRegion()) || sandbox){ - search.button(sandbox ? Icon.terrain : icon, Styles.emptytogglei, () -> { + search.button(sandbox ? Icon.terrain : icon, Styles.emptyTogglei, () -> { filteredMode = filteredMode == mode ? null : mode; rebuild(); }).size(60f).checked(b -> filteredMode == mode).tooltip("@mode." + mode.name() + ".name"); @@ -116,7 +116,7 @@ public class LoadDialog extends BaseDialog{ t.right(); t.defaults().size(40f); - t.button(Icon.save, Styles.emptytogglei, () -> { + t.button(Icon.save, Styles.emptyTogglei, () -> { slot.setAutosave(!slot.isAutosave()); }).checked(slot.isAutosave()).right(); diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index 8e342ee67b..ade8a0c5b7 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -99,7 +99,7 @@ public class LoadoutDialog extends BaseDialog{ updater.run(); }).size(bsize); - t.button(Icon.pencil, Styles.cleari, () -> ui.showTextInput("@configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { + t.button(Icon.pencil, Styles.flati, () -> ui.showTextInput("@configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { if(Strings.canParsePositiveInt(str)){ int amount = Strings.parseInt(str); if(amount >= 0 && amount <= capacity){ diff --git a/core/src/mindustry/ui/dialogs/MapsDialog.java b/core/src/mindustry/ui/dialogs/MapsDialog.java index 2452e39a36..bc6655733d 100644 --- a/core/src/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/mindustry/ui/dialogs/MapsDialog.java @@ -209,7 +209,7 @@ public class MapsDialog extends BaseDialog{ for(Gamemode mode : Gamemode.all){ TextureRegionDrawable icon = Vars.ui.getIcon("mode" + Strings.capitalize(mode.name())); if(Core.atlas.isFound(icon.getRegion())){ - t.button(icon, Styles.emptytogglei, () -> { + t.button(icon, Styles.emptyTogglei, () -> { if(modes.contains(mode)){ modes.remove(mode); }else{ @@ -224,13 +224,13 @@ public class MapsDialog extends BaseDialog{ menu.add("@editor.filters.type").width(150f).left(); menu.table(Tex.button, t -> { - t.button("@custom", Styles.clearTogglet, () -> { + t.button("@custom", Styles.flatTogglet, () -> { showCustom = !showCustom; Core.settings.put("editorshowcustommaps", showCustom); Core.settings.forceSave(); rebuildMaps(); }).size(150f, 60f).checked(showCustom); - t.button("@builtin", Styles.clearTogglet, () -> { + t.button("@builtin", Styles.flatTogglet, () -> { showBuiltIn = !showBuiltIn; Core.settings.put("editorshowbuiltinmaps", showBuiltIn); Core.settings.forceSave(); @@ -241,13 +241,13 @@ public class MapsDialog extends BaseDialog{ menu.add("@editor.filters.search").width(150f).left(); menu.table(Tex.button, t -> { - t.button("@editor.filters.author", Styles.clearTogglet, () -> { + t.button("@editor.filters.author", Styles.flatTogglet, () -> { searchAuthor = !searchAuthor; Core.settings.put("editorsearchauthor", searchAuthor); Core.settings.forceSave(); rebuildMaps(); }).size(150f, 60f).checked(searchAuthor); - t.button("@editor.filters.description", Styles.clearTogglet, () -> { + t.button("@editor.filters.description", Styles.flatTogglet, () -> { searchDescription = !searchDescription; Core.settings.put("editorsearchdescription", searchDescription); Core.settings.forceSave(); diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 7dc9aacf27..a52f59d7b6 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -59,7 +59,7 @@ public class ModsDialog extends BaseDialog{ searchtxt = res; rebuildBrowser(); }).growX().get(); - table.button(Icon.list, Styles.clearPartiali, 32f, () -> { + table.button(Icon.list, Styles.clearNonei, 32f, () -> { orderDate = !orderDate; rebuildBrowser(); }).update(b -> b.getStyle().imageUp = (orderDate ? Icon.list : Icon.star)).size(40f).get() @@ -154,7 +154,7 @@ public class ModsDialog extends BaseDialog{ cont.table(buttons -> { buttons.left().defaults().growX().height(60f).uniformX(); - TextButtonStyle style = Styles.clearPartialt; + TextButtonStyle style = Styles.flatBordert; float margin = 12f; buttons.button("@mod.import", Icon.add, style, () -> { @@ -276,12 +276,12 @@ public class ModsDialog extends BaseDialog{ t.table(right -> { right.right(); - right.button(item.enabled() ? Icon.downOpen : Icon.upOpen, Styles.clearPartiali, () -> { + right.button(item.enabled() ? Icon.downOpen : Icon.upOpen, Styles.clearNonei, () -> { mods.setEnabled(item, !item.enabled()); setup(); }).size(50f).disabled(!item.isSupported()); - right.button(item.hasSteamID() ? Icon.link : Icon.trash, Styles.clearPartiali, () -> { + right.button(item.hasSteamID() ? Icon.link : Icon.trash, Styles.clearNonei, () -> { if(!item.hasSteamID()){ ui.showConfirm("@confirm", "@mod.remove.confirm", () -> { mods.removeMod(item); @@ -294,12 +294,12 @@ public class ModsDialog extends BaseDialog{ if(steam && !item.hasSteamID()){ right.row(); - right.button(Icon.export, Styles.clearPartiali, () -> { + right.button(Icon.export, Styles.clearNonei, () -> { platform.publish(item); }).size(50f); } }).growX().right().padRight(-8f).padTop(-8f); - }, Styles.clearPartialt, () -> showMod(item)).size(w, h).growX().pad(4f); + }, Styles.flatBordert, () -> showMod(item)).size(w, h).growX().pad(4f); pane[0].row(); } } @@ -382,7 +382,7 @@ public class ModsDialog extends BaseDialog{ d.cont.pane(cs -> { int i = 0; for(UnlockableContent c : all){ - cs.button(new TextureRegionDrawable(c.uiIcon), Styles.cleari, iconMed, () -> { + cs.button(new TextureRegionDrawable(c.uiIcon), Styles.flati, iconMed, () -> { ui.content.show(c); }).size(50f).with(im -> { var click = im.getClickListener(); @@ -482,7 +482,7 @@ public class ModsDialog extends BaseDialog{ "\n" + Core.bundle.format("mod.requiresversion", mod.minGameVersion))) .width(358f).wrap().grow().pad(4f, 2f, 4f, 6f).top().left().labelAlign(Align.topLeft); - }, Styles.clearPartialt, () -> { + }, Styles.flatBordert, () -> { var sel = new BaseDialog(mod.name); sel.cont.pane(p -> p.add(mod.description + "\n\n[accent]" + Core.bundle.get("editor.author") + "[lightgray] " + mod.author) .width(mobile ? 400f : 500f).wrap().pad(4f).labelAlign(Align.center, Align.left)).grow(); diff --git a/core/src/mindustry/ui/dialogs/PaletteDialog.java b/core/src/mindustry/ui/dialogs/PaletteDialog.java index e9d643a4b2..ebea658516 100644 --- a/core/src/mindustry/ui/dialogs/PaletteDialog.java +++ b/core/src/mindustry/ui/dialogs/PaletteDialog.java @@ -21,7 +21,7 @@ public class PaletteDialog extends Dialog{ for(int i = 0; i < playerColors.length; i++){ Color color = playerColors[i]; - ImageButton button = table.button(Tex.whiteui, Styles.clearTogglei, 34, () -> { + ImageButton button = table.button(Tex.whiteui, Styles.squareTogglei, 34, () -> { cons.get(color); hide(); }).size(48).get(); diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 8842648a60..d90cfcfab6 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -559,7 +559,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ for(int i = 0; i < content.planets().size; i++){ Planet planet = content.planets().get(i); if(selectable(planet)){ - pt.button(planet.localizedName, Styles.clearTogglet, () -> { + pt.button(planet.localizedName, Styles.flatTogglet, () -> { selected = null; launchSector = null; if(state.planet != planet){ @@ -961,7 +961,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ if(sector.preset == null){ title.add().growX(); - title.button(Icon.pencilSmall, Styles.clearPartiali, () -> { + title.button(Icon.pencilSmall, Styles.clearNonei, () -> { ui.showTextInput("@sectors.rename", "@name", 20, sector.name(), v -> { sector.setName(v); updateSelected(); @@ -974,7 +974,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ new TextureRegionDrawable(sector.info.contentIcon.uiIcon) : Icon.icons.get(sector.info.icon + "Small"); - title.button(icon == null ? Icon.noneSmall : icon, Styles.clearPartiali, iconSmall, () -> { + title.button(icon == null ? Icon.noneSmall : icon, Styles.clearNonei, iconSmall, () -> { new Dialog(""){{ closeOnBack(); setFillParent(true); @@ -992,7 +992,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ t.marginRight(19f); t.defaults().size(48f); - t.button(Icon.none, Styles.clearTogglei, () -> { + t.button(Icon.none, Styles.squareTogglei, () -> { sector.info.icon = null; sector.info.contentIcon = null; refresh.run(); @@ -1004,7 +1004,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ for(var key : defaultIcons){ var value = Icon.icons.get(key); - t.button(value, Styles.clearTogglei, () -> { + t.button(value, Styles.squareTogglei, () -> { sector.info.icon = key; sector.info.contentIcon = null; refresh.run(); @@ -1021,7 +1021,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ i = 0; for(UnlockableContent u : content.getBy(ctype).as()){ if(!u.isHidden() && u.unlocked()){ - t.button(new TextureRegionDrawable(u.uiIcon), Styles.clearTogglei, iconMed, () -> { + t.button(new TextureRegionDrawable(u.uiIcon), Styles.squareTogglei, iconMed, () -> { sector.info.icon = null; sector.info.contentIcon = u; refresh.run(); @@ -1081,7 +1081,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ stable.row(); if(sector.hasBase()){ - stable.button("@stats", Icon.info, Styles.transt, () -> showStats(sector)).height(40f).fillX().row(); + stable.button("@stats", Icon.info, Styles.cleart, () -> showStats(sector)).height(40f).fillX().row(); } if((sector.hasBase() && mode == look) || canSelect(sector) || (sector.preset != null && sector.preset.alwaysUnlocked) || debugSelect){ diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index 3a86d929a8..090169ca47 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -70,7 +70,7 @@ public class ResearchDialog extends BaseDialog{ if(node.requiresUnlock && !node.content.unlocked() && node != getPrefRoot()) continue; //TODO toggle - in.button(node.localizedName(), node.icon(), Styles.clearTogglet, iconMed, () -> { + in.button(node.localizedName(), node.icon(), Styles.flatTogglet, iconMed, () -> { if(node == lastNode){ return; } @@ -581,7 +581,7 @@ public class ResearchDialog extends BaseDialog{ b.margin(0).left().defaults().left(); if(selectable && (node.content.description != null || node.content.stats.toMap().size > 0)){ - b.button(Icon.info, Styles.cleari, () -> ui.content.show(node.content)).growY().width(50f); + b.button(Icon.info, Styles.flati, () -> ui.content.show(node.content)).growY().width(50f); } b.add().grow(); b.table(desc -> { diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java index 76c2a2786f..988491b56c 100644 --- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java +++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java @@ -144,7 +144,7 @@ public class SchematicsDialog extends BaseDialog{ buttons.left(); buttons.defaults().size(50f); - ImageButtonStyle style = Styles.clearPartiali; + ImageButtonStyle style = Styles.clearNonei; buttons.button(Icon.info, style, () -> { showInfo(s); @@ -231,7 +231,7 @@ public class SchematicsDialog extends BaseDialog{ hide(); } } - }).pad(4).style(Styles.cleari).get(); + }).pad(4).style(Styles.flati).get(); sel[0].getStyle().up = Tex.pane; @@ -419,7 +419,7 @@ public class SchematicsDialog extends BaseDialog{ int i = 0; for(UnlockableContent u : content.getBy(ctype).as()){ if(!u.isHidden() && u.unlockedNow() && u.hasEmoji() && !tags.contains(u.emoji())){ - t.button(new TextureRegionDrawable(u.uiIcon), Styles.cleari, iconMed, () -> { + t.button(new TextureRegionDrawable(u.uiIcon), Styles.flati, iconMed, () -> { String out = u.emoji() + ""; tags.add(out); diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 81ea6b2d66..f9c564d087 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -134,7 +134,7 @@ public class HudFragment{ select.left(); select.defaults().size(dsize).left(); - ImageButtonStyle style = Styles.clearTransi; + ImageButtonStyle style = Styles.cleari; select.button(Icon.menu, style, ui.paused::show).name("menu"); flip = select.button(Icon.upOpen, style, this::toggleMenus).get(); @@ -242,7 +242,7 @@ public class HudFragment{ teams.left(); int i = 0; for(Team team : Team.baseTeams){ - ImageButton button = teams.button(Tex.whiteui, Styles.clearTogglePartiali, 40f, () -> Call.setPlayerTeamEditor(player, team)) + ImageButton button = teams.button(Tex.whiteui, Styles.clearNoneTogglei, 40f, () -> Call.setPlayerTeamEditor(player, team)) .size(50f).margin(6f).get(); button.getImageCell().grow(); button.getStyle().imageUpColor = team.color; diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index 875067f8b6..bd8f34d3b1 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -226,7 +226,7 @@ public class MenuFragment{ for(Buttoni b : buttons){ if(b == null) continue; Button[] out = {null}; - out[0] = t.button(b.text, b.icon, Styles.clearToggleMenut, () -> { + out[0] = t.button(b.text, b.icon, Styles.flatToggleMenut, () -> { if(currentMenu == out[0]){ currentMenu = null; fadeOutMenu(); diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index def5e49206..b8c4f6e27f 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -343,7 +343,7 @@ public class PlacementFragment{ .left().width(190f).padLeft(5); header.add().growX(); if(unlocked(displayBlock)){ - header.button("?", Styles.clearPartialt, () -> { + header.button("?", Styles.flatBordert, () -> { ui.content.show(displayBlock); Events.fire(new BlockInfoEvent()); }).size(8 * 5).padTop(-5).padRight(-5).right().grow().name("blockinfo"); @@ -518,7 +518,7 @@ public class PlacementFragment{ needsAssign = false; } - categories.button(ui.getIcon(cat.name()), Styles.clearToggleTransi, () -> { + categories.button(ui.getIcon(cat.name()), Styles.clearTogglei, () -> { currentCategory = cat; if(control.input.block != null){ control.input.block = getSelectedBlock(currentCategory); diff --git a/core/src/mindustry/world/blocks/ItemSelection.java b/core/src/mindustry/world/blocks/ItemSelection.java index 4de74450fd..c444f2a4ac 100644 --- a/core/src/mindustry/world/blocks/ItemSelection.java +++ b/core/src/mindustry/world/blocks/ItemSelection.java @@ -40,7 +40,7 @@ public class ItemSelection{ for(T item : items){ if(!item.unlockedNow() || (item instanceof Item checkVisible && state.rules.hiddenBuildItems.contains(checkVisible)) || item.isHidden()) continue; - ImageButton button = cont.button(Tex.whiteui, Styles.clearToggleTransi, 24, () -> { + ImageButton button = cont.button(Tex.whiteui, Styles.clearTogglei, 24, () -> { if(closeSelect) control.input.config.hideConfig(); }).group(group).tooltip(item.localizedName).get(); button.changed(() -> consumer.get(button.isChecked() ? item : null)); diff --git a/core/src/mindustry/world/blocks/campaign/LaunchPad.java b/core/src/mindustry/world/blocks/campaign/LaunchPad.java index f83079073b..889553705a 100644 --- a/core/src/mindustry/world/blocks/campaign/LaunchPad.java +++ b/core/src/mindustry/world/blocks/campaign/LaunchPad.java @@ -166,7 +166,7 @@ public class LaunchPad extends Block{ return; } - table.button(Icon.upOpen, Styles.clearTransi, () -> { + table.button(Icon.upOpen, Styles.cleari, () -> { ui.planet.showSelect(state.rules.sector, other -> { if(state.isCampaign()){ state.rules.sector.info.destination = other; diff --git a/core/src/mindustry/world/blocks/logic/CanvasBlock.java b/core/src/mindustry/world/blocks/logic/CanvasBlock.java index 66305fc97e..44a3acffb3 100644 --- a/core/src/mindustry/world/blocks/logic/CanvasBlock.java +++ b/core/src/mindustry/world/blocks/logic/CanvasBlock.java @@ -131,7 +131,7 @@ public class CanvasBlock extends Block{ @Override public void buildConfiguration(Table table){ - table.button(Icon.pencil, Styles.clearTransi, () -> { + table.button(Icon.pencil, Styles.cleari, () -> { Dialog dialog = new Dialog(); Pixmap pix = makePixmap(); @@ -197,7 +197,7 @@ public class CanvasBlock extends Block{ for(int i = 0; i < palette.length; i++){ int fi = i; - var button = p.button(Tex.whiteui, Styles.clearTogglei, 30, () -> { + var button = p.button(Tex.whiteui, Styles.squareTogglei, 30, () -> { curColor[0] = palette[fi]; }).size(44).checked(b -> curColor[0] == palette[fi]).get(); button.getStyle().imageUpColor = new Color(palette[i]); diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 38993c9ceb..3e9ea65641 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -565,7 +565,7 @@ public class LogicBlock extends Block{ return; } - table.button(Icon.pencil, Styles.clearTransi, () -> { + table.button(Icon.pencil, Styles.cleari, () -> { ui.logic.show(code, executor, privileged, code -> configure(compress(code, relativeConnections()))); }).size(40); } diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index e2b11c885e..c4cb57e6ce 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -87,7 +87,7 @@ public class MessageBlock extends Block{ @Override public void buildConfiguration(Table table){ - table.button(Icon.pencil, Styles.clearTransi, () -> { + table.button(Icon.pencil, Styles.cleari, () -> { if(mobile){ Core.input.getTextInput(new TextInput(){{ text = message.toString();