FSkinProp: unify Enum to SkinProp places (#8764)

* FSkinProp: unify Enum to SkinProp places

* FSkinProp: add iconFromDeckSection
This commit is contained in:
Hans Mackowiak
2025-09-24 19:52:58 +02:00
committed by GitHub
parent 7ca0c2b87b
commit 2d1fe88d32
4 changed files with 56 additions and 45 deletions

View File

@@ -69,22 +69,7 @@ public class PlayerDetailsPanel extends JPanel {
}
public static FSkinProp iconFromZone(ZoneType zoneType) {
switch (zoneType) {
case Hand: return FSkinProp.IMG_ZONE_HAND;
case Library: return FSkinProp.IMG_ZONE_LIBRARY;
case Graveyard: return FSkinProp.IMG_ZONE_GRAVEYARD;
case Exile: return FSkinProp.IMG_ZONE_EXILE;
case Sideboard: return FSkinProp.IMG_ZONE_SIDEBOARD;
case Flashback: return FSkinProp.IMG_ZONE_FLASHBACK;
case Command: return FSkinProp.IMG_ZONE_COMMAND; //IMG_PLANESWALKER
case PlanarDeck: return FSkinProp.IMG_ZONE_PLANAR;
case SchemeDeck: return FSkinProp.IMG_ZONE_SCHEME;
case AttractionDeck: return FSkinProp.IMG_ZONE_ATTRACTION;
case ContraptionDeck: return FSkinProp.IMG_ZONE_CONTRAPTION;
case Ante: return FSkinProp.IMG_ZONE_ANTE;
case Junkyard: return FSkinProp.IMG_ZONE_JUNKYARD;
default: return FSkinProp.IMG_HDZONE_LIBRARY;
}
return FSkinProp.iconFromZone(zoneType, false);
}
/** Adds various labels to pool area JPanel container. */

View File

@@ -30,6 +30,7 @@ import forge.itemmanager.ItemManager.ContextMenuBuilder;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.localinstance.skin.FSkinProp;
import forge.menu.*;
import forge.model.FModel;
import forge.screens.FScreen;
@@ -409,18 +410,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
}
public static FImage iconFromDeckSection(DeckSection deckSection) {
return switch (deckSection) {
case Main -> MAIN_DECK_ICON;
case Sideboard -> SIDEBOARD_ICON;
case Commander -> FSkinImage.COMMAND;
case Avatar -> FSkinImage.AVATAR;
case Conspiracy -> FSkinImage.CONSPIRACY;
case Planes -> FSkinImage.PLANAR;
case Schemes -> FSkinImage.SCHEME;
case Attractions -> FSkinImage.ATTRACTION;
case Contraptions -> FSkinImage.CONTRAPTION;
default -> FSkinImage.HDSIDEBOARD;
};
return FSkin.getImages().get(FSkinProp.iconFromDeckSection(deckSection, Forge.hdbuttons));
}
private final DeckEditorConfig editorConfig;

View File

