mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
update progressbar, update boosterdraft readfile
also removed unneccesary settings since forge uses shaders for round corners for rendering borders
This commit is contained in:
@@ -48,7 +48,6 @@ import forge.sound.SoundSystem;
|
|||||||
import forge.toolbox.*;
|
import forge.toolbox.*;
|
||||||
import forge.util.*;
|
import forge.util.*;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -102,7 +101,6 @@ public class Forge implements ApplicationListener {
|
|||||||
public static boolean animatedCardTapUntap = false;
|
public static boolean animatedCardTapUntap = false;
|
||||||
public static String enableUIMask = "Crop";
|
public static String enableUIMask = "Crop";
|
||||||
public static String selector = "Default";
|
public static String selector = "Default";
|
||||||
public static boolean enablePreloadExtendedArt = false;
|
|
||||||
public static boolean isTabletDevice = false;
|
public static boolean isTabletDevice = false;
|
||||||
public static String locale = "en-US";
|
public static String locale = "en-US";
|
||||||
public Assets assets;
|
public Assets assets;
|
||||||
@@ -244,27 +242,8 @@ public class Forge implements ApplicationListener {
|
|||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblLoadingCardTranslations"));
|
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblLoadingCardTranslations"));
|
||||||
CardTranslation.preloadTranslation(locale, ForgeConstants.LANG_DIR);
|
CardTranslation.preloadTranslation(locale, ForgeConstants.LANG_DIR);
|
||||||
|
|
||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblFinishingStartup"));
|
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblPrepareDatabase"));
|
||||||
|
Gdx.app.postRunnable(this::afterDbLoaded);
|
||||||
//add reminder to preload
|
|
||||||
if (enablePreloadExtendedArt) {
|
|
||||||
if (autoCache)
|
|
||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblPreloadExtendedArt") + "\nDetected RAM: " + totalDeviceRAM + "MB. Cache size: " + cacheSize);
|
|
||||||
else
|
|
||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblPreloadExtendedArt"));
|
|
||||||
} else {
|
|
||||||
if (autoCache)
|
|
||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblFinishingStartup") + "\nDetected RAM: " + totalDeviceRAM + "MB. Cache size: " + cacheSize);
|
|
||||||
else
|
|
||||||
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblFinishingStartup"));
|
|
||||||
}
|
|
||||||
|
|
||||||
Gdx.app.postRunnable(() -> {
|
|
||||||
afterDbLoaded();
|
|
||||||
/* call preloadExtendedArt here, if we put it above we will *
|
|
||||||
* get error: No OpenGL context found in the current thread. */
|
|
||||||
preloadExtendedArt();
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
//see if app or assets need updating
|
//see if app or assets need updating
|
||||||
FThreads.invokeInBackgroundThread(() -> AssetsDownloader.checkForUpdates(exited, runnable));
|
FThreads.invokeInBackgroundThread(() -> AssetsDownloader.checkForUpdates(exited, runnable));
|
||||||
@@ -303,22 +282,6 @@ public class Forge implements ApplicationListener {
|
|||||||
return currentScene;
|
return currentScene;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void preloadExtendedArt() {
|
|
||||||
if (!enablePreloadExtendedArt || !enableUIMask.equals("Full"))
|
|
||||||
return;
|
|
||||||
List<String> borderlessCardlistkeys = FileUtil.readFile(ForgeConstants.BORDERLESS_CARD_LIST_FILE);
|
|
||||||
if (borderlessCardlistkeys.isEmpty())
|
|
||||||
return;
|
|
||||||
List<String> filteredkeys = new ArrayList<>();
|
|
||||||
for (String cardname : borderlessCardlistkeys) {
|
|
||||||
File image = new File(ForgeConstants.CACHE_CARD_PICS_DIR + ForgeConstants.PATH_SEPARATOR + cardname + ".jpg");
|
|
||||||
if (image.exists())
|
|
||||||
filteredkeys.add(cardname);
|
|
||||||
}
|
|
||||||
if (!filteredkeys.isEmpty())
|
|
||||||
ImageCache.getInstance().preloadCache(filteredkeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void preloadBoosterDrafts() {
|
private void preloadBoosterDrafts() {
|
||||||
//preloading of custom drafts
|
//preloading of custom drafts
|
||||||
BoosterDraft.initializeCustomDrafts();
|
BoosterDraft.initializeCustomDrafts();
|
||||||
@@ -384,6 +347,10 @@ public class Forge implements ApplicationListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected void afterDbLoaded() {
|
protected void afterDbLoaded() {
|
||||||
|
if (GuiBase.isAndroid() && autoCache)
|
||||||
|
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblFinishingStartup") + "\nDetected RAM: " + totalDeviceRAM + "MB. Cache size: " + cacheSize);
|
||||||
|
else
|
||||||
|
getSplashScreen().getProgressBar().setDescription(getLocalizer().getMessage("lblFinishingStartup"));
|
||||||
//override transition & title bg
|
//override transition & title bg
|
||||||
try {
|
try {
|
||||||
FileHandle transitionFile = Config.instance().getFile("ui/transition.png");
|
FileHandle transitionFile = Config.instance().getFile("ui/transition.png");
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ public class ImageCache {
|
|||||||
public void preloadCache(Deck deck) {
|
public void preloadCache(Deck deck) {
|
||||||
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
|
||||||
return;
|
return;
|
||||||
if (deck == null || !Forge.enablePreloadExtendedArt)
|
if (deck == null)
|
||||||
return;
|
return;
|
||||||
if (deck.getAllCardsInASinglePool().toFlatList().size() <= 100) {
|
if (deck.getAllCardsInASinglePool().toFlatList().size() <= 100) {
|
||||||
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {
|
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {
|
||||||
|
|||||||
@@ -616,16 +616,6 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
|||||||
ImageCache.getInstance().disposeTextures();
|
ImageCache.getInstance().disposeTextures();
|
||||||
}
|
}
|
||||||
}, 4);
|
}, 4);
|
||||||
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_PRELOAD_EXTENDED_ART,
|
|
||||||
Forge.getLocalizer().getMessage("lblPreloadExtendedArtCards"),
|
|
||||||
Forge.getLocalizer().getMessage("nlPreloadExtendedArtCards")){
|
|
||||||
@Override
|
|
||||||
public void select() {
|
|
||||||
super.select();
|
|
||||||
//update
|
|
||||||
Forge.enablePreloadExtendedArt = FModel.getPreferences().getPrefBoolean(FPref.UI_ENABLE_PRELOAD_EXTENDED_ART);
|
|
||||||
}
|
|
||||||
},4);
|
|
||||||
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_MATCH_SCROLL_INDICATOR,
|
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_MATCH_SCROLL_INDICATOR,
|
||||||
Forge.getLocalizer().getMessage("lblMatchScrollIndicator"),
|
Forge.getLocalizer().getMessage("lblMatchScrollIndicator"),
|
||||||
Forge.getLocalizer().getMessage("nlMatchScrollIndicator")),
|
Forge.getLocalizer().getMessage("nlMatchScrollIndicator")),
|
||||||
|
|||||||
@@ -3528,3 +3528,5 @@ lblEffectDataHeader=Alle Gegner erhalten:
|
|||||||
lblDefeatedDescription=Sie sind besiegt und können nicht weitermachen. Mit letzter Kraft versuchen Sie, aus dem Gebiet zu entkommen.
|
lblDefeatedDescription=Sie sind besiegt und können nicht weitermachen. Mit letzter Kraft versuchen Sie, aus dem Gebiet zu entkommen.
|
||||||
lblReversePromptButton=Umgekehrte Eingabeaufforderungsschaltflächen
|
lblReversePromptButton=Umgekehrte Eingabeaufforderungsschaltflächen
|
||||||
nlReversePromptButton=Wenn diese Option aktiviert ist, sind die Schaltflächen „OK“ und „Cancel“ vertauscht.
|
nlReversePromptButton=Wenn diese Option aktiviert ist, sind die Schaltflächen „OK“ und „Cancel“ vertauscht.
|
||||||
|
lblPrepareDatabase=Datenbank vorbereiten...
|
||||||
|
lblLoadingGameResources=Spielressourcen werden geladen...
|
||||||
@@ -3275,3 +3275,5 @@ lblEffectDataHeader=All opponents get:
|
|||||||
lblDefeatedDescription=Defeated and unable to continue, you use the last of your power to escape the area.
|
lblDefeatedDescription=Defeated and unable to continue, you use the last of your power to escape the area.
|
||||||
lblReversePromptButton=Reversed Prompt Buttons
|
lblReversePromptButton=Reversed Prompt Buttons
|
||||||
nlReversePromptButton=If enabled, the OK and Cancel Prompt buttons are reversed.
|
nlReversePromptButton=If enabled, the OK and Cancel Prompt buttons are reversed.
|
||||||
|
lblPrepareDatabase=Preparing database...
|
||||||
|
lblLoadingGameResources=Loading game resources...
|
||||||
@@ -3532,3 +3532,5 @@ lblEffectDataHeader=Todos los oponentes obtienen:
|
|||||||
lblDefeatedDescription=Derrotado e incapaz de continuar, utilizas lo último de tu poder para escapar del área.
|
lblDefeatedDescription=Derrotado e incapaz de continuar, utilizas lo último de tu poder para escapar del área.
|
||||||
lblReversePromptButton=Botones de aviso invertidos
|
lblReversePromptButton=Botones de aviso invertidos
|
||||||
nlReversePromptButton=Si esta opción está habilitada, los botones Aceptar y Cancelar solicitud se invierten.
|
nlReversePromptButton=Si esta opción está habilitada, los botones Aceptar y Cancelar solicitud se invierten.
|
||||||
|
lblPrepareDatabase=Preparando la base de datos...
|
||||||
|
lblLoadingGameResources=Cargando recursos del juego...
|
||||||
@@ -3533,3 +3533,5 @@ lblEffectDataHeader=Tous les adversaires obtiennent:
|
|||||||
lblDefeatedDescription=Vaincu et incapable de continuer, vous utilisez le reste de votre pouvoir pour vous échapper de la zone.
|
lblDefeatedDescription=Vaincu et incapable de continuer, vous utilisez le reste de votre pouvoir pour vous échapper de la zone.
|
||||||
lblReversePromptButton=Boutons d'invite inversés
|
lblReversePromptButton=Boutons d'invite inversés
|
||||||
nlReversePromptButton=Si cette option est activée, les boutons OK et Annuler sont inversés.
|
nlReversePromptButton=Si cette option est activée, les boutons OK et Annuler sont inversés.
|
||||||
|
lblPrepareDatabase=Préparation de la base de données...
|
||||||
|
lblLoadingGameResources=Chargement des ressources du jeu...
|
||||||
@@ -3531,3 +3531,5 @@ lblEffectDataHeader=Tutti gli avversari ottengono:
|
|||||||
lblDefeatedDescription=Sconfitto e impossibilitato a proseguire, usi le ultime energie che ti restano per fuggire dalla zona.
|
lblDefeatedDescription=Sconfitto e impossibilitato a proseguire, usi le ultime energie che ti restano per fuggire dalla zona.
|
||||||
lblReversePromptButton=Pulsanti di richiesta invertiti
|
lblReversePromptButton=Pulsanti di richiesta invertiti
|
||||||
nlReversePromptButton=Se abilitati, i pulsanti OK e Annulla richiesta sono invertiti.
|
nlReversePromptButton=Se abilitati, i pulsanti OK e Annulla richiesta sono invertiti.
|
||||||
|
lblPrepareDatabase=Preparazione del database...
|
||||||
|
lblLoadingGameResources=Caricamento delle risorse del gioco...
|
||||||
@@ -3527,3 +3527,5 @@ lblEffectDataHeader=対戦相手全員が得るもの:
|
|||||||
lblDefeatedDescription=敗北し、続行不可能となったあなたは、最後の力を振り絞ってそのエリアから脱出します。
|
lblDefeatedDescription=敗北し、続行不可能となったあなたは、最後の力を振り絞ってそのエリアから脱出します。
|
||||||
lblReversePromptButton=逆プロンプトボタン
|
lblReversePromptButton=逆プロンプトボタン
|
||||||
nlReversePromptButton=有効にすると、[OK] ボタンと [Cancel] ボタンが逆になります。
|
nlReversePromptButton=有効にすると、[OK] ボタンと [Cancel] ボタンが逆になります。
|
||||||
|
lblPrepareDatabase=データベースを準備しています
|
||||||
|
lblLoadingGameResources=ゲームリソースを読み込んでいます
|
||||||
@@ -3617,3 +3617,5 @@ lblEffectDataHeader=Todos os oponentes recebem:
|
|||||||
lblDefeatedDescription=Derrotado e incapaz de continuar, você usa o que resta de seu poder para escapar da área.
|
lblDefeatedDescription=Derrotado e incapaz de continuar, você usa o que resta de seu poder para escapar da área.
|
||||||
lblReversePromptButton=Botões de prompt invertidos
|
lblReversePromptButton=Botões de prompt invertidos
|
||||||
nlReversePromptButton=Se ativados, os botões OK e Cancelar prompt serão invertidos.
|
nlReversePromptButton=Se ativados, os botões OK e Cancelar prompt serão invertidos.
|
||||||
|
lblPrepareDatabase=Preparando banco de dados...
|
||||||
|
lblLoadingGameResources=Carregando recursos do jogo...
|
||||||
@@ -3518,3 +3518,5 @@ lblEffectDataHeader=所有对手获得:
|
|||||||
lblDefeatedDescription=你被击败了,无法继续前进,你用尽最后的力量逃离了该区域。
|
lblDefeatedDescription=你被击败了,无法继续前进,你用尽最后的力量逃离了该区域。
|
||||||
lblReversePromptButton=反转提示按钮
|
lblReversePromptButton=反转提示按钮
|
||||||
nlReversePromptButton=如果启用,则“确定”和“取消提示”按钮将会反转。
|
nlReversePromptButton=如果启用,则“确定”和“取消提示”按钮将会反转。
|
||||||
|
lblPrepareDatabase=准备数据库
|
||||||
|
lblLoadingGameResources=正在加载游戏资源
|
||||||
@@ -39,6 +39,7 @@ import org.apache.commons.lang3.ArrayUtils;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@@ -330,12 +331,24 @@ public class BoosterDraft implements IBoosterDraft {
|
|||||||
|
|
||||||
dList = dFolder.list();
|
dList = dFolder.list();
|
||||||
|
|
||||||
|
if (dList != null) {
|
||||||
|
List<CompletableFuture<?>> futures = new ArrayList<>();
|
||||||
for (final String element : dList) {
|
for (final String element : dList) {
|
||||||
if (element.endsWith(FILE_EXT)) {
|
if (element.endsWith(FILE_EXT)) {
|
||||||
|
futures.add(CompletableFuture.supplyAsync(()-> {
|
||||||
final List<String> dfData = FileUtil.readFile(ForgeConstants.DRAFT_DIR + element);
|
final List<String> dfData = FileUtil.readFile(ForgeConstants.DRAFT_DIR + element);
|
||||||
customs.add(CustomLimited.parse(dfData, FModel.getDecks().getCubes()));
|
customs.add(CustomLimited.parse(dfData, FModel.getDecks().getCubes()));
|
||||||
|
return null;
|
||||||
|
}).exceptionally(ex -> {
|
||||||
|
ex.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CompletableFuture<?>[] futuresArray = futures.toArray(new CompletableFuture<?>[0]);
|
||||||
|
CompletableFuture.allOf(futuresArray).join();
|
||||||
|
futures.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return customs;
|
return customs;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user