mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Add Disable Card Images Option
This commit is contained in:
@@ -3,6 +3,9 @@ package forge;
|
|||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
|
|
||||||
import forge.error.BugReporter;
|
import forge.error.BugReporter;
|
||||||
|
import forge.model.FModel;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
@@ -12,6 +15,9 @@ import java.io.IOException;
|
|||||||
final class ImageLoader extends CacheLoader<String, BufferedImage> {
|
final class ImageLoader extends CacheLoader<String, BufferedImage> {
|
||||||
@Override
|
@Override
|
||||||
public BufferedImage load(String key) {
|
public BufferedImage load(String key) {
|
||||||
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
|
||||||
|
return null;
|
||||||
|
|
||||||
File file = ImageKeys.getImageFile(key);
|
File file = ImageKeys.getImageFile(key);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
|
|||||||
@@ -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.getCbEnableNonLegalCards(), FPref.UI_LOAD_NONLEGAL_CARDS));
|
||||||
lstControls.add(Pair.of(view.getCbUseExperimentalNetworkStream(), FPref.UI_NETPLAY_COMPAT));
|
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.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.getCbDisplayFoil(), FPref.UI_OVERLAY_FOIL_EFFECT));
|
||||||
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
|
||||||
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
lstControls.add(Pair.of(view.getCbEnableSounds(), FPref.UI_ENABLE_SOUNDS));
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
|||||||
private final JCheckBox cbSROptimize = new OptionsCheckBox(localizer.getMessage("cbSROptimize"));
|
private final JCheckBox cbSROptimize = new OptionsCheckBox(localizer.getMessage("cbSROptimize"));
|
||||||
private final JCheckBox cbFilteredHands = new OptionsCheckBox(localizer.getMessage("cbFilteredHands"));
|
private final JCheckBox cbFilteredHands = new OptionsCheckBox(localizer.getMessage("cbFilteredHands"));
|
||||||
private final JCheckBox cbImageFetcher = new OptionsCheckBox(localizer.getMessage("cbImageFetcher"));
|
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 cbCloneImgSource = new OptionsCheckBox(localizer.getMessage("cbCloneImgSource"));
|
||||||
private final JCheckBox cbScaleLarger = new OptionsCheckBox(localizer.getMessage("cbScaleLarger"));
|
private final JCheckBox cbScaleLarger = new OptionsCheckBox(localizer.getMessage("cbScaleLarger"));
|
||||||
private final JCheckBox cbRenderBlackCardBorders = new OptionsCheckBox(localizer.getMessage("cbRenderBlackCardBorders"));
|
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(cbImageFetcher, titleConstraints);
|
||||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlImageFetcher")), descriptionConstraints);
|
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(cbDisplayFoil, titleConstraints);
|
||||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlDisplayFoil")), descriptionConstraints);
|
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlDisplayFoil")), descriptionConstraints);
|
||||||
|
|
||||||
@@ -617,6 +621,11 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
|||||||
return cbImageFetcher;
|
return cbImageFetcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return {@link javax.swing.JCheckBox} */
|
||||||
|
public JCheckBox getCbDisableCardImages() {
|
||||||
|
return cbDisableCardImages;
|
||||||
|
}
|
||||||
|
|
||||||
/** @return {@link javax.swing.JCheckBox} */
|
/** @return {@link javax.swing.JCheckBox} */
|
||||||
public JCheckBox getCbDisplayFoil() {
|
public JCheckBox getCbDisplayFoil() {
|
||||||
return cbDisplayFoil;
|
return cbDisplayFoil;
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import forge.item.InventoryItem;
|
|||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgeConstants;
|
import forge.properties.ForgeConstants;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
import forge.util.ImageUtil;
|
import forge.util.ImageUtil;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -230,12 +231,16 @@ public class ImageCache {
|
|||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
public static void preloadCache(Iterable<String> keys) {
|
public static void preloadCache(Iterable<String> keys) {
|
||||||
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
|
||||||
|
return;
|
||||||
for (String imageKey : keys){
|
for (String imageKey : keys){
|
||||||
if(getImage(imageKey, false) == null)
|
if(getImage(imageKey, false) == null)
|
||||||
System.err.println("could not load card image:"+imageKey);
|
System.err.println("could not load card image:"+imageKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void preloadCache(Deck deck) {
|
public static void preloadCache(Deck deck) {
|
||||||
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_CARD_IMAGES))
|
||||||
|
return;
|
||||||
if(deck == null||!Forge.enablePreloadExtendedArt)
|
if(deck == null||!Forge.enablePreloadExtendedArt)
|
||||||
return;
|
return;
|
||||||
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {
|
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ import forge.FThreads;
|
|||||||
|
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.ImageKeys;
|
import forge.ImageKeys;
|
||||||
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgeConstants;
|
import forge.properties.ForgeConstants;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
import forge.util.FileUtil;
|
import forge.util.FileUtil;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
@@ -27,6 +29,9 @@ final class ImageLoader extends CacheLoader<String, Texture> {
|
|||||||
Texture n;
|
Texture n;
|
||||||
@Override
|
@Override
|
||||||
public Texture load(String key) {
|
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 extendedArt = isBorderless(key) && Forge.enableUIMask.equals("Full");
|
||||||
boolean textureFilter = Forge.isTextureFilteringEnabled();
|
boolean textureFilter = Forge.isTextureFilteringEnabled();
|
||||||
File file = ImageKeys.getImageFile(key);
|
File file = ImageKeys.getImageFile(key);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import forge.assets.FSkin;
|
|||||||
import forge.assets.FSkinColor;
|
import forge.assets.FSkinColor;
|
||||||
import forge.assets.FSkinFont;
|
import forge.assets.FSkinFont;
|
||||||
import forge.assets.FSkinImage;
|
import forge.assets.FSkinImage;
|
||||||
|
import forge.assets.ImageCache;
|
||||||
import forge.game.GameLogEntryType;
|
import forge.game.GameLogEntryType;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgeConstants;
|
import forge.properties.ForgeConstants;
|
||||||
@@ -332,6 +333,16 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
|||||||
3);
|
3);
|
||||||
}
|
}
|
||||||
//Graphic Options
|
//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,
|
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER,
|
||||||
localizer.getMessage("cbImageFetcher"),
|
localizer.getMessage("cbImageFetcher"),
|
||||||
localizer.getMessage("nlImageFetcher")),
|
localizer.getMessage("nlImageFetcher")),
|
||||||
|
|||||||
@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Erlaube unbekannte Karten
|
|||||||
nlEnableUnknownCards=Erlaube unbekannte Karten von unbekannten Sets. (Erfordert Neustart)
|
nlEnableUnknownCards=Erlaube unbekannte Karten von unbekannten Sets. (Erfordert Neustart)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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
|
lblExperimentalNetworkCompatibility=Experimentelle Netzwerkkompatibilität
|
||||||
nlExperimentalNetworkCompatibility=Forge wechselt auf kompatiblen Netzwerk-Stream. (Im Zweifel bitte ausschalten)
|
nlExperimentalNetworkCompatibility=Forge wechselt auf kompatiblen Netzwerk-Stream. (Im Zweifel bitte ausschalten)
|
||||||
lblDisposeTextures=Texturen anordnen
|
lblDisposeTextures=Texturen anordnen
|
||||||
|
|||||||
@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Enable Unknown Cards
|
|||||||
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
|
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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
|
lblExperimentalNetworkCompatibility=Experimental Network Compatibility
|
||||||
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
|
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
|
||||||
lblDisposeTextures=Dispose Textures
|
lblDisposeTextures=Dispose Textures
|
||||||
|
|||||||
@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Habilitar cartas desconocidas
|
|||||||
nlEnableUnknownCards=Habilitar que las cartas desconocidas se carguen en el Unknown Set. (Requiere reinicio)
|
nlEnableUnknownCards=Habilitar que las cartas desconocidas se carguen en el Unknown Set. (Requiere reinicio)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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
|
lblExperimentalNetworkCompatibility=Compatibilidad de red experimental
|
||||||
nlExperimentalNetworkCompatibility=Forge cambia a un flujo de red compatible. (Si no estás seguro, deshabilita esta opción)
|
nlExperimentalNetworkCompatibility=Forge cambia a un flujo de red compatible. (Si no estás seguro, deshabilita esta opción)
|
||||||
lblDisposeTextures=Desechar texturas
|
lblDisposeTextures=Desechar texturas
|
||||||
|
|||||||
@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=Enable Unknown Cards
|
|||||||
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
|
nlEnableUnknownCards=Enable Unknown Cards to be loaded to Unknown Set. (Requires restart)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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
|
lblExperimentalNetworkCompatibility=Experimental Network Compatibility
|
||||||
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
|
nlExperimentalNetworkCompatibility=Forge switches to compatible network stream. (If unsure, turn OFF this option)
|
||||||
lblDisposeTextures=Dispose Textures
|
lblDisposeTextures=Dispose Textures
|
||||||
|
|||||||
@@ -1011,6 +1011,8 @@ lblEnableUnknownCards=未知のカードを有効にする
|
|||||||
nlEnableUnknownCards=未知のカードを未知のセットにまとめます。(再起動必須)
|
nlEnableUnknownCards=未知のカードを未知のセットにまとめます。(再起動必須)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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=実験的なネットワークコンパチビリティ
|
lblExperimentalNetworkCompatibility=実験的なネットワークコンパチビリティ
|
||||||
nlExperimentalNetworkCompatibility=Forge がコンパチブルネットワークストリーミに切り替えます。 (分からない場合はオフにしてください)
|
nlExperimentalNetworkCompatibility=Forge がコンパチブルネットワークストリーミに切り替えます。 (分からない場合はオフにしてください)
|
||||||
lblDisposeTextures=テキスチャー廃棄
|
lblDisposeTextures=テキスチャー廃棄
|
||||||
|
|||||||
@@ -1010,6 +1010,8 @@ lblEnableUnknownCards=启用未知卡牌
|
|||||||
nlEnableUnknownCards=将未知卡牌加载到未知系列中。(需要重启)
|
nlEnableUnknownCards=将未知卡牌加载到未知系列中。(需要重启)
|
||||||
lblEnableNonLegalCards=Enable Non-Legal Cards
|
lblEnableNonLegalCards=Enable Non-Legal Cards
|
||||||
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart)
|
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=实验性网络兼容
|
lblExperimentalNetworkCompatibility=实验性网络兼容
|
||||||
nlExperimentalNetworkCompatibility=Forge将切换为兼容性的网络流。(如果不清楚此选项的作用,请关闭此选项)
|
nlExperimentalNetworkCompatibility=Forge将切换为兼容性的网络流。(如果不清楚此选项的作用,请关闭此选项)
|
||||||
lblDisposeTextures=释放纹理
|
lblDisposeTextures=释放纹理
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
|||||||
UI_OVERLAY_CARD_ID ("true"),
|
UI_OVERLAY_CARD_ID ("true"),
|
||||||
UI_OVERLAY_ABILITY_ICONS("true"),
|
UI_OVERLAY_ABILITY_ICONS("true"),
|
||||||
UI_ENABLE_ONLINE_IMAGE_FETCHER ("false"),
|
UI_ENABLE_ONLINE_IMAGE_FETCHER ("false"),
|
||||||
|
UI_DISABLE_CARD_IMAGES ("false"),
|
||||||
UI_IMAGE_CACHE_MAXIMUM("400"),
|
UI_IMAGE_CACHE_MAXIMUM("400"),
|
||||||
UI_OVERLAY_FOIL_EFFECT ("true"),
|
UI_OVERLAY_FOIL_EFFECT ("true"),
|
||||||
UI_HIDE_REMINDER_TEXT ("false"),
|
UI_HIDE_REMINDER_TEXT ("false"),
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ public abstract class ImageFetcher {
|
|||||||
public void fetchImage(final String imageKey, final Callback callback) {
|
public void fetchImage(final String imageKey, final Callback callback) {
|
||||||
FThreads.assertExecutedByEdt(true);
|
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))
|
if (!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ENABLE_ONLINE_IMAGE_FETCHER))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user