diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 4ca0b574cdb..baf97df8181 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -95,7 +95,7 @@ public class ComputerUtil { sa.setHostCard(game.getAction().moveToStack(source, sa)); } - if (sa.isCopied()) { + if (!sa.isCopied()) { sa.resetPaidHash(); } diff --git a/forge-core/src/main/java/forge/ImageKeys.java b/forge-core/src/main/java/forge/ImageKeys.java index 946bb85f181..bd2c20ed0b5 100644 --- a/forge-core/src/main/java/forge/ImageKeys.java +++ b/forge-core/src/main/java/forge/ImageKeys.java @@ -163,6 +163,10 @@ public final class ImageKeys { for (String ext : FILE_EXTENSIONS) { File file = new File(dir, filename + ext); if (file.exists()) { + if (file.isDirectory()) { + file.delete(); + continue; + } return file; } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java index 780bded2364..7f0fa438ebc 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java @@ -292,6 +292,7 @@ public class AnimateEffect extends AnimateEffectBase { addedStaticAbilities, timestamp); c.removeChangedName(timestamp); + c.updateStateForView(); game.fireEvent(new GameEventCardStatsChanged(c)); diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffectBase.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffectBase.java index e6f814bb780..41399ba8a1f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffectBase.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffectBase.java @@ -79,7 +79,7 @@ public abstract class AnimateEffectBase extends SpellAbilityEffect { } if (sa.hasParam("RemoveLandTypes")) { - removeCreatureTypes = true; + removeLandTypes = true; } if (sa.hasParam("RemoveCreatureTypes")) { removeCreatureTypes = true; diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 6be6628b541..74112fa659e 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -874,6 +874,15 @@ public class CardProperty { } } return false; + case "TriggeredCard": + final Object triggeringObject = source.getTriggeringObject(restriction.substring("Triggered".length())); + if (!(triggeringObject instanceof Card)) { + return false; + } + if (card.sharesCardTypeWith((Card) triggeringObject)) { + return true; + } + return false; case "EachTopLibrary": final CardCollection cards = new CardCollection(); for (Player p : game.getPlayers()) { @@ -1067,34 +1076,6 @@ public class CardProperty { if (p == null || !controller.equals(game.getNextPlayerAfter(p, direction))) { return false; } - } else if (property.startsWith("sharesTypeWith")) { - if (property.equals("sharesTypeWith")) { - if (!card.sharesTypeWith(source)) { - return false; - } - } else { - final String restriction = property.split("sharesTypeWith ")[1]; - final Card checkCard; - if (restriction.startsWith("Triggered")) { - final Object triggeringObject = source.getTriggeringObject(restriction.substring("Triggered".length())); - if (!(triggeringObject instanceof Card)) { - return false; - } - checkCard = (Card) triggeringObject; - } else if (restriction.startsWith("Remembered")) { - final Object rememberedObject = source.getFirstRemembered(); - if (!(rememberedObject instanceof Card)) { - return false; - } - checkCard = (Card) rememberedObject; - } else { - return false; - } - - if (!card.sharesTypeWith(checkCard)) { - return false; - } - } } else if (property.startsWith("hasKeyword")) { // "withFlash" would find Flashback cards, add this to fix Mystical Teachings if (!card.hasKeyword(property.substring(10))) { diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerType.java b/forge-game/src/main/java/forge/game/trigger/TriggerType.java index 307dcb5a1f4..1c62481089e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerType.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerType.java @@ -83,6 +83,7 @@ public enum TriggerType { SetInMotion(TriggerSetInMotion.class), Shuffled(TriggerShuffled.class), SpellAbilityCast(TriggerSpellAbilityCast.class), + SpellAbilityCopy(TriggerSpellAbilityCopy.class), SpellCast(TriggerSpellAbilityCast.class), SpellCopy(TriggerSpellAbilityCopy.class), Surveil(TriggerSurveil.class), diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 4e06a63fac6..2fb39bf9915 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -334,6 +334,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable + @@ -14,13 +15,14 @@ + android:label="@string/app_name" + android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|screenLayout"> diff --git a/forge-gui-android/libs/armeabi-v7a/libgdx-freetype.so b/forge-gui-android/libs/armeabi-v7a/libgdx-freetype.so index 31bd4337c02..acdeb53636e 100644 Binary files a/forge-gui-android/libs/armeabi-v7a/libgdx-freetype.so and b/forge-gui-android/libs/armeabi-v7a/libgdx-freetype.so differ diff --git a/forge-gui-android/libs/armeabi-v7a/libgdx.so b/forge-gui-android/libs/armeabi-v7a/libgdx.so index b224b0c9883..1b517c99f7a 100644 Binary files a/forge-gui-android/libs/armeabi-v7a/libgdx.so and b/forge-gui-android/libs/armeabi-v7a/libgdx.so differ diff --git a/forge-gui-android/libs/armeabi/libgdx-freetype.so b/forge-gui-android/libs/armeabi/libgdx-freetype.so index 208f3740c42..26388012eae 100644 Binary files a/forge-gui-android/libs/armeabi/libgdx-freetype.so and b/forge-gui-android/libs/armeabi/libgdx-freetype.so differ diff --git a/forge-gui-android/libs/armeabi/libgdx.so b/forge-gui-android/libs/armeabi/libgdx.so index c6cdb9acd69..c54c7338740 100644 Binary files a/forge-gui-android/libs/armeabi/libgdx.so and b/forge-gui-android/libs/armeabi/libgdx.so differ diff --git a/forge-gui-android/libs/gdx-backend-android-sources.jar b/forge-gui-android/libs/gdx-backend-android-sources.jar index 57de0b28f0d..5315cab4bdb 100644 Binary files a/forge-gui-android/libs/gdx-backend-android-sources.jar and b/forge-gui-android/libs/gdx-backend-android-sources.jar differ diff --git a/forge-gui-android/libs/gdx-backend-android.jar b/forge-gui-android/libs/gdx-backend-android.jar index 764f011ac32..c847c6e1c74 100644 Binary files a/forge-gui-android/libs/gdx-backend-android.jar and b/forge-gui-android/libs/gdx-backend-android.jar differ diff --git a/forge-gui-android/libs/gdx-freetype.jar b/forge-gui-android/libs/gdx-freetype.jar index 0bf589430f3..cff324ecd35 100644 Binary files a/forge-gui-android/libs/gdx-freetype.jar and b/forge-gui-android/libs/gdx-freetype.jar differ diff --git a/forge-gui-android/libs/gdx-sources.jar b/forge-gui-android/libs/gdx-sources.jar index 8fb1bc13dae..ca6c8a53100 100644 Binary files a/forge-gui-android/libs/gdx-sources.jar and b/forge-gui-android/libs/gdx-sources.jar differ diff --git a/forge-gui-android/libs/gdx.jar b/forge-gui-android/libs/gdx.jar index bea010104c2..7d93f8ba6b3 100644 Binary files a/forge-gui-android/libs/gdx.jar and b/forge-gui-android/libs/gdx.jar differ diff --git a/forge-gui-android/libs/x86/libgdx-freetype.so b/forge-gui-android/libs/x86/libgdx-freetype.so index 39634d4669a..62c08dd6038 100644 Binary files a/forge-gui-android/libs/x86/libgdx-freetype.so and b/forge-gui-android/libs/x86/libgdx-freetype.so differ diff --git a/forge-gui-android/libs/x86/libgdx.so b/forge-gui-android/libs/x86/libgdx.so index de5b8006eb5..1f144b902b5 100644 Binary files a/forge-gui-android/libs/x86/libgdx.so and b/forge-gui-android/libs/x86/libgdx.so differ diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 0c722640e6e..463b1cd39af 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -102,7 +102,7 @@ com.badlogicgames.gdx gdx-backend-android - 1.5.5 + 1.9.10 diff --git a/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher.xml b/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000000..036d09bc5fd --- /dev/null +++ b/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher_round.xml b/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000000..036d09bc5fd --- /dev/null +++ b/forge-gui-android/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/forge-gui-android/res/mipmap-hdpi/ic_launcher.png b/forge-gui-android/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000000..13ac6220632 Binary files /dev/null and b/forge-gui-android/res/mipmap-hdpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-hdpi/ic_launcher_foreground.png b/forge-gui-android/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 00000000000..a29e46aa510 Binary files /dev/null and b/forge-gui-android/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/forge-gui-android/res/mipmap-hdpi/ic_launcher_round.png b/forge-gui-android/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 00000000000..07a75d76bfa Binary files /dev/null and b/forge-gui-android/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/forge-gui-android/res/mipmap-ldpi/ic_launcher.png b/forge-gui-android/res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 00000000000..ee25ac432d9 Binary files /dev/null and b/forge-gui-android/res/mipmap-ldpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-mdpi/ic_launcher.png b/forge-gui-android/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000000..5fdd9db84cf Binary files /dev/null and b/forge-gui-android/res/mipmap-mdpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-mdpi/ic_launcher_foreground.png b/forge-gui-android/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 00000000000..524a6232021 Binary files /dev/null and b/forge-gui-android/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/forge-gui-android/res/mipmap-mdpi/ic_launcher_round.png b/forge-gui-android/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 00000000000..bb574ba21ae Binary files /dev/null and b/forge-gui-android/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/forge-gui-android/res/mipmap-xhdpi/ic_launcher.png b/forge-gui-android/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000000..5d5de8a444f Binary files /dev/null and b/forge-gui-android/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-xhdpi/ic_launcher_foreground.png b/forge-gui-android/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000000..0e93289f2d1 Binary files /dev/null and b/forge-gui-android/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/forge-gui-android/res/mipmap-xhdpi/ic_launcher_round.png b/forge-gui-android/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 00000000000..96328be12a9 Binary files /dev/null and b/forge-gui-android/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/forge-gui-android/res/mipmap-xxhdpi/ic_launcher.png b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000000..e6ea9ce1897 Binary files /dev/null and b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_foreground.png b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000000..a01a5036f4f Binary files /dev/null and b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_round.png b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 00000000000..e4d1b24e68e Binary files /dev/null and b/forge-gui-android/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher.png b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000000..3380a1063bb Binary files /dev/null and b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000000..e8ccb890b9e Binary files /dev/null and b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_round.png b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 00000000000..68aca8009d4 Binary files /dev/null and b/forge-gui-android/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/forge-gui-android/res/values/ic_launcher_background.xml b/forge-gui-android/res/values/ic_launcher_background.xml new file mode 100644 index 00000000000..7f8bb682c03 --- /dev/null +++ b/forge-gui-android/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #f0f0f0 + \ No newline at end of file diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java index bf4c73e0e4f..b9d26086c2b 100644 --- a/forge-gui-android/src/forge/app/Main.java +++ b/forge-gui-android/src/forge/app/Main.java @@ -17,6 +17,8 @@ import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.os.PowerManager; +import android.provider.Settings; +import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import android.view.WindowManager; import android.webkit.MimeTypeMap; import com.badlogic.gdx.Gdx; @@ -35,6 +37,8 @@ import java.io.OutputStream; import java.util.concurrent.Callable; public class Main extends AndroidApplication { + public int time = -2; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -235,13 +239,17 @@ public class Main extends AndroidApplication { @Override public void preventSystemSleep(final boolean preventSleep) { + if (time == -2) + time = Settings.System.getInt(getContentResolver(), SCREEN_OFF_TIMEOUT, 0); FThreads.invokeInEdtNowOrLater(new Runnable() { //must set window flags from EDT thread @Override public void run() { if (preventSleep) { + Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } else { + Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, time); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } } diff --git a/forge-gui-desktop/src/main/java/forge/ImageLoader.java b/forge-gui-desktop/src/main/java/forge/ImageLoader.java index 4900be33470..a72a0189aba 100644 --- a/forge-gui-desktop/src/main/java/forge/ImageLoader.java +++ b/forge-gui-desktop/src/main/java/forge/ImageLoader.java @@ -14,6 +14,13 @@ final class ImageLoader extends CacheLoader { public BufferedImage load(String key) { File file = ImageKeys.getImageFile(key); if (file != null) { + if (!file.exists()) { + return null; + } + if (file.isDirectory()) { + file.delete(); + return null; + } try { return ImageIO.read(file); } diff --git a/forge-gui-desktop/src/main/java/forge/util/SwingImageFetcher.java b/forge-gui-desktop/src/main/java/forge/util/SwingImageFetcher.java index 7949a3e1f10..bfd6258d2d7 100644 --- a/forge-gui-desktop/src/main/java/forge/util/SwingImageFetcher.java +++ b/forge-gui-desktop/src/main/java/forge/util/SwingImageFetcher.java @@ -28,18 +28,35 @@ public class SwingImageFetcher extends ImageFetcher { private void doFetch(String urlToDownload) throws IOException { URL url = new URL(urlToDownload); System.out.println("Attempting to fetch: " + url); - java.net.URLConnection c = url.openConnection(); - c.setRequestProperty("User-Agent", ""); - BufferedImage image = ImageIO.read(c.getInputStream()); + BufferedImage image = ImageIO.read(url); // First, save to a temporary file so that nothing tries to read // a partial download. File destFile = new File(destPath + ".tmp"); - destFile.mkdirs(); - ImageIO.write(image, "jpg", destFile); - // Now, rename it to the correct name. - destFile.renameTo(new File(destPath)); - System.out.println("Saved image to " + destPath); - SwingUtilities.invokeLater(notifyObservers); + // need to check directory folder for mkdir + destFile.getParentFile().mkdirs(); + if (ImageIO.write(image, "jpg", destFile)) { + // Now, rename it to the correct name. + if (destFile.renameTo(new File(destPath))) { + System.out.println("Saved image to " + destPath); + SwingUtilities.invokeLater(notifyObservers); + } else { + System.err.println("Failed to rename image to " + destPath); + } + } else { + System.err.println("Failed to save image from " + url + " as jpeg"); + // try to save image as png instead + if (ImageIO.write(image, "png", destFile)) { + String newPath = destPath.replace(".jpg", ".png"); + if (destFile.renameTo(new File(newPath))) { + System.out.println("Saved image to " + newPath); + SwingUtilities.invokeLater(notifyObservers); + } else { + System.err.println("Failed to rename image to " + newPath); + } + } else { + System.err.println("Failed to save image from " + url + " as png"); + } + } } public void run() { @@ -48,7 +65,7 @@ public class SwingImageFetcher extends ImageFetcher { doFetch(urlToDownload); break; } catch (IOException e) { - System.out.println("Failed to download card [" + destPath + "] image: " + e.getMessage()); + System.err.println("Failed to download card [" + destPath + "] image: " + e.getMessage()); } } } diff --git a/forge-gui-ios/libs/gdx-backend-robovm-sources.jar b/forge-gui-ios/libs/gdx-backend-robovm-sources.jar index 35d6f08215f..de757050e91 100644 Binary files a/forge-gui-ios/libs/gdx-backend-robovm-sources.jar and b/forge-gui-ios/libs/gdx-backend-robovm-sources.jar differ diff --git a/forge-gui-ios/libs/gdx-backend-robovm.jar b/forge-gui-ios/libs/gdx-backend-robovm.jar index 5a229bdb153..13e11a2c091 100644 Binary files a/forge-gui-ios/libs/gdx-backend-robovm.jar and b/forge-gui-ios/libs/gdx-backend-robovm.jar differ diff --git a/forge-gui-ios/libs/gdx-sources.jar b/forge-gui-ios/libs/gdx-sources.jar index 8fb1bc13dae..ca6c8a53100 100644 Binary files a/forge-gui-ios/libs/gdx-sources.jar and b/forge-gui-ios/libs/gdx-sources.jar differ diff --git a/forge-gui-ios/libs/gdx.jar b/forge-gui-ios/libs/gdx.jar index bea010104c2..7d93f8ba6b3 100644 Binary files a/forge-gui-ios/libs/gdx.jar and b/forge-gui-ios/libs/gdx.jar differ diff --git a/forge-gui-ios/libs/libObjectAL.a b/forge-gui-ios/libs/libObjectAL.a index 64a843e4916..671fe0f4107 100644 Binary files a/forge-gui-ios/libs/libObjectAL.a and b/forge-gui-ios/libs/libObjectAL.a differ diff --git a/forge-gui-ios/libs/libgdx-freetype.a b/forge-gui-ios/libs/libgdx-freetype.a index 2c3d4047173..10d04063a66 100644 Binary files a/forge-gui-ios/libs/libgdx-freetype.a and b/forge-gui-ios/libs/libgdx-freetype.a differ diff --git a/forge-gui-ios/libs/libgdx.a b/forge-gui-ios/libs/libgdx.a index be5a0994afa..6e7ffbc168c 100644 Binary files a/forge-gui-ios/libs/libgdx.a and b/forge-gui-ios/libs/libgdx.a differ diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index c5b17b60e00..628d3d9210c 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -73,7 +73,7 @@ com.badlogicgames.gdx gdx-backend-robovm - 1.5.5 + 1.9.10 diff --git a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-natives.jar b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-natives.jar index 0a965e6abd8..cf6e9d4d0a0 100644 Binary files a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-natives.jar and b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-natives.jar differ diff --git a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-sources.jar b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-sources.jar index 9989244b858..5a9f4b59ad6 100644 Binary files a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-sources.jar and b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl-sources.jar differ diff --git a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl.jar b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl.jar index 5dc74244ab1..7b1bc3d1143 100644 Binary files a/forge-gui-mobile-dev/libs/gdx-backend-lwjgl.jar and b/forge-gui-mobile-dev/libs/gdx-backend-lwjgl.jar differ diff --git a/forge-gui-mobile-dev/libs/gdx-freetype-natives.jar b/forge-gui-mobile-dev/libs/gdx-freetype-natives.jar index 28f6a3ad519..c338f9fa739 100644 Binary files a/forge-gui-mobile-dev/libs/gdx-freetype-natives.jar and b/forge-gui-mobile-dev/libs/gdx-freetype-natives.jar differ diff --git a/forge-gui-mobile-dev/libs/gdx-natives.jar b/forge-gui-mobile-dev/libs/gdx-natives.jar index c594064e6c3..efba8c4ab2e 100644 Binary files a/forge-gui-mobile-dev/libs/gdx-natives.jar and b/forge-gui-mobile-dev/libs/gdx-natives.jar differ diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 0495a297461..4e745345768 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -60,7 +60,7 @@ com.badlogicgames.gdx gdx-backend-lwjgl - 1.5.5 + 1.9.10 com.badlogicgames.gdx @@ -71,7 +71,7 @@ com.badlogicgames.gdx gdx-freetype-platform - 1.5.5 + 1.9.10 natives-desktop diff --git a/forge-gui-mobile/libs/gdx-freetype.jar b/forge-gui-mobile/libs/gdx-freetype.jar index 0bf589430f3..cff324ecd35 100644 Binary files a/forge-gui-mobile/libs/gdx-freetype.jar and b/forge-gui-mobile/libs/gdx-freetype.jar differ diff --git a/forge-gui-mobile/libs/gdx-sources.jar b/forge-gui-mobile/libs/gdx-sources.jar index 8fb1bc13dae..ca6c8a53100 100644 Binary files a/forge-gui-mobile/libs/gdx-sources.jar and b/forge-gui-mobile/libs/gdx-sources.jar differ diff --git a/forge-gui-mobile/libs/gdx.jar b/forge-gui-mobile/libs/gdx.jar index bea010104c2..7d93f8ba6b3 100644 Binary files a/forge-gui-mobile/libs/gdx.jar and b/forge-gui-mobile/libs/gdx.jar differ diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 20a2f4d148d..79bc4accf79 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -63,12 +63,12 @@ com.badlogicgames.gdx gdx - 1.5.5 + 1.9.10 com.badlogicgames.gdx gdx-freetype - 1.5.5 + 1.9.10 diff --git a/forge-gui-mobile/src/forge/Graphics.java b/forge-gui-mobile/src/forge/Graphics.java index d0c59daad59..b2a99f88617 100644 --- a/forge-gui-mobile/src/forge/Graphics.java +++ b/forge-gui-mobile/src/forge/Graphics.java @@ -4,8 +4,6 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; @@ -20,7 +18,7 @@ import forge.assets.FSkinColor; import forge.assets.FSkinFont; import forge.toolbox.FDisplayObject; import forge.util.Utils; - +import forge.util.TextBounds; import java.util.Stack; public class Graphics { @@ -602,10 +600,10 @@ public class Graphics { batch.draw(image, adjustX(x), adjustY(y, h), originX - x, h - (originY - y), w, h, 1, 1, rotation, srcX, srcY, srcWidth, srcHeight, false, false); } - public void drawText(String text, FSkinFont font, FSkinColor skinColor, float x, float y, float w, float h, boolean wrap, HAlignment horzAlignment, boolean centerVertically) { + public void drawText(String text, FSkinFont font, FSkinColor skinColor, float x, float y, float w, float h, boolean wrap, int horzAlignment, boolean centerVertically) { drawText(text, font, skinColor.getColor(), x, y, w, h, wrap, horzAlignment, centerVertically); } - public void drawText(String text, FSkinFont font, Color color, float x, float y, float w, float h, boolean wrap, HAlignment horzAlignment, boolean centerVertically) { + public void drawText(String text, FSkinFont font, Color color, float x, float y, float w, float h, boolean wrap, int horzAlignment, boolean centerVertically) { if (alphaComposite < 1) { color = FSkinColor.alphaColor(color, color.a * alphaComposite); } @@ -660,7 +658,7 @@ public class Graphics { } //use nifty trick with multiple text renders to draw outlined text - public void drawOutlinedText(String text, FSkinFont skinFont, Color textColor, Color outlineColor, float x, float y, float w, float h, boolean wrap, HAlignment horzAlignment, boolean centerVertically) { + public void drawOutlinedText(String text, FSkinFont skinFont, Color textColor, Color outlineColor, float x, float y, float w, float h, boolean wrap, int horzAlignment, boolean centerVertically) { drawText(text, skinFont, outlineColor, x - 1, y, w, h, wrap, horzAlignment, centerVertically); drawText(text, skinFont, outlineColor, x, y - 1, w, h, wrap, horzAlignment, centerVertically); drawText(text, skinFont, outlineColor, x - 1, y - 1, w, h, wrap, horzAlignment, centerVertically); diff --git a/forge-gui-mobile/src/forge/animation/GifAnimation.java b/forge-gui-mobile/src/forge/animation/GifAnimation.java index 3657860904a..6cd7aa7cde5 100644 --- a/forge-gui-mobile/src/forge/animation/GifAnimation.java +++ b/forge-gui-mobile/src/forge/animation/GifAnimation.java @@ -8,7 +8,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import forge.Graphics; public class GifAnimation extends ForgeAnimation { - private final Animation animation; + private final Animation animation; private TextureRegion currentFrame; private float stateTime; diff --git a/forge-gui-mobile/src/forge/assets/FSkinFont.java b/forge-gui-mobile/src/forge/assets/FSkinFont.java index 0f4d8728a3e..726edaabc3a 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinFont.java +++ b/forge-gui-mobile/src/forge/assets/FSkinFont.java @@ -5,13 +5,8 @@ import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.*; import com.badlogic.gdx.graphics.g2d.BitmapFont.BitmapFontData; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; -import com.badlogic.gdx.graphics.g2d.PixmapPacker; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; @@ -19,8 +14,8 @@ import com.badlogic.gdx.utils.Array; import forge.FThreads; import forge.properties.ForgeConstants; import forge.util.FileUtil; +import forge.util.TextBounds; import forge.util.Utils; - import java.io.File; import java.util.HashMap; import java.util.Map; @@ -31,6 +26,7 @@ public class FSkinFont { private static final String TTF_FILE = "font1.ttf"; private static final Map fonts = new HashMap(); + private static final GlyphLayout layout = new GlyphLayout(); static { FileUtil.ensureDirectoryExists(ForgeConstants.FONTS_DIR); @@ -98,15 +94,22 @@ public class FSkinFont { // Expose methods from font that updates scale as needed public TextBounds getBounds(CharSequence str) { updateScale(); //must update scale before measuring text - return font.getBounds(str); + layout.setText(font, str); + return new TextBounds(layout.width, layout.height); + } public TextBounds getMultiLineBounds(CharSequence str) { updateScale(); - return font.getMultiLineBounds(str); + layout.setText(font, str); + return new TextBounds(layout.width, layout.height); + } public TextBounds getWrappedBounds(CharSequence str, float wrapWidth) { updateScale(); - return font.getWrappedBounds(str, wrapWidth); + layout.setText(font, str); + layout.width = wrapWidth; + return new TextBounds(layout.width, layout.height); + } public float getAscent() { updateScale(); @@ -121,20 +124,16 @@ public class FSkinFont { return font.getLineHeight(); } - public void draw(SpriteBatch batch, String text, Color color, float x, float y, float w, boolean wrap, HAlignment horzAlignment) { + public void draw(SpriteBatch batch, String text, Color color, float x, float y, float w, boolean wrap, int horzAlignment) { updateScale(); font.setColor(color); - if (wrap) { - font.drawWrapped(batch, text, x, y, w, horzAlignment); - } else { - font.drawMultiLine(batch, text, x, y, w, horzAlignment); - } + font.draw(batch, text, x, y, w, horzAlignment, wrap); } //update scale of font if needed private void updateScale() { if (font.getScaleX() != scale) { - font.setScale(scale); + font.getData().setScale(scale); } } @@ -187,7 +186,7 @@ public class FSkinFont { //only generate images for characters that could be used by Forge String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890\"!?'.,;:()[]{}<>|/@\\^$-%+=#_&*\u2014\u2022"; - + chars += "ÁÉÍÓÚáéíóúÀÈÌÒÙàèìòùÑñÄËÏÖÜäëïöüẞß"; final PixmapPacker packer = new PixmapPacker(pageSize, pageSize, Pixmap.Format.RGBA8888, 2, false); final FreeTypeFontParameter parameter = new FreeTypeFontParameter(); parameter.characters = chars; @@ -200,7 +199,7 @@ public class FSkinFont { FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() { - TextureRegion[] textureRegions = new TextureRegion[pages.size]; + Array textureRegions = new Array<>(); for (int i = 0; i < pages.size; i++) { PixmapPacker.Page p = pages.get(i); Texture texture = new Texture(new PixmapTextureData(p.getPixmap(), p.getPixmap().getFormat(), false, false)) { @@ -211,7 +210,7 @@ public class FSkinFont { } }; texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest); - textureRegions[i] = new TextureRegion(texture); + textureRegions.addAll(new TextureRegion(texture)); } font = new BitmapFont(fontData, textureRegions, true); diff --git a/forge-gui-mobile/src/forge/assets/TextRenderer.java b/forge-gui-mobile/src/forge/assets/TextRenderer.java index f2fb545507d..0b77c8341a5 100644 --- a/forge-gui-mobile/src/forge/assets/TextRenderer.java +++ b/forge-gui-mobile/src/forge/assets/TextRenderer.java @@ -6,14 +6,13 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.card.CardFaceSymbols; import forge.model.FModel; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; +import forge.util.TextBounds; //Encodes text for drawing with symbols and reminder text public class TextRenderer { @@ -528,10 +527,10 @@ public class TextRenderer { return getCurrentBounds(); } - public void drawText(Graphics g, String text, FSkinFont skinFont, FSkinColor skinColor, float x, float y, float w, float h, float visibleStartY, float visibleHeight, boolean wrap0, HAlignment horzAlignment, boolean centerVertically) { + public void drawText(Graphics g, String text, FSkinFont skinFont, FSkinColor skinColor, float x, float y, float w, float h, float visibleStartY, float visibleHeight, boolean wrap0, int horzAlignment, boolean centerVertically) { drawText(g, text, skinFont, skinColor.getColor(), x, y, w, h, visibleStartY, visibleHeight, wrap0, horzAlignment, centerVertically); } - public void drawText(Graphics g, String text, FSkinFont skinFont, Color color, float x, float y, float w, float h, float visibleStartY, float visibleHeight, boolean wrap0, HAlignment horzAlignment, boolean centerVertically) { + public void drawText(Graphics g, String text, FSkinFont skinFont, Color color, float x, float y, float w, float h, float visibleStartY, float visibleHeight, boolean wrap0, int horzAlignment, boolean centerVertically) { setProps(text, skinFont, w, h, wrap0); if (needClip) { //prevent text flowing outside region if couldn't shrink it to fit g.startClip(x, y, w, h); @@ -542,13 +541,13 @@ public class TextRenderer { float[] alignmentOffsets = new float[lineWidths.size()]; for (int i = 0; i < lineWidths.size(); i++) { switch (horzAlignment) { - case LEFT: + case Align.left: alignmentOffsets[i] = 0; break; - case CENTER: + case Align.center: alignmentOffsets[i] = Math.max((width - lineWidths.get(i)) / 2, 0); break; - case RIGHT: + case Align.right: alignmentOffsets[i] = Math.max(width - lineWidths.get(i), 0); break; } @@ -603,7 +602,7 @@ public class TextRenderer { else if (inReminderText) { color = FSkinColor.alphaColor(color, ALPHA_COMPOSITE); } - g.drawText(text, font, color, x + offsetX, y + offsetY, w, h, false, HAlignment.LEFT, false); + g.drawText(text, font, color, x + offsetX, y + offsetY, w, h, false, Align.left, false); } } diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index 19d47ce7057..f9d3a2e40ef 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -2,7 +2,7 @@ package forge.card; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; import forge.Graphics; import forge.assets.*; @@ -175,7 +175,7 @@ public class CardImageRenderer { CardFaceSymbols.drawManaCost(g, otherManaCost, x + w - manaCostWidth, y + (h - MANA_SYMBOL_SIZE) / 2, MANA_SYMBOL_SIZE); //draw "//" between two parts of mana cost manaCostWidth += NAME_FONT.getBounds("//").width + HEADER_PADDING; - g.drawText("//", NAME_FONT, Color.BLACK, x + w - manaCostWidth, y, w, h, false, HAlignment.LEFT, true); + g.drawText("//", NAME_FONT, Color.BLACK, x + w - manaCostWidth, y, w, h, false, Align.left, true); } manaCostWidth += CardFaceSymbols.getWidth(mainManaCost, MANA_SYMBOL_SIZE) + HEADER_PADDING; CardFaceSymbols.drawManaCost(g, mainManaCost, x + w - manaCostWidth, y + (h - MANA_SYMBOL_SIZE) / 2, MANA_SYMBOL_SIZE); @@ -183,7 +183,7 @@ public class CardImageRenderer { //draw name for card x += padding; w -= 2 * padding; - g.drawText(state.getName(), NAME_FONT, Color.BLACK, x, y, w - manaCostWidth - padding, h, false, HAlignment.LEFT, true); + g.drawText(state.getName(), NAME_FONT, Color.BLACK, x, y, w - manaCostWidth - padding, h, false, Align.left, true); } public static final FBufferedImage forgeArt; @@ -221,7 +221,7 @@ public class CardImageRenderer { //draw type x += padding; - g.drawText(CardDetailUtil.formatCardType(state, canShow), TYPE_FONT, Color.BLACK, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(CardDetailUtil.formatCardType(state, canShow), TYPE_FONT, Color.BLACK, x, y, w, h, false, Align.left, true); } //use text renderer to handle mana symbols and reminder text @@ -268,7 +268,7 @@ public class CardImageRenderer { y += padding; w -= 2 * padding; h -= 2 * padding; - cardTextRenderer.drawText(g, text, TEXT_FONT, Color.BLACK, x, y, w, h, y, h, true, HAlignment.LEFT, true); + cardTextRenderer.drawText(g, text, TEXT_FONT, Color.BLACK, x, y, w, h, y, h, true, Align.left, true); } } @@ -313,7 +313,7 @@ public class CardImageRenderer { x += (boxWidth - totalPieceWidth) / 2; for (int i = 0; i < pieces.size(); i++) { - g.drawText(pieces.get(i), PT_FONT, Color.BLACK, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(pieces.get(i), PT_FONT, Color.BLACK, x, y, w, h, false, Align.left, true); x += pieceWidths[i]; } } @@ -451,7 +451,7 @@ public class CardImageRenderer { CardFaceSymbols.drawManaCost(g, otherManaCost, x + w - manaCostWidth, y + (h - MANA_SYMBOL_SIZE) / 2, MANA_SYMBOL_SIZE); //draw "//" between two parts of mana cost manaCostWidth += NAME_FONT.getBounds("//").width + HEADER_PADDING; - g.drawText("//", NAME_FONT, Color.BLACK, x + w - manaCostWidth, y, w, h, false, HAlignment.LEFT, true); + g.drawText("//", NAME_FONT, Color.BLACK, x + w - manaCostWidth, y, w, h, false, Align.left, true); } manaCostWidth += CardFaceSymbols.getWidth(mainManaCost, MANA_SYMBOL_SIZE) + HEADER_PADDING; CardFaceSymbols.drawManaCost(g, mainManaCost, x + w - manaCostWidth, y + (h - MANA_SYMBOL_SIZE) / 2, MANA_SYMBOL_SIZE); @@ -460,7 +460,7 @@ public class CardImageRenderer { //draw name for card x += padding; w -= 2 * padding; - g.drawText(CardDetailUtil.formatCardName(card, canShow, state == card.getAlternateState()), NAME_FONT, Color.BLACK, x, y, w - manaCostWidth - padding, h, false, HAlignment.LEFT, true); + g.drawText(CardDetailUtil.formatCardName(card, canShow, state == card.getAlternateState()), NAME_FONT, Color.BLACK, x, y, w - manaCostWidth - padding, h, false, Align.left, true); //draw type and set label for card y += h; @@ -478,7 +478,7 @@ public class CardImageRenderer { w -= setWidth; //reduce available width for type } - g.drawText(CardDetailUtil.formatCardType(state, canShow), TYPE_FONT, Color.BLACK, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(CardDetailUtil.formatCardType(state, canShow), TYPE_FONT, Color.BLACK, x, y, w, h, false, Align.left, true); } private static void drawDetailsTextBox(Graphics g, CardStateView state, GameView gameView, boolean canShow, Color[] colors, float x, float y, float w, float h) { @@ -491,14 +491,14 @@ public class CardImageRenderer { y += padY; w -= 2 * padX; h -= 2 * padY; - cardTextRenderer.drawText(g, CardDetailUtil.composeCardText(state, gameView, canShow), TEXT_FONT, Color.BLACK, x, y, w, h, y, h, true, HAlignment.LEFT, false); + cardTextRenderer.drawText(g, CardDetailUtil.composeCardText(state, gameView, canShow), TEXT_FONT, Color.BLACK, x, y, w, h, y, h, true, Align.left, false); } private static void drawDetailsIdAndPtBox(Graphics g, CardView card, CardStateView state, boolean canShow, Color idForeColor, Color[] colors, float x, float y, float w, float h) { float idWidth = 0; if (canShow) { String idText = CardDetailUtil.formatCardId(state); - g.drawText(idText, TYPE_FONT, idForeColor, x, y + TYPE_FONT.getCapHeight() / 2, w, h, false, HAlignment.LEFT, false); + g.drawText(idText, TYPE_FONT, idForeColor, x, y + TYPE_FONT.getCapHeight() / 2, w, h, false, Align.left, false); idWidth = TYPE_FONT.getBounds(idText).width; } @@ -513,6 +513,6 @@ public class CardImageRenderer { fillColorBackground(g, colors, x, y, w, h); g.drawRect(BORDER_THICKNESS, Color.BLACK, x, y, w, h); - g.drawText(ptText, PT_FONT, Color.BLACK, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(ptText, PT_FONT, Color.BLACK, x, y, w, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/card/CardListPreview.java b/forge-gui-mobile/src/forge/card/CardListPreview.java index f311d0fd0d4..aabed4682b0 100644 --- a/forge-gui-mobile/src/forge/card/CardListPreview.java +++ b/forge-gui-mobile/src/forge/card/CardListPreview.java @@ -1,6 +1,6 @@ package forge.card; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.math.Vector2; import forge.item.PaperCard; @@ -14,7 +14,7 @@ public class CardListPreview extends FLabel { public CardListPreview(FChoiceList list0) { super(new FLabel.Builder().iconScaleFactor(1).insets(new Vector2(0, 0)) - .iconInBackground(true).align(HAlignment.CENTER)); + .iconInBackground(true).align(Align.center)); list = list0; } diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index ceb8973306c..e60b1faf7c7 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -7,13 +7,13 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; +import com.badlogic.gdx.graphics.g2d.GlyphLayout; import com.badlogic.gdx.graphics.g2d.PixmapPacker; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Array; import forge.CachedCardImage; import forge.FThreads; @@ -40,7 +40,7 @@ import forge.screens.match.MatchController; import forge.toolbox.FList; import forge.util.Utils; import org.apache.commons.lang3.StringUtils; - +import forge.util.TextBounds; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -95,6 +95,7 @@ public class CardRenderer { private static Map counterFonts = new HashMap<>(); private static final Color counterBackgroundColor = new Color(0f, 0f, 0f, 0.9f); private static final Map counterColorCache = new HashMap<>(); + private static final GlyphLayout layout = new GlyphLayout(); static { try { @@ -261,7 +262,7 @@ public class CardRenderer { if (suffix != null) { name += suffix; } - g.drawText(name, font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(name, font, foreColor, x, y, w, h, false, Align.center, true); } } @@ -310,7 +311,7 @@ public class CardRenderer { CardFaceSymbols.drawManaCost(g, otherManaCost, x + w - manaCostWidth + MANA_COST_PADDING, y, MANA_SYMBOL_SIZE); //draw "//" between two parts of mana cost manaCostWidth += font.getBounds("//").width + MANA_COST_PADDING; - g.drawText("//", font, foreColor, x + w - manaCostWidth + MANA_COST_PADDING, y, w, MANA_SYMBOL_SIZE, false, HAlignment.LEFT, true); + g.drawText("//", font, foreColor, x + w - manaCostWidth + MANA_COST_PADDING, y, w, MANA_SYMBOL_SIZE, false, Align.left, true); } manaCostWidth += CardFaceSymbols.getWidth(mainManaCost, MANA_SYMBOL_SIZE); CardFaceSymbols.drawManaCost(g, mainManaCost, x + w - manaCostWidth, y, MANA_SYMBOL_SIZE); @@ -323,7 +324,7 @@ public class CardRenderer { if (suffix != null) { name += suffix; } - g.drawText(name, font, foreColor, x, y, w - manaCostWidth - cardArtWidth - FList.PADDING, MANA_SYMBOL_SIZE, false, HAlignment.LEFT, true); + g.drawText(name, font, foreColor, x, y, w - manaCostWidth - cardArtWidth - FList.PADDING, MANA_SYMBOL_SIZE, false, Align.left, true); if (compactMode) { return; //skip second line if rendering in compact mode @@ -350,7 +351,7 @@ public class CardRenderer { else if (card.getCurrentState().getType().hasSubtype("Vehicle")) { type += String.format(" [%s / %s]", power, toughness); } - g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, HAlignment.LEFT, true); + g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, Align.left, true); } public static boolean cardListItemTap(List cards, int selectedIndex, ActivateHandler activateHandler, float x, float y, int count, boolean compactMode) { @@ -379,7 +380,7 @@ public class CardRenderer { Color backColor = getRarityColor(rarity); Color foreColor = FSkinColor.getHighContrastColor(backColor); g.fillRect(backColor, x, y, w, h); - g.drawText(set, font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(set, font, foreColor, x, y, w, h, false, Align.center, true); } public static void drawCard(Graphics g, IPaperCard pc, float x, float y, float w, float h, CardStackPosition pos) { @@ -447,7 +448,7 @@ public class CardRenderer { //draw name and mana cost overlays if card is small or default card image being used if (h <= NAME_COST_THRESHOLD && canShow) { if (showCardNameOverlay(card)) { - g.drawOutlinedText(details.getName(), FSkinFont.forHeight(h * 0.18f), Color.WHITE, Color.BLACK, x + padding, y + padding, w - 2 * padding, h * 0.4f, true, HAlignment.LEFT, false); + g.drawOutlinedText(details.getName(), FSkinFont.forHeight(h * 0.18f), Color.WHITE, Color.BLACK, x + padding, y + padding, w - 2 * padding, h * 0.4f, true, Align.left, false); } if (showCardManaCostOverlay(card)) { float manaSymbolSize = w / 4; @@ -476,7 +477,7 @@ public class CardRenderer { if (canShow && showCardIdOverlay(card)) { FSkinFont idFont = FSkinFont.forHeight(h * 0.12f); float idHeight = idFont.getCapHeight(); - g.drawOutlinedText(String.valueOf(card.getId()), idFont, Color.WHITE, Color.BLACK, x + padding, y + h - idHeight - padding, w, h, false, HAlignment.LEFT, false); + g.drawOutlinedText(String.valueOf(card.getId()), idFont, Color.WHITE, Color.BLACK, x + padding, y + h - idHeight - padding, w, h, false, Align.left, false); } if (card.getCounters() != null && !card.getCounters().isEmpty()) { @@ -556,7 +557,11 @@ public class CardRenderer { maxCounters = Math.max(maxCounters, numberOfCounters); } - if (counterBoxBaseWidth + font.getBounds(String.valueOf(maxCounters)).width > w) { + //if (counterBoxBaseWidth + font.getBounds(String.valueOf(maxCounters)).width > w) { + layout.setText(font, String.valueOf(maxCounters)); + + if (counterBoxBaseWidth + layout.width > w) { + drawCounterImage(card, g, x, y, w, h); return; } @@ -567,7 +572,9 @@ public class CardRenderer { final CounterType counter = counterEntry.getKey(); final int numberOfCounters = counterEntry.getValue(); - final float counterBoxRealWidth = counterBoxBaseWidth + font.getBounds(String.valueOf(numberOfCounters)).width + 4; + //final float counterBoxRealWidth = counterBoxBaseWidth + font.getBounds(String.valueOf(numberOfCounters)).width + 4; + layout.setText(font, String.valueOf(numberOfCounters)); + final float counterBoxRealWidth = counterBoxBaseWidth + layout.width + 4; final float counterYOffset = spaceFromTopOfCard - (currentCounter++ * (counterBoxHeight + counterBoxSpacing)); @@ -579,8 +586,8 @@ public class CardRenderer { Color counterColor = counterColorCache.get(counter); - drawText(g, counter.getCounterOnCardDisplayName(), font, counterColor, x + 2 + additionalXOffset, counterYOffset, counterBoxRealWidth, counterBoxHeight, HAlignment.LEFT); - drawText(g, String.valueOf(numberOfCounters), font, counterColor, x + counterBoxBaseWidth - 4f - additionalXOffset, counterYOffset, counterBoxRealWidth, counterBoxHeight, HAlignment.LEFT); + drawText(g, counter.getCounterOnCardDisplayName(), font, counterColor, x + 2 + additionalXOffset, counterYOffset, counterBoxRealWidth, counterBoxHeight, Align.left); + drawText(g, String.valueOf(numberOfCounters), font, counterColor, x + counterBoxBaseWidth - 4f - additionalXOffset, counterYOffset, counterBoxRealWidth, counterBoxHeight, Align.left); } @@ -588,13 +595,14 @@ public class CardRenderer { private static final int GL_BLEND = GL20.GL_BLEND; - private static void drawText(Graphics g, String text, BitmapFont font, Color color, float x, float y, float w, float h, HAlignment horizontalAlignment) { + private static void drawText(Graphics g, String text, BitmapFont font, Color color, float x, float y, float w, float h, int horizontalAlignment) { if (color.a < 1) { //enable blending so alpha colored shapes work properly Gdx.gl.glEnable(GL_BLEND); } - TextBounds textBounds = font.getMultiLineBounds(text); + layout.setText(font, text); + TextBounds textBounds = new TextBounds(layout.width, layout.height); float textHeight = textBounds.height; if (h > textHeight) { @@ -602,7 +610,7 @@ public class CardRenderer { } font.setColor(color); - font.drawMultiLine(g.getBatch(), text, g.adjustX(x), g.adjustY(y, 0), w, horizontalAlignment); + font.draw(g.getBatch(), text, g.adjustX(x), g.adjustY(y, 0), w, horizontalAlignment, true); if (color.a < 1) { Gdx.gl.glDisable(GL_BLEND); @@ -685,7 +693,7 @@ public class CardRenderer { //draw card damage above P/T box if needed if (card.getDamage() > 0) { - g.drawOutlinedText(">" + card.getDamage() + "<", font, Color.RED, Color.WHITE, x, y - h + padding, w, h, false, HAlignment.CENTER, true); + g.drawOutlinedText(">" + card.getDamage() + "<", font, Color.RED, Color.WHITE, x, y - h + padding, w, h, false, Align.center, true); } g.fillRect(color, x, y, w, h); @@ -693,7 +701,7 @@ public class CardRenderer { x += padding; for (int i = 0; i < pieces.size(); i++) { - g.drawText(pieces.get(i), font, Color.BLACK, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(pieces.get(i), font, Color.BLACK, x, y, w, h, false, Align.left, true); x += pieceWidths.get(i); } } @@ -771,7 +779,8 @@ public class CardRenderer { @Override public void run() { - TextureRegion[] textureRegions = new TextureRegion[pages.size]; + //TextureRegion[] textureRegions = new TextureRegion[pages.size]; + Array textureRegions = new Array<>(); for (int i = 0; i < pages.size; i++) { PixmapPacker.Page p = pages.get(i); Texture texture = new Texture(new PixmapTextureData(p.getPixmap(), p.getPixmap().getFormat(), false, false)) { @@ -782,7 +791,8 @@ public class CardRenderer { } }; texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest); - textureRegions[i] = new TextureRegion(texture); + //textureRegions[i] = new TextureRegion(texture); + textureRegions.add(new TextureRegion(texture)); } counterFonts.put(fontSize, new BitmapFont(fontData, textureRegions, true)); diff --git a/forge-gui-mobile/src/forge/card/CardZoom.java b/forge-gui-mobile/src/forge/card/CardZoom.java index cf1c81aa01c..cbc10b877c3 100644 --- a/forge-gui-mobile/src/forge/card/CardZoom.java +++ b/forge-gui-mobile/src/forge/card/CardZoom.java @@ -5,8 +5,8 @@ import java.util.List; import java.util.Map.Entry; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -281,10 +281,10 @@ public class CardZoom extends FOverlay { if (currentActivateAction != null) { g.fillRect(FDialog.MSG_BACK_COLOR, 0, 0, w, messageHeight); - g.drawText("Swipe up to " + currentActivateAction, FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, 0, w, messageHeight, false, HAlignment.CENTER, true); + g.drawText("Swipe up to " + currentActivateAction, FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, 0, w, messageHeight, false, Align.center, true); } g.fillRect(FDialog.MSG_BACK_COLOR, 0, h - messageHeight, w, messageHeight); - g.drawText("Swipe down to switch to " + (zoomMode ? "detail" : "picture") + " view", FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, HAlignment.CENTER, true); + g.drawText("Swipe down to switch to " + (zoomMode ? "detail" : "picture") + " view", FDialog.MSG_FONT, FDialog.MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, Align.center, true); } @Override diff --git a/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java b/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java index f4ee9c051b1..54d87c54410 100644 --- a/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java +++ b/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java @@ -48,7 +48,7 @@ import forge.toolbox.FTextArea; import forge.util.Callback; import forge.util.Utils; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import java.util.Map; @@ -122,7 +122,7 @@ public class AddBasicLandsDialog extends FDialog { callback = callback0; currentDeck = deck; - lblDeckInfo.setAlignment(HAlignment.CENTER); + lblDeckInfo.setAlignment(Align.center); lblDeckInfo.setFont(FSkinFont.get(12)); cbLandSet.setFont(lblLandSet.getFont()); @@ -322,7 +322,7 @@ public class AddBasicLandsDialog extends FDialog { card = generateCard(artIndex); //generate card for display } }); - lblCount = add(new FLabel.Builder().text("0").font(FSkinFont.get(18)).align(HAlignment.CENTER).build()); + lblCount = add(new FLabel.Builder().text("0").font(FSkinFont.get(18)).align(Align.center).build()); btnSubtract = add(new FLabel.ButtonBuilder().icon(FSkinImage.MINUS).command(new FEventHandler() { @Override public void handleEvent(FEvent e) { diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 0d88d4d63dd..0419df3c7ed 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -41,7 +41,7 @@ import forge.util.storage.IStorage; import org.apache.commons.lang3.StringUtils; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -524,7 +524,7 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.RANDOM_DECK); break; } - cmbDeckTypes.setAlignment(HAlignment.CENTER); + cmbDeckTypes.setAlignment(Align.center); restoreSavedState(); cmbDeckTypes.setChangedHandler(new FEventHandler() { @Override diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index f88f93a1537..56cbcaf5288 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -1,8 +1,8 @@ package forge.deck; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.base.Supplier; @@ -239,8 +239,8 @@ public class FDeckEditor extends TabPageScreen { protected final DeckHeader deckHeader = add(new DeckHeader()); protected final FLabel lblName = deckHeader.add(new FLabel.Builder().font(FSkinFont.get(16)).insets(new Vector2(Utils.scale(5), 0)).build()); - private final FLabel btnSave = deckHeader.add(new FLabel.Builder().icon(FSkinImage.SAVE).align(HAlignment.CENTER).pressedColor(Header.BTN_PRESSED_COLOR).build()); - private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(HAlignment.CENTER).pressedColor(Header.BTN_PRESSED_COLOR).build()); + private final FLabel btnSave = deckHeader.add(new FLabel.Builder().icon(FSkinImage.SAVE).align(Align.center).pressedColor(Header.BTN_PRESSED_COLOR).build()); + private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(Align.center).pressedColor(Header.BTN_PRESSED_COLOR).build()); public FDeckEditor(EditorType editorType0, DeckProxy editDeck, boolean showMainDeck) { this(editorType0, editDeck.getName(), editDeck.getPath(), null, showMainDeck); diff --git a/forge-gui-mobile/src/forge/error/BugReportDialog.java b/forge-gui-mobile/src/forge/error/BugReportDialog.java index 807a61f6e38..3393413a27a 100644 --- a/forge-gui-mobile/src/forge/error/BugReportDialog.java +++ b/forge-gui-mobile/src/forge/error/BugReportDialog.java @@ -1,8 +1,6 @@ package forge.error; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -15,6 +13,7 @@ import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FScrollPane; import forge.toolbox.FTextArea; import forge.util.Callback; +import forge.util.TextBounds; import forge.util.Utils; public class BugReportDialog extends FScreen { //use screen rather than dialog so screen with bug isn't rendered @@ -148,7 +147,7 @@ public class BugReportDialog extends FScreen { //use screen rather than dialog s @Override public void drawBackground(Graphics g) { g.fillRect(BACK_COLOR, 0, 0, getWidth(), getHeight()); - g.drawText(text, FONT, FORE_COLOR, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, false, HAlignment.LEFT, false); + g.drawText(text, FONT, FORE_COLOR, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, false, Align.left, false); } @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/DeckManager.java b/forge-gui-mobile/src/forge/itemmanager/DeckManager.java index 32947b45e29..f5f13203a10 100644 --- a/forge-gui-mobile/src/forge/itemmanager/DeckManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/DeckManager.java @@ -20,7 +20,7 @@ import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; import forge.util.Utils; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import java.util.Map.Entry; @@ -118,7 +118,7 @@ public final class DeckManager extends ItemManager implements IHasGam if (DeckManager.this.getConfig().getCols().size() == 1) { //if just string column, just draw deck string value - g.drawText(deck.toString(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(deck.toString(), font, foreColor, x, y, w, h, false, Align.left, true); return; } @@ -131,7 +131,7 @@ public final class DeckManager extends ItemManager implements IHasGam if (!deck.getPath().isEmpty()) { //render path after name if needed name += " (" + deck.getPath().substring(1) + ")"; } - g.drawText(name, font, foreColor, x, y, availableNameWidth, IMAGE_SIZE, false, HAlignment.LEFT, true); + g.drawText(name, font, foreColor, x, y, availableNameWidth, IMAGE_SIZE, false, Align.left, true); x += availableNameWidth + FList.PADDING; CardFaceSymbols.drawColorSet(g, deckColor, x, y, IMAGE_SIZE); @@ -158,7 +158,7 @@ public final class DeckManager extends ItemManager implements IHasGam sideSize = 0; //show sideboard as 0 if empty } - g.drawText(deck.getFormatsString() + " (" + mainSize + " / " + sideSize + ")", font, foreColor, x, y, availableFormatWidth, lineHeight, false, HAlignment.LEFT, true); + g.drawText(deck.getFormatsString() + " (" + mainSize + " / " + sideSize + ")", font, foreColor, x, y, availableFormatWidth, lineHeight, false, Align.left, true); x += availableFormatWidth + CardRenderer.SET_BOX_MARGIN; y -= CardRenderer.SET_BOX_MARGIN; diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index 20ec1ed293a..bfdcf634a56 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -18,8 +18,8 @@ package forge.itemmanager; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -83,7 +83,7 @@ public abstract class ItemManager extends FContainer im private final FLabel btnView = new FLabel.ButtonBuilder() .iconScaleFactor(0.9f).build(); //icon set later private final FLabel btnAdvancedSearchOptions = new FLabel.Builder() - .selectable(true).align(HAlignment.CENTER) + .selectable(true).align(Align.center) .icon(FSkinImage.SETTINGS).iconScaleFactor(0.9f) .build(); diff --git a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java index abc2a9bf462..66d9bc0c8e8 100644 --- a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java @@ -3,7 +3,7 @@ package forge.itemmanager; import java.util.Map.Entry; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Function; import forge.Graphics; @@ -67,7 +67,7 @@ public class SpellShopManager extends ItemManager { CardRenderer.drawCardListItem(g, font, foreColor, (PaperCard)value.getKey(), value.getValue(), getItemSuffix(value), x, y, w, h, compactModeHandler.isCompactMode()); } else { - g.drawText(value.getValue().toString() + " " + value.getKey().toString(), font, foreColor, x + cardArtWidth, y, w - cardArtWidth, h, false, HAlignment.LEFT, true); + g.drawText(value.getValue().toString() + " " + value.getKey().toString(), font, foreColor, x + cardArtWidth, y, w - cardArtWidth, h, false, Align.left, true); Texture image = ImageCache.getImage(value.getKey()); if (image != null) { float imageRatio = (float)image.getWidth() / (float)image.getHeight(); @@ -87,7 +87,7 @@ public class SpellShopManager extends ItemManager { g.fillRect(backColor, x - FList.PADDING, y, cardArtWidth, priceHeight); g.drawImage(FSkinImage.QUEST_COINSTACK, x, y, priceHeight, priceHeight); float offset = priceHeight * 1.1f; - g.drawText(fnGetPrice.apply(value).toString(), font, foreColor, x + offset, y, cardArtWidth - offset - 2 * FList.PADDING, priceHeight, false, HAlignment.LEFT, true); + g.drawText(fnGetPrice.apply(value).toString(), font, foreColor, x + offset, y, cardArtWidth - offset - 2 * FList.PADDING, priceHeight, false, Align.left, true); } @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java index e53d5f886a8..b01dfcc9a9a 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java @@ -1,6 +1,6 @@ package forge.itemmanager.filters; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -97,7 +97,7 @@ public class AdvancedSearchFilter extends ItemFilter private String toolTipText; private FiltersLabel() { - super(new FLabel.Builder().align(HAlignment.LEFT).parseSymbols(true).font(ListLabelFilter.LABEL_FONT)); + super(new FLabel.Builder().align(Align.left).parseSymbols(true).font(ListLabelFilter.LABEL_FONT)); } @Override @@ -231,12 +231,12 @@ public class AdvancedSearchFilter extends ItemFilter private AdvancedSearch.Filter filter; private Filter() { - btnNotBeforeParen = add(new FLabel.Builder().align(HAlignment.CENTER).text("NOT").selectable().build()); - btnOpenParen = add(new FLabel.Builder().align(HAlignment.CENTER).text("(").selectable().build()); - btnNotAfterParen = add(new FLabel.Builder().align(HAlignment.CENTER).text("NOT").selectable().build()); + btnNotBeforeParen = add(new FLabel.Builder().align(Align.center).text("NOT").selectable().build()); + btnOpenParen = add(new FLabel.Builder().align(Align.center).text("(").selectable().build()); + btnNotAfterParen = add(new FLabel.Builder().align(Align.center).text("NOT").selectable().build()); btnFilter = add(new FLabel.ButtonBuilder().parseSymbols(true).build()); - btnCloseParen = add(new FLabel.Builder().align(HAlignment.CENTER).selectable().text(")").build()); - btnAnd = add(new FLabel.Builder().align(HAlignment.CENTER).text("AND").selectable().command(new FEventHandler() { + btnCloseParen = add(new FLabel.Builder().align(Align.center).selectable().text(")").build()); + btnAnd = add(new FLabel.Builder().align(Align.center).text("AND").selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { if (btnAnd.isSelected()) { @@ -248,7 +248,7 @@ public class AdvancedSearchFilter extends ItemFilter } } }).build()); - btnOr = add(new FLabel.Builder().align(HAlignment.CENTER).text("OR").selectable().command(new FEventHandler() { + btnOr = add(new FLabel.Builder().align(Align.center).text("OR").selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { if (btnOr.isSelected()) { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java index 711d5966cb2..fbd78453c3b 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java @@ -24,7 +24,7 @@ import forge.util.Utils; import java.util.*; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; public abstract class FormatFilter extends ItemFilter { @@ -231,7 +231,7 @@ public abstract class FormatFilter extends ItemFilter extends ItemFilte private class ListLabel extends FLabel { private ListLabel() { - super(new FLabel.Builder().align(HAlignment.LEFT).font(LABEL_FONT)); + super(new FLabel.Builder().align(Align.left).font(LABEL_FONT)); } @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java index 463ce5aaa47..f1237a7ca37 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java @@ -1,6 +1,6 @@ package forge.itemmanager.filters; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -101,7 +101,7 @@ public class TextSearchFilter extends ItemFilter { @Override public void draw(Graphics g) { super.draw(g); - g.drawText(ratio, renderedFont, GHOST_TEXT_COLOR, 0, 0, getWidth() - PADDING, getHeight(), false, HAlignment.RIGHT, true); + g.drawText(ratio, renderedFont, GHOST_TEXT_COLOR, 0, 0, getWidth() - PADDING, getHeight(), false, Align.right, true); } } } diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java index 31ae7b64163..dc78154a668 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java @@ -3,7 +3,7 @@ package forge.itemmanager.filters; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.assets.FImage; import forge.item.InventoryItem; @@ -70,7 +70,7 @@ public abstract class ToggleButtonsFilter extends ItemF private ToggleButton(FImage icon) { super(new FLabel.Builder() .icon(icon).iconScaleFactor(1f) - .align(HAlignment.CENTER) + .align(Align.center) .selectable(true).selected(true) .command(new FEventHandler() { @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java index 0137c9a87e1..588ab1809b6 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java @@ -1,6 +1,6 @@ package forge.itemmanager.filters; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import forge.card.CardRules; @@ -55,7 +55,7 @@ public abstract class ValueRangeFilter extends ItemFilt lowerBound = addSpinner(widget, true); String text = "<= " + this.getCaption() + " <="; - label = new FLabel.Builder().text(text).align(HAlignment.CENTER).font(ListLabelFilter.LABEL_FONT).build(); + label = new FLabel.Builder().text(text).align(Align.center).font(ListLabelFilter.LABEL_FONT).build(); widget.add(label); upperBound = addSpinner(widget, false); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index bf0ab8cd10b..9c5d81b57c4 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -37,9 +37,9 @@ import java.util.Map.Entry; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; public class ImageView extends ItemView { private static final float PADDING = Utils.scale(5); @@ -789,7 +789,7 @@ public class ImageView extends ItemView { float x = GROUP_HEADER_GLYPH_WIDTH + PADDING + 1; float y = 0; String caption = name + " (" + items.size() + ")"; - g.drawText(caption, GROUP_HEADER_FONT, GROUP_HEADER_FORE_COLOR, x, y, getWidth(), GROUP_HEADER_HEIGHT, false, HAlignment.LEFT, true); + g.drawText(caption, GROUP_HEADER_FONT, GROUP_HEADER_FORE_COLOR, x, y, getWidth(), GROUP_HEADER_HEIGHT, false, Align.left, true); x += GROUP_HEADER_FONT.getBounds(caption).width + PADDING; y += GROUP_HEADER_HEIGHT / 2; g.drawLine(GROUP_HEADER_LINE_THICKNESS, GROUP_HEADER_LINE_COLOR, x, y, getWidth(), y); @@ -963,7 +963,7 @@ public class ImageView extends ItemView { } else { g.fillRect(Color.BLACK, x, y, w, h); - g.drawText(item.getName(), GROUP_HEADER_FONT, Color.WHITE, x + PADDING, y + PADDING, w - 2 * PADDING, h - 2 * PADDING, true, HAlignment.CENTER, false); + g.drawText(item.getName(), GROUP_HEADER_FONT, Color.WHITE, x + PADDING, y + PADDING, w - 2 * PADDING, h - 2 * PADDING, true, Align.center, false); } } } diff --git a/forge-gui-mobile/src/forge/menu/FMagnifyView.java b/forge-gui-mobile/src/forge/menu/FMagnifyView.java index 01872cebbb1..6c33345e13f 100644 --- a/forge-gui-mobile/src/forge/menu/FMagnifyView.java +++ b/forge-gui-mobile/src/forge/menu/FMagnifyView.java @@ -1,13 +1,12 @@ package forge.menu; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; import forge.assets.TextRenderer; import forge.toolbox.FDisplayObject; +import forge.util.TextBounds; import forge.util.Utils; public class FMagnifyView extends FDropDown { @@ -66,6 +65,6 @@ public class FMagnifyView extends FDropDown { public void drawBackground(Graphics g) { super.drawBackground(g); g.fillRect(backColor, 0, 0, getWidth(), getHeight()); - renderer.drawText(g, text, font, foreColor, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, 0, getHeight(), true, HAlignment.LEFT, false); + renderer.drawText(g, text, font, foreColor, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, 0, getHeight(), true, Align.left, false); } } diff --git a/forge-gui-mobile/src/forge/menu/FMenuItem.java b/forge-gui-mobile/src/forge/menu/FMenuItem.java index 08e33f79611..041c2b86a8e 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuItem.java +++ b/forge-gui-mobile/src/forge/menu/FMenuItem.java @@ -1,6 +1,6 @@ package forge.menu; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; @@ -135,10 +135,10 @@ public class FMenuItem extends FDisplayObject implements IButton { } if (textRenderer == null) { - g.drawText(text, FONT, FORE_COLOR, x, 0, w - x - GAP_X, h, false, HAlignment.LEFT, true); + g.drawText(text, FONT, FORE_COLOR, x, 0, w - x - GAP_X, h, false, Align.left, true); } else { - textRenderer.drawText(g, text, FONT, FORE_COLOR, x, 0, w - x - GAP_X, h, 0, h, false, HAlignment.LEFT, true); + textRenderer.drawText(g, text, FONT, FORE_COLOR, x, 0, w - x - GAP_X, h, 0, h, false, Align.left, true); } //draw separator line diff --git a/forge-gui-mobile/src/forge/menu/FMenuTab.java b/forge-gui-mobile/src/forge/menu/FMenuTab.java index b420370a80d..adafb4c8050 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuTab.java +++ b/forge-gui-mobile/src/forge/menu/FMenuTab.java @@ -1,6 +1,6 @@ package forge.menu; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -99,6 +99,6 @@ public class FMenuTab extends FDisplayObject { y = PADDING; w = getWidth() - 2 * PADDING; h = getHeight() - 2 * PADDING; - g.drawText(text, FONT, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(text, FONT, foreColor, x, y, w, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/menu/FTooltip.java b/forge-gui-mobile/src/forge/menu/FTooltip.java index 73bb7644a9a..ae3c6ce2349 100644 --- a/forge-gui-mobile/src/forge/menu/FTooltip.java +++ b/forge-gui-mobile/src/forge/menu/FTooltip.java @@ -1,8 +1,6 @@ package forge.menu; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -10,6 +8,7 @@ import forge.assets.FSkinFont; import forge.assets.FSkinColor.Colors; import forge.screens.FScreen; import forge.toolbox.FDisplayObject; +import forge.util.TextBounds; import forge.util.Utils; public class FTooltip extends FDropDown { @@ -68,6 +67,6 @@ public class FTooltip extends FDropDown { @Override public void drawBackground(Graphics g) { super.drawBackground(g); - g.drawText(text, FONT, FORE_COLOR, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, true, HAlignment.LEFT, false); + g.drawText(text, FONT, FORE_COLOR, PADDING - getScrollLeft(), PADDING - getScrollTop(), getScrollWidth() - 2 * PADDING, getScrollHeight() - 2 * PADDING, true, Align.left, false); } } diff --git a/forge-gui-mobile/src/forge/screens/FScreen.java b/forge-gui-mobile/src/forge/screens/FScreen.java index c1a33c936d3..163c5276e17 100644 --- a/forge-gui-mobile/src/forge/screens/FScreen.java +++ b/forge-gui-mobile/src/forge/screens/FScreen.java @@ -3,8 +3,8 @@ package forge.screens; import java.util.List; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -197,13 +197,13 @@ public abstract class FScreen extends FContainer { protected final FLabel btnBack, lblCaption; public DefaultHeader(String headerCaption) { - btnBack = add(new FLabel.Builder().icon(new BackIcon(HEIGHT, HEIGHT)).pressedColor(BTN_PRESSED_COLOR).align(HAlignment.CENTER).command(new FEventHandler() { + btnBack = add(new FLabel.Builder().icon(new BackIcon(HEIGHT, HEIGHT)).pressedColor(BTN_PRESSED_COLOR).align(Align.center).command(new FEventHandler() { @Override public void handleEvent(FEvent e) { Forge.back(); } }).build()); - lblCaption = add(new FLabel.Builder().text(headerCaption).font(FONT).align(HAlignment.CENTER).build()); + lblCaption = add(new FLabel.Builder().text(headerCaption).font(FONT).align(Align.center).build()); } @Override @@ -245,7 +245,7 @@ public abstract class FScreen extends FContainer { public MenuHeader(String headerCaption, FPopupMenu menu0) { super(headerCaption); menu = menu0; - btnMenu = add(new FLabel.Builder().icon(new MenuIcon(HEIGHT, HEIGHT)).pressedColor(BTN_PRESSED_COLOR).align(HAlignment.CENTER).command(new FEventHandler() { + btnMenu = add(new FLabel.Builder().icon(new MenuIcon(HEIGHT, HEIGHT)).pressedColor(BTN_PRESSED_COLOR).align(Align.center).command(new FEventHandler() { @Override public void handleEvent(FEvent e) { menu.show(btnMenu, 0, HEIGHT); diff --git a/forge-gui-mobile/src/forge/screens/LoadingOverlay.java b/forge-gui-mobile/src/forge/screens/LoadingOverlay.java index a0b6fe74822..33f1da09872 100644 --- a/forge-gui-mobile/src/forge/screens/LoadingOverlay.java +++ b/forge-gui-mobile/src/forge/screens/LoadingOverlay.java @@ -1,6 +1,6 @@ package forge.screens; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -95,6 +95,6 @@ public class LoadingOverlay extends FOverlay { y += padding; g.drawImage(FSkinImage.LOGO, (getWidth() - logoSize) / 2f, y, logoSize, logoSize); y += logoSize + padding; - g.drawText(caption, FONT, FORE_COLOR, x, y, panelWidth, getHeight(), false, HAlignment.CENTER, false); + g.drawText(caption, FONT, FORE_COLOR, x, y, panelWidth, getHeight(), false, Align.center, false); } } diff --git a/forge-gui-mobile/src/forge/screens/SplashScreen.java b/forge-gui-mobile/src/forge/screens/SplashScreen.java index 9e87c66b25a..f9b94524393 100644 --- a/forge-gui-mobile/src/forge/screens/SplashScreen.java +++ b/forge-gui-mobile/src/forge/screens/SplashScreen.java @@ -2,7 +2,7 @@ package forge.screens; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -94,7 +94,7 @@ public class SplashScreen extends FContainer { String disclaimer = "Forge is not affiliated in any way with Wizards of the Coast.\n" + "Forge is open source software, released under the GNU Public License."; g.drawText(disclaimer, disclaimerFont, FProgressBar.SEL_FORE_COLOR, - x, y, w, disclaimerHeight, true, HAlignment.CENTER, true); + x, y, w, disclaimerHeight, true, Align.center, true); float padding = 20f / 450f * w; float pbHeight = 57f / 450f * h; @@ -103,6 +103,6 @@ public class SplashScreen extends FContainer { g.draw(progressBar); String version = "v. " + Forge.CURRENT_VERSION + " (Alpha)"; - g.drawText(version, disclaimerFont, FProgressBar.SEL_FORE_COLOR, x, getHeight() - disclaimerHeight, w, disclaimerHeight, false, HAlignment.CENTER, true); + g.drawText(version, disclaimerFont, FProgressBar.SEL_FORE_COLOR, x, getHeight() - disclaimerHeight, w, disclaimerHeight, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/screens/TabPageScreen.java b/forge-gui-mobile/src/forge/screens/TabPageScreen.java index 0fb29d8458e..dfc82512daf 100644 --- a/forge-gui-mobile/src/forge/screens/TabPageScreen.java +++ b/forge-gui-mobile/src/forge/screens/TabPageScreen.java @@ -1,6 +1,6 @@ package forge.screens; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -183,7 +183,7 @@ public class TabPageScreen> extends FScreen { public TabHeader(TabPage[] tabPages0, boolean showBackButton) { tabPages = tabPages0; if (showBackButton) { - btnBack = add(new FLabel.Builder().icon(new BackIcon(BACK_BUTTON_WIDTH, BACK_BUTTON_WIDTH)).pressedColor(BTN_PRESSED_COLOR).align(HAlignment.CENTER).command(new FEventHandler() { + btnBack = add(new FLabel.Builder().icon(new BackIcon(BACK_BUTTON_WIDTH, BACK_BUTTON_WIDTH)).pressedColor(BTN_PRESSED_COLOR).align(Align.center).command(new FEventHandler() { @Override public void handleEvent(FEvent e) { Forge.back(); @@ -365,7 +365,7 @@ public class TabPageScreen> extends FScreen { if (parentScreen.showCompactTabs() && !isLandscapeMode) { h -= 2 * padding; if (icon == null) { - g.drawText(caption, TAB_FONT, TAB_FORE_COLOR, padding, padding, w, h, false, HAlignment.CENTER, true); + g.drawText(caption, TAB_FONT, TAB_FORE_COLOR, padding, padding, w, h, false, Align.center, true); } else { //center combination of icon and text @@ -393,13 +393,13 @@ public class TabPageScreen> extends FScreen { x += iconOffset; w -= iconOffset; g.startClip(x, y, w, h); - g.drawText(caption, font, TAB_FORE_COLOR, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(caption, font, TAB_FORE_COLOR, x, y, w, h, false, Align.left, true); g.endClip(); } } else { float y = h - padding - TAB_FONT.getCapHeight(); - g.drawText(caption, TAB_FONT, TAB_FORE_COLOR, padding, y - padding, w, h - y + padding, false, HAlignment.CENTER, true); + g.drawText(caption, TAB_FONT, TAB_FORE_COLOR, padding, y - padding, w, h - y + padding, false, Align.center, true); if (icon != null) { float iconHeight = y - 2 * padding; diff --git a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java index b3196617c86..990090d343d 100644 --- a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java +++ b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java @@ -1,8 +1,8 @@ package forge.screens.achievements; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -54,7 +54,7 @@ public class AchievementsScreen extends FScreen { AchievementCollection.buildComboBox(cbCollections); cbCollections.setSelectedIndex(0); - cbCollections.setAlignment(HAlignment.CENTER); + cbCollections.setAlignment(Align.center); cbCollections.setChangedHandler(new FEventHandler() { @Override public void handleEvent(FEvent e) { @@ -271,11 +271,11 @@ public class AchievementsScreen extends FScreen { if (plateY + plateHeight > 0) { g.drawImage((FImage)achievement.getImage(), x + trophyOffset, y, trophyImageWidth, trophyHeight); g.drawImage(FSkinImage.TROPHY_PLATE, x + plateOffset, plateY, plateWidth, plateHeight); - g.drawText(achievement.getDisplayName(), titleFont, FORE_COLOR, x + plateOffset + plateWidth * 0.075f, plateY + plateHeight * 0.05f, plateWidth * 0.85f, titleHeight, false, HAlignment.CENTER, true); + g.drawText(achievement.getDisplayName(), titleFont, FORE_COLOR, x + plateOffset + plateWidth * 0.075f, plateY + plateHeight * 0.05f, plateWidth * 0.85f, titleHeight, false, Align.center, true); String subTitle = achievement.getSubTitle(false); if (subTitle != null) { - g.drawText(subTitle, subTitleFont, FORE_COLOR, x + plateOffset + plateWidth * 0.075f, plateY + plateHeight * 0.6f, plateWidth * 0.85f, subTitleHeight, false, HAlignment.CENTER, true); + g.drawText(subTitle, subTitleFont, FORE_COLOR, x + plateOffset + plateWidth * 0.075f, plateY + plateHeight * 0.6f, plateWidth * 0.85f, subTitleHeight, false, Align.center, true); } if (achievement == selectedAchievement) { @@ -338,40 +338,40 @@ public class AchievementsScreen extends FScreen { y += PADDING; w -= 2 * PADDING; h -= 2 * PADDING; - g.drawText(selectedAchievement.getDisplayName(), NAME_FONT, TEXT_COLOR, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(selectedAchievement.getDisplayName(), NAME_FONT, TEXT_COLOR, x, y, w, h, false, Align.left, false); y += NAME_FONT.getLineHeight(); if (subTitle != null) { - g.drawText(subTitle, DESC_FONT, TEXT_COLOR, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(subTitle, DESC_FONT, TEXT_COLOR, x, y, w, h, false, Align.left, false); y += DESC_FONT.getLineHeight(); } y += PADDING; if (sharedDesc != null) { g.drawText(selectedAchievement.isSpecial() ? sharedDesc : sharedDesc + "...", DESC_FONT, TEXT_COLOR, - x, y, w, h, false, HAlignment.LEFT, false); + x, y, w, h, false, Align.left, false); y += DESC_FONT.getLineHeight(); } if (mythicDesc != null) { g.drawText(selectedAchievement.isSpecial() ? mythicDesc : "(Mythic) " + mythicDesc, DESC_FONT, //handle flavor text here too selectedAchievement.earnedMythic() ? TEXT_COLOR : NOT_EARNED_COLOR, - x, y, w, h, false, HAlignment.LEFT, false); + x, y, w, h, false, Align.left, false); y += DESC_FONT.getLineHeight(); } if (rareDesc != null) { g.drawText("(Rare) " + rareDesc, DESC_FONT, selectedAchievement.earnedRare() ? TEXT_COLOR : NOT_EARNED_COLOR, - x, y, w, h, false, HAlignment.LEFT, false); + x, y, w, h, false, Align.left, false); y += DESC_FONT.getLineHeight(); } if (uncommonDesc != null) { g.drawText("(Uncommon) " + uncommonDesc, DESC_FONT, selectedAchievement.earnedUncommon() ? TEXT_COLOR : NOT_EARNED_COLOR, - x, y, w, h, false, HAlignment.LEFT, false); + x, y, w, h, false, Align.left, false); y += DESC_FONT.getLineHeight(); } if (commonDesc != null) { g.drawText("(Common) " + commonDesc, DESC_FONT, selectedAchievement.earnedCommon() ? TEXT_COLOR : NOT_EARNED_COLOR, - x, y, w, h, false, HAlignment.LEFT, false); + x, y, w, h, false, Align.left, false); } } } diff --git a/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java b/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java index 34f91d38c7d..562d9ea1454 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java +++ b/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; public class AvatarSelector extends FScreen { public static int getRandomAvatar(List usedAvatars) { @@ -87,7 +87,7 @@ public class AvatarSelector extends FScreen { } private void addAvatarLabel(final FImage img, final int index) { - final FLabel lbl = new FLabel.Builder().icon(img).iconScaleFactor(0.95f).align(HAlignment.CENTER) + final FLabel lbl = new FLabel.Builder().icon(img).iconScaleFactor(0.95f).align(Align.center) .iconInBackground(true).selectable(true).selected(currentIndex == index) .build(); diff --git a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java index 856048571fa..c985b091fa4 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java @@ -6,7 +6,7 @@ import forge.deck.*; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.collect.Iterables; import forge.FThreads; @@ -413,10 +413,10 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView { float totalHeight = h; h = font.getMultiLineBounds(text).height + SettingsScreen.SETTING_PADDING; - g.drawText(text, font, foreColor, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(text, font, foreColor, x, y, w, h, false, Align.left, false); value.draw(g, font, foreColor, x, y, w, h); h += SettingsScreen.SETTING_PADDING; - g.drawText(value.gameType.getDescription(), SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, HAlignment.LEFT, false); + g.drawText(value.gameType.getDescription(), SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, Align.left, false); } } } diff --git a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java index 166d6cc7aa5..146de6b6217 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java @@ -5,8 +5,7 @@ import java.util.List; import java.util.Set; import org.apache.commons.lang3.StringUtils; - -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -835,7 +834,7 @@ public class PlayerPanel extends FContainer { /** Adds a pre-styled FLabel component with the specified title. */ private FLabel newLabel(String title) { - return new FLabel.Builder().text(title).font(LABEL_FONT).align(HAlignment.RIGHT).build(); + return new FLabel.Builder().text(title).font(LABEL_FONT).align(Align.right).build(); } private static final ImmutableList genderOptions = ImmutableList.of("Male", "Female", "Any"); diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java index 70c4b513e36..fd123f87f1f 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java @@ -6,8 +6,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; - -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Graphics; @@ -253,8 +252,8 @@ public class LoadGauntletScreen extends LaunchScreen { String progress = completed + " / " + opponents + " (" + percent.format((double)completed / (double)opponents) + ")"; float progressWidth = font.getBounds(progress).width + SettingsScreen.SETTING_PADDING; - g.drawText(name, font, foreColor, x, y, w - progressWidth, h, false, HAlignment.LEFT, false); - g.drawText(progress, font, foreColor, x, y, w, h, false, HAlignment.RIGHT, false); + g.drawText(name, font, foreColor, x, y, w - progressWidth, h, false, Align.left, false); + g.drawText(progress, font, foreColor, x, y, w, h, false, Align.right, false); h += SettingsScreen.SETTING_PADDING; y += h; @@ -263,8 +262,8 @@ public class LoadGauntletScreen extends LaunchScreen { String timestamp = value.getTimestamp(); font = FSkinFont.get(12); float timestampWidth = font.getBounds(timestamp).width + SettingsScreen.SETTING_PADDING; - g.drawText(value.getUserDeck() == null ? "(none)" : value.getUserDeck().getName(), font, SettingsScreen.DESC_COLOR, x, y, w - timestampWidth, h, false, HAlignment.LEFT, false); - g.drawText(timestamp, font, SettingsScreen.DESC_COLOR, x + w - timestampWidth + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false); + g.drawText(value.getUserDeck() == null ? "(none)" : value.getUserDeck().getName(), font, SettingsScreen.DESC_COLOR, x, y, w - timestampWidth, h, false, Align.left, false); + g.drawText(timestamp, font, SettingsScreen.DESC_COLOR, x + w - timestampWidth + SettingsScreen.SETTING_PADDING, y, w, h, false, Align.left, false); } }); } diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index 60824e63a45..2c415509921 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -3,7 +3,7 @@ package forge.screens.home; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -247,7 +247,7 @@ public class HomeScreen extends FScreen { public void draw(Graphics g) { if (Forge.isLandscapeMode()) { //draw text only for Landscape mode - g.drawText(getText(), getFont(), getForeColor(), 0, 0, getWidth(), getHeight(), false, HAlignment.LEFT, true); + g.drawText(getText(), getFont(), getForeColor(), 0, 0, getWidth(), getHeight(), false, Align.left, true); } else { //draw buttons normally for portrait mode super.draw(g); diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java index b601a4ffa7c..a028396bcba 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java @@ -1,6 +1,6 @@ package forge.screens.limited; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -39,7 +39,7 @@ public class LoadDraftScreen extends LaunchScreen { private final FLabel lblTip = add(new FLabel.Builder() .text("Double-tap to edit deck (Long-press to view)") .textColor(FLabel.INLINE_LABEL_COLOR) - .align(HAlignment.CENTER).font(FSkinFont.get(12)).build()); + .align(Align.center).font(FSkinFont.get(12)).build()); private final FSkinFont GAME_MODE_FONT= FSkinFont.get(12); private final FLabel lblMode = add(new FLabel.Builder().text("Mode:").font(GAME_MODE_FONT).build()); diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java index 66152ee3096..c954b90a6f8 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java @@ -1,6 +1,6 @@ package forge.screens.limited; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -39,7 +39,7 @@ public class LoadSealedScreen extends LaunchScreen { private final FLabel lblTip = add(new FLabel.Builder() .text("Double-tap to edit deck (Long-press to view)") .textColor(FLabel.INLINE_LABEL_COLOR) - .align(HAlignment.CENTER).font(FSkinFont.get(12)).build()); + .align(Align.center).font(FSkinFont.get(12)).build()); private final FSkinFont GAME_MODE_FONT= FSkinFont.get(12); private final FLabel lblMode = add(new FLabel.Builder().text("Mode:").font(GAME_MODE_FONT).build()); diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index 9b710575c4a..67e478e7d23 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -3,6 +3,7 @@ package forge.screens.match; import java.util.*; import java.util.Map.Entry; +import forge.properties.ForgeConstants; import org.apache.commons.lang3.tuple.Pair; import com.badlogic.gdx.Input.Keys; @@ -507,8 +508,8 @@ public class MatchScreen extends FScreen { float w = getWidth() - x; if(FModel.getPreferences().getPrefBoolean(FPref.UI_DYNAMIC_PLANECHASE_BG) - && hasActivePlane()) - setPlanarBG(g, getPlaneName(), x, y, w, midField); + && hasActivePlane()) //TODO: scale BG to correct aspect ratio/crop center + setPlanarBG(g, getPlaneName(), x, y, w, ForgeConstants.isGdxPortLandscape ? getHeight() : midField); else g.drawImage(FSkinTexture.BG_MATCH, x, y, w, midField + bottomPlayerPanel.getField().getHeight() - y); } @@ -880,7 +881,7 @@ public class MatchScreen extends FScreen { case "Mirrored Depths": g.drawImage(FSkinTexture.BG_PLANE77, x, y, w, midField + bottomPlayerPanel.getField().getHeight() - y); break; - case "Talon_Gates": + case "Talon Gates": g.drawImage(FSkinTexture.BG_PLANE78, x, y, w, midField + bottomPlayerPanel.getField().getHeight() - y); break; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAssignDamage.java b/forge-gui-mobile/src/forge/screens/match/views/VAssignDamage.java index 5630d6a6041..9e7a089d1cb 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAssignDamage.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAssignDamage.java @@ -48,7 +48,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; public class VAssignDamage extends FDialog { private static final float CARD_GAP_X = Utils.scale(10); @@ -64,8 +64,8 @@ public class VAssignDamage extends FDialog { private final GameEntityView defender; - private final FLabel lblTotalDamage = add(new FLabel.Builder().text("Available damage points: Unknown").align(HAlignment.CENTER).build()); - private final FLabel lblAssignRemaining = add(new FLabel.Builder().text("Distribute the remaining damage points among lethally wounded entities").align(HAlignment.CENTER).build()); + private final FLabel lblTotalDamage = add(new FLabel.Builder().text("Available damage points: Unknown").align(Align.center).build()); + private final FLabel lblAssignRemaining = add(new FLabel.Builder().text("Distribute the remaining damage points among lethally wounded entities").align(Align.center).build()); private final AttDefCardPanel pnlAttacker; private final DefendersPanel pnlDefenders; @@ -215,7 +215,7 @@ public class VAssignDamage extends FDialog { else { obj = add(new MiscAttDefPanel(defender.toString(), FSkinImage.UNKNOWN)); } - label = add(new FLabel.Builder().text("0").font(FSkinFont.get(18)).align(HAlignment.CENTER).build()); + label = add(new FLabel.Builder().text("0").font(FSkinFont.get(18)).align(Align.center).build()); btnSubtract = add(new FLabel.ButtonBuilder().icon(FSkinImage.MINUS).command(new FEventHandler() { @Override public void handleEvent(FEvent e) { @@ -284,7 +284,7 @@ public class VAssignDamage extends FDialog { float w = getWidth(); float h = getHeight(); g.drawImage(image, 0, 0, w, w); - g.drawText(name, FONT, FORE_COLOR, 0, w, w, h - w, false, HAlignment.CENTER, true); + g.drawText(name, FONT, FORE_COLOR, 0, w, w, h - w, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java b/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java index 16549345894..4c82e4e0698 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java @@ -3,8 +3,6 @@ package forge.screens.match.views; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - import forge.screens.match.MatchController; import forge.toolbox.FCheckBox; import forge.toolbox.FChoiceList; @@ -12,6 +10,7 @@ import forge.toolbox.FDialog; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FOptionPane; +import forge.util.TextBounds; public class VAutoYields extends FDialog { private final FChoiceList lstAutoYields; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java index 950034bd616..e8b112f01e3 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java @@ -1,8 +1,8 @@ package forge.screens.match.views; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FImage; @@ -70,7 +70,7 @@ public class VAvatar extends FDisplayObject { //use font and padding from phase indicator so text lines up FSkinFont font = VPhaseIndicator.BASE_FONT; float xpHeight = font.getCapHeight(); - g.drawOutlinedText(xp + " XP", font, Color.WHITE, Color.BLACK, 0, h - xpHeight - VPhaseIndicator.PADDING_Y, w - VPhaseIndicator.PADDING_X, h, false, HAlignment.RIGHT, false); + g.drawOutlinedText(xp + " XP", font, Color.WHITE, Color.BLACK, 0, h - xpHeight - VPhaseIndicator.PADDING_Y, w - VPhaseIndicator.PADDING_X, h, false, Align.right, false); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VLog.java b/forge-gui-mobile/src/forge/screens/match/views/VLog.java index ea3b9e2afb2..98e8cb49981 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VLog.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VLog.java @@ -2,7 +2,7 @@ package forge.screens.match.views; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -108,7 +108,7 @@ public class VLog extends FDropDown { } //use full height without padding so text not scaled down - renderer.drawText(g, text, FONT, FORE_COLOR, PADDING, PADDING, w - 2 * PADDING, h, 0, h, true, HAlignment.LEFT, false); + renderer.drawText(g, text, FONT, FORE_COLOR, PADDING, PADDING, w - 2 * PADDING, h, 0, h, true, Align.left, false); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java b/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java index 68713a146dc..438aa86b37b 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java @@ -3,7 +3,7 @@ package forge.screens.match.views; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -148,7 +148,7 @@ public class VManaPool extends VDisplayArea { w = getWidth(); h = getHeight() - y; - g.drawText(text, FONT, FORE_COLOR, x, y, w, h, false, HAlignment.CENTER, false); + g.drawText(text, FONT, FORE_COLOR, x, y, w, h, false, Align.center, false); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java index 841d2546125..0194566606d 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java @@ -4,8 +4,7 @@ import java.util.HashMap; import java.util.Map; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -14,6 +13,7 @@ import forge.assets.FSkinColor.Colors; import forge.game.phase.PhaseType; import forge.toolbox.FContainer; import forge.toolbox.FDisplayObject; +import forge.util.TextBounds; import forge.util.Utils; public class VPhaseIndicator extends FContainer { @@ -160,7 +160,7 @@ public class VPhaseIndicator extends FContainer { backColor = FSkinColor.get(Colors.CLR_PHASE_INACTIVE_DISABLED); } g.fillRect(backColor, x, 0, w, h); - g.drawText(caption, font, Color.BLACK, x, 0, w, h, false, HAlignment.CENTER, true); + g.drawText(caption, font, Color.BLACK, x, 0, w, h, false, Align.center, true); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java index 9e982f071f2..24deacce607 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -392,21 +392,21 @@ public class VPlayerPanel extends FContainer { @Override public void draw(Graphics g) { if (poisonCounters == 0 && energyCounters == 0) { - g.drawText(lifeStr, LIFE_FONT, INFO_FORE_COLOR, 0, 0, getWidth(), getHeight(), false, HAlignment.CENTER, true); + g.drawText(lifeStr, LIFE_FONT, INFO_FORE_COLOR, 0, 0, getWidth(), getHeight(), false, Align.center, true); } else { float halfHeight = getHeight() / 2; float textStart = halfHeight + Utils.scale(1); float textWidth = getWidth() - textStart; g.drawImage(FSkinImage.QUEST_LIFE, 0, 0, halfHeight, halfHeight); - g.drawText(lifeStr, INFO_FONT, INFO_FORE_COLOR, textStart, 0, textWidth, halfHeight, false, HAlignment.CENTER, true); + g.drawText(lifeStr, INFO_FONT, INFO_FORE_COLOR, textStart, 0, textWidth, halfHeight, false, Align.center, true); if (poisonCounters > 0) { //prioritize showing poison counters over energy counters g.drawImage(FSkinImage.POISON, 0, halfHeight, halfHeight, halfHeight); - g.drawText(String.valueOf(poisonCounters), INFO_FONT, INFO_FORE_COLOR, textStart, halfHeight, textWidth, halfHeight, false, HAlignment.CENTER, true); + g.drawText(String.valueOf(poisonCounters), INFO_FONT, INFO_FORE_COLOR, textStart, halfHeight, textWidth, halfHeight, false, Align.center, true); } else { g.drawImage(FSkinImage.ENERGY, 0, halfHeight, halfHeight, halfHeight); - g.drawText(String.valueOf(energyCounters), INFO_FONT, INFO_FORE_COLOR, textStart, halfHeight, textWidth, halfHeight, false, HAlignment.CENTER, true); + g.drawText(String.valueOf(energyCounters), INFO_FONT, INFO_FORE_COLOR, textStart, halfHeight, textWidth, halfHeight, false, Align.center, true); } } } @@ -510,10 +510,10 @@ public class VPlayerPanel extends FContainer { } x += w + INFO_TAB_PADDING_X; - HAlignment alignX = HAlignment.LEFT; + int alignX = Align.left; if (lblLife.getRotate180()) { g.startRotateTransform(x + (getWidth() - x + 1) / 2, getHeight() / 2, 180); - alignX = HAlignment.RIGHT; + alignX = Align.right; } g.drawText(value, INFO_FONT, INFO_FORE_COLOR, x, 0, getWidth() - x + 1, getHeight(), false, alignX, true); if (lblLife.getRotate180()) { @@ -535,7 +535,7 @@ public class VPlayerPanel extends FContainer { g.drawImage(icon, x, y, w, h); y += h + INFO_TAB_PADDING_Y; - g.drawText(value, INFO_FONT, INFO_FORE_COLOR, 0, y, getWidth(), getHeight() - y + 1, false, HAlignment.CENTER, false); + g.drawText(value, INFO_FONT, INFO_FORE_COLOR, 0, y, getWidth(), getHeight() - y + 1, false, Align.center, false); if (lblLife.getRotate180()) { g.endTransform(); } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java index 82a0ae15104..b74a3e9dcfa 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java @@ -1,6 +1,6 @@ package forge.screens.match.views; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FImage; @@ -62,7 +62,7 @@ public class VPlayers extends FDropDown { g.drawImage(avatarImage, x, y, h, h); x += h + PADDING; - g.drawText(player.getDetails(), FONT, FList.FORE_COLOR, x, y, getWidth() - PADDING - x, h, true, HAlignment.LEFT, true); + g.drawText(player.getDetails(), FONT, FList.FORE_COLOR, x, y, getWidth() - PADDING - x, h, true, Align.left, true); } @Override diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java b/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java index 44ae1a6bb19..d964c9d2442 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java @@ -2,9 +2,7 @@ package forge.screens.match.views; import org.apache.commons.lang3.StringUtils; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; @@ -18,6 +16,7 @@ import forge.toolbox.FButton.Corner; import forge.toolbox.FContainer; import forge.toolbox.FDisplayObject; import forge.toolbox.FEvent.FEventHandler; +import forge.util.TextBounds; import forge.util.Utils; public class VPrompt extends FContainer { @@ -125,7 +124,7 @@ public class VPrompt extends FContainer { float y = PADDING; float w = getWidth() - 2 * PADDING; float h = getHeight() - 2 * PADDING; - renderer.drawText(g, message, FONT, FORE_COLOR, x, y, w, h, y, h, true, HAlignment.CENTER, true); + renderer.drawText(g, message, FONT, FORE_COLOR, x, y, w, h, y, h, true, Align.center, true); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VStack.java b/forge-gui-mobile/src/forge/screens/match/views/VStack.java index 675f23716df..c72bcf226e3 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VStack.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VStack.java @@ -6,8 +6,8 @@ import java.util.Map; import java.util.Set; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -133,7 +133,7 @@ public class VStack extends FDropDown { final FCollectionView stack = MatchController.instance.getGameView().getStack(); if (stack.isEmpty()) { //show label if stack empty - FLabel label = add(new FLabel.Builder().text("[Empty]").font(FONT).align(HAlignment.CENTER).build()); + FLabel label = add(new FLabel.Builder().text("[Empty]").font(FONT).align(Align.center).build()); float height = Math.round(label.getAutoSizeBounds().height) + 2 * PADDING; label.setBounds(x, y, width, height); @@ -371,7 +371,7 @@ public class VStack extends FDropDown { x += CARD_WIDTH + PADDING; w -= x + PADDING - BORDER_THICKNESS; h -= y + PADDING - BORDER_THICKNESS; - textRenderer.drawText(g, text, FONT, foreColor, x, y, w, h, y, h, true, HAlignment.LEFT, true); + textRenderer.drawText(g, text, FONT, foreColor, x, y, w, h, y, h, true, Align.left, true); g.endClip(); diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java index 75dde34a596..fa01b33984c 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java @@ -1,7 +1,7 @@ package forge.screens.match.winlose; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; import forge.assets.FSkinColor; @@ -40,8 +40,8 @@ public class ViewWinLose extends FOverlay implements IWinLoseView { game = game0; - lblTitle = add(new FLabel.Builder().font(FSkinFont.get(30)).align(HAlignment.CENTER).build()); - lblStats = add(new FLabel.Builder().font(FSkinFont.get(26)).align(HAlignment.CENTER).build()); + lblTitle = add(new FLabel.Builder().font(FSkinFont.get(30)).align(Align.center).build()); + lblStats = add(new FLabel.Builder().font(FSkinFont.get(26)).align(Align.center).build()); pnlOutcomes = add(new OutcomesPanel()); btnContinue = add(new FButton()); @@ -88,7 +88,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView { btnQuit.setFont(btnContinue.getFont()); btnContinue.setEnabled(!game0.isMatchOver()); - lblLog = add(new FLabel.Builder().text("Game Log").align(HAlignment.CENTER).font(FSkinFont.get(18)).build()); + lblLog = add(new FLabel.Builder().text("Game Log").align(Align.center).font(FSkinFont.get(18)).build()); txtLog = add(new FTextArea(true, StringUtils.join(game.getGameLog().getLogEntries(null), "\r\n").replace("[COMPUTER]", "[AI]")) { @Override public boolean tap(float x, float y, int count) { diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java index 604855ecfa2..282c09c7d36 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java @@ -1,7 +1,7 @@ package forge.screens.online; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -149,7 +149,7 @@ public class OnlineChatScreen extends FScreen implements IOnlineChatInterface { float w = getWidth() - TRIANGLE_WIDTH; float h = getHeight() - TEXT_INSET; FSkinColor color = isLocal ? LOCAL_COLOR : REMOTE_COLOR; - HAlignment horzAlignment = isLocal ? HAlignment.RIGHT : HAlignment.LEFT; + int horzAlignment = isLocal ? Align.right : Align.left; float timestampHeight = FONT.getCapHeight(); //draw bubble fill diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java index d647c38c192..42ad37d2e0a 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java @@ -5,8 +5,8 @@ import java.util.List; import java.util.Set; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; @@ -64,7 +64,7 @@ public class ConquestAEtherScreen extends FScreen { private final FilterButton btnRarityFilter = add(new FilterButton("Rarity", ConquestUtil.RARITY_FILTERS)); private final FilterButton btnCMCFilter = add(new FilterButton("CMC", ConquestUtil.CMC_FILTERS)); - private final FLabel lblShards = add(new FLabel.Builder().font(LABEL_FONT).align(HAlignment.CENTER).parseSymbols().build()); + private final FLabel lblShards = add(new FLabel.Builder().font(LABEL_FONT).align(Align.center).parseSymbols().build()); private PullAnimation activePullAnimation; private int shardCost; @@ -273,7 +273,7 @@ public class ConquestAEtherScreen extends FScreen { activePullAnimation.drawCard(g); } else { - textRenderer.drawText(g, message, MESSAGE_FONT, Color.WHITE, 0, 0, w, h, 0, h, false, HAlignment.CENTER, true); + textRenderer.drawText(g, message, MESSAGE_FONT, Color.WHITE, 0, 0, w, h, 0, h, false, Align.center, true); } } @@ -361,7 +361,7 @@ public class ConquestAEtherScreen extends FScreen { private FilterButton(String caption0, AEtherFilter[] options0) { super(new FLabel.Builder().iconInBackground().pressedColor(FILTER_BUTTON_PRESSED_COLOR) - .textColor(FILTER_BUTTON_TEXT_COLOR).alphaComposite(1f).align(HAlignment.CENTER)); + .textColor(FILTER_BUTTON_TEXT_COLOR).alphaComposite(1f).align(Align.center)); caption = caption0; options = ImmutableList.copyOf(options0); setSelectedOption(options.get(0)); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java index 4de8374000d..034b9b10131 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java @@ -2,7 +2,7 @@ package forge.screens.planarconquest; import java.util.Map.Entry; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import forge.Forge; @@ -217,7 +217,7 @@ public class ConquestCommandersScreen extends FScreen { float imageSize = CardRenderer.MANA_SYMBOL_SIZE; ColorSet cardColor = card.getRules().getColorIdentity(); float availableWidth = w - cardArtWidth - CardFaceSymbols.getWidth(cardColor, imageSize) - FList.PADDING; - g.drawText(card.getName(), font, foreColor, x, y, availableWidth, imageSize, false, HAlignment.LEFT, true); + g.drawText(card.getName(), font, foreColor, x, y, availableWidth, imageSize, false, Align.left, true); CardFaceSymbols.drawColorSet(g, cardColor, x + availableWidth + FList.PADDING, y, imageSize); if (compactModeHandler.isCompactMode()) { @@ -233,7 +233,7 @@ public class ConquestCommandersScreen extends FScreen { float setWidth = CardRenderer.getSetWidth(font, set); availableWidth = w - cardArtWidth - setWidth; - g.drawText(commander.getOrigin() + " (" + record.getWins() + "W / " + record.getLosses() + "L)", font, foreColor, x, y, availableWidth, lineHeight, false, HAlignment.LEFT, true); + g.drawText(commander.getOrigin() + " (" + record.getWins() + "W / " + record.getLosses() + "L)", font, foreColor, x, y, availableWidth, lineHeight, false, Align.left, true); x += availableWidth + CardRenderer.SET_BOX_MARGIN; y -= CardRenderer.SET_BOX_MARGIN; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java index 5185152569a..43905672fc1 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java @@ -6,9 +6,9 @@ import forge.planarconquest.*; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -641,7 +641,7 @@ public class ConquestMultiverseScreen extends FScreen { float y = PADDING; float symbolSize = CardRenderer.MANA_SYMBOL_SIZE; float availableNameWidth = w - CardFaceSymbols.getWidth(regionColors, symbolSize) - 3 * PADDING; - g.drawText(region.toString(), PLANE_NAME_FONT, LOCATION_BAR_TEXT_COLOR, x, y, availableNameWidth, symbolSize, false, HAlignment.LEFT, true); + g.drawText(region.toString(), PLANE_NAME_FONT, LOCATION_BAR_TEXT_COLOR, x, y, availableNameWidth, symbolSize, false, Align.left, true); x += availableNameWidth + PADDING; CardFaceSymbols.drawColorSet(g, regionColors, x, y, symbolSize); @@ -653,7 +653,7 @@ public class ConquestMultiverseScreen extends FScreen { } x = PADDING; y += symbolSize; - g.drawText(details, EVENT_NAME_FONT, LOCATION_BAR_TEXT_COLOR, x, y, w - 2 * PADDING, h - y, false, HAlignment.CENTER, true); + g.drawText(details, EVENT_NAME_FONT, LOCATION_BAR_TEXT_COLOR, x, y, w - 2 * PADDING, h - y, false, Align.center, true); //draw top and bottom borders g.drawLine(1, Color.BLACK, 0, 0, w, 0); @@ -702,10 +702,10 @@ public class ConquestMultiverseScreen extends FScreen { float labelHeight = playerAvatar.getTop(); if (playerAvatar.card != null) { - g.drawText(playerAvatar.card.getName(), AVATAR_NAME_FONT, Color.WHITE, PADDING, 0, labelWidth, labelHeight, false, HAlignment.LEFT, true); + g.drawText(playerAvatar.card.getName(), AVATAR_NAME_FONT, Color.WHITE, PADDING, 0, labelWidth, labelHeight, false, Align.left, true); } if (opponentAvatar.card != null) { - g.drawText(opponentAvatar.card.getName(), AVATAR_NAME_FONT, Color.WHITE, getWidth() - labelWidth - PADDING, getHeight() - labelHeight, labelWidth, labelHeight, false, HAlignment.RIGHT, true); + g.drawText(opponentAvatar.card.getName(), AVATAR_NAME_FONT, Color.WHITE, getWidth() - labelWidth - PADDING, getHeight() - labelHeight, labelWidth, labelHeight, false, Align.right, true); } } diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java index fb8b43dd606..1c78d317915 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java @@ -3,8 +3,8 @@ package forge.screens.planarconquest; import java.util.List; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -206,7 +206,7 @@ public class ConquestPlaneSelector extends FDisplayObject { float monitorBottom = monitorTop + monitorHeight; float remainingHeight = h - monitorBottom; ConquestPlane plane = getSelectedPlane(); - g.drawText(plane.getName().replace("_", " " ), PLANE_NAME_FONT, Color.WHITE, textLeft, monitorBottom, w - 2 * textLeft, remainingHeight, false, HAlignment.CENTER, true); + g.drawText(plane.getName().replace("_", " " ), PLANE_NAME_FONT, Color.WHITE, textLeft, monitorBottom, w - 2 * textLeft, remainingHeight, false, Align.center, true); //draw left/right arrows float yMid = monitorBottom + remainingHeight / 2; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java index ff613b75e56..4af66742ffd 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java @@ -1,7 +1,7 @@ package forge.screens.planarconquest; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -57,7 +57,7 @@ public class ConquestPlaneswalkScreen extends FScreen { private PlaneswalkButton() { super(new FLabel.Builder().font(FSkinFont.get(20)).parseSymbols().pressedColor(ConquestAEtherScreen.FILTER_BUTTON_PRESSED_COLOR) - .textColor(ConquestAEtherScreen.FILTER_BUTTON_TEXT_COLOR).alphaComposite(1f).align(HAlignment.CENTER)); + .textColor(ConquestAEtherScreen.FILTER_BUTTON_TEXT_COLOR).alphaComposite(1f).align(Align.center)); setCommand(new FEventHandler() { @Override public void handleEvent(FEvent e) { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java index 149db9516ea..2cf70553e1a 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java @@ -4,8 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.ImageKeys; import forge.animation.ForgeAnimation; @@ -281,7 +280,7 @@ public class ConquestRewardDialog extends FScrollPane { if (reward.isDuplicate()) { setFont(FSkinFont.get(20)); setIcon(FSkinImage.AETHER_SHARD); - setAlignment(HAlignment.CENTER); + setAlignment(Align.center); setText(String.valueOf(reward.getReplacementShards())); } } diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java index ca95bf4195c..abd6a461c70 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java @@ -1,6 +1,6 @@ package forge.screens.planarconquest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.assets.FImage; import forge.assets.FSkinFont; @@ -57,7 +57,7 @@ public class ConquestStatsScreen extends FScreen implements IVConquestStats { cbPlanes.addItem(plane); } } - cbPlanes.setAlignment(HAlignment.CENTER); + cbPlanes.setAlignment(Align.center); cbPlanes.setChangedHandler(new FEventHandler() { @Override public void handleEvent(FEvent e) { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java index 1115a2f4ec1..581d7e47504 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Graphics; @@ -55,7 +55,7 @@ public class LoadConquestScreen extends LaunchScreen { super(null, LoadGameMenu.getMenu()); lblOldConquests.setFont(FSkinFont.get(12)); - lblOldConquests.setAlignment(HAlignment.CENTER); + lblOldConquests.setAlignment(Align.center); btnNewConquest.setFont(FSkinFont.get(16)); btnNewConquest.setCommand(new FEventHandler() { @@ -301,8 +301,8 @@ public class LoadConquestScreen extends LaunchScreen { String progress = value.getProgress(); float winRatioWidth = font.getBounds(progress).width + SettingsScreen.SETTING_PADDING; - g.drawText(name, font, foreColor, x, y, w - winRatioWidth, h, false, HAlignment.LEFT, false); - g.drawText(progress, font, foreColor, x, y, w, h, false, HAlignment.RIGHT, false); + g.drawText(name, font, foreColor, x, y, w - winRatioWidth, h, false, Align.left, false); + g.drawText(progress, font, foreColor, x, y, w, h, false, Align.right, false); h += SettingsScreen.SETTING_PADDING; y += h; @@ -315,11 +315,11 @@ public class LoadConquestScreen extends LaunchScreen { font = FSkinFont.get(12); float cardsWidth = font.getBounds(cards).width + iconSize + SettingsScreen.SETTING_PADDING; float shardsWidth = font.getBounds(shards).width + iconSize + SettingsScreen.SETTING_PADDING; - g.drawText(value.getPlaneswalker().getName() + " - " + value.getCurrentPlane().getName().replace("_", " "), font, SettingsScreen.DESC_COLOR, x, y, w - shardsWidth - cardsWidth, h, false, HAlignment.LEFT, false); + g.drawText(value.getPlaneswalker().getName() + " - " + value.getCurrentPlane().getName().replace("_", " "), font, SettingsScreen.DESC_COLOR, x, y, w - shardsWidth - cardsWidth, h, false, Align.left, false); g.drawImage(FSkinImage.SPELLBOOK, x + w - shardsWidth - cardsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize); - g.drawText(cards, font, SettingsScreen.DESC_COLOR, x + w - shardsWidth - cardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false); + g.drawText(cards, font, SettingsScreen.DESC_COLOR, x + w - shardsWidth - cardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, Align.left, false); g.drawImage(FSkinImage.AETHER_SHARD, x + w - shardsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize); - g.drawText(shards, font, SettingsScreen.DESC_COLOR, x + w - shardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false); + g.drawText(shards, font, SettingsScreen.DESC_COLOR, x + w - shardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, Align.left, false); } }); } diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java index 4fe57997b60..c17ba142e31 100644 --- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java @@ -11,8 +11,7 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; import forge.Graphics; @@ -57,7 +56,7 @@ public class LoadQuestScreen extends LaunchScreen { super(null, LoadGameMenu.getMenu()); lblOldQuests.setFont(FSkinFont.get(12)); - lblOldQuests.setAlignment(HAlignment.CENTER); + lblOldQuests.setAlignment(Align.center); btnNewQuest.setFont(FSkinFont.get(16)); btnNewQuest.setCommand(new FEventHandler() { @@ -304,8 +303,8 @@ public class LoadQuestScreen extends LaunchScreen { String winRatio = value.getAchievements().getWin() + "W / " + value.getAchievements().getLost() + "L"; float winRatioWidth = font.getBounds(winRatio).width + SettingsScreen.SETTING_PADDING; - g.drawText(name, font, foreColor, x, y, w - winRatioWidth, h, false, HAlignment.LEFT, false); - g.drawText(winRatio, font, foreColor, x, y, w, h, false, HAlignment.RIGHT, false); + g.drawText(name, font, foreColor, x, y, w - winRatioWidth, h, false, Align.left, false); + g.drawText(winRatio, font, foreColor, x, y, w, h, false, Align.right, false); h += SettingsScreen.SETTING_PADDING; y += h; @@ -318,11 +317,11 @@ public class LoadQuestScreen extends LaunchScreen { font = FSkinFont.get(12); float cardsWidth = font.getBounds(cards).width + iconSize + SettingsScreen.SETTING_PADDING; float creditsWidth = font.getBounds(credits).width + iconSize + SettingsScreen.SETTING_PADDING; - g.drawText(FModel.getQuest().getRank(value.getAchievements().getLevel()), font, SettingsScreen.DESC_COLOR, x, y, w - creditsWidth - cardsWidth, h, false, HAlignment.LEFT, false); + g.drawText(FModel.getQuest().getRank(value.getAchievements().getLevel()), font, SettingsScreen.DESC_COLOR, x, y, w - creditsWidth - cardsWidth, h, false, Align.left, false); g.drawImage(FSkinImage.HAND, x + w - creditsWidth - cardsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize); - g.drawText(cards, font, SettingsScreen.DESC_COLOR, x + w - creditsWidth - cardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false); + g.drawText(cards, font, SettingsScreen.DESC_COLOR, x + w - creditsWidth - cardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, Align.left, false); g.drawImage(FSkinImage.QUEST_COINSTACK, x + w - creditsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize); - g.drawText(credits, font, SettingsScreen.DESC_COLOR, x + w - creditsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false); + g.drawText(credits, font, SettingsScreen.DESC_COLOR, x + w - creditsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, Align.left, false); } }); } diff --git a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java index fc8594e652c..a93827e7edf 100644 --- a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java @@ -1,6 +1,6 @@ package forge.screens.quest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -95,7 +95,7 @@ public class NewQuestScreen extends FScreen { obj.setBounds(x, y, visibleWidth / 2 - x, h); //make label take up half of line so combo boxes all the same width x += obj.getWidth(); continue; - } else if (lbl.getAlignment() == HAlignment.RIGHT) { + } else if (lbl.getAlignment() == Align.right) { y -= gapY; //remove most of the padding above description text } } @@ -121,7 +121,7 @@ public class NewQuestScreen extends FScreen { private final FLabel lblStartingPool = scroller.add(new FLabel.Builder().text("Starting pool:").build()); private final FComboBox cbxStartingPool = scroller.add(new FComboBox()); - private final FLabel lblUnrestricted = scroller.add(new FLabel.Builder().align(HAlignment.RIGHT).font(FSkinFont.get(12)).text("All cards will be available to play.").build()); + private final FLabel lblUnrestricted = scroller.add(new FLabel.Builder().align(Align.right).font(FSkinFont.get(12)).text("All cards will be available to play.").build()); private final FLabel lblPreconDeck = scroller.add(new FLabel.Builder().text("Starter/Event deck:").build()); private final FComboBox cbxPreconDeck = scroller.add(new FComboBox()); @@ -161,8 +161,8 @@ public class NewQuestScreen extends FScreen { private final FLabel lblPrizeFormat = scroller.add(new FLabel.Builder().text("Defined format:").build()); private final FComboBox cbxPrizeFormat = scroller.add(new FComboBox()); - private final FLabel lblPrizeUnrestricted = scroller.add(new FLabel.Builder().align(HAlignment.RIGHT).font(FSkinFont.get(12)).text("All cards will be available to win.").build()); - private final FLabel lblPrizeSameAsStarting = scroller.add(new FLabel.Builder().align(HAlignment.RIGHT).font(FSkinFont.get(12)).text("Only sets found in starting pool will be available.").build()); + private final FLabel lblPrizeUnrestricted = scroller.add(new FLabel.Builder().align(Align.right).font(FSkinFont.get(12)).text("All cards will be available to win.").build()); + private final FLabel lblPrizeSameAsStarting = scroller.add(new FLabel.Builder().align(Align.right).font(FSkinFont.get(12)).text("Only sets found in starting pool will be available.").build()); private final FLabel btnPrizeSelectFormat = scroller.add(new FLabel.ButtonBuilder().text("Choose format").build()); private final FCheckBox cbAllowUnlocks = scroller.add(new FCheckBox("Allow unlock of additional editions")); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java index fa983362a05..d0295035522 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java @@ -3,8 +3,8 @@ package forge.screens.quest; import java.util.List; import java.util.Set; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; @@ -56,12 +56,12 @@ public class QuestBazaarScreen extends TabPageScreen { private static final float PADDING = Utils.scale(5); private final QuestStallDefinition stallDef; - private final FLabel lblStallName = add(new FLabel.Builder().text("").align(HAlignment.CENTER).build()); + private final FLabel lblStallName = add(new FLabel.Builder().text("").align(Align.center).build()); private final FLabel lblEmpty = add(new FLabel.Builder().font(FSkinFont.get(12)) .text("The merchant does not have anything useful for sale.") - .align(HAlignment.CENTER).build()); + .align(Align.center).build()); private final FLabel lblCredits = add(new FLabel.Builder().font(FSkinFont.get(15)).icon(FSkinImage.QUEST_COINSTACK).iconScaleFactor(1f).build()); - private final FLabel lblLife = add(new FLabel.Builder().font(lblCredits.getFont()).icon(FSkinImage.QUEST_LIFE).iconScaleFactor(1f).align(HAlignment.RIGHT).build()); + private final FLabel lblLife = add(new FLabel.Builder().font(lblCredits.getFont()).icon(FSkinImage.QUEST_LIFE).iconScaleFactor(1f).align(Align.right).build()); private final FTextArea lblFluff = add(new FTextArea(false)); private final FScrollPane scroller = add(new FScrollPane() { @Override @@ -87,7 +87,7 @@ public class QuestBazaarScreen extends TabPageScreen { stallDef = stallDef0; lblFluff.setFont(FSkinFont.get(12)); - lblFluff.setAlignment(HAlignment.CENTER); + lblFluff.setAlignment(Align.center); lblFluff.setTextColor(FLabel.INLINE_LABEL_COLOR); //make fluff text a little lighter } diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java index f86d83fc682..31d6fcfe96b 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java @@ -1,7 +1,7 @@ package forge.screens.quest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.assets.FSkinFont; import forge.interfaces.IButton; @@ -10,14 +10,14 @@ import forge.toolbox.FLabel; public class QuestChallengesScreen extends QuestLaunchScreen { private final FLabel lblInfo = add(new FLabel.Builder().text("Which challenge will you attempt?") - .align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + .align(Align.center).font(FSkinFont.get(16)).build()); private final FLabel lblCurrentDeck = add(new FLabel.Builder() - .text("Current deck hasn't been set yet.").align(HAlignment.CENTER).insets(Vector2.Zero) + .text("Current deck hasn't been set yet.").align(Align.center).insets(Vector2.Zero) .font(FSkinFont.get(12)).build()); private final FLabel lblNextChallengeInWins = add(new FLabel.Builder() - .text("Next challenge in wins hasn't been set yet.").align(HAlignment.CENTER).insets(Vector2.Zero) + .text("Next challenge in wins hasn't been set yet.").align(Align.center).insets(Vector2.Zero) .font(FSkinFont.get(12)).build()); private final QuestEventPanel.Container pnlChallenges = add(new QuestEventPanel.Container()); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java index 38193c6f6b2..35302c93419 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java @@ -1,7 +1,6 @@ package forge.screens.quest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; import forge.assets.FSkinFont; @@ -34,7 +33,7 @@ public class QuestDecksScreen extends FScreen { private final FButton btnRandom = add(new FButton("Random Deck")); private final FLabel lblInfo = add(new FLabel.Builder() - .align(HAlignment.CENTER).font(FSkinFont.get(16)) + .align(Align.center).font(FSkinFont.get(16)) .text("Build or select a deck").build()); private final FEventHandler onDeckSelectionChanged = new FEventHandler() { diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java index 97a6ecab29e..299631fedfb 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java @@ -1,7 +1,7 @@ package forge.screens.quest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.assets.FSkinFont; import forge.interfaces.IButton; import forge.model.FModel; @@ -15,14 +15,14 @@ import java.util.List; public class QuestDuelsScreen extends QuestLaunchScreen { private final FLabel lblInfo = add(new FLabel.Builder().text("Select your next duel.") - .align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + .align(Align.center).font(FSkinFont.get(16)).build()); private final FLabel lblCurrentDeck = add(new FLabel.Builder() - .text("Current deck hasn't been set yet.").align(HAlignment.CENTER).insets(Vector2.Zero) + .text("Current deck hasn't been set yet.").align(Align.center).insets(Vector2.Zero) .font(FSkinFont.get(12)).build()); private final FLabel lblNextChallengeInWins = add(new FLabel.Builder() - .text("Next challenge in wins hasn't been set yet.").align(HAlignment.CENTER).insets(Vector2.Zero) + .text("Next challenge in wins hasn't been set yet.").align(Align.center).insets(Vector2.Zero) .font(FSkinFont.get(12)).build()); private final QuestEventPanel.Container pnlDuels = add(new QuestEventPanel.Container()); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java index f492a75e9bb..e9f3cc9593c 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java @@ -1,7 +1,7 @@ package forge.screens.quest; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.*; import forge.assets.FSkinColor.Colors; @@ -109,11 +109,11 @@ class QuestEventPanel extends FDisplayObject { //draw title w -= x + 2 * (RADIO_BUTTON_RADIUS + PADDING); String title = event.getFullTitle(); - g.drawText(title, TITLE_FONT, TITLE_COLOR, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(title, TITLE_FONT, TITLE_COLOR, x, y, w, h, false, Align.left, false); //draw description y += TITLE_FONT.getCapHeight() + 2 * PADDING; - g.drawText(event.getDescription(), DESC_FONT, DESC_COLOR, x, y, w, h - PADDING - y, true, HAlignment.LEFT, false); + g.drawText(event.getDescription(), DESC_FONT, DESC_COLOR, x, y, w, h - PADDING - y, true, Align.left, false); //draw radio button x = getWidth() - PADDING - RADIO_BUTTON_RADIUS; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java index 44848e99685..dab3d7d1892 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.assets.FImage; @@ -315,7 +315,7 @@ public class QuestSpellShopScreen extends TabPageScreen { private static class InventoryPage extends SpellShopBasePage { protected FLabel lblSellExtras = add(new FLabel.Builder().text("Sell all extras") - .icon(FSkinImage.MINUS).iconScaleFactor(1f).align(HAlignment.RIGHT).font(FSkinFont.get(16)) + .icon(FSkinImage.MINUS).iconScaleFactor(1f).align(Align.right).font(FSkinFont.get(16)) .command(new FEventHandler() { @Override public void handleEvent(FEvent e) { diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java index 58c94b0309e..31ddb5c66ab 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java @@ -1,7 +1,7 @@ package forge.screens.quest; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.FThreads; import forge.Forge; @@ -45,10 +45,10 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT private final FLabel btnSpendToken = pnlSelectTournament.add(new FLabel.ButtonBuilder().text("Spend Token (0)").build()); private final FLabel lblInfo = pnlSelectTournament.add(new FLabel.Builder().text("Select a tournament to join:") - .align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + .align(Align.center).font(FSkinFont.get(16)).build()); private final FLabel lblNoTournaments = pnlSelectTournament.add(new FLabel.Builder() - .align(HAlignment.CENTER).text("There are no tournaments available at this time.").insets(Vector2.Zero) + .align(Align.center).text("There are no tournaments available at this time.").insets(Vector2.Zero) .font(FSkinFont.get(12)).build()); private final QuestEventPanel.Container pnlTournaments = pnlSelectTournament.add(new QuestEventPanel.Container()); @@ -372,7 +372,7 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT int[] iconIDs = new int[16]; String draftTitle = qd.getFullTitle(); - FLabel lblStandings = add(new FLabel.Builder().text("Draft: " + draftTitle).align(HAlignment.CENTER).font(FSkinFont.get(20)).build()); + FLabel lblStandings = add(new FLabel.Builder().text("Draft: " + draftTitle).align(Align.center).font(FSkinFont.get(20)).build()); lblStandings.setBounds(x, y, w, lblStandings.getAutoSizeBounds().height); y += lblStandings.getHeight() + PADDING; @@ -385,7 +385,7 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT String sid = qd.getStandings()[qd.getStandings().length - 1]; String winnersName = sid.equals(QuestEventDraft.HUMAN) ? FModel.getPreferences().getPref(FPref.PLAYER_NAME) : sid.equals(QuestEventDraft.UNDETERMINED) ? "---" : qd.getAINames()[Integer.parseInt(sid) - 1]; - FLabel lblWinner = add(new FLabel.Builder().text("Winner: " + winnersName).align(HAlignment.CENTER).font(FSkinFont.get(20)).build()); + FLabel lblWinner = add(new FLabel.Builder().text("Winner: " + winnersName).align(Align.center).font(FSkinFont.get(20)).build()); lblWinner.setBounds(x, y, w, lblStandings.getAutoSizeBounds().height); y += lblWinner.getHeight() + PADDING; getBtnLeaveTournamentInTourn().setText("Collect Prizes"); @@ -427,17 +427,17 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT for (int j = 0; j < 13; j += 2) { switch (j) { case 0: - FLabel qfinals = add(new FLabel.Builder().text("QUARTERFINALS").align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + FLabel qfinals = add(new FLabel.Builder().text("QUARTERFINALS").align(Align.center).font(FSkinFont.get(16)).build()); qfinals.setBounds(x, y, w, qfinals.getAutoSizeBounds().height); y += qfinals.getHeight() + PADDING; break; case 8: - FLabel sfinals = add(new FLabel.Builder().text("SEMIFINALS").align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + FLabel sfinals = add(new FLabel.Builder().text("SEMIFINALS").align(Align.center).font(FSkinFont.get(16)).build()); sfinals.setBounds(x, y, w, sfinals.getAutoSizeBounds().height); y += sfinals.getHeight() + PADDING; break; case 12: - FLabel finals = add(new FLabel.Builder().text("FINAL MATCH").align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + FLabel finals = add(new FLabel.Builder().text("FINAL MATCH").align(Align.center).font(FSkinFont.get(16)).build()); finals.setBounds(x, y, w, finals.getAutoSizeBounds().height); y += finals.getHeight() + PADDING; break; @@ -453,7 +453,7 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT FTextureRegionImage avatar1 = new FTextureRegionImage(FSkin.getAvatars().get(iconIDs[j])); FTextureRegionImage avatar2 = new FTextureRegionImage(FSkin.getAvatars().get(iconIDs[j+1])); */ - labels[j] = add(new FLabel.Builder().icon(currentMatch ? FSkinImage.STAR_FILLED : FSkinImage.STAR_OUTINE).text(labelText).align(HAlignment.CENTER).font(FSkinFont.get(16)).build()); + labels[j] = add(new FLabel.Builder().icon(currentMatch ? FSkinImage.STAR_FILLED : FSkinImage.STAR_OUTINE).text(labelText).align(Align.center).font(FSkinFont.get(16)).build()); labels[j].setBounds(x, y, w, labels[j].getAutoSizeBounds().height); if (currentMatch) { labels[j].setTextColor(FSkinColor.get(FSkinColor.Colors.CLR_ACTIVE)); diff --git a/forge-gui-mobile/src/forge/screens/settings/FilesPage.java b/forge-gui-mobile/src/forge/screens/settings/FilesPage.java index fa076bd56cb..2120288df18 100644 --- a/forge-gui-mobile/src/forge/screens/settings/FilesPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/FilesPage.java @@ -3,7 +3,7 @@ package forge.screens.settings; import forge.download.*; import org.apache.commons.lang3.StringUtils; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -142,9 +142,9 @@ public class FilesPage extends TabPage { float totalHeight = h; h = font.getMultiLineBounds(value.label).height + SettingsScreen.SETTING_PADDING; - g.drawText(value.label, font, foreColor, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(value.label, font, foreColor, x, y, w, h, false, Align.left, false); h += SettingsScreen.SETTING_PADDING; - g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, HAlignment.LEFT, false); + g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, Align.left, false); } } diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index 760b93ce9bc..2c583877624 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -1,6 +1,6 @@ package forge.screens.settings; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; import forge.MulliganDefs; @@ -456,7 +456,7 @@ public class SettingsPage extends TabPage { w -= 2 * offset; h -= 2 * offset; - g.drawText(value, font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(value, font, foreColor, x, y, w, h, false, Align.left, true); float radius = h / 3; x += w - radius; @@ -485,7 +485,7 @@ public class SettingsPage extends TabPage { @Override public void drawPrefValue(Graphics g, FSkinFont font, FSkinColor color, float x, float y, float w, float h) { - g.drawText(FModel.getPreferences().getPref(pref), font, color, x, y, w, h, false, HAlignment.RIGHT, false); + g.drawText(FModel.getPreferences().getPref(pref), font, color, x, y, w, h, false, Align.right, false); } } @@ -512,10 +512,10 @@ public class SettingsPage extends TabPage { float totalHeight = h; h = font.getMultiLineBounds(value.label).height + SettingsScreen.SETTING_PADDING; - g.drawText(value.label, font, foreColor, x, y, w, h, false, HAlignment.LEFT, false); + g.drawText(value.label, font, foreColor, x, y, w, h, false, Align.left, false); value.drawPrefValue(g, font, foreColor, x, y, w, h); h += SettingsScreen.SETTING_PADDING; - g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, HAlignment.LEFT, false); + g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, Align.left, false); } } } diff --git a/forge-gui-mobile/src/forge/toolbox/DualListBox.java b/forge-gui-mobile/src/forge/toolbox/DualListBox.java index 809ecaeb30f..65891c3eb47 100644 --- a/forge-gui-mobile/src/forge/toolbox/DualListBox.java +++ b/forge-gui-mobile/src/forge/toolbox/DualListBox.java @@ -9,7 +9,7 @@ import java.util.Collection; import java.util.List; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; // An input box for handling the order of choices. // Left box has the original choices @@ -122,8 +122,8 @@ public class DualListBox extends FDialog { } }); - selectOrder = add(new FLabel.Builder().align(HAlignment.CENTER).text("Select Order").build()); - orderedLabel = add(new FLabel.Builder().align(HAlignment.CENTER).build()); + selectOrder = add(new FLabel.Builder().align(Align.center).text("Select Order").build()); + orderedLabel = add(new FLabel.Builder().align(Align.center).build()); setButtonState(); } diff --git a/forge-gui-mobile/src/forge/toolbox/FButton.java b/forge-gui-mobile/src/forge/toolbox/FButton.java index e0154e74621..e3909565f42 100644 --- a/forge-gui-mobile/src/forge/toolbox/FButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FButton.java @@ -3,9 +3,7 @@ package forge.toolbox; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.UiCommand; import forge.assets.FSkinColor; @@ -16,6 +14,7 @@ import forge.assets.FSkinProp; import forge.interfaces.IButton; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; +import forge.util.TextBounds; import forge.util.Utils; public class FButton extends FDisplayObject implements IButton { @@ -239,7 +238,7 @@ public class FButton extends FDisplayObject implements IButton { if (corner == Corner.BottomLeft || corner == Corner.BottomRight) { displayText = displayText.replaceFirst(" ", "\n"); //allow second word to wrap if corner button } - g.drawText(displayText, font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(displayText, font, foreColor, x, y, w, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/toolbox/FCheckBox.java b/forge-gui-mobile/src/forge/toolbox/FCheckBox.java index b843a3d7358..3da8bf5da2f 100644 --- a/forge-gui-mobile/src/forge/toolbox/FCheckBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FCheckBox.java @@ -1,6 +1,6 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FImage; @@ -21,7 +21,7 @@ public class FCheckBox extends FLabel implements ICheckBox { this(text0, false); } public FCheckBox(String text0, boolean selected0) { - super(new Builder().text(text0).align(HAlignment.LEFT).selectable().selected(selected0)); + super(new Builder().text(text0).align(Align.left).selectable().selected(selected0)); setIcon(new CheckBoxIcon()); } diff --git a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java index 955ed893b06..a512d0ce567 100644 --- a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java +++ b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java @@ -4,8 +4,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkin; import forge.assets.FSkinColor; @@ -338,7 +337,7 @@ public class FChoiceList extends FList implements ActivateHandler { @Override public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) { - g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, allowDefaultItemWrap(), HAlignment.LEFT, true); + g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, allowDefaultItemWrap(), Align.left, true); } } protected class NumberRenderer extends DefaultItemRenderer { @@ -365,7 +364,7 @@ public class FChoiceList extends FList implements ActivateHandler { @Override public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) { - g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(getChoiceText(value), font, foreColor, x, y, w, h, false, Align.center, true); } } //special renderer for cards @@ -484,7 +483,7 @@ public class FChoiceList extends FList implements ActivateHandler { float dx = VStack.CARD_WIDTH + FList.PADDING; x += dx; w -= dx; - textRenderer.drawText(g, value.toString(), font, foreColor, x, y, w, h, y, h, true, HAlignment.LEFT, true); + textRenderer.drawText(g, value.toString(), font, foreColor, x, y, w, h, y, h, true, Align.left, true); } } protected class PlayerItemRenderer extends ItemRenderer { @@ -514,7 +513,7 @@ public class FChoiceList extends FList implements ActivateHandler { g.drawImage(MatchController.getPlayerAvatar(player), x - FList.PADDING, y - FList.PADDING, VAvatar.WIDTH, VAvatar.HEIGHT); x += VAvatar.WIDTH; w -= VAvatar.WIDTH; - g.drawText(player.getName() + " (" + player.getLife() + ")", font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(player.getName() + " (" + player.getLife() + ")", font, foreColor, x, y, w, h, false, Align.left, true); } } protected class IHasSkinPropRenderer extends DefaultItemRenderer { @@ -533,7 +532,7 @@ public class FChoiceList extends FList implements ActivateHandler { x += dx; w -= dx; } - textRenderer.drawText(g, value.toString(), font, foreColor, x, y, w, h, y, h, true, HAlignment.LEFT, true); + textRenderer.drawText(g, value.toString(), font, foreColor, x, y, w, h, y, h, true, Align.left, true); } } diff --git a/forge-gui-mobile/src/forge/toolbox/FComboBox.java b/forge-gui-mobile/src/forge/toolbox/FComboBox.java index 8302ef2daf3..019af582c63 100644 --- a/forge-gui-mobile/src/forge/toolbox/FComboBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FComboBox.java @@ -3,7 +3,7 @@ package forge.toolbox; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.interfaces.IComboBox; @@ -223,7 +223,7 @@ public class FComboBox extends FTextField implements IComboBox { @Override protected float getLeftPadding() { - if (getAlignment() == HAlignment.CENTER) { + if (getAlignment() == Align.center) { return getRightPadding(); //match right padding if center aligned } return super.getLeftPadding(); diff --git a/forge-gui-mobile/src/forge/toolbox/FDialog.java b/forge-gui-mobile/src/forge/toolbox/FDialog.java index 54967bccfb5..a935e0d72a3 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDialog.java +++ b/forge-gui-mobile/src/forge/toolbox/FDialog.java @@ -1,6 +1,6 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.math.Vector2; import forge.Forge; @@ -225,7 +225,7 @@ public abstract class FDialog extends FOverlay { if (btnMiddle != null && !title.isEmpty()) { //render title above prompt if middle button present y -= MSG_HEIGHT; g.fillRect(VPrompt.BACK_COLOR, 0, y, w, MSG_HEIGHT); - g.drawText(title, VPrompt.FONT, VPrompt.FORE_COLOR, 0, y, w, MSG_HEIGHT, false, HAlignment.CENTER, true); + g.drawText(title, VPrompt.FONT, VPrompt.FORE_COLOR, 0, y, w, MSG_HEIGHT, false, Align.center, true); } g.drawLine(BORDER_THICKNESS, BORDER_COLOR, 0, y, w, y); } diff --git a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java index dadb04e2d9d..a3cdfe89ee2 100644 --- a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java +++ b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java @@ -1,7 +1,7 @@ package forge.toolbox; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -394,7 +394,7 @@ public class FFileChooser extends FDialog { g.drawImage(FSkinImage.FOLDER, x, y + (h - iconSize) / 2, iconSize, iconSize); x += iconSize + FList.PADDING; } - g.drawText(value.getName(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(value.getName(), font, foreColor, x, y, w, h, false, Align.left, true); } }); } diff --git a/forge-gui-mobile/src/forge/toolbox/FGroupBox.java b/forge-gui-mobile/src/forge/toolbox/FGroupBox.java index 10f42064092..d0dd677d9c2 100644 --- a/forge-gui-mobile/src/forge/toolbox/FGroupBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FGroupBox.java @@ -1,7 +1,6 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; @@ -32,7 +31,7 @@ public abstract class FGroupBox extends FContainer { g.drawLine(BORDER_THICKNESS, FORE_COLOR, w, h, w, y); //draw right border //draw caption - g.drawText(caption, FONT, FORE_COLOR, x, 0, w - x - PADDING, h, false, HAlignment.LEFT, false); + g.drawText(caption, FONT, FORE_COLOR, x, 0, w - x - PADDING, h, false, Align.left, false); //draw border left of caption g.drawLine(BORDER_THICKNESS, FORE_COLOR, 0, y, x, y); diff --git a/forge-gui-mobile/src/forge/toolbox/FLabel.java b/forge-gui-mobile/src/forge/toolbox/FLabel.java index 80934498f5f..24b0cfbaea6 100644 --- a/forge-gui-mobile/src/forge/toolbox/FLabel.java +++ b/forge-gui-mobile/src/forge/toolbox/FLabel.java @@ -1,8 +1,7 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.UiCommand; @@ -15,8 +14,8 @@ import forge.assets.FSkinFont; import forge.interfaces.IButton; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; +import forge.util.TextBounds; import forge.util.Utils; - public class FLabel extends FDisplayObject implements IButton { public static final float DEFAULT_INSETS = Utils.scale(3); @@ -25,7 +24,7 @@ public class FLabel extends FDisplayObject implements IButton { private float bldIconScaleFactor = 0.8f; private FSkinFont bldFont = FSkinFont.get(14); private float bldAlphaComposite = 0.7f; - private HAlignment bldAlignment = HAlignment.LEFT; + private int bldAlignment = Align.left; private Vector2 bldInsets = new Vector2(DEFAULT_INSETS, DEFAULT_INSETS); private boolean bldSelectable = false; @@ -48,7 +47,8 @@ public class FLabel extends FDisplayObject implements IButton { // Begin builder methods. public Builder text(final String s0) { this.bldText = s0; return this; } public Builder icon(final FImage i0) { this.bldIcon = i0; return this; } - public Builder align(final HAlignment a0) { this.bldAlignment = a0; return this; } + //public Builder align(final HAlignment a0) { this.bldAlignment = a0; return this; } + public Builder align(final int a0) { this.bldAlignment = a0; return this; } public Builder insets(final Vector2 v0) { this.bldInsets = v0; return this; } public Builder opaque(final boolean b0) { this.bldOpaque = b0; return this; } public Builder opaque() { opaque(true); return this; } @@ -75,7 +75,7 @@ public class FLabel extends FDisplayObject implements IButton { public static class ButtonBuilder extends Builder { public ButtonBuilder() { opaque(); - align(HAlignment.CENTER); + align(Align.center); } } @@ -103,7 +103,7 @@ public class FLabel extends FDisplayObject implements IButton { private float iconScaleFactor; private FSkinFont font; private float alphaComposite; - private HAlignment alignment; + private int alignment; private Vector2 insets; private boolean selectable, selected, opaque, iconInBackground, iconScaleAuto, iconScaleWithFont, pressed; @@ -186,10 +186,10 @@ public class FLabel extends FDisplayObject implements IButton { insets = insets0; } - public HAlignment getAlignment() { + public int getAlignment() { return alignment; } - public void setAlignment(final HAlignment alignment0) { + public void setAlignment(final int alignment0) { alignment = alignment0; } @@ -342,13 +342,13 @@ public class FLabel extends FDisplayObject implements IButton { float iconOffset = iconWidth + insets.x + getExtraGapBetweenIconAndText(); if (iconInBackground || text.isEmpty()) { - if (alignment == HAlignment.CENTER) { + if (alignment == Align.center) { x += (w - iconWidth) / 2; } y += (h - iconHeight) / 2; } else { - if (alignment == HAlignment.CENTER) { + if (alignment == Align.center) { float dx; while (true) { dx = (w - iconOffset - getTextWidth()) / 2; @@ -362,7 +362,7 @@ public class FLabel extends FDisplayObject implements IButton { font = font.shrink(); } } - else if (alignment == HAlignment.RIGHT) { + else if (alignment == Align.right) { float dx; while (true) { dx = (w - iconWidth - getTextWidth() - insets.x); @@ -384,7 +384,7 @@ public class FLabel extends FDisplayObject implements IButton { if (!text.isEmpty()) { x += iconOffset; w -= iconOffset; - drawText(g, x, textY, w, h, HAlignment.LEFT); + drawText(g, x, textY, w, h, Align.left); } } else if (!text.isEmpty()) { @@ -392,7 +392,7 @@ public class FLabel extends FDisplayObject implements IButton { } } - private void drawText(Graphics g, float x, float y, float w, float h, HAlignment align) { + private void drawText(Graphics g, float x, float y, float w, float h, int align) { g.startClip(x, y, w, h); if (textRenderer == null) { g.drawText(text, font, textColor, x, y, w, h, false, align, true); diff --git a/forge-gui-mobile/src/forge/toolbox/FList.java b/forge-gui-mobile/src/forge/toolbox/FList.java index ec66b8d3c71..4fcb3929d3f 100644 --- a/forge-gui-mobile/src/forge/toolbox/FList.java +++ b/forge-gui-mobile/src/forge/toolbox/FList.java @@ -4,8 +4,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; @@ -321,7 +320,7 @@ public class FList extends FScrollPane implements Iterable { @Override public void drawValue(Graphics g, Integer index, V value, FSkinFont font, FSkinColor foreColor, FSkinColor backColor, boolean pressed, float x, float y, float w, float h) { - g.drawText(value.toString(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); + g.drawText(value.toString(), font, foreColor, x, y, w, h, false, Align.left, true); } } diff --git a/forge-gui-mobile/src/forge/toolbox/FNumericTextField.java b/forge-gui-mobile/src/forge/toolbox/FNumericTextField.java index b691214cb9f..b98169e2f13 100644 --- a/forge-gui-mobile/src/forge/toolbox/FNumericTextField.java +++ b/forge-gui-mobile/src/forge/toolbox/FNumericTextField.java @@ -1,16 +1,16 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; public class FNumericTextField extends FTextField { private int value; public FNumericTextField() { - setAlignment(HAlignment.RIGHT); + setAlignment(Align.right); } public FNumericTextField(int value0) { - setAlignment(HAlignment.RIGHT); + setAlignment(Align.right); setValue(value0); } diff --git a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java index f628fd06e4d..9db441307c1 100644 --- a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java +++ b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java @@ -5,7 +5,8 @@ import java.util.List; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; + +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.math.Vector2; import com.google.common.collect.ImmutableList; @@ -239,7 +240,7 @@ public class FOptionPane extends FDialog { centerIcon = icon.getWidth() >= 100; //for large icon, center in dialog lblIcon = add(new FLabel.Builder().icon(icon).iconScaleFactor(1).insets(new Vector2(0, 0)).iconInBackground(centerIcon).build()); if (centerIcon) { - lblIcon.setAlignment(HAlignment.CENTER); + lblIcon.setAlignment(Align.center); } } else { @@ -251,7 +252,7 @@ public class FOptionPane extends FDialog { prompt = add(new FTextArea(true, message)); prompt.setFont(messageFont != null ? messageFont : FSkinFont.get(12)); if (centerIcon || centerPrompt()) { - prompt.setAlignment(HAlignment.CENTER); + prompt.setAlignment(Align.center); } } else { diff --git a/forge-gui-mobile/src/forge/toolbox/FProgressBar.java b/forge-gui-mobile/src/forge/toolbox/FProgressBar.java index b5246f550de..06eb7233d45 100644 --- a/forge-gui-mobile/src/forge/toolbox/FProgressBar.java +++ b/forge-gui-mobile/src/forge/toolbox/FProgressBar.java @@ -1,7 +1,8 @@ package forge.toolbox; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; + +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinFont; import forge.interfaces.IProgressBar; @@ -161,13 +162,13 @@ public class FProgressBar extends FDisplayObject implements IProgressBar { MSG_FONT = FSkinFont.get(11); } - g.drawText(message, MSG_FONT, FORE_COLOR, 0, 0, w, h, false, HAlignment.CENTER, true); + g.drawText(message, MSG_FONT, FORE_COLOR, 0, 0, w, h, false, Align.center, true); //draw text using selection fore color in needed regions over top of regular text using clipping if (!SEL_FORE_COLOR.equals(FORE_COLOR)) { for (Pair region : selTextRegions) { g.startClip(region.getLeft(), 0, region.getRight(), h); - g.drawText(message, MSG_FONT, SEL_FORE_COLOR, 0, 0, w, h, false, HAlignment.CENTER, true); + g.drawText(message, MSG_FONT, SEL_FORE_COLOR, 0, 0, w, h, false, Align.center, true); g.endClip(); } } diff --git a/forge-gui-mobile/src/forge/toolbox/FRadioButton.java b/forge-gui-mobile/src/forge/toolbox/FRadioButton.java index 6f900377164..ed8d94490b1 100644 --- a/forge-gui-mobile/src/forge/toolbox/FRadioButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FRadioButton.java @@ -3,7 +3,7 @@ package forge.toolbox; import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FImage; @@ -25,7 +25,7 @@ public class FRadioButton extends FLabel { this(text0, false); } public FRadioButton(String text0, boolean selected0) { - super(new Builder().text(text0).align(HAlignment.LEFT).selectable().selected(selected0)); + super(new Builder().text(text0).align(Align.left).selectable().selected(selected0)); setIcon(new RadioButtonIcon()); } diff --git a/forge-gui-mobile/src/forge/toolbox/FTextArea.java b/forge-gui-mobile/src/forge/toolbox/FTextArea.java index 0b492dca924..fe1e02c47d8 100644 --- a/forge-gui-mobile/src/forge/toolbox/FTextArea.java +++ b/forge-gui-mobile/src/forge/toolbox/FTextArea.java @@ -1,7 +1,7 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; @@ -11,7 +11,7 @@ import forge.assets.TextRenderer; public class FTextArea extends FScrollPane { private String text; private FSkinFont font; - private HAlignment alignment; + private int alignment; private Vector2 insets; private FSkinColor textColor; private final TextRenderer renderer; @@ -23,7 +23,7 @@ public class FTextArea extends FScrollPane { public FTextArea(boolean parseReminderText0, String text0) { text = text0; font = FSkinFont.get(14); - alignment = HAlignment.LEFT; + alignment = Align.left; insets = new Vector2(1, 1); //prevent text getting cut off by clip textColor = FLabel.DEFAULT_TEXT_COLOR; renderer = new TextRenderer(parseReminderText0); @@ -37,10 +37,10 @@ public class FTextArea extends FScrollPane { revalidate(); } - public HAlignment getAlignment() { + public int getAlignment() { return alignment; } - public void setAlignment(HAlignment alignment0) { + public void setAlignment(int alignment0) { alignment = alignment0; } diff --git a/forge-gui-mobile/src/forge/toolbox/FTextField.java b/forge-gui-mobile/src/forge/toolbox/FTextField.java index c7dd1147c07..b125677617f 100644 --- a/forge-gui-mobile/src/forge/toolbox/FTextField.java +++ b/forge-gui-mobile/src/forge/toolbox/FTextField.java @@ -1,9 +1,7 @@ package forge.toolbox; import com.badlogic.gdx.Input.Keys; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - +import com.badlogic.gdx.utils.Align; import forge.Forge; import forge.Forge.KeyInputAdapter; import forge.Graphics; @@ -15,6 +13,7 @@ import forge.menu.FMenuItem; import forge.menu.FPopupMenu; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; +import forge.util.TextBounds; import forge.util.Utils; public class FTextField extends FDisplayObject implements ITextField { @@ -36,7 +35,7 @@ public class FTextField extends FDisplayObject implements ITextField { private String text, ghostText, textBeforeKeyInput; protected FSkinFont font, renderedFont; - private HAlignment alignment; + private int alignment; private int selStart, selLength; private boolean isEditing, readOnly; @@ -82,7 +81,7 @@ public class FTextField extends FDisplayObject implements ITextField { text = text0; ghostText = ""; setFont(DEFAULT_FONT); - alignment = HAlignment.LEFT; + alignment = Align.left; } public String getText() { @@ -132,10 +131,10 @@ public class FTextField extends FDisplayObject implements ITextField { return text.isEmpty(); } - public HAlignment getAlignment() { + public int getAlignment() { return alignment; } - public void setAlignment(HAlignment alignment0) { + public void setAlignment(int alignment0) { alignment = alignment0; } @@ -434,12 +433,12 @@ public class FTextField extends FDisplayObject implements ITextField { protected float getTextLeft() { switch (alignment) { - case LEFT: + case Align.left: default: return getLeftPadding(); - case CENTER: + case Align.center: return getLeftPadding() + (getWidth() - getRightPadding() - getLeftPadding() - renderedFont.getBounds(text).width) / 2; - case RIGHT: + case Align.right: return getWidth() - getRightPadding() - renderedFont.getBounds(text).width; } } diff --git a/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java b/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java index 1a5600ff75a..fabff813983 100644 --- a/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java +++ b/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java @@ -1,7 +1,6 @@ package forge.toolbox; -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - +import com.badlogic.gdx.utils.Align; import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -167,6 +166,6 @@ public class FToggleSwitch extends FDisplayObject { x += PADDING; w -= 2 * PADDING; - g.drawText(text, font, FORE_COLOR, x, y, w, h, false, HAlignment.CENTER, true); + g.drawText(text, font, FORE_COLOR, x, y, w, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/util/TextBounds.java b/forge-gui-mobile/src/forge/util/TextBounds.java new file mode 100644 index 00000000000..accf84c91ad --- /dev/null +++ b/forge-gui-mobile/src/forge/util/TextBounds.java @@ -0,0 +1,15 @@ +package forge.util; + +public class TextBounds { + public float width; + public float height; + + public TextBounds() { + + } + + public TextBounds(float width, float height) { + this.width = width; + this.height = height; + } +} \ No newline at end of file diff --git a/forge-gui/release-files/ANNOUNCEMENTS.txt b/forge-gui/release-files/ANNOUNCEMENTS.txt index 80f07467e81..2cfd1c8d9ff 100644 --- a/forge-gui/release-files/ANNOUNCEMENTS.txt +++ b/forge-gui/release-files/ANNOUNCEMENTS.txt @@ -1,5 +1,6 @@ #Add one announcement per line M20 pre-release! +Updated Libgdx from 1.5.5 to 1.9.10 ([url=https://github.com/libgdx/libgdx/blob/master/CHANGES]detailed changes are here[/url]). [b]Forge now requires Java 8 (or newer). You will not be able to start the game if you are not yet running Java 8.[/b] For some reason Oracle hates Forge and version 1.8.0_211 does bad things with Forge for unknown reasons. Downgrade to 202 for a beter time. https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html diff --git a/forge-gui/release-files/CONTRIBUTORS.txt b/forge-gui/release-files/CONTRIBUTORS.txt index 1ac42067222..2ff5c065a82 100644 --- a/forge-gui/release-files/CONTRIBUTORS.txt +++ b/forge-gui/release-files/CONTRIBUTORS.txt @@ -9,6 +9,7 @@ Gos Hanmac Indigo Dragon Jamin Collins +kevlahnota KrazyTheFox Luke Marek14 diff --git a/forge-gui/res/cardsfolder/c/counterlash.txt b/forge-gui/res/cardsfolder/c/counterlash.txt index b46cab2e5c8..e947494ac01 100644 --- a/forge-gui/res/cardsfolder/c/counterlash.txt +++ b/forge-gui/res/cardsfolder/c/counterlash.txt @@ -2,6 +2,6 @@ Name:Counterlash ManaCost:4 U U Types:Instant A:SP$ Counter | Cost$ 4 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | SubAbility$ DBPlay | SpellDescription$ Counter target spell. You may cast a nonland card in your hand that shares a card type with that spell without paying its mana cost. -SVar:DBPlay:DB$ Play | Valid$ Targeted.sharesTypeWith+nonLand+YouCtrl | ValidZone$ Hand | WithoutManaCost$ True | Optional$ True +SVar:DBPlay:DB$ Play | Valid$ Targeted.sharesCardTypeWith+nonLand+YouCtrl | ValidZone$ Hand | WithoutManaCost$ True | Optional$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/counterlash.jpg Oracle:Counter target spell. You may cast a nonland card in your hand that shares a card type with that spell without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/d/doomsday.txt b/forge-gui/res/cardsfolder/d/doomsday.txt index d37d770b8e0..3add4ba1d0a 100644 --- a/forge-gui/res/cardsfolder/d/doomsday.txt +++ b/forge-gui/res/cardsfolder/d/doomsday.txt @@ -3,7 +3,7 @@ ManaCost:B B B Types:Sorcery A:SP$ ChangeZone | Cost$ B B B | Origin$ Graveyard,Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 5 | SubAbility$ DBChangeZone | RememberChanged$ True | Mandatory$ True | SpellDescription$ Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up. SVar:DBChangeZone:DB$ ChangeZoneAll | Defined$ You | Origin$ Graveyard,Library | Destination$ Exile | ChangeType$ Card.IsNotRemembered | SubAbility$ DBDig -SVar:DBDig:DB$ Dig | DigNum$ X | DestinationZone$ Library | LibraryPosition$ 0 | SubAbility$ DBLoseLife | References$ X +SVar:DBDig:DB$ RearrangeTopOfLibrary | Defined$ You | NumCards$ X | SubAbility$ DBLoseLife | References$ X SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ Y | References$ Y | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$InYourLibrary diff --git a/forge-gui/res/cardsfolder/e/endless_atlas.txt b/forge-gui/res/cardsfolder/e/endless_atlas.txt index 2c5b2f3a51c..7cede437bbe 100644 --- a/forge-gui/res/cardsfolder/e/endless_atlas.txt +++ b/forge-gui/res/cardsfolder/e/endless_atlas.txt @@ -1,6 +1,6 @@ Name:Endless Atlas ManaCost:2 Types:Artifact -A:AB$ Draw | Cost$ 2 T | CheckSvar$ X | SVarCompare$ GE3 | Refences$ X | SpellDescription$ Draw a card. Activate this ability only if you control three or more lands with the same name. +A:AB$ Draw | Cost$ 2 T | CheckSvar$ X | SVarCompare$ GE3 | References$ X | SpellDescription$ Draw a card. Activate this ability only if you control three or more lands with the same name. SVar:X:Count$MostCardName Land.YouCtrl Oracle:2, T: Draw a card. Activate this ability only if you control three or more lands with the same name. diff --git a/forge-gui/res/cardsfolder/g/grip_of_chaos.txt b/forge-gui/res/cardsfolder/g/grip_of_chaos.txt index 45948de78f9..95f69ec3fac 100644 --- a/forge-gui/res/cardsfolder/g/grip_of_chaos.txt +++ b/forge-gui/res/cardsfolder/g/grip_of_chaos.txt @@ -1,6 +1,7 @@ Name:Grip of Chaos ManaCost:4 R R Types:Enchantment +T:Mode$ SpellAbilityCopy | IsSingleTarget$ True | TriggerZones$ Battlefield | Execute$ TrigChangeTarget | TriggerDescription$ Whenever a spell or ability is put onto the stack, if it has a single target, reselect its target at random. (Select from among all legal targets.) T:Mode$ SpellAbilityCast | IsSingleTarget$ True | TriggerZones$ Battlefield | Execute$ TrigChangeTarget | TriggerDescription$ Whenever a spell or ability is put onto the stack, if it has a single target, reselect its target at random. (Select from among all legal targets.) SVar:TrigChangeTarget:DB$ ChangeTargets | Defined$ TriggeredSpellAbility | RandomTarget$ True AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/p/possibility_storm.txt b/forge-gui/res/cardsfolder/p/possibility_storm.txt index 3d16ea3cbca..631f2eefa54 100644 --- a/forge-gui/res/cardsfolder/p/possibility_storm.txt +++ b/forge-gui/res/cardsfolder/p/possibility_storm.txt @@ -3,7 +3,7 @@ ManaCost:3 R R Types:Enchantment T:Mode$ SpellCast | ValidCard$ Card.wasCastFromHand | Execute$ TrigExileSpell | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts a spell from their hand, that player exiles it, then exiles cards from the top of their library until they exile a card that shares a card type with it. That player may cast that card without paying its mana cost. Then they put all cards exiled with CARDNAME on the bottom of their library in a random order. SVar:TrigExileSpell:DB$ ChangeZone | Defined$ TriggeredCard | Origin$ Stack | Destination$ Exile | Fizzle$ True | SubAbility$ DBDig | Imprint$ True -SVar:DBDig:DB$ DigUntil | Defined$ TriggeredCardController | Valid$ Card.sharesTypeWith TriggeredCard | ValidDescription$ shares a card type with exiled card | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | ImprintRevealed$ True | SubAbility$ DBPlay +SVar:DBDig:DB$ DigUntil | Defined$ TriggeredCardController | Valid$ Card.sharesCardTypeWith TriggeredCard | ValidDescription$ shares a card type with exiled card | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | ImprintRevealed$ True | SubAbility$ DBPlay SVar:DBPlay:DB$ Play | Defined$ Remembered | Controller$ TriggeredCardController | WithoutManaCost$ True | Optional$ True | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZoneAll | Origin$ Exile | ChangeType$ Card.IsRemembered,Card.IsImprinted | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBPossibilityCleanup SVar:DBPossibilityCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True diff --git a/forge-gui/res/cardsfolder/r/reality_scramble.txt b/forge-gui/res/cardsfolder/r/reality_scramble.txt index 3fc3d51363f..ef86cb26069 100644 --- a/forge-gui/res/cardsfolder/r/reality_scramble.txt +++ b/forge-gui/res/cardsfolder/r/reality_scramble.txt @@ -3,6 +3,6 @@ ManaCost:2 R R Types:Sorcery K:Retrace A:SP$ ChangeZone | Cost$ 2 R R | ValidTgts$ Permanent.YouOwn | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1 | RememberLKI$ True | SubAbility$ DBRevealUntilShare | SpellDescription$ Put target permanent you own on the bottom of your library. Reveal cards from the top of your library until you reveal a card that shares a card type with that permanent. Put that card onto the battlefield and the rest on the bottom of your library in a random order. -SVar:DBRevealUntilShare:DB$ DigUntil | Valid$ Card.sharesTypeWith Remembered | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SubAbility$ DBCleanup +SVar:DBRevealUntilShare:DB$ DigUntil | Valid$ Card.sharesCardTypeWith Remembered | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -Oracle:Put target permanent you own on the bottom of your library. Reveal cards from the top of your library until you reveal a card that shares a card type with that permanent. Put that card onto the battlefield and the rest on the bottom of your library in a random order.\nRetrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) \ No newline at end of file +Oracle:Put target permanent you own on the bottom of your library. Reveal cards from the top of your library until you reveal a card that shares a card type with that permanent. Put that card onto the battlefield and the rest on the bottom of your library in a random order.\nRetrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadService.java b/forge-gui/src/main/java/forge/download/GuiDownloadService.java index 04d31f77fd8..b6e308b55bc 100644 --- a/forge-gui/src/main/java/forge/download/GuiDownloadService.java +++ b/forge-gui/src/main/java/forge/download/GuiDownloadService.java @@ -255,7 +255,9 @@ public abstract class GuiDownloadService implements Runnable { byte[] buffer = new byte[1024]; for (Entry kv : files.entrySet()) { - if (cancel) { break; } + if (cancel) {//stop prevent sleep + GuiBase.getInterface().preventSystemSleep(false); + break; } count++; cardSkipped = true; //assume skipped unless saved successfully