Add Disable Card Images Option

This commit is contained in:
Anthony Calosa
2021-03-04 02:15:16 +08:00
parent 083c34acc5
commit 17944c0e41
14 changed files with 53 additions and 0 deletions

View File

@@ -3,6 +3,9 @@ package forge;
import com.google.common.cache.CacheLoader;
import forge.error.BugReporter;
import forge.model.FModel;
import forge.properties.ForgePreferences;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
@@ -12,6 +15,9 @@ import java.io.IOException;
final class ImageLoader extends CacheLoader<String, BufferedImage> {
@Override
public BufferedImage load(String key) {
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
return null;
File file = ImageKeys.getImageFile(key);
if (file != null) {
if (!file.exists()) {

View File

@@ -131,6 +131,7 @@ public enum CSubmenuPreferences implements ICDoc {
lstControls.add(Pair.of(view.getCbEnableNonLegalCards(), FPref.UI_LOAD_NONLEGAL_CARDS));
lstControls.add(Pair.of(view.getCbUseExperimentalNetworkStream(), FPref.UI_NETPLAY_COMPAT));
lstControls.add(Pair.of(view.getCbImageFetcher(), FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER));
lstControls.add(Pair.of(view.getCbDisableCardImages(), FPref.UI_DISABLE_CARD_IMAGES));
lstControls.add(Pair.of(view.getCbDisplayFoil(), FPref.UI_OVERLAY_FOIL_EFFECT));
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));

View File

@@ -80,6 +80,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
private final JCheckBox cbSROptimize = new OptionsCheckBox(localizer.getMessage("cbSROptimize"));
private final JCheckBox cbFilteredHands = new OptionsCheckBox(localizer.getMessage("cbFilteredHands"));
private final JCheckBox cbImageFetcher = new OptionsCheckBox(localizer.getMessage("cbImageFetcher"));
private final JCheckBox cbDisableCardImages = new OptionsCheckBox(localizer.getMessage("lblDisableCardImages"));
private final JCheckBox cbCloneImgSource = new OptionsCheckBox(localizer.getMessage("cbCloneImgSource"));
private final JCheckBox cbScaleLarger = new OptionsCheckBox(localizer.getMessage("cbScaleLarger"));
private final JCheckBox cbRenderBlackCardBorders = new OptionsCheckBox(localizer.getMessage("cbRenderBlackCardBorders"));
@@ -313,6 +314,9 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
pnlPrefs.add(cbImageFetcher, titleConstraints);
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlImageFetcher")), descriptionConstraints);
pnlPrefs.add(cbDisableCardImages, titleConstraints);
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlDisableCardImages")), descriptionConstraints);
pnlPrefs.add(cbDisplayFoil, titleConstraints);
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlDisplayFoil")), descriptionConstraints);
@@ -617,6 +621,11 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
return cbImageFetcher;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getCbDisableCardImages() {
return cbDisableCardImages;
}
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getCbDisplayFoil() {
return cbDisplayFoil;

View File

@@ -38,6 +38,7 @@ import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences;
import forge.util.ImageUtil;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
@@ -230,12 +231,16 @@ public class ImageCache {
return image;
}
public static void preloadCache(Iterable<String> keys) {
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
return;
for (String imageKey : keys){
if(getImage(imageKey, false) == null)
System.err.println("could not load card image:"+imageKey);
}
}
public static void preloadCache(Deck deck) {
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
return;
if(deck == null||!Forge.enablePreloadExtendedArt)
return;
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {

View File

@@ -14,7 +14,9 @@ import forge.FThreads;
import forge.Forge;
import forge.ImageKeys;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences;
import forge.util.FileUtil;
import forge.util.TextUtil;
import org.apache.commons.lang3.tuple.Pair;
@@ -27,6 +29,9 @@ final class ImageLoader extends CacheLoader<String, Texture> {
Texture n;
@Override
public Texture load(String key) {
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
return null;
boolean extendedArt = isBorderless(key) && Forge.enableUIMask.equals("Full");
boolean textureFilter = Forge.isTextureFilteringEnabled();
File file = ImageKeys.getImageFile(key);

View File

@@ -12,6 +12,7 @@ import forge.assets.FSkin;
import forge.assets.FSkinColor;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.assets.ImageCache;
import forge.game.GameLogEntryType;
import forge.model.FModel;
import forge.properties.ForgeConstants;
@@ -332,6 +333,16 @@ public class SettingsPage extends TabPage<SettingsScreen> {
3);
}
//Graphic Options
lstSettings.addItem(new BooleanSetting(FPref.UI_DISABLE_CARD_IMAGES,
localizer.getMessage("lblDisableCardImages"),
localizer.getMessage("nlDisableCardImages")) {
@Override
public void select() {
super.select();
ImageCache.disposeTexture();
}
},
4);
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER,
localizer.getMessage("cbImageFetcher"),
localizer.getMessage("nlImageFetcher")),

View File

@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Erlaube unbekannte Karten
nlEnableUnknownCards=Erlaube unbekannte Karten von unbekannten Sets. (Erfordert Neustart)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=Experimentelle Netzwerkkompatibilität
nlExperimentalNetworkCompatibility=Forge wechselt auf kompatiblen Netzwerk-Stream. (Im Zweifel bitte ausschalten)
lblDisposeTextures=Texturen anordnen

View File

@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Enable Unknown Cards
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=Experimental Network Compatibility
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
lblDisposeTextures=Dispose Textures

View File

@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Habilitar cartas desconocidas
nlEnableUnknownCards=Habilitar que las cartas desconocidas se carguen en el Unknown Set. (Requiere reinicio)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=Compatibilidad de red experimental
nlExperimentalNetworkCompatibility=Forge cambia a un flujo de red compatible. (Si no estás seguro, deshabilita esta opción)
lblDisposeTextures=Desechar texturas

View File

@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Enable Unknown Cards
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=Experimental Network Compatibility
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
lblDisposeTextures=Dispose Textures

View File

@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=未知のカードを有効にする
nlEnableUnknownCards=未知のカードを未知のセットにまとめます。(再起動必須)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=実験的なネットワークコンパチビリティ
nlExperimentalNetworkCompatibility=Forge がコンパチブルネットワークストリーミに切り替えます。 (分からない場合はオフにしてください)
lblDisposeTextures=テキスチャー廃棄

View File

@@ -1010,6 +1010,8 @@ lblEnableUnknownCards=启用未知卡牌
nlEnableUnknownCards=将未知卡牌加载到未知系列中。(需要重启)
lblEnableNonLegalCards=Enable Non-Legal Cards
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
lblDisableCardImages=Disable Card Images
nlDisableCardImages=When enabled, Forge will not display card images.
lblExperimentalNetworkCompatibility=实验性网络兼容
nlExperimentalNetworkCompatibility=Forge将切换为兼容性的网络流。如果不清楚此选项的作用请关闭此选项
lblDisposeTextures=释放纹理

View File

@@ -81,6 +81,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
UI_OVERLAY_CARD_ID ("true"),
UI_OVERLAY_ABILITY_ICONS("true"),
UI_ENABLE_ONLINE_IMAGE_FETCHER ("false"),
UI_DISABLE_CARD_IMAGES ("false"),
UI_IMAGE_CACHE_MAXIMUM("400"),
UI_OVERLAY_FOIL_EFFECT ("true"),
UI_HIDE_REMINDER_TEXT ("false"),

View File

@@ -43,6 +43,9 @@ public abstract class ImageFetcher {
public void fetchImage(final String imageKey, final Callback callback) {
FThreads.assertExecutedByEdt(true);
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
return;
if (!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER))
return;