mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
fix human/ai avatars switching on save/load and fix ai avatar in non-quest match appearing as the unknown icon
This commit is contained in:
@@ -7,24 +7,14 @@ import forge.gui.framework.ICDoc;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the avatars submenu in the home UI.
|
* Controls the avatars submenu in the home UI.
|
||||||
*
|
|
||||||
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public enum CSubmenuAvatars implements ICDoc {
|
public enum CSubmenuAvatars implements ICDoc {
|
||||||
/** */
|
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.control.home.IControlSubmenu#update()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.control.home.IControlSubmenu#update()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
@@ -32,9 +22,6 @@ public enum CSubmenuAvatars implements ICDoc {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public Command getCommandOnSelect() {
|
public Command getCommandOnSelect() {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -25,18 +25,14 @@ import forge.properties.ForgePreferences.FPref;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Assembles Swing components of avatars submenu singleton.
|
* Assembles Swing components of avatars submenu singleton.
|
||||||
*
|
|
||||||
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
|
||||||
*/
|
*/
|
||||||
public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
||||||
/** */
|
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
// Fields used with interface IVDoc
|
// Fields used with interface IVDoc
|
||||||
private DragCell parentCell;
|
private DragCell parentCell;
|
||||||
private final DragTab tab = new DragTab("Avatars");
|
private final DragTab tab = new DragTab("Avatars");
|
||||||
|
|
||||||
/** */
|
|
||||||
private final JPanel pnlAvatars = new JPanel();
|
private final JPanel pnlAvatars = new JPanel();
|
||||||
private final FScrollPane scrContent = new FScrollPane(pnlAvatars,
|
private final FScrollPane scrContent = new FScrollPane(pnlAvatars,
|
||||||
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
|
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
|
||||||
@@ -47,9 +43,6 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
private final FLabel lblAvatarAI = new FLabel.Builder().hoverable(true).selectable(true)
|
private final FLabel lblAvatarAI = new FLabel.Builder().hoverable(true).selectable(true)
|
||||||
.iconScaleFactor(0.99f).iconInBackground(true).build();
|
.iconScaleFactor(0.99f).iconInBackground(true).build();
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*/
|
|
||||||
private VSubmenuAvatars() {
|
private VSubmenuAvatars() {
|
||||||
populateAvatars();
|
populateAvatars();
|
||||||
scrContent.setBorder(null);
|
scrContent.setBorder(null);
|
||||||
@@ -59,9 +52,6 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
lblAvatarHuman.requestFocusInWindow();
|
lblAvatarHuman.requestFocusInWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.view.home.IViewSubmenu#populate()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void populate() {
|
public void populate() {
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
|
||||||
@@ -73,25 +63,16 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.view.home.IViewSubmenu#getGroup()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public EMenuGroup getGroupEnum() {
|
public EMenuGroup getGroupEnum() {
|
||||||
return EMenuGroup.SETTINGS;
|
return EMenuGroup.SETTINGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.gui.home.IVSubmenu#getMenuTitle()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public String getMenuTitle() {
|
public String getMenuTitle() {
|
||||||
return "Avatars";
|
return "Avatars";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see forge.gui.home.IVSubmenu#getMenuName()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public EDocID getItemEnum() {
|
public EDocID getItemEnum() {
|
||||||
return EDocID.HOME_AVATARS;
|
return EDocID.HOME_AVATARS;
|
||||||
@@ -127,10 +108,10 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
"w 90%!, pushy, growy, gap 5% 0 0 0");
|
"w 90%!, pushy, growy, gap 5% 0 0 0");
|
||||||
|
|
||||||
final Command cmdHuman = new Command() { @Override
|
final Command cmdHuman = new Command() { @Override
|
||||||
public void execute() { lblAvatarAI.setSelected(false); } };
|
public void execute() { lblAvatarAI.setSelected(false); lblAvatarHuman.requestFocusInWindow(); } };
|
||||||
|
|
||||||
final Command cmdAI = new Command() { @Override
|
final Command cmdAI = new Command() { @Override
|
||||||
public void execute() { lblAvatarHuman.setSelected(false); } };
|
public void execute() { lblAvatarHuman.setSelected(false); lblAvatarAI.requestFocusInWindow(); } };
|
||||||
|
|
||||||
lblAvatarHuman.setCommand(cmdHuman);
|
lblAvatarHuman.setCommand(cmdHuman);
|
||||||
lblAvatarAI.setCommand(cmdAI);
|
lblAvatarAI.setCommand(cmdAI);
|
||||||
@@ -138,8 +119,8 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
lblAvatarHuman.setSelected(true);
|
lblAvatarHuman.setSelected(true);
|
||||||
|
|
||||||
final String[] indexes = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(",");
|
final String[] indexes = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(",");
|
||||||
int aiIndex = Integer.parseInt(indexes[0]);
|
int humanIndex = Integer.parseInt(indexes[0]);
|
||||||
int humanIndex = Integer.parseInt(indexes[1]);
|
int aiIndex = Integer.parseInt(indexes[1]);
|
||||||
|
|
||||||
if (humanIndex >= FSkin.getAvatars().size()) { humanIndex = 0; }
|
if (humanIndex >= FSkin.getAvatars().size()) { humanIndex = 0; }
|
||||||
if (aiIndex >= FSkin.getAvatars().size()) { aiIndex = 0; }
|
if (aiIndex >= FSkin.getAvatars().size()) { aiIndex = 0; }
|
||||||
@@ -147,7 +128,7 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
|
|||||||
lblAvatarAI.setIcon(new ImageIcon(FSkin.getAvatars().get(aiIndex)));
|
lblAvatarAI.setIcon(new ImageIcon(FSkin.getAvatars().get(aiIndex)));
|
||||||
lblAvatarHuman.setIcon(new ImageIcon(FSkin.getAvatars().get(humanIndex)));
|
lblAvatarHuman.setIcon(new ImageIcon(FSkin.getAvatars().get(humanIndex)));
|
||||||
|
|
||||||
Singletons.getModel().getPreferences().setPref(FPref.UI_AVATARS, aiIndex + "," + humanIndex);
|
Singletons.getModel().getPreferences().setPref(FPref.UI_AVATARS, humanIndex + "," + aiIndex);
|
||||||
Singletons.getModel().getPreferences().save();
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,12 +56,12 @@ public enum CMatchUI {
|
|||||||
|
|
||||||
private ImageIcon getPlayerAvatar(final Player p, final int defaultIndex) {
|
private ImageIcon getPlayerAvatar(final Player p, final int defaultIndex) {
|
||||||
LobbyPlayer lp = p.getLobbyPlayer();
|
LobbyPlayer lp = p.getLobbyPlayer();
|
||||||
ImageIcon ret = ImageCache.getIcon(lp);
|
if (null != lp.getIconImageKey()) {
|
||||||
if (null == ret) {
|
return ImageCache.getIcon(lp);
|
||||||
int iAvatar = lp.getAvatarIndex();
|
|
||||||
return new ImageIcon(FSkin.getAvatars().get(iAvatar >= 0 ? iAvatar : defaultIndex));
|
|
||||||
}
|
}
|
||||||
return ret;
|
|
||||||
|
int avatarIdx = lp.getAvatarIndex();
|
||||||
|
return new ImageIcon(FSkin.getAvatars().get(0 <= avatarIdx ? avatarIdx : defaultIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user