From 93d299716c2580b0a837e611577549939ee074e2 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 4 May 2022 20:24:59 -0400 Subject: [PATCH] WIP style refactoring --- .../units/basic-assembler-module-side1.png | Bin 645 -> 969 bytes .../units/basic-assembler-module-side2.png | Bin 701 -> 1091 bytes core/assets/logicids.dat | Bin 4424 -> 4410 bytes core/src/mindustry/content/Blocks.java | 2 +- .../src/mindustry/editor/MapEditorDialog.java | 4 +-- .../mindustry/editor/MapGenerateDialog.java | 6 ++-- core/src/mindustry/editor/WaveGraph.java | 2 +- core/src/mindustry/editor/WaveInfoDialog.java | 2 +- core/src/mindustry/logic/LStatements.java | 2 +- core/src/mindustry/logic/LogicDialog.java | 4 +-- core/src/mindustry/ui/Styles.java | 27 +++++++++++------- .../ui/dialogs/CustomRulesDialog.java | 2 +- core/src/mindustry/ui/dialogs/LoadDialog.java | 2 +- .../mindustry/ui/dialogs/LoadoutDialog.java | 4 +-- core/src/mindustry/ui/dialogs/MapsDialog.java | 2 +- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- .../mindustry/ui/dialogs/ResearchDialog.java | 11 ++++++- .../ui/dialogs/SchematicsDialog.java | 4 +-- .../ui/dialogs/SettingsMenuDialog.java | 4 +-- 19 files changed, 48 insertions(+), 32 deletions(-) diff --git a/core/assets-raw/sprites/blocks/units/basic-assembler-module-side1.png b/core/assets-raw/sprites/blocks/units/basic-assembler-module-side1.png index 202794fcf3a3947360172b44ea76b612eec0b953..2bc2f854655852cd6ad0c1c47235df686a148a9f 100644 GIT binary patch delta 935 zcmZo=J;^@7pq{ze)5S5QV$R#UhDFlm5^WFrXP((nl)m~ir_A(yE?)76#S4}PPUn82 zwX>tPE2b%Pi&WR6qDEF0i)WvwOww3c(XO&Y-hqh$0p1kM_{&{j-FN?e|8sd^g`;&g zHMVLe<-ga5mltd9b7>HXdK7)dWrtY2k^|SAapui4K~I``&=64NXW)NvQ_AhdbIoZ zA2ZKS{|?W7b)0L0-bdXmWf29>Z>|+`_ZO)-F@9R2c4+Glv894s6Vknu?sVk`3N2)) zOw>L!iQ)af`ai2z=+?JAY_)wHw%qHnH_M5xy@J<{Oy`)Oou#~{S6@&;+DrM4usnl7 z@Acfc-ibBK3@4p8S^80xY02hUKZF=B1?JXtGVDw^pR*vgup}{9=<=BxQ&b!#odG$1 zrg*&4f!XH9`&=5#bIWSl{rTA$jgCINd|2@#&j}Xqnob7E`Zp%~TpD;vba*mjD< zPx@o`OZ?&g*RR-?{;s`$+2Bxbwk7*6cE(F3LUr1Vla{>In;^#Y#Pf8n$AzQ)?dy-< z{J)5q;lcINKXvt6P9=7waxZ6)d{^>+1B2wNn$No!B%fV6$;q^2cm4mLWj?3gaT@Y_ zgnQR4W$`fI3i85a+jV;rYBb|eljrBMcrfG^s*-D*}KoT#p54OD2j7^xntUGqnGQ-!YpJT%D7B<}J=(p6W9O5E7*Jtg$?&x>xKUM_md@^=yk z>xpI4tX;M#i72>6ihnW*R?d|6RFFE?#WCo7KExPX?S|+NM?i7-QBythAl8+pR(8(WDA!5 zatIQSS2{2|ToOcv$=-jJxLHU+HH?3D=p#Ol#@w1thL<_^`&=4IN+jZy9IPzG;wSBS z|JV6PeQo4_3)}Jp+qcHPZaWI6{}cV3R%6UDVY8r~XuOg`+}y5$`ja3>JvTVC^l|h4 zJvsB*Ub&YrFn}E`@iZW5cS~?X$@cwq5e+4!J1SxuN{VxyvoKz|vwr^lHkF@0ejdJ= zeU^R6%G{diLJDVldi4brdVMOGKy2f)Aofuf4^74(uZA<9UcUYw$#2YZBBxkM zM8VgmH=x0!-dNR%@zRwW9B11WN?+cnk?y4R)aT^#J5!3EF3=QYV)!Fnm47}>eXVFq_5X_R&t5O@du1d)LC?>&OjzNrOm{#- zNvXs_hL?HvPK-f^)SjwjnhV*PbJ-o0{ctQ)-b2H|OIbw0GxC*^h=R4KAlC%@FMSs@ zW~41!QzWe5+Y54=xtbH>rVejq5ryuJpBZsRbHHo!=;a3vE5t;%fYf-p`njxgN@xNA DlLPFS diff --git a/core/assets-raw/sprites/blocks/units/basic-assembler-module-side2.png b/core/assets-raw/sprites/blocks/units/basic-assembler-module-side2.png index 0137cd141deb414806e2ac86a0169cdaa7d86154..6ac72798d9c8ec64b954a1638e28ff23ac57fcdd 100644 GIT binary patch delta 1058 zcmdnXdYEH^K|S+dPZ!6KiaBrZ+7{h0V`zKmKl98Iua_m3jdz|2?CjQ`aBOkmWbPj_ zdBq&tFLB<9d>6CxmWWheSkylT74aD@=YxZ9>E3JP;9?MFK!AkS+4tfb>im`mUp`;` z827Q8x?mcqNBvXIi%j zJPfMoWSALjbjmj-SSUV8tR`dg<_EWa@A1DMR?DueFg@&C$#nq*ebXL&L51g1$ER~l zIN0_>ZvUSX`SpKxy-H_2@$3g%wvvd#$=ka_{hiM}mcHVq;V>`6%|h({0yQVbPiqVg z?fk*ERIo~*wmxAp|03~soZd_|pP%1%&6Q-_x#iQmf&i&_C5L5edN!!-b7?rUvS)+Y zK9>d^&7K0^noiFX3%A}AHaf=P5ze$^_5A93#((>DPA;E)N%bdFO8L@{s!S>ArXbRN z>qk{J#h%EG4p-M%d`k=#x_e`ai@EG0Zx)YBy8B!jN_zAK>mO_^?R)?2?{R6yOGn@S z?l~{Y5eoRZc z6S*?bx&=Ri-71uNhySW1L#@yd!Rxw9*!t*9ZKTU(V|fpO$toxTnGW`ir>*!7Luv zIap6j_7miqkS?nvqM%=I+IKbYo1wWaOey82f?N|; zYxG`Fd2(P*&w+=W6V|=qOuV^T)VM#sE+*#Dgraqe3wBQ1p1NuOsjW@-#Lv`)>4khf zRJRqxx#0Sac1O_`!!DqFzezQOPiC^bEqI2SfdWo++7d pT5hXv&z`<--*pg=!PC{xWt~$(698x^=6e7D delta 665 zcmX@iv6pp%K|NEsr;B4q#hkZyPy0#-O0+%f*U(+Um7%itf`b{yMo;D|2d61*I_j(P zCg?y)qnkuZ|MMcfu4k3kj?Fu|`o2`nxtS~sxWIyGtM7?B*dI0ssr`TW@Y|#OKZ3q; z-B@e+QI%;)(@qe%LA4%4Em-q>0;N9Z2}7KrH)VM zm=M_hLx^!wNw>bBg6v~&mL2(XAMf5*y+=qPHs-!*gb8|K4OhbKU&)y-O^2Hg_&C+grxS`0nnU4O&O1b4;jDvD(n}QI#pBL~F~b zkE%>hZWI>qKJv~veP`>f+eXg~7+-odl&CuFvb4Fw$F!uokb5~p=DUjj8yGTQeSTKT zcbm!jf2%gFk4wf;pm#qfCiDRCQiE_m96=@Zb$IxjXn;u z3T>qCS}vIMPUfO_d2&mhQ`wn|GH>QFy!2|Q`BG%RrKV{TLuI*4++q&a6SIR4nsx*< z__T*vI)VIoK+8?zfNiu;*iw$UyoYOq1?A?&ssI0SXYno{hglZ&TSc@56?h~0J<9o3 zEU|X~a_O$b!lx0|W<1Ut>(|HZ;O`4(&UhLYZZhCMGu7BW;`S9D_h6!@6q zF6;Y+)tNF$JC3$;uwg;t}W#@`i3_KtssJXRjr2r4EJ#Yw8n?g*FOZn{4|N Oq{!3N&t;ucLK6Uyx*t6N diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 6cd7f11d8fee05df9e566d1a09277f92a10b29b6..c257a4a4916b2a7987030016f616281eaf15f05f 100644 GIT binary patch delta 19 acmX@1v`cA&Egz%hW;?!8#?1%$+Zh2xI0k$G delta 33 ocmdm`bV6x^Egz%RW;?!8MqZxOw6xUZ65W)d{Jhl7oA^5z0lKvdIsgCw diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 1ee4152a92..45b65c2cd6 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1330,7 +1330,7 @@ public class Blocks{ //TODO should have a useful turret ammo byproduct? scrap? //TODO surge being removed I think surgeCrucible = new HeatCrafter("surge-crucible"){{ - requirements(Category.crafting, with(Items.silicon, 100, Items.graphite, 80, Items.carbide, 60, Items.thorium, 90)); + requirements(Category.crafting, with(Items.silicon, 100, Items.graphite, 80, Items.carbide, 60, Items.thorium, 120, Items.phaseFabric, 80)); size = 3; diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index bd7eae828e..7c922c5691 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -642,14 +642,14 @@ public class MapEditorDialog extends Dialog implements Disposable{ if(!mobile){ mid.table(t -> { - t.button("@editor.center", Icon.move, Styles.cleart, view::center).growX().margin(9f); + t.button("@editor.center", Icon.move, Styles.flatt, view::center).growX().margin(9f); }).growX().top(); } mid.row(); mid.table(t -> { - t.button("@editor.cliffs", Icon.terrain, Styles.cleart, editor::addCliffs).growX().margin(9f); + t.button("@editor.cliffs", Icon.terrain, Styles.flatt, editor::addCliffs).growX().margin(9f); }).growX().top(); }).margin(0).left().growY(); diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index fce71c044b..cc9f751d5e 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -63,7 +63,7 @@ public class MapGenerateDialog extends BaseDialog{ shown(this::setup); addCloseListener(); - var style = Styles.cleart; + var style = Styles.flatt; buttons.defaults().size(180f, 64f).pad(2f); buttons.button("@back", Icon.left, this::hide); @@ -334,7 +334,7 @@ public class MapGenerateDialog extends BaseDialog{ if(filter.isPost() && applied) continue; - p.button((icon == '\0' ? "" : icon + " ") + filter.name(), Styles.cleart, () -> { + p.button((icon == '\0' ? "" : icon + " ") + filter.name(), Styles.flatt, () -> { filter.randomize(); filters.add(filter); rebuildFilters(); @@ -344,7 +344,7 @@ public class MapGenerateDialog extends BaseDialog{ if(++i % 3 == 0) p.row(); } - p.button(Iconc.refresh + " " + Core.bundle.get("filter.defaultores"), Styles.cleart, () -> { + p.button(Iconc.refresh + " " + Core.bundle.get("filter.defaultores"), Styles.flatt, () -> { maps.addDefaultOres(filters); rebuildFilters(); update(); diff --git a/core/src/mindustry/editor/WaveGraph.java b/core/src/mindustry/editor/WaveGraph.java index af80ab18d6..398443c177 100644 --- a/core/src/mindustry/editor/WaveGraph.java +++ b/core/src/mindustry/editor/WaveGraph.java @@ -181,7 +181,7 @@ public class WaveGraph extends Table{ colors.clear(); colors.left(); - colors.button("@waves.units.hide", Styles.cleart, () -> { + colors.button("@waves.units.hide", Styles.flatt, () -> { if(hidden.size == usedCopy.size){ hidden.clear(); }else{ diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index 7c4d4a3936..083a6a7d8e 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -80,7 +80,7 @@ public class WaveInfoDialog extends BaseDialog{ dialog.addCloseButton(); dialog.setFillParent(false); dialog.cont.table(Tex.button, t -> { - var style = Styles.cleart; + var style = Styles.flatt; t.defaults().size(210f, 58f); t.button("@waves.copy", Icon.copy, style, () -> { diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 17498f9dc6..3dfaf82aaf 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -516,7 +516,7 @@ public class LStatements{ //sensors new Table(i -> { for(LAccess sensor : LAccess.senseable){ - i.button(sensor.name(), Styles.cleart, () -> { + i.button(sensor.name(), Styles.flatt, () -> { stype("@" + sensor.name()); hide.run(); }).size(240f, 40f).self(c -> tooltip(c, sensor)).row(); diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index 50652c5d10..dc36d41fc4 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -43,7 +43,7 @@ public class LogicDialog extends BaseDialog{ dialog.cont.pane(p -> { p.margin(10f); p.table(Tex.button, t -> { - TextButtonStyle style = Styles.cleart; + TextButtonStyle style = Styles.flatt; t.defaults().size(280f, 60f).left(); t.button("@schematic.copy", Icon.copy, style, () -> { @@ -159,7 +159,7 @@ public class LogicDialog extends BaseDialog{ LStatement example = prov.get(); if(example instanceof InvalidStatement || example.hidden() || (example.privileged() && !privileged) || (example.nonPrivileged() && privileged)) continue; - TextButtonStyle style = new TextButtonStyle(Styles.cleart); + TextButtonStyle style = new TextButtonStyle(Styles.flatt); style.fontColor = example.color(); style.font = Fonts.outline; diff --git a/core/src/mindustry/ui/Styles.java b/core/src/mindustry/ui/Styles.java index c6f25cd7c0..ecd5d549c2 100644 --- a/core/src/mindustry/ui/Styles.java +++ b/core/src/mindustry/ui/Styles.java @@ -28,8 +28,23 @@ public class Styles{ public static ButtonStyle defaultb, underlineb; - public static TextButtonStyle defaultt, nodet, cleart, nonet, clearPartialt, clearTogglet, logicTogglet, clearToggleMenut, togglet, transt, fullTogglet, squareTogglet, logict; + /** Default text button style - gray corners at 45 degrees. */ + public static TextButtonStyle defaultt, + /** Flat, square, opaque. */ + flatt, + /** No background whatsoever, only text. */ + nonet, + clearPartialt, + clearTogglet, + logicTogglet, + clearToggleMenut, + togglet, transt, + fullTogglet, + squareTogglet, + logict; + public static ImageButtonStyle defaulti, nodei, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali; + public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, noBarPane; public static SliderStyle defaultSlider; public static LabelStyle defaultLabel, outlineLabel, techLabel; @@ -75,14 +90,6 @@ public class Styles{ down = buttonDown; up = button; }}; - nodet = new TextButtonStyle(){{ - disabled = button; - font = Fonts.def; - fontColor = Color.white; - disabledFontColor = Color.gray; - up = buttonOver; - over = buttonDown; - }}; nonet = new TextButtonStyle(){{ font = Fonts.outline; fontColor = Color.lightGray; @@ -90,7 +97,7 @@ public class Styles{ disabledFontColor = Color.gray; up = none; }}; - cleart = new TextButtonStyle(){{ + flatt = new TextButtonStyle(){{ over = flatOver; font = Fonts.def; fontColor = Color.white; diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index cf5ab075ee..aec0d63672 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -445,7 +445,7 @@ public class CustomRulesDialog extends BaseDialog{ for(Weather weather : content.getBy(ContentType.weather)){ if(weather.hidden) continue; - t.button(weather.localizedName, Styles.cleart, () -> { + t.button(weather.localizedName, Styles.flatt, () -> { rules.weather.add(new WeatherEntry(weather)); rebuild[0].run(); diff --git a/core/src/mindustry/ui/dialogs/LoadDialog.java b/core/src/mindustry/ui/dialogs/LoadDialog.java index f77bbfcf55..3b8f3dc1b9 100644 --- a/core/src/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadDialog.java @@ -103,7 +103,7 @@ public class LoadDialog extends BaseDialog{ any = true; - TextButton button = new TextButton("", Styles.cleart); + TextButton button = new TextButton("", Styles.flatt); button.getLabel().remove(); button.clearChildren(); diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index eff8f24164..8e342ee67b 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -89,12 +89,12 @@ public class LoadoutDialog extends BaseDialog{ for(ItemStack stack : stacks){ items.table(Tex.pane, t -> { t.margin(4).marginRight(8).left(); - t.button("-", Styles.cleart, () -> { + t.button("-", Styles.flatt, () -> { stack.amount = Math.max(stack.amount - step(stack.amount), 0); updater.run(); }).size(bsize); - t.button("+", Styles.cleart, () -> { + t.button("+", Styles.flatt, () -> { stack.amount = Math.min(stack.amount + step(stack.amount), capacity); updater.run(); }).size(bsize); diff --git a/core/src/mindustry/ui/dialogs/MapsDialog.java b/core/src/mindustry/ui/dialogs/MapsDialog.java index 5b2aff38d3..2452e39a36 100644 --- a/core/src/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/mindustry/ui/dialogs/MapsDialog.java @@ -180,7 +180,7 @@ public class MapsDialog extends BaseDialog{ mapTable.row(); } - TextButton button = mapTable.button("", Styles.cleart, () -> showMapInfo(map)).width(mapsize).pad(8).get(); + TextButton button = mapTable.button("", Styles.flatt, () -> showMapInfo(map)).width(mapsize).pad(8).get(); button.clearChildren(); button.margin(9); button.add(map.name()).width(mapsize - 18f).center().get().setEllipsis(true); diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index c792fe7261..7dc9aacf27 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -160,7 +160,7 @@ public class ModsDialog extends BaseDialog{ buttons.button("@mod.import", Icon.add, style, () -> { BaseDialog dialog = new BaseDialog("@mod.import"); - TextButtonStyle bstyle = Styles.cleart; + TextButtonStyle bstyle = Styles.flatt; dialog.cont.table(Tex.button, t -> { t.defaults().size(300f, 70f); diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index cb9de61de3..3a86d929a8 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -11,6 +11,7 @@ import arc.scene.actions.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; +import arc.scene.ui.TextButton.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; @@ -30,6 +31,7 @@ import mindustry.ui.layout.TreeLayout.*; import java.util.*; import static mindustry.Vars.*; +import static mindustry.gen.Tex.*; public class ResearchDialog extends BaseDialog{ public static boolean debugShowRequirements = false; @@ -667,7 +669,14 @@ public class ResearchDialog extends BaseDialog{ if(mobile && locked(node)){ b.row(); - b.button("@research", Icon.ok, Styles.nodet, () -> spend(node)) + b.button("@research", Icon.ok, new TextButtonStyle(){{ + disabled = Tex.button; + font = Fonts.def; + fontColor = Color.white; + disabledFontColor = Color.gray; + up = buttonOver; + over = buttonDown; + }}, () -> spend(node)) .disabled(i -> !canSpend(node)).growX().height(44f).colspan(3); } }); diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java index ed8b2380bb..76c2a2786f 100644 --- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java +++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java @@ -258,7 +258,7 @@ public class SchematicsDialog extends BaseDialog{ dialog.cont.pane(p -> { p.margin(10f); p.table(Tex.button, t -> { - TextButtonStyle style = Styles.cleart; + TextButtonStyle style = Styles.flatt; t.defaults().size(280f, 60f).left(); t.row(); t.button("@schematic.copy.import", Icon.copy, style, () -> { @@ -309,7 +309,7 @@ public class SchematicsDialog extends BaseDialog{ dialog.cont.pane(p -> { p.margin(10f); p.table(Tex.button, t -> { - TextButtonStyle style = Styles.cleart; + TextButtonStyle style = Styles.flatt; t.defaults().size(280f, 60f).left(); if(steam && !s.hasSteamID()){ t.button("@schematic.shareworkshop", Icon.book, style, diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 87129459dd..3b6edecba4 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -85,7 +85,7 @@ public class SettingsMenuDialog extends BaseDialog{ dataDialog.cont.table(Tex.button, t -> { t.defaults().size(280f, 60f).left(); - TextButtonStyle style = Styles.cleart; + TextButtonStyle style = Styles.flatt; t.button("@settings.cleardata", Icon.trash, style, () -> ui.showConfirm("@confirm", "@settings.clearall.confirm", () -> { ObjectMap map = new ObjectMap<>(); @@ -248,7 +248,7 @@ public class SettingsMenuDialog extends BaseDialog{ void rebuildMenu(){ menu.clearChildren(); - TextButtonStyle style = Styles.cleart; + TextButtonStyle style = Styles.flatt; menu.defaults().size(300f, 60f); menu.button("@settings.game", style, () -> visible(0));