From 85e346b3784e53eab2d57233a31cc7a4d29852cd Mon Sep 17 00:00:00 2001 From: Sollace Date: Sun, 14 Apr 2019 13:32:01 +0200 Subject: [PATCH] Update all the UI Library code --- build.gradle | 20 +---- .../client/gui/GuiPonySettings.java | 50 ++++++----- .../client/gui/hdskins/GuiSkinsMineLP.java | 28 +++--- .../minelittlepony/common/SensibleConfig.java | 61 ------------- .../common/client/gui/Button.java | 63 ------------- .../common/client/gui/GameGui.java | 61 ------------- .../common/client/gui/GuiHost.java | 42 --------- .../common/client/gui/IGuiAction.java | 15 ---- .../common/client/gui/IGuiCallback.java | 15 ---- .../common/client/gui/IGuiGuest.java | 16 ---- .../common/client/gui/IGuiTooltipped.java | 42 --------- .../common/client/gui/IStyleFactory.java | 6 -- .../common/client/gui/IconicButton.java | 30 ------- .../common/client/gui/IconicToggle.java | 61 ------------- .../common/client/gui/Label.java | 46 ---------- .../common/client/gui/Slider.java | 88 ------------------- .../common/client/gui/Style.java | 54 ------------ .../common/client/gui/Toggle.java | 48 ---------- .../common/client/gui/package-info.java | 7 -- .../minelittlepony/common/package-info.java | 7 -- .../common/util/MoreStreams.java | 37 -------- 21 files changed, 46 insertions(+), 751 deletions(-) delete mode 100644 src/common/java/com/minelittlepony/common/SensibleConfig.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/Button.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/GameGui.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/GuiHost.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IGuiAction.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IGuiCallback.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IGuiGuest.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IGuiTooltipped.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IStyleFactory.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IconicButton.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/IconicToggle.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/Label.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/Slider.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/Style.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/Toggle.java delete mode 100644 src/common/java/com/minelittlepony/common/client/gui/package-info.java delete mode 100644 src/common/java/com/minelittlepony/common/package-info.java delete mode 100644 src/common/java/com/minelittlepony/common/util/MoreStreams.java diff --git a/build.gradle b/build.gradle index e92240c9..2966d921 100644 --- a/build.gradle +++ b/build.gradle @@ -53,12 +53,6 @@ description = project.displayname archivesBaseName = project.name sourceSets { - common { - // code shared between HDSkins and MineLP mods - // TODO: Make this into a library? I mean, it's not a lot. - compileClasspath += main.compileClasspath - } - client { // Client-only code compileClasspath += main.compileClasspath @@ -67,17 +61,6 @@ sourceSets { ext.refMap = 'minelp.mixin.refmap.json' } main { - // Non-client code. Called main because gradle calls it that - // TODO: HorseLib.java - - compileClasspath += common.output - } - - // Litemod stuff, separated for future removal - litemod { - compileClasspath += main.compileClasspath - compileClasspath += main.output - compileClasspath += client.output } fml { @@ -86,6 +69,8 @@ sourceSets { compileClasspath += client.output } + // TODO: Disable the hidden "test" sourceset + // TODO: Disable the resources folders for sourcesets that don't need them } minecraft { @@ -129,6 +114,7 @@ repositories { dependencies { // TODO: Add HDSkins as a dependency. It won't compile without it. + // TODO: Add KirinUI as a dependency. minecraft 'net.minecraftforge:forge:1.13.2-25.0.90' diff --git a/src/client/java/com/minelittlepony/client/gui/GuiPonySettings.java b/src/client/java/com/minelittlepony/client/gui/GuiPonySettings.java index 78ba0bcc..482099fe 100644 --- a/src/client/java/com/minelittlepony/client/gui/GuiPonySettings.java +++ b/src/client/java/com/minelittlepony/client/gui/GuiPonySettings.java @@ -7,9 +7,9 @@ import com.minelittlepony.client.render.entities.MobRenderers; import com.minelittlepony.common.client.gui.GameGui; import com.minelittlepony.common.client.gui.GuiHost; import com.minelittlepony.common.client.gui.IGuiGuest; -import com.minelittlepony.common.client.gui.Label; -import com.minelittlepony.common.client.gui.Slider; -import com.minelittlepony.common.client.gui.Toggle; +import com.minelittlepony.common.client.gui.element.Label; +import com.minelittlepony.common.client.gui.element.Slider; +import com.minelittlepony.common.client.gui.element.Toggle; import com.minelittlepony.settings.PonyConfig; import com.minelittlepony.settings.PonyLevel; import com.minelittlepony.settings.PonyConfig.PonySettings; @@ -40,32 +40,34 @@ public class GuiPonySettings implements IGuiGuest { int row = host.mustScroll() ? 0 : 32; if (!host.mustScroll()) { - host.addButton(new Label(host.width / 2, 12, getTitle(), -1, true)); + host.addButton(new Label(host.width / 2, 12).setCentered()).getStyle().setText(getTitle()); } - host.addButton(new Label(LEFT, row += 15, PONY_LEVEL, -1)); - host.addButton(new Slider(LEFT, row += 15, 0, 2, config.getPonyLevel().ordinal(), v -> { - PonyLevel level = PonyLevel.valueFor(v); - config.setPonyLevel(level); - return (float)level.ordinal(); - }).setFormatter(value -> { - return GameGui.format(PONY_LEVEL + "." + PonyLevel.valueFor(value).name().toLowerCase()); - })); + host.addButton(new Label(LEFT, row += 15)).getStyle().setText(PONY_LEVEL); + host.addButton(new Slider(LEFT, row += 15, 0, 2, config.getPonyLevel().ordinal()) + .onChange(v -> { + PonyLevel level = PonyLevel.valueFor(v); + config.setPonyLevel(level); + return (float)level.ordinal(); + }) + .setFormatter(value -> GameGui.format(PONY_LEVEL + "." + PonyLevel.valueFor(value).name().toLowerCase()))); if (GuiScreen.isCtrlKeyDown() && GuiScreen.isShiftKeyDown()) { - host.addButton(new Label(LEFT, row += 30, "minelp.debug.scale", -1)); - host.addButton(new Slider(LEFT, row += 15, 0.1F, 3, config.getGlobalScaleFactor(), v -> { - config.setGlobalScaleFactor(v); - return config.getGlobalScaleFactor(); - }).setFormatter(value -> { - return GameGui.format("minelp.debug.scale.value", GameGui.format(describeCurrentScale(value))); - })); + host.addButton(new Label(LEFT, row += 30)).getStyle().setText("minelp.debug.scale"); + host.addButton(new Slider(LEFT, row += 15, 0.1F, 3, config.getGlobalScaleFactor()) + .onChange(v -> { + config.setGlobalScaleFactor(v); + return config.getGlobalScaleFactor(); + }) + .setFormatter(value -> GameGui.format("minelp.debug.scale.value", GameGui.format(describeCurrentScale(value))))); } row += 15; - host.addButton(new Label(LEFT, row += 15, OPTIONS_PREFIX + "options", -1)); + host.addButton(new Label(LEFT, row += 15)).getStyle().setText(OPTIONS_PREFIX + "options"); for (PonySettings i : PonySettings.values()) { - host.addButton(new Toggle(LEFT, row += 20, i.get(), OPTIONS_PREFIX + i.name().toLowerCase(), i)); + host.addButton(new Toggle(LEFT, row += 20, i.get())) + .onChange(i) + .getStyle().setText(OPTIONS_PREFIX + i.name().toLowerCase()); } if (host.mustScroll()) { @@ -74,9 +76,11 @@ public class GuiPonySettings implements IGuiGuest { row = 32; } - host.addButton(new Label(RIGHT, row += 15, MOB_PREFIX + "title", -1)); + host.addButton(new Label(RIGHT, row += 15)).getStyle().setText(MOB_PREFIX + "title"); for (MobRenderers i : MobRenderers.values()) { - host.addButton(new Toggle(RIGHT, row += 20, i.get(), MOB_PREFIX + i.name().toLowerCase(), i)); + host.addButton(new Toggle(RIGHT, row += 20, i.get())) + .onChange(i) + .getStyle().setText(MOB_PREFIX + i.name().toLowerCase()); } } diff --git a/src/client/java/com/minelittlepony/client/gui/hdskins/GuiSkinsMineLP.java b/src/client/java/com/minelittlepony/client/gui/hdskins/GuiSkinsMineLP.java index a62a6e37..fa7dcd65 100644 --- a/src/client/java/com/minelittlepony/client/gui/hdskins/GuiSkinsMineLP.java +++ b/src/client/java/com/minelittlepony/client/gui/hdskins/GuiSkinsMineLP.java @@ -1,8 +1,8 @@ package com.minelittlepony.client.gui.hdskins; import com.minelittlepony.MineLittlePony; -import com.minelittlepony.common.client.gui.IconicToggle; -import com.minelittlepony.common.client.gui.Style; +import com.minelittlepony.common.client.gui.element.IconicToggle; +import com.minelittlepony.common.client.gui.style.Style; import com.minelittlepony.hdskins.gui.EntityPlayerModel; import com.minelittlepony.hdskins.gui.GuiSkins; import com.minelittlepony.hdskins.net.SkinServer; @@ -28,9 +28,9 @@ public class GuiSkinsMineLP extends GuiSkins { private boolean isWet = false; private static final String[] panoramas = new String[] { - "minelittlepony:textures/cubemap/sugarcubecorner_%d.png", - "minelittlepony:textures/cubemap/quillsandsofas_%d.png", - "minelittlepony:textures/cubemap/sweetappleacres_%d.png" + "minelittlepony:textures/cubemap/sugarcubecorner", + "minelittlepony:textures/cubemap/quillsandsofas", + "minelittlepony:textures/cubemap/sweetappleacres" }; public GuiSkinsMineLP(List servers) { @@ -46,11 +46,13 @@ public class GuiSkinsMineLP extends GuiSkins { public void initGui() { super.initGui(); - addButton(new IconicToggle(width - 25, 142, 2, sender -> setWet(sender.getValue() == 1)) - .setStyle(new Style().setIcon(new ItemStack(Items.WATER_BUCKET)).setTooltip("minelp.mode.wet"), 1) - .setStyle(new Style().setIcon(new ItemStack(Items.BUCKET)).setTooltip("minelp.mode.dry"), 0) - .setValue(isWet ? 1 : 0) - .setTooltipOffset(0, 10)); + addButton(new IconicToggle(width - 25, 142)) + .setStyles( + new Style().setIcon(new ItemStack(Items.WATER_BUCKET)).setTooltip("minelp.mode.wet", 0, 10), + new Style().setIcon(new ItemStack(Items.BUCKET)).setTooltip("minelp.mode.dry", 0, 10) + ) + .onChange(this::setWet) + .setValue(isWet ? 1 : 0); } @Override @@ -60,14 +62,16 @@ public class GuiSkinsMineLP extends GuiSkins { return new ResourceLocation(panoramas[i]); } - protected void setWet(boolean wet) { + protected int setWet(int wet) { playSound(SoundEvents.BLOCK_BREWING_STAND_BREW); - isWet = wet; + isWet = wet == 1; localPlayer.releaseTextures(); ((EntityPonyModel)localPlayer).setWet(isWet); ((EntityPonyModel)remotePlayer).setWet(isWet); + + return wet; } @Override diff --git a/src/common/java/com/minelittlepony/common/SensibleConfig.java b/src/common/java/com/minelittlepony/common/SensibleConfig.java deleted file mode 100644 index fa3e3d47..00000000 --- a/src/common/java/com/minelittlepony/common/SensibleConfig.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.minelittlepony.common; - -import com.minelittlepony.common.client.gui.IGuiCallback; - -/** - * A sensible config container that actually lets us programmatically index values by a key. - * - * Reflection because Mumfrey pls. - * - */ -// Mumfrey pls. -public abstract class SensibleConfig { - - private static SensibleConfig instance; - - public SensibleConfig() { - instance = this; - } - - public abstract void save(); - - public interface Setting extends IGuiCallback { - String name(); - - /** - * Gets the config value associated with this entry. - */ - default boolean get() { - return instance.getValue(this); - } - - /** - * Sets the config value associated with this entry. - */ - default void set(boolean value) { - instance.setValue(this, value); - } - - @Override - default Boolean perform(Boolean v) { - set(v); - return v; - } - } - - public boolean getValue(Setting key) { - try { - return this.getClass().getField(key.name().toLowerCase()).getBoolean(this); - } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException ignored) { - return true; - } - } - - public boolean setValue(Setting key, boolean value) { - try { - this.getClass().getField(key.name().toLowerCase()).setBoolean(this, value); - } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException ignored) { - } - return value; - } -} diff --git a/src/common/java/com/minelittlepony/common/client/gui/Button.java b/src/common/java/com/minelittlepony/common/client/gui/Button.java deleted file mode 100644 index f38528cb..00000000 --- a/src/common/java/com/minelittlepony/common/client/gui/Button.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.minelittlepony.common.client.gui; - -import java.util.List; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; - -public class Button extends GuiButton implements IGuiTooltipped