diff --git a/forge-gui-desktop/src/main/java/forge/control/FControl.java b/forge-gui-desktop/src/main/java/forge/control/FControl.java index a42e2d2095c..e1d2cf817f4 100644 --- a/forge-gui-desktop/src/main/java/forge/control/FControl.java +++ b/forge-gui-desktop/src/main/java/forge/control/FControl.java @@ -642,9 +642,6 @@ public enum FControl implements KeyEventDispatcher { final ForgePreferences prefs = FModel.getPreferences(); final List fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews(); - ForgePreferences.DEV_MODE = prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED); - ForgePreferences.UPLOAD_DRAFT = ForgePreferences.NET_CONN; // && prefs.getPrefBoolean(FPref.UI_UPLOAD_DRAFT); - // AI field is at index [0] PhaseIndicator fvAi = fieldViews.get(1).getPhaseIndicator(); fvAi.getLblUpkeep().setEnabled(prefs.getPrefBoolean(FPref.PHASE_AI_UPKEEP)); diff --git a/forge-gui-desktop/src/main/java/forge/control/KeyboardShortcuts.java b/forge-gui-desktop/src/main/java/forge/control/KeyboardShortcuts.java index 34a576b535d..32cd1aa5da8 100644 --- a/forge-gui-desktop/src/main/java/forge/control/KeyboardShortcuts.java +++ b/forge-gui-desktop/src/main/java/forge/control/KeyboardShortcuts.java @@ -5,6 +5,7 @@ import forge.gui.framework.EDocID; import forge.gui.framework.FScreen; import forge.gui.framework.SDisplayUtil; import forge.model.FModel; +import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import forge.screens.home.settings.VSubmenuPreferences.KeyboardShortcutField; import forge.screens.match.CMatchUI; @@ -85,7 +86,7 @@ public class KeyboardShortcuts { @Override public void actionPerformed(final ActionEvent e) { if (Singletons.getControl().getCurrentScreen() != FScreen.MATCH_SCREEN) { return; } - if (FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED)) { + if (ForgePreferences.DEV_MODE) { SDisplayUtil.showTab(EDocID.DEV_MODE.getDoc()); } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 80468bfe4be..2fac6e98a34 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -161,7 +161,7 @@ public enum CSubmenuPreferences implements ICDoc { this.prefs = FModel.getPreferences(); setPlayerNameButtonText(); - view.getCbDevMode().setSelected(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED)); + view.getCbDevMode().setSelected(ForgePreferences.DEV_MODE); for(Pair kv: lstControls) { kv.getKey().setSelected(prefs.getPrefBoolean(kv.getValue())); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/VMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/VMatchUI.java index 6df54e2e8c6..f487994712c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/VMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/VMatchUI.java @@ -2,8 +2,7 @@ package forge.screens.match; import forge.Singletons; import forge.gui.framework.*; -import forge.model.FModel; -import forge.properties.ForgePreferences.FPref; +import forge.properties.ForgePreferences; import forge.screens.match.views.*; import forge.toolbox.FButton; import forge.view.FView; @@ -52,7 +51,7 @@ public enum VMatchUI implements IVTopLevelUI { @Override public void populate() { // Dev mode disabled? Remove from parent cell if exists. - if (!FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED)) { + if (!ForgePreferences.DEV_MODE) { if (VDev.SINGLETON_INSTANCE.getParentCell() != null) { final DragCell parent = VDev.SINGLETON_INSTANCE.getParentCell(); parent.removeDoc(VDev.SINGLETON_INSTANCE); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/menus/CMatchUIMenus.java b/forge-gui-desktop/src/main/java/forge/screens/match/menus/CMatchUIMenus.java index a629bb4bc1f..99e0c16ec35 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/menus/CMatchUIMenus.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/menus/CMatchUIMenus.java @@ -1,9 +1,6 @@ package forge.screens.match.menus; -import forge.model.FModel; import forge.properties.ForgePreferences; -import forge.properties.ForgePreferences.FPref; - import javax.swing.*; import java.util.ArrayList; @@ -16,18 +13,13 @@ import java.util.List; public class CMatchUIMenus { private final boolean SHOW_ICONS = false; - private static ForgePreferences prefs = FModel.getPreferences(); public List getMenus() { List menus = new ArrayList(); menus.add(GameMenu.getMenu(SHOW_ICONS)); - if (isDevModeEnabled()) { + if (ForgePreferences.DEV_MODE) { menus.add(DevModeMenu.getMenu()); } return menus; } - - private boolean isDevModeEnabled() { - return prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED); - } } diff --git a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java index 82276a0340f..96018ec0d7e 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java +++ b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java @@ -6,6 +6,7 @@ import forge.gui.framework.ILocalRepaint; import forge.menus.ForgeMenu; import forge.menus.LayoutMenu; import forge.model.FModel; +import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import forge.toolbox.FButton; import forge.toolbox.FDigitalClock; @@ -79,7 +80,7 @@ public class FNavigationBar extends FTitleBarBase { addNavigationTab(FScreen.HOME_SCREEN); addNavigationTab(FScreen.DECK_EDITOR_CONSTRUCTED); - if (FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED)) { + if (ForgePreferences.DEV_MODE) { //TODO: Make Workshop available outside developer mode when custom cards supported addNavigationTab(FScreen.WORKSHOP_SCREEN); } diff --git a/forge-gui-mobile/src/forge/screens/match/FControl.java b/forge-gui-mobile/src/forge/screens/match/FControl.java index 6591f243971..2da4076747e 100644 --- a/forge-gui-mobile/src/forge/screens/match/FControl.java +++ b/forge-gui-mobile/src/forge/screens/match/FControl.java @@ -79,7 +79,6 @@ public class FControl { private static List sortedPlayers; private static final EventBus uiEvents; private static boolean gameHasHumanPlayer; - private static boolean devMode; private static final MatchUiEventVisitor visitor = new MatchUiEventVisitor(); private static final FControlGameEventHandler fcVisitor = new FControlGameEventHandler(); private static final FControlGamePlayback playbackControl = new FControlGamePlayback(); @@ -223,13 +222,7 @@ public class FControl { playerPanels.add(new VPlayerPanel(p)); } - view = new MatchScreen(game, localPlayer, playerPanels) { - @Override - public void onActivate() { - devMode = FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED); //cache devMode for performance when match screen opened - super.onActivate(); - } - }; + view = new MatchScreen(game, localPlayer, playerPanels); } private static List shiftPlayersPlaceLocalFirst(final List players, LobbyPlayer localPlayer) { @@ -303,7 +296,7 @@ public class FControl { } public static boolean mayShowCard(Card c) { - return game == null || !gameHasHumanPlayer || devMode || c.canBeShownTo(getCurrentPlayer()); + return game == null || !gameHasHumanPlayer || ForgePreferences.DEV_MODE || c.canBeShownTo(getCurrentPlayer()); } public static void alphaStrike() { diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java b/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java index 4565030bfeb..5cabbd544f8 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java @@ -14,6 +14,7 @@ import forge.assets.FSkinFont; import forge.assets.FSkinColor.Colors; import forge.game.GameLogEntryType; import forge.model.FModel; +import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import forge.screens.FScreen; import forge.toolbox.FGroupList; @@ -100,8 +101,14 @@ public class SettingsScreen extends FScreen { //Advanced Settings lstSettings.addItem(new BooleanSetting(FPref.DEV_MODE_ENABLED, "Developer Mode", - "Enables menu with functions for testing during development."), - 3); + "Enables menu with functions for testing during development.") { + @Override + public void select() { + super.select(); + //update DEV_MODE flag when preference changes + ForgePreferences.DEV_MODE = FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED); + } + }, 3); lstSettings.addItem(new CustomSelectSetting(FPref.DEV_LOG_ENTRY_TYPE, "Game Log Verbosity", "Changes how much information is displayed in the game log. Sorted by least to most verbose.", diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java index bf3da2cd6b6..b6ed9ffc6c8 100644 --- a/forge-gui/src/main/java/forge/model/FModel.java +++ b/forge-gui/src/main/java/forge/model/FModel.java @@ -34,6 +34,7 @@ import forge.itemmanager.ItemManagerConfig; import forge.limited.GauntletMini; import forge.properties.ForgeConstants; import forge.properties.ForgePreferences; +import forge.properties.ForgePreferences.FPref; import forge.quest.QuestController; import forge.quest.QuestWorld; import forge.quest.data.QuestPreferences; @@ -152,6 +153,9 @@ public class FModel { throw new RuntimeException(exn); } + ForgePreferences.DEV_MODE = preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED); + ForgePreferences.UPLOAD_DRAFT = ForgePreferences.NET_CONN; // && preferences.getPrefBoolean(FPref.UI_UPLOAD_DRAFT); + formats = new GameFormat.Collection(new GameFormat.Reader(new File(ForgeConstants.BLOCK_DATA_DIR + "formats.txt"))); blocks = new StorageBase("Block definitions", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "blocks.txt", magicDb.getEditions())); questPreferences = new QuestPreferences(); diff --git a/forge-gui/src/main/java/forge/player/LobbyPlayerHuman.java b/forge-gui/src/main/java/forge/player/LobbyPlayerHuman.java index b08b8dde611..ebd8de25b53 100644 --- a/forge-gui/src/main/java/forge/player/LobbyPlayerHuman.java +++ b/forge-gui/src/main/java/forge/player/LobbyPlayerHuman.java @@ -16,7 +16,6 @@ public class LobbyPlayerHuman extends LobbyPlayer implements IGameEntitiesFactor super(name); } - @Override public PlayerController createControllerFor(Player human) { return new PlayerControllerHuman(human.getGame(), human, this); @@ -26,10 +25,10 @@ public class LobbyPlayerHuman extends LobbyPlayer implements IGameEntitiesFactor public Player createIngamePlayer(Game game) { Player player = new Player(GuiDisplayUtil.personalizeHuman(getName()), game); player.setFirstController(new PlayerControllerHuman(game, player, this)); - - if( ForgePreferences.DEV_MODE && FModel.getPreferences().getPrefBoolean(FPref.DEV_UNLIMITED_LAND)) - player.canCheatPlayUnlimitedLands = true; + if (ForgePreferences.DEV_MODE && FModel.getPreferences().getPrefBoolean(FPref.DEV_UNLIMITED_LAND)) { + player.canCheatPlayUnlimitedLands = true; + } return player; }