@@ -9,6 +9,7 @@ import com.badlogic.gdx.utils.Align;
import forge.Forge;
import forge.Graphics;
import forge.assets.FSkin;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
import forge.assets.FSkinFont;
@@ -19,6 +20,7 @@ import forge.game.card.CounterEnumType;
import forge.game.player.PlayerView;
import forge.game.zone.ZoneType;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.localinstance.skin.FSkinProp;
import forge.menu.FMenuBar;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
@@ -139,23 +141,8 @@ public class VPlayerPanel extends FContainer {
tabs.add(zoneTab);
}
public static FSkinImage iconFromZone(ZoneType zoneType) {
return switch (zoneType) {
case Hand -> Forge.hdbuttons ? FSkinImage.HDHAND : FSkinImage.HAND;
case Library -> Forge.hdbuttons ? FSkinImage.HDLIBRARY : FSkinImage.LIBRARY;
case Graveyard -> Forge.hdbuttons ? FSkinImage.HDGRAVEYARD : FSkinImage.GRAVEYARD;
case Exile -> Forge.hdbuttons ? FSkinImage.HDEXILE : FSkinImage.EXILE;
case Sideboard -> Forge.hdbuttons ? FSkinImage.HDSIDEBOARD : FSkinImage.SIDEBOARD;
case Flashback -> Forge.hdbuttons ? FSkinImage.HDFLASHBACK : FSkinImage.FLASHBACK;
case Command -> FSkinImage.COMMAND;
case PlanarDeck -> FSkinImage.PLANAR;
case SchemeDeck -> FSkinImage.SCHEME;
case AttractionDeck -> FSkinImage.ATTRACTION;
case ContraptionDeck -> FSkinImage.CONTRAPTION;
case Ante -> FSkinImage.ANTE;
case Junkyard -> FSkinImage.JUNKYARD;
default -> FSkinImage.HDLIBRARY;
};
public static FSkinImageInterface iconFromZone(ZoneType zoneType) {
return FSkin.getImages().get(FSkinProp.iconFromZone(zoneType, Forge.hdbuttons));
}
public Iterable<InfoTab> getTabs() {
@@ -308,6 +295,7 @@ public class VPlayerPanel extends FContainer {
tabManaPool.update();
}
@SuppressWarnings("incomplete-switch")
public void updateZone(ZoneType zoneType) {
if (zoneType == ZoneType.Battlefield) {
field.update(true);

View File

@@ -22,7 +22,10 @@ import java.util.Map;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import forge.card.MagicColor;
import forge.card.mana.ManaCostShard;
import forge.deck.DeckSection;
import forge.game.zone.ZoneType;
import forge.localinstance.properties.ForgeConstants;
/**
@@ -705,6 +708,51 @@ public enum FSkinProp {
MANA_IMG.put("AL6OFF", FSkinProp.IMG_ATTR_6_OFF);
}
public static FSkinProp iconFromColor(MagicColor.Color color) {
return switch (color) {
case WHITE -> IMG_MANA_W;
case BLUE -> IMG_MANA_U;
case BLACK -> IMG_MANA_B;
case RED -> IMG_MANA_R;
case GREEN -> IMG_MANA_G;
case COLORLESS -> IMG_MANA_COLORLESS;
};
}
public static FSkinProp iconFromZone(ZoneType zoneType, boolean hdbuttons) {
return switch (zoneType) {
case Hand -> hdbuttons ? IMG_HDZONE_HAND : IMG_ZONE_HAND;
case Library -> hdbuttons ? IMG_HDZONE_LIBRARY : IMG_ZONE_LIBRARY;
case Graveyard -> hdbuttons ? IMG_HDZONE_GRAVEYARD : IMG_ZONE_GRAVEYARD;
case Exile -> hdbuttons ? IMG_HDZONE_EXILE : IMG_ZONE_EXILE;
case Sideboard -> hdbuttons ? IMG_HDZONE_SIDEBOARD : IMG_ZONE_SIDEBOARD;
case Flashback -> hdbuttons ? IMG_HDZONE_FLASHBACK : IMG_ZONE_FLASHBACK;
case Command -> IMG_ZONE_COMMAND; //IMG_PLANESWALKER
case PlanarDeck -> IMG_ZONE_PLANAR;
case SchemeDeck -> IMG_ZONE_SCHEME;
case AttractionDeck -> IMG_ZONE_ATTRACTION;
case ContraptionDeck -> IMG_ZONE_CONTRAPTION;
case Ante -> IMG_ZONE_ANTE;
case Junkyard ->IMG_ZONE_JUNKYARD;
default -> IMG_HDZONE_LIBRARY;
};
}
public static FSkinProp iconFromDeckSection(DeckSection deckSection, boolean hdbuttons) {
return switch (deckSection) {
case Main -> hdbuttons ? IMG_HDZONE_LIBRARY : ICO_DECKLIST;
case Sideboard -> hdbuttons ? IMG_HDZONE_SIDEBOARD : IMG_ZONE_SIDEBOARD;
case Commander -> IMG_ZONE_COMMAND;
case Avatar -> IMG_ZONE_AVATAR;
case Conspiracy -> IMG_ZONE_CONSPIRACY;
case Planes -> IMG_ZONE_PLANAR;
case Schemes -> IMG_ZONE_SCHEME;
case Attractions -> IMG_ZONE_ATTRACTION;
case Contraptions -> IMG_ZONE_CONTRAPTION;
default -> IMG_HDZONE_SIDEBOARD;
};
}
public enum PropType {
BACKGROUND(null),
COLOR(null),