diff --git a/core/assets-raw/sprites/ui/slider-back.9.png b/core/assets-raw/sprites/ui/slider-back.9.png new file mode 100644 index 0000000000..71762a2163 Binary files /dev/null and b/core/assets-raw/sprites/ui/slider-back.9.png differ diff --git a/core/assets-raw/sprites/ui/slider-knob-down.png b/core/assets-raw/sprites/ui/slider-knob-down.png index 7eac1c0f51..72ff323d0b 100644 Binary files a/core/assets-raw/sprites/ui/slider-knob-down.png and b/core/assets-raw/sprites/ui/slider-knob-down.png differ diff --git a/core/assets-raw/sprites/ui/slider-knob-over.png b/core/assets-raw/sprites/ui/slider-knob-over.png index a4bb61170b..d7ca8fb4ea 100644 Binary files a/core/assets-raw/sprites/ui/slider-knob-over.png and b/core/assets-raw/sprites/ui/slider-knob-over.png differ diff --git a/core/assets-raw/sprites/ui/slider-knob.png b/core/assets-raw/sprites/ui/slider-knob.png index 6e643e0dc6..7c4e35233e 100644 Binary files a/core/assets-raw/sprites/ui/slider-knob.png and b/core/assets-raw/sprites/ui/slider-knob.png differ diff --git a/core/assets-raw/sprites/ui/slider-vertical.png b/core/assets-raw/sprites/ui/slider-vertical.png deleted file mode 100644 index 91d7c16e1f..0000000000 Binary files a/core/assets-raw/sprites/ui/slider-vertical.png and /dev/null differ diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 3657c09bc3..811650ef7a 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2047,7 +2047,6 @@ public class UnitTypes implements ContentList{ buildSpeed = 3f; abilities.add(new EnergyFieldAbility(35f, 65f, 180f){{ - repair = 35f; statusDuration = 60f * 6f; maxTargets = 25; }}); diff --git a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java index 587fff2bdc..0109128f38 100644 --- a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java +++ b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java @@ -16,14 +16,14 @@ import mindustry.type.*; public class EnergyFieldAbility extends Ability{ private static final Seq all = new Seq<>(); - public float damage = 1, repair = 20f, reload = 100, range = 60; + public float damage = 1, reload = 100, range = 60; public Effect healEffect = Fx.heal, hitEffect = Fx.hitLaserBlast, damageEffect = Fx.chainLightning; public StatusEffect status = StatusEffects.electrified; public float statusDuration = 60f * 6f; public float x, y; public boolean hitBuildings = true; public int maxTargets = 25; - public float healPercent = 3f; + public float healPercent = 2.5f; public float layer = Layer.bullet - 0.001f, blinkScl = 20f; public float effectRadius = 5f, sectorRad = 0.14f, rotateSpeed = 0.5f; diff --git a/core/src/mindustry/maps/filters/FilterOption.java b/core/src/mindustry/maps/filters/FilterOption.java index ea97157abf..6b2e3aa1f1 100644 --- a/core/src/mindustry/maps/filters/FilterOption.java +++ b/core/src/mindustry/maps/filters/FilterOption.java @@ -3,12 +3,15 @@ package mindustry.maps.filters; import arc.*; import arc.func.*; +import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.util.*; import mindustry.*; import mindustry.content.*; import mindustry.gen.*; +import mindustry.ui.*; import mindustry.ui.dialogs.*; import mindustry.world.*; import mindustry.world.blocks.environment.*; @@ -35,7 +38,7 @@ public abstract class FilterOption{ final Floatc setter; final float min, max, step; - boolean display; + boolean display = true; SliderOption(String name, Floatp getter, Floatc setter, float min, float max){ this(name, getter, setter, min, max, (max - min) / 200); @@ -57,19 +60,27 @@ public abstract class FilterOption{ @Override public void build(Table table){ + Label label; if(!display){ - table.add("@filter.option." + name); + label = new Label("@filter.option." + name); }else{ - table.label(() -> Core.bundle.get("filter.option." + name) + ": " + (int)getter.get()); + label = new Label(() -> Core.bundle.get("filter.option." + name) + ": " + Strings.autoFixed(getter.get(), 2)); } - table.row(); - Slider slider = table.slider(min, max, step, setter).growX().get(); + label.setWrap(true); + label.setAlignment(Align.center); + label.touchable = Touchable.disabled; + label.setStyle(Styles.outlineLabel); + + Slider slider = new Slider(min, max, step, false); + slider.moved(setter); slider.setValue(getter.get()); if(updateEditorOnChange){ slider.changed(changed); }else{ slider.released(changed); } + + table.stack(slider, label).colspan(2).pad(3).growX().row(); } } diff --git a/core/src/mindustry/ui/Styles.java b/core/src/mindustry/ui/Styles.java index 4e7042fe80..36a3ace7d2 100644 --- a/core/src/mindustry/ui/Styles.java +++ b/core/src/mindustry/ui/Styles.java @@ -31,7 +31,7 @@ public class Styles{ public static ImageButtonStyle defaulti, nodei, righti, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearPartial2i, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali; public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, nonePane; public static KeybindDialog.KeybindDialogStyle defaultKeybindDialog; - public static SliderStyle defaultSlider, vSlider; + public static SliderStyle defaultSlider; public static LabelStyle defaultLabel, outlineLabel, techLabel; public static TextFieldStyle defaultField, nodeField, areaField, nodeArea; public static CheckBoxStyle defaultCheck; @@ -320,13 +320,7 @@ public class Styles{ }}; defaultSlider = new SliderStyle(){{ - background = slider; - knob = sliderKnob; - knobOver = sliderKnobOver; - knobDown = sliderKnobDown; - }}; - vSlider = new SliderStyle(){{ - background = sliderVertical; + background = sliderBack; knob = sliderKnob; knobOver = sliderKnobOver; knobDown = sliderKnobDown; diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 168ae4b451..dccf2dadcb 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -6,6 +6,7 @@ import arc.func.*; import arc.graphics.*; import arc.graphics.Texture.*; import arc.input.*; +import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.TextButton.*; import arc.scene.ui.layout.*; @@ -686,23 +687,21 @@ public class SettingsMenuDialog extends Dialog{ slider.setValue(settings.getInt(name)); - Label label = new Label(title); + Label value = new Label(""); + value.setStyle(Styles.outlineLabel); + value.touchable = Touchable.disabled; + slider.changed(() -> { settings.put(name, (int)slider.getValue()); - label.setText(title + ": " + sp.get((int)slider.getValue())); + value.setText(title + ": " + sp.get((int)slider.getValue())); }); + value.setAlignment(Align.center); + value.setWrap(true); + slider.change(); - table.table(t -> { - t.left().defaults().left(); - t.add(label).minWidth(label.getPrefWidth() / Scl.scl(1f) + 50); - if(Core.graphics.isPortrait()){ - t.row(); - } - t.add(slider).width(180); - }).left().padTop(3); - + table.stack(slider, value).width(420f).left().padTop(4); table.row(); } } diff --git a/gradle.properties b/gradle.properties index d732f03f20..a0c542efe2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,4 +10,4 @@ kapt.include.compile.classpath=false kotlin.stdlib.default.dependency=false #needed for android compilation android.useAndroidX=true -archash=52cd02b71205949b68e9b620b6a02fed3622bac0 +archash=ca3a52e9571ff20f9dd6c43337740539f407d3dd