From f6bec79a28f23fd5beda344b34844c34515575f3 Mon Sep 17 00:00:00 2001 From: Grimm Date: Sat, 6 Aug 2022 21:10:18 +0200 Subject: [PATCH] changed road algo added WaveFunctionCollapse to create biome structures changed world generation. added overworld collision for enemies. --- .../forge/adventure/editor/BiomeEdit.java | 2 - .../BiomeStructureDataMappingEditor.java | 1 - .../adventure/editor/BiomeStructureEdit.java | 7 +- .../adventure/editor/BiomeTerrainEdit.java | 1 - .../forge/adventure/editor/EffectEditor.java | 1 - .../forge/adventure/editor/EnemyEdit.java | 1 - .../adventure/editor/PointOfInterestEdit.java | 1 - .../forge/adventure/editor/RewardEdit.java | 1 - .../adventure/editor/StructureEditor.java | 13 +- .../forge/adventure/editor/SwingAtlas.java | 24 ++- .../adventure/editor/SwingAtlasPreview.java | 1 - .../forge/adventure/editor/TextListEdit.java | 4 +- .../forge/adventure/editor/WorldEditor.java | 2 - .../src/forge/CachedCardImage.java | 1 - forge-gui-mobile/src/forge/Forge.java | 12 +- forge-gui-mobile/src/forge/Graphics.java | 12 +- .../adventure/character/CharacterSprite.java | 7 +- .../adventure/character/EnemySprite.java | 1 - .../adventure/character/RewardSprite.java | 1 - .../src/forge/adventure/data/BiomeData.java | 1 - .../adventure/data/BiomeStructureData.java | 3 +- .../src/forge/adventure/data/ConfigData.java | 2 - .../src/forge/adventure/data/UIData.java | 1 - .../adventure/player/AdventurePlayer.java | 10 +- .../adventure/scene/AdventureDeckEditor.java | 12 +- .../adventure/scene/DeckSelectScene.java | 7 +- .../forge/adventure/scene/NewGameScene.java | 8 +- .../adventure/scene/PlayerStatisticScene.java | 6 +- .../forge/adventure/scene/RewardScene.java | 6 +- .../adventure/scene/SpellSmithScene.java | 6 +- .../src/forge/adventure/stage/MapStage.java | 1 - .../src/forge/adventure/stage/WorldStage.java | 6 +- .../src/forge/adventure/util/MapDialog.java | 4 +- .../adventure/util/TemplateTmxMapLoader.java | 6 +- .../src/forge/adventure/util/UIActor.java | 1 - .../forge/adventure/world/BiomeStructure.java | 33 +++- .../forge/adventure/world/BiomeTexture.java | 18 +- .../src/forge/adventure/world/World.java | 39 +++- .../src/forge/animation/ForgeAnimation.java | 7 +- .../src/forge/animation/ForgeTransition.java | 11 +- .../src/forge/animation/GifAnimation.java | 1 - .../src/forge/animation/GifDecoder.java | 6 +- .../src/forge/assets/AssetsDownloader.java | 16 +- .../src/forge/assets/BitmapFontWriter.java | 1 - .../src/forge/assets/FBufferedImage.java | 1 - .../src/forge/assets/FDelayLoadImage.java | 1 - .../src/forge/assets/FLanguage.java | 7 +- .../src/forge/assets/FRotatedImage.java | 1 - .../src/forge/assets/FSkinColor.java | 5 +- .../src/forge/assets/FSkinFont.java | 11 +- .../src/forge/assets/FSkinImage.java | 1 - .../src/forge/assets/FSkinTexture.java | 9 +- .../src/forge/assets/FTextureImage.java | 1 - .../src/forge/assets/FTextureRegionImage.java | 1 - .../src/forge/assets/ImageCache.java | 37 ++-- .../src/forge/assets/TextRenderer.java | 11 +- .../src/forge/card/CardFaceSymbols.java | 4 +- .../src/forge/card/CardImage.java | 1 - .../src/forge/card/CardImageRenderer.java | 24 ++- .../src/forge/card/CardListPreview.java | 1 - .../src/forge/card/CardRenderer.java | 32 +--- forge-gui-mobile/src/forge/card/CardZoom.java | 9 +- .../src/forge/card/GameEntityPicker.java | 9 +- .../src/forge/deck/AddBasicLandsDialog.java | 20 +- .../src/forge/deck/FDeckChooser.java | 26 +-- .../src/forge/deck/FDeckEditor.java | 5 +- .../src/forge/deck/FDeckImportDialog.java | 14 +- .../src/forge/deck/FDeckViewer.java | 10 +- .../src/forge/deck/FSideboardDialog.java | 7 +- .../src/forge/error/BugReportDialog.java | 1 - .../src/forge/itemmanager/CardManager.java | 11 +- .../src/forge/itemmanager/DeckManager.java | 5 +- .../src/forge/itemmanager/ItemManager.java | 20 +- .../forge/itemmanager/SpellShopManager.java | 5 +- .../filters/AdvancedSearchFilter.java | 9 +- .../filters/ArchivedFormatSelect.java | 9 +- .../itemmanager/filters/CardCMCFilter.java | 1 - .../itemmanager/filters/CardColorFilter.java | 1 - .../filters/CardColorlessCostFilter.java | 1 - .../itemmanager/filters/CardFormatFilter.java | 1 - .../itemmanager/filters/CardPowerFilter.java | 1 - .../itemmanager/filters/CardRarityFilter.java | 1 - .../itemmanager/filters/CardSearchFilter.java | 1 - .../filters/CardToughnessFilter.java | 1 - .../itemmanager/filters/CardTypeFilter.java | 7 +- .../itemmanager/filters/DeckColorFilter.java | 1 - .../itemmanager/filters/DeckFolderFilter.java | 9 +- .../itemmanager/filters/DeckFormatFilter.java | 1 - .../itemmanager/filters/FormatFilter.java | 16 +- .../forge/itemmanager/filters/ItemFilter.java | 1 - .../itemmanager/filters/ListLabelFilter.java | 1 - .../itemmanager/filters/StatTypeFilter.java | 6 +- .../itemmanager/filters/TextSearchFilter.java | 1 - .../filters/ToggleButtonsFilter.java | 7 +- .../itemmanager/filters/ValueRangeFilter.java | 1 - .../forge/itemmanager/views/ItemListView.java | 19 +- .../src/forge/itemmanager/views/ItemView.java | 17 +- .../src/forge/menu/FDropDown.java | 1 - .../src/forge/menu/FMagnifyView.java | 1 - forge-gui-mobile/src/forge/menu/FMenuBar.java | 6 +- .../src/forge/menu/FMenuItem.java | 1 - forge-gui-mobile/src/forge/menu/FMenuTab.java | 1 - .../src/forge/menu/FPopupMenu.java | 1 - forge-gui-mobile/src/forge/menu/FTooltip.java | 1 - .../src/forge/screens/FScreen.java | 5 +- .../src/forge/screens/LaunchScreen.java | 1 - .../src/forge/screens/LoadingOverlay.java | 1 - .../src/forge/screens/SplashScreen.java | 1 - .../src/forge/screens/TabPageScreen.java | 7 +- .../achievements/AchievementsScreen.java | 8 +- .../screens/constructed/AvatarSelector.java | 7 +- .../screens/constructed/LobbyScreen.java | 27 +-- .../screens/constructed/PlayerPanel.java | 33 +--- .../screens/constructed/SleevesSelector.java | 7 +- .../screens/gauntlet/LoadGauntletScreen.java | 13 +- .../screens/gauntlet/NewGauntletScreen.java | 10 +- .../src/forge/screens/home/HomeScreen.java | 13 +- .../screens/home/puzzle/PuzzleScreen.java | 8 +- .../limited/DraftingProcessScreen.java | 3 +- .../screens/limited/LoadDraftScreen.java | 13 +- .../screens/limited/LoadSealedScreen.java | 13 +- .../forge/screens/match/MatchController.java | 42 ++-- .../src/forge/screens/match/MatchScreen.java | 51 ++--- .../forge/screens/match/TargetingOverlay.java | 1 - .../match/views/VAssignCombatDamage.java | 26 +-- .../match/views/VAssignGenericAmount.java | 26 +-- .../screens/match/views/VAutoYields.java | 12 +- .../forge/screens/match/views/VAvatar.java | 1 - .../screens/match/views/VCardDisplayArea.java | 11 +- .../src/forge/screens/match/views/VField.java | 6 +- .../src/forge/screens/match/views/VLog.java | 5 +- .../forge/screens/match/views/VManaPool.java | 7 +- .../screens/match/views/VPhaseIndicator.java | 7 +- .../screens/match/views/VPlayerPanel.java | 11 +- .../forge/screens/match/views/VPlayers.java | 7 +- .../forge/screens/match/views/VPrompt.java | 4 +- .../src/forge/screens/match/views/VStack.java | 17 +- .../screens/match/views/VZoneDisplay.java | 4 +- .../match/winlose/GauntletWinLose.java | 4 +- .../screens/match/winlose/ViewWinLose.java | 16 +- .../screens/online/OnlineChatScreen.java | 1 - .../screens/online/OnlineLobbyScreen.java | 7 +- .../src/forge/screens/online/OnlineMenu.java | 4 +- .../planarconquest/ConquestAEtherScreen.java | 27 +-- .../planarconquest/ConquestChaosWheel.java | 1 - .../ConquestCollectionScreen.java | 7 +- .../ConquestCommandersScreen.java | 17 +- .../planarconquest/ConquestDeckEditor.java | 4 +- .../ConquestMultiverseScreen.java | 40 +--- .../planarconquest/ConquestPlaneSelector.java | 11 +- .../ConquestPlaneswalkScreen.java | 1 - .../planarconquest/ConquestPrefsScreen.java | 9 +- .../planarconquest/ConquestRewardDialog.java | 13 +- .../planarconquest/ConquestStatsScreen.java | 7 +- .../planarconquest/LoadConquestScreen.java | 12 +- .../planarconquest/NewConquestScreen.java | 1 - .../forge/screens/quest/LoadQuestScreen.java | 16 +- .../forge/screens/quest/NewQuestScreen.java | 29 +-- .../screens/quest/QuestBazaarScreen.java | 15 +- .../screens/quest/QuestChallengesScreen.java | 1 - .../forge/screens/quest/QuestDeckEditor.java | 6 +- .../forge/screens/quest/QuestDecksScreen.java | 1 - .../forge/screens/quest/QuestDuelsScreen.java | 5 +- .../forge/screens/quest/QuestEventPanel.java | 7 +- .../src/forge/screens/quest/QuestMenu.java | 6 +- .../forge/screens/quest/QuestPrefsScreen.java | 9 +- .../screens/quest/QuestSpellShopScreen.java | 13 +- .../forge/screens/quest/QuestStatsScreen.java | 12 +- .../screens/quest/QuestTournamentsScreen.java | 12 +- .../src/forge/screens/settings/FilesPage.java | 57 +++--- .../forge/screens/settings/GuiDownloader.java | 10 +- .../src/forge/toolbox/DualListBox.java | 9 +- .../src/forge/toolbox/FButton.java | 4 +- .../src/forge/toolbox/FCheckBox.java | 1 - .../src/forge/toolbox/FChoiceList.java | 13 +- .../src/forge/toolbox/FComboBox.java | 9 +- .../src/forge/toolbox/FContainer.java | 9 +- .../src/forge/toolbox/FDialog.java | 1 - .../src/forge/toolbox/FDisplayObject.java | 5 +- .../src/forge/toolbox/FFileChooser.java | 10 +- .../src/forge/toolbox/FGestureAdapter.java | 1 - .../src/forge/toolbox/FGroupBox.java | 1 - .../src/forge/toolbox/FGroupList.java | 6 +- .../src/forge/toolbox/FLabel.java | 7 +- forge-gui-mobile/src/forge/toolbox/FList.java | 9 +- .../src/forge/toolbox/FOptionPane.java | 8 +- .../src/forge/toolbox/FOverlay.java | 9 +- .../src/forge/toolbox/FProgressBar.java | 12 +- .../src/forge/toolbox/FRadioButton.java | 7 +- .../src/forge/toolbox/FScrollPane.java | 5 +- .../src/forge/toolbox/FTextArea.java | 1 - .../src/forge/toolbox/FTextField.java | 1 - .../src/forge/toolbox/FToggleSwitch.java | 1 - .../src/forge/toolbox/GuiChoose.java | 15 +- .../src/forge/toolbox/GuiDialog.java | 8 +- .../src/forge/toolbox/ListChooser.java | 9 +- .../src/forge/util/LibGDXImageFetcher.java | 9 +- .../res/adventure/Shandalar/world/black.json | 178 +++++++++++++---- .../res/adventure/Shandalar/world/blue.json | 160 ++++++++++++---- .../res/adventure/Shandalar/world/green.json | 26 +-- .../res/adventure/Shandalar/world/red.json | 179 ++++++++++++++---- .../Shandalar/world/tilesets/circle.png | Bin 0 -> 9611 bytes .../Shandalar/world/tilesets/deep_swamp.png | Bin 0 -> 11197 bytes .../Shandalar/world/tilesets/forest.png | Bin 16786 -> 5955 bytes .../Shandalar/world/tilesets/forestSource.png | Bin 10751 -> 0 bytes .../Shandalar/world/tilesets/hole.png | Bin 0 -> 10184 bytes .../world/tilesets/island_forest.png | Bin 0 -> 8670 bytes .../Shandalar/world/tilesets/lake.png | Bin 0 -> 10109 bytes .../Shandalar/world/tilesets/lakeSource.png | Bin 10750 -> 0 bytes .../Shandalar/world/tilesets/lava.png | Bin 0 -> 11819 bytes .../Shandalar/world/tilesets/moon.png | Bin 0 -> 10925 bytes .../Shandalar/world/tilesets/moon2.png | Bin 0 -> 10837 bytes .../Shandalar/world/tilesets/moon3.png | Bin 0 -> 10545 bytes .../Shandalar/world/tilesets/moon4.png | Bin 0 -> 10606 bytes .../Shandalar/world/tilesets/mountain.png | Bin 0 -> 6084 bytes .../world/tilesets/mountain_forest.png | Bin 0 -> 11197 bytes .../world/tilesets/plains_forest.png | Bin 0 -> 5761 bytes .../Shandalar/world/tilesets/plateau.png | Bin 0 -> 9010 bytes .../Shandalar/world/tilesets/ring.png | Bin 0 -> 11799 bytes .../Shandalar/world/tilesets/ring2.png | Bin 0 -> 12684 bytes .../Shandalar/world/tilesets/structures.atlas | 67 +++++-- .../Shandalar/world/tilesets/structures.png | Bin 89101 -> 40939 bytes .../Shandalar/world/tilesets/swamp.png | Bin 0 -> 11213 bytes .../Shandalar/world/tilesets/swamp_forest.png | Bin 0 -> 6167 bytes .../Shandalar/world/tilesets/swamp_ruins.png | Bin 0 -> 11665 bytes .../world/tilesets/waste_structure.png | Bin 0 -> 7804 bytes .../Shandalar/world/tilesets/water.png | Bin 0 -> 7139 bytes .../res/adventure/Shandalar/world/waste.json | 174 +++++++++++++---- .../res/adventure/Shandalar/world/white.json | 149 +++++++++++---- 229 files changed, 1329 insertions(+), 1283 deletions(-) create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/circle.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/deep_swamp.png delete mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/forestSource.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/hole.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/island_forest.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/lake.png delete mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/lakeSource.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/lava.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/moon.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/moon2.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/moon3.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/moon4.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/mountain.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/mountain_forest.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/plains_forest.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/plateau.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/ring.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/ring2.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/swamp.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/swamp_forest.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/swamp_ruins.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/waste_structure.png create mode 100644 forge-gui/res/adventure/Shandalar/world/tilesets/water.png diff --git a/forge-adventure/src/main/java/forge/adventure/editor/BiomeEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/BiomeEdit.java index e3e7e598f82..5cfdf01f0fa 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/BiomeEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/BiomeEdit.java @@ -3,8 +3,6 @@ package forge.adventure.editor; import forge.adventure.data.BiomeData; import javax.swing.*; -import java.awt.*; -import java.util.Arrays; public class BiomeEdit extends FormPanel { BiomeData currentData; diff --git a/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureDataMappingEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureDataMappingEditor.java index 39c1c2cbca8..9ff1938ecf3 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureDataMappingEditor.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureDataMappingEditor.java @@ -2,7 +2,6 @@ package forge.adventure.editor; import forge.adventure.data.BiomeStructureData; import forge.adventure.util.Config; -import forge.adventure.world.BiomeStructure; import javax.swing.*; import java.awt.*; diff --git a/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureEdit.java index 3d55f5f7a51..3682fede08c 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/BiomeStructureEdit.java @@ -6,8 +6,6 @@ import forge.adventure.data.BiomeStructureData; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; -import java.awt.image.BufferedImage; public class BiomeStructureEdit extends FormPanel { private boolean updating=false; @@ -21,6 +19,7 @@ public class BiomeStructureEdit extends FormPanel { public JCheckBox randomPosition=new JCheckBox(); public IntSpinner N= new IntSpinner(); public JTextField sourcePath= new JTextField(); + public JTextField maskPath= new JTextField(); public JCheckBox periodicInput= new JCheckBox(); public IntSpinner ground= new IntSpinner(); public IntSpinner symmetry= new IntSpinner(); @@ -37,6 +36,7 @@ public class BiomeStructureEdit extends FormPanel { center.add("height:",height); center.add("N:",N); center.add("sourcePath:",sourcePath); + center.add("maskPath:",maskPath); center.add("periodicInput:",periodicInput); center.add("ground:",ground); center.add("symmetry:",symmetry); @@ -56,6 +56,7 @@ public class BiomeStructureEdit extends FormPanel { N.addChangeListener(e -> BiomeStructureEdit.this.updateStructure()); sourcePath.getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeStructureEdit.this.updateStructure())); + maskPath.getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeStructureEdit.this.updateStructure())); periodicInput.addChangeListener(e -> BiomeStructureEdit.this.updateStructure()); ground.addChangeListener(e -> BiomeStructureEdit.this.updateStructure()); symmetry.addChangeListener(e -> BiomeStructureEdit.this.updateStructure()); @@ -78,6 +79,7 @@ public class BiomeStructureEdit extends FormPanel { randomPosition.setSelected(currentData.randomPosition); N.setValue(currentData.N); sourcePath.setText(currentData.sourcePath); + maskPath.setText(currentData.maskPath); periodicInput.setSelected(currentData.periodicInput); ground.setValue(currentData.ground); symmetry.setValue(currentData.symmetry); @@ -105,6 +107,7 @@ public class BiomeStructureEdit extends FormPanel { currentData.N= N.intValue(); currentData.sourcePath= sourcePath.getText(); + currentData.maskPath= maskPath.getText(); currentData.periodicInput= periodicInput.isSelected(); currentData.ground= ground.intValue(); currentData.symmetry= symmetry.intValue(); diff --git a/forge-adventure/src/main/java/forge/adventure/editor/BiomeTerrainEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/BiomeTerrainEdit.java index 88bde85698f..86698e0fcdf 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/BiomeTerrainEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/BiomeTerrainEdit.java @@ -6,7 +6,6 @@ import forge.adventure.data.BiomeTerrainData; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; public class BiomeTerrainEdit extends FormPanel { SwingAtlasPreview preview=new SwingAtlasPreview(128); diff --git a/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java index 1221e41a7a4..656e79651a1 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/EffectEditor.java @@ -5,7 +5,6 @@ import forge.adventure.data.EffectData; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; public class EffectEditor extends JComponent { EffectData currentData; diff --git a/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java index 1375670a00d..9e328887297 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/EnemyEdit.java @@ -3,7 +3,6 @@ package forge.adventure.editor; import forge.adventure.data.EnemyData; import javax.swing.*; -import java.awt.*; /** * Editor class to edit configuration, maybe moved or removed diff --git a/forge-adventure/src/main/java/forge/adventure/editor/PointOfInterestEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/PointOfInterestEdit.java index cc7daa8ce70..2f883dae9db 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/PointOfInterestEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/PointOfInterestEdit.java @@ -3,7 +3,6 @@ package forge.adventure.editor; import forge.adventure.data.PointOfInterestData; import javax.swing.*; -import java.awt.*; public class PointOfInterestEdit extends JComponent { diff --git a/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java index 076261013ce..a5fe5e4fd83 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java @@ -7,7 +7,6 @@ import forge.game.keyword.Keyword; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; import java.util.Arrays; /** diff --git a/forge-adventure/src/main/java/forge/adventure/editor/StructureEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/StructureEditor.java index 9181f6392df..36c99614196 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/StructureEditor.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/StructureEditor.java @@ -2,7 +2,6 @@ package forge.adventure.editor; import forge.adventure.data.BiomeData; import forge.adventure.data.BiomeStructureData; -import forge.adventure.data.WorldData; import forge.adventure.util.Config; import forge.adventure.world.BiomeStructure; @@ -83,13 +82,14 @@ public class StructureEditor extends JComponent{ private void test() { if (list.isSelectionEmpty()) return; + long start = System.currentTimeMillis(); BiomeStructureData data = model.get(list.getSelectedIndex()); try { BiomeStructure struct = new BiomeStructure(data, System.currentTimeMillis(), - (int) (currentData.width * EditorMainWindow.worldEditor.width.intValue() * data.width), - (int) (currentData.width * EditorMainWindow.worldEditor.height.intValue() * data.height)); + (int) (currentData.width * EditorMainWindow.worldEditor.width.intValue() ), + (int) (currentData.width * EditorMainWindow.worldEditor.height.intValue())); struct.initialize(); JLabel label = new JLabel(); BufferedImage image = struct.image; @@ -111,11 +111,14 @@ public class StructureEditor extends JComponent{ } label.setIcon(new ImageIcon(image)); label.setSize(640, 640); - JOptionPane.showMessageDialog(this, label); + + + + JOptionPane.showMessageDialog(this, label,"Calculating took "+ ((System.currentTimeMillis() - start)/1000)+" seconds",JOptionPane.PLAIN_MESSAGE); } catch (Exception e) { - JOptionPane.showMessageDialog(this, "WaveFunctionCollapse was not successful"); + JOptionPane.showMessageDialog(this, "WaveFunctionCollapse was not successful","can not calculate function "+e.getMessage(),JOptionPane.ERROR_MESSAGE); } } diff --git a/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlas.java b/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlas.java index 943e3df96e4..6241b824add 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlas.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlas.java @@ -55,15 +55,25 @@ public class SwingAtlas { } private ImageIcon spriteToImage(TextureAtlas.TextureAtlasData.Region sprite) throws IOException { - BufferedImage img = ImageIO.read(sprite.page.textureFile.file()); - if(sprite.width== sprite.height) - return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance(imageSize,imageSize,SCALE_FAST)); - if(sprite.width>sprite.height) - return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance(imageSize, (int) (imageSize*(sprite.height/(float)sprite.width)),SCALE_FAST)); - return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance((int) (imageSize*(sprite.width/(float)sprite.height)),imageSize,SCALE_FAST)); - } + try + { + BufferedImage img = ImageIO.read(sprite.page.textureFile.file()); + if(sprite.width== sprite.height) + return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance(imageSize,imageSize,SCALE_FAST)); + if(sprite.width>sprite.height) + return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance(imageSize, (int) (imageSize*(sprite.height/(float)sprite.width)),SCALE_FAST)); + return new ImageIcon(img.getSubimage(sprite.left,sprite.top, sprite.width, sprite.height).getScaledInstance((int) (imageSize*(sprite.width/(float)sprite.height)),imageSize,SCALE_FAST)); + + } + catch (IOException e) + { + return null; + } +} public ImageIcon get(String name) { + if(images.get(name).size()==0) + return null; return images.get(name).get(0); } diff --git a/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlasPreview.java b/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlasPreview.java index 4a01fd30603..97e67659848 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlasPreview.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/SwingAtlasPreview.java @@ -4,7 +4,6 @@ import forge.adventure.util.Config; import org.apache.commons.lang3.tuple.Pair; import javax.swing.*; -import java.awt.*; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; diff --git a/forge-adventure/src/main/java/forge/adventure/editor/TextListEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/TextListEdit.java index 7388d926db1..8cc56aac09c 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/TextListEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/TextListEdit.java @@ -3,6 +3,7 @@ package forge.adventure.editor; import forge.adventure.util.Config; import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -27,6 +28,7 @@ public class TextListEdit extends Box { }); add(edit); + edit.setPreferredSize(new Dimension(400,edit.getPreferredSize().height)); //add(findButton); elements= new JComboBox(possibleElements); add(elements); @@ -84,7 +86,7 @@ public class TextListEdit extends Box { { values.append(intValues[i]); if(intValues.length>i+2) - values.append(";"); + values.append("\n"); } edit.setText(values.toString()); } diff --git a/forge-adventure/src/main/java/forge/adventure/editor/WorldEditor.java b/forge-adventure/src/main/java/forge/adventure/editor/WorldEditor.java index 437ecce9e76..d2ee9ea1f9a 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/WorldEditor.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/WorldEditor.java @@ -1,7 +1,6 @@ package forge.adventure.editor; import com.badlogic.gdx.files.FileHandle; -import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; import com.badlogic.gdx.utils.JsonWriter; import forge.adventure.data.BiomeData; @@ -16,7 +15,6 @@ import java.awt.*; import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; public class WorldEditor extends JComponent { diff --git a/forge-gui-mobile/src/forge/CachedCardImage.java b/forge-gui-mobile/src/forge/CachedCardImage.java index 51ae26f81cc..7919d23d762 100644 --- a/forge-gui-mobile/src/forge/CachedCardImage.java +++ b/forge-gui-mobile/src/forge/CachedCardImage.java @@ -1,7 +1,6 @@ package forge; import com.badlogic.gdx.graphics.Texture; - import forge.assets.ImageCache; import forge.game.card.CardView; import forge.gui.GuiBase; diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 830775aa7ed..10b83090d62 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -5,11 +5,7 @@ import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.InputProcessor; -import com.badlogic.gdx.graphics.Cursor; -import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.Pixmap; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.TextureData; +import com.badlogic.gdx.graphics.*; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; @@ -23,11 +19,7 @@ import forge.adventure.scene.SceneType; import forge.adventure.stage.MapStage; import forge.adventure.util.Config; import forge.animation.ForgeAnimation; -import forge.assets.Assets; -import forge.assets.AssetsDownloader; -import forge.assets.FSkin; -import forge.assets.FSkinFont; -import forge.assets.ImageCache; +import forge.assets.*; import forge.error.ExceptionHandler; import forge.gamemodes.limited.BoosterDraft; import forge.gui.FThreads; diff --git a/forge-gui-mobile/src/forge/Graphics.java b/forge-gui-mobile/src/forge/Graphics.java index da4feba9f20..a2b64e15c34 100644 --- a/forge-gui-mobile/src/forge/Graphics.java +++ b/forge-gui-mobile/src/forge/Graphics.java @@ -1,10 +1,10 @@ package forge; -import java.util.ArrayDeque; -import java.util.Deque; - import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.*; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.ShaderProgram; @@ -15,7 +15,6 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.scenes.scene2d.utils.ScissorStack; - import forge.assets.FImage; import forge.assets.FSkinColor; import forge.assets.FSkinFont; @@ -23,6 +22,9 @@ import forge.toolbox.FDisplayObject; import forge.util.TextBounds; import forge.util.Utils; +import java.util.ArrayDeque; +import java.util.Deque; + public class Graphics { private static final int GL_BLEND = GL20.GL_BLEND; private static final int GL_LINE_SMOOTH = 2848; //create constant here since not in GL20 diff --git a/forge-gui-mobile/src/forge/adventure/character/CharacterSprite.java b/forge-gui-mobile/src/forge/adventure/character/CharacterSprite.java index ad356681ea7..ee768ab3c5b 100644 --- a/forge-gui-mobile/src/forge/adventure/character/CharacterSprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/CharacterSprite.java @@ -1,11 +1,6 @@ package forge.adventure.character; -import com.badlogic.gdx.graphics.g2d.Animation; -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.Sprite; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; -import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.graphics.g2d.*; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Array; diff --git a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java index 4a487dd5d20..19c2836f7d1 100644 --- a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java @@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Array; diff --git a/forge-gui-mobile/src/forge/adventure/character/RewardSprite.java b/forge-gui-mobile/src/forge/adventure/character/RewardSprite.java index dda93529618..a6ba72c8b55 100644 --- a/forge-gui-mobile/src/forge/adventure/character/RewardSprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/RewardSprite.java @@ -1,6 +1,5 @@ package forge.adventure.character; -import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Array; import forge.adventure.data.RewardData; import forge.adventure.util.JSONStringLoader; diff --git a/forge-gui-mobile/src/forge/adventure/data/BiomeData.java b/forge-gui-mobile/src/forge/adventure/data/BiomeData.java index 2e5c220cec2..1bd21bc2ecb 100644 --- a/forge-gui-mobile/src/forge/adventure/data/BiomeData.java +++ b/forge-gui-mobile/src/forge/adventure/data/BiomeData.java @@ -6,7 +6,6 @@ import forge.util.MyRandom; import java.io.Serializable; import java.util.ArrayList; -import java.util.List; import java.util.Random; /** diff --git a/forge-gui-mobile/src/forge/adventure/data/BiomeStructureData.java b/forge-gui-mobile/src/forge/adventure/data/BiomeStructureData.java index 02bf44caaf7..4769635fda6 100644 --- a/forge-gui-mobile/src/forge/adventure/data/BiomeStructureData.java +++ b/forge-gui-mobile/src/forge/adventure/data/BiomeStructureData.java @@ -1,6 +1,5 @@ package forge.adventure.data; -import java.awt.*; import java.awt.image.BufferedImage; public class BiomeStructureData { @@ -31,6 +30,7 @@ public class BiomeStructureData { public String structureAtlasPath; public String sourcePath; + public String maskPath; public boolean periodicInput=true; public float height; public float width; @@ -45,6 +45,7 @@ public class BiomeStructureData { public BiomeStructureData(BiomeStructureData biomeStructureData) { this.structureAtlasPath=biomeStructureData.structureAtlasPath; this.sourcePath=biomeStructureData.sourcePath; + this.maskPath=biomeStructureData.maskPath; this.x=biomeStructureData.x; this.y=biomeStructureData.y; this.width=biomeStructureData.width; diff --git a/forge-gui-mobile/src/forge/adventure/data/ConfigData.java b/forge-gui-mobile/src/forge/adventure/data/ConfigData.java index 04b9efdc1b4..e904058a6e3 100644 --- a/forge-gui-mobile/src/forge/adventure/data/ConfigData.java +++ b/forge-gui-mobile/src/forge/adventure/data/ConfigData.java @@ -1,8 +1,6 @@ package forge.adventure.data; -import java.util.List; - /** * Data class that will be used to read Json configuration files * BiomeData diff --git a/forge-gui-mobile/src/forge/adventure/data/UIData.java b/forge-gui-mobile/src/forge/adventure/data/UIData.java index d1ece9a84db..a9d528ea818 100644 --- a/forge-gui-mobile/src/forge/adventure/data/UIData.java +++ b/forge-gui-mobile/src/forge/adventure/data/UIData.java @@ -1,6 +1,5 @@ package forge.adventure.data; -import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.OrderedMap; /** diff --git a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java index 57db089e307..3c1301ae7e5 100644 --- a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java +++ b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java @@ -5,7 +5,10 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Null; import com.google.common.collect.Lists; -import forge.adventure.data.*; +import forge.adventure.data.DifficultyData; +import forge.adventure.data.EffectData; +import forge.adventure.data.HeroListData; +import forge.adventure.data.ItemData; import forge.adventure.util.*; import forge.adventure.world.WorldSave; import forge.deck.CardPool; @@ -18,7 +21,10 @@ import forge.util.ItemPool; import forge.util.MyRandom; import java.io.Serializable; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; /** * Class that represents the player (not the player sprite) diff --git a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java index cff35135c80..8362057f3e0 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java +++ b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java @@ -9,18 +9,10 @@ import forge.adventure.player.AdventurePlayer; import forge.assets.FImage; import forge.assets.FSkinFont; import forge.assets.FSkinImage; -import forge.deck.CardPool; -import forge.deck.Deck; -import forge.deck.DeckFormat; -import forge.deck.DeckSection; -import forge.deck.FDeckViewer; +import forge.deck.*; import forge.item.InventoryItem; import forge.item.PaperCard; -import forge.itemmanager.CardManager; -import forge.itemmanager.ColumnDef; -import forge.itemmanager.ItemColumn; -import forge.itemmanager.ItemManager; -import forge.itemmanager.ItemManagerConfig; +import forge.itemmanager.*; import forge.itemmanager.filters.ItemFilter; import forge.localinstance.properties.ForgePreferences; import forge.menu.FCheckBoxMenuItem; diff --git a/forge-gui-mobile/src/forge/adventure/scene/DeckSelectScene.java b/forge-gui-mobile/src/forge/adventure/scene/DeckSelectScene.java index 2cc444e966a..c92ee4d4e4a 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DeckSelectScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DeckSelectScene.java @@ -3,12 +3,7 @@ package forge.adventure.scene; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.ui.Dialog; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; -import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; -import com.badlogic.gdx.scenes.scene2d.ui.TextField; +import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.IntMap; diff --git a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java index 6899204efdf..003a39dbd7e 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java @@ -4,13 +4,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.Actor; -import com.badlogic.gdx.scenes.scene2d.ui.CheckBox; -import com.badlogic.gdx.scenes.scene2d.ui.Image; -import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; -import com.badlogic.gdx.scenes.scene2d.ui.TextField; +import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.badlogic.gdx.utils.Array; diff --git a/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java b/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java index 68be744d25f..05a8a1ee183 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/PlayerStatisticScene.java @@ -4,11 +4,7 @@ import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.scenes.scene2d.ui.Image; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; -import com.badlogic.gdx.scenes.scene2d.ui.Table; -import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.badlogic.gdx.utils.Align; import forge.Forge; diff --git a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java index 907886ec011..6e708079824 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java @@ -13,11 +13,7 @@ import forge.adventure.character.ShopActor; import forge.adventure.player.AdventurePlayer; import forge.adventure.pointofintrest.PointOfInterestChanges; import forge.adventure.stage.GameHUD; -import forge.adventure.util.CardUtil; -import forge.adventure.util.Config; -import forge.adventure.util.Current; -import forge.adventure.util.Reward; -import forge.adventure.util.RewardActor; +import forge.adventure.util.*; import forge.adventure.world.WorldSave; import forge.assets.ImageCache; import forge.sound.SoundEffectType; diff --git a/forge-gui-mobile/src/forge/adventure/scene/SpellSmithScene.java b/forge-gui-mobile/src/forge/adventure/scene/SpellSmithScene.java index 307f24ff778..c70a84a3db3 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/SpellSmithScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/SpellSmithScene.java @@ -3,7 +3,10 @@ package forge.adventure.scene; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.ui.*; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; +import com.badlogic.gdx.scenes.scene2d.ui.SelectBox; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import forge.Forge; @@ -19,7 +22,6 @@ import forge.item.PaperCard; import forge.util.MyRandom; import java.util.*; -import java.util.List; import java.util.stream.Collectors; import java.util.stream.StreamSupport; diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java index 1dc759ef348..4c84835fc91 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java @@ -41,7 +41,6 @@ import forge.screens.TransitionScreen; import forge.sound.SoundEffectType; import forge.sound.SoundSystem; - import java.util.HashMap; import java.util.Map; diff --git a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java index 2c951ca36f3..dc080b8ba65 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java @@ -11,11 +11,7 @@ import forge.adventure.character.EnemySprite; import forge.adventure.data.BiomeData; import forge.adventure.data.EnemyData; import forge.adventure.data.WorldData; -import forge.adventure.scene.DuelScene; -import forge.adventure.scene.RewardScene; -import forge.adventure.scene.Scene; -import forge.adventure.scene.SceneType; -import forge.adventure.scene.TileMapScene; +import forge.adventure.scene.*; import forge.adventure.util.Current; import forge.adventure.util.SaveFileContent; import forge.adventure.util.SaveFileData; diff --git a/forge-gui-mobile/src/forge/adventure/util/MapDialog.java b/forge-gui-mobile/src/forge/adventure/util/MapDialog.java index f86b7fee73e..28d987171e2 100644 --- a/forge-gui-mobile/src/forge/adventure/util/MapDialog.java +++ b/forge-gui-mobile/src/forge/adventure/util/MapDialog.java @@ -1,6 +1,8 @@ package forge.adventure.util; -import com.badlogic.gdx.scenes.scene2d.ui.*; +import com.badlogic.gdx.scenes.scene2d.ui.Dialog; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.Array; import forge.Forge; import forge.adventure.character.EnemySprite; diff --git a/forge-gui-mobile/src/forge/adventure/util/TemplateTmxMapLoader.java b/forge-gui-mobile/src/forge/adventure/util/TemplateTmxMapLoader.java index e98c42eb5cb..c0ee5ab05c5 100644 --- a/forge-gui-mobile/src/forge/adventure/util/TemplateTmxMapLoader.java +++ b/forge-gui-mobile/src/forge/adventure/util/TemplateTmxMapLoader.java @@ -10,11 +10,7 @@ import com.badlogic.gdx.maps.tiled.TiledMapTile; import com.badlogic.gdx.maps.tiled.TiledMapTileSet; import com.badlogic.gdx.maps.tiled.TmxMapLoader; import com.badlogic.gdx.maps.tiled.tiles.AnimatedTiledMapTile; -import com.badlogic.gdx.utils.Array; -import com.badlogic.gdx.utils.GdxRuntimeException; -import com.badlogic.gdx.utils.ObjectMap; -import com.badlogic.gdx.utils.SerializationException; -import com.badlogic.gdx.utils.XmlReader; +import com.badlogic.gdx.utils.*; import forge.Forge; import java.io.File; diff --git a/forge-gui-mobile/src/forge/adventure/util/UIActor.java b/forge-gui-mobile/src/forge/adventure/util/UIActor.java index 7763465fc6a..840fa8e4661 100644 --- a/forge-gui-mobile/src/forge/adventure/util/UIActor.java +++ b/forge-gui-mobile/src/forge/adventure/util/UIActor.java @@ -10,7 +10,6 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; -import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.OrderedMap; diff --git a/forge-gui-mobile/src/forge/adventure/world/BiomeStructure.java b/forge-gui-mobile/src/forge/adventure/world/BiomeStructure.java index 8f970041f68..3dcf0c5b74b 100644 --- a/forge-gui-mobile/src/forge/adventure/world/BiomeStructure.java +++ b/forge-gui-mobile/src/forge/adventure/world/BiomeStructure.java @@ -33,7 +33,14 @@ public class BiomeStructure { public TextureAtlas atlas() { if(structureAtlas==null) { - structureAtlas = Config.instance().getAtlas(data.structureAtlasPath); + try + { + structureAtlas = Config.instance().getAtlas(data.structureAtlasPath); + } + catch (Exception e) + { + e.printStackTrace(); + } } return structureAtlas; } @@ -62,23 +69,31 @@ public class BiomeStructure { } boolean suc=false; for(int i=0;i<10&&!suc;i++) - suc=model.run((int) seed+(i*5355),15000); + suc=model.run((int) seed+(i*5355),0); if(!suc) { dataMap=new int[(int) (data.width* biomeWidth)][ (int) (data.height*biomeHeight)]; collisionMap=new boolean[(int) (data.width* biomeWidth)][ (int) (data.height*biomeHeight)]; + for(int x=0;x pics = new ArrayList<>(); ArrayList spics = new ArrayList<>(); + if(!region.getTexture().getTextureData().isPrepared()) region.getTexture().getTextureData().prepare(); Pixmap completePicture = region.getTexture().getTextureData().consumePixmap(); for (int y = 0; y < 4; y++) { diff --git a/forge-gui-mobile/src/forge/adventure/world/World.java b/forge-gui-mobile/src/forge/adventure/world/World.java index 09dbe9dd750..c819d49aac6 100644 --- a/forge-gui-mobile/src/forge/adventure/world/World.java +++ b/forge-gui-mobile/src/forge/adventure/world/World.java @@ -274,9 +274,19 @@ private void clearTerrain(int x,int y,int size) } } +} +private long measureGenerationTime(String msg,long lastTime) +{ + long currentTime = System.currentTimeMillis(); + System.out.print("\n"+msg+" :\t\t"+((currentTime-lastTime)/1000f)+" s"); + return currentTime; } public World generateNew(long seed) { + + long currentTime = System.currentTimeMillis(); + loadWorldData(); + if(seed==0) { seed=random.nextLong(); } this.seed=seed; random.setSeed(seed); @@ -301,6 +311,7 @@ private void clearTerrain(int x,int y,int size) pix.fill(); int biomeIndex = -1; + currentTime=measureGenerationTime("loading data",currentTime); for (BiomeData biome : data.GetBiomes()) { biomeIndex++; @@ -311,8 +322,8 @@ private void clearTerrain(int x,int y,int size) int beginX = Math.max(biomeXStart - biomeWidth / 2, 0); int beginY = Math.max(biomeYStart - biomeHeight / 2, 0); - int endX = Math.min(biomeXStart + biomeWidth, width); - int endY = Math.min(biomeYStart + biomeHeight, height); + int endX = Math.min(biomeXStart + biomeWidth/2, width); + int endY = Math.min(biomeYStart + biomeHeight/2, height); if (biome.width == 1.0 && biome.height == 1.0) { beginX = 0; beginY = 0; @@ -358,21 +369,29 @@ private void clearTerrain(int x,int y,int size) { for(BiomeStructureData data:biome.structures) { + BiomeStructure structure; if(!structureDataMap.containsKey(data)) { - structureDataMap.put(data,new BiomeStructure(data,seed,biomeWidth,biomeHeight)); + structure=new BiomeStructure(data,seed,biomeWidth,biomeHeight); + structure.initialize(); + structureDataMap.put(data,structure); + currentTime=measureGenerationTime("wavefunctioncollapse "+data.sourcePath,currentTime); } - structure=structureDataMap.get(data); - int structureXStart= structure.x()+beginX; - int structureYStart= structure.y()+beginY; - int structureIndex=structure.objectID(x-structureXStart,y-structureYStart); + else + { + structure=structureDataMap.get(data); + } + int structureXStart= x-(biomeXStart - biomeWidth / 2)-(int) ((data.x*biomeWidth)-(data.width*biomeWidth/2)); + int structureYStart= y-(biomeYStart - biomeHeight / 2)- (int) ((data.y*biomeHeight)-(data.height*biomeHeight/2)); + + int structureIndex=structure.objectID(structureXStart,structureYStart); if(structureIndex>=0) { pix.setColor(data.mappingInfo[structureIndex].getColor()); pix.drawPixel(x, y); terrainMap[x][y]=terrainCounter+structureIndex; - if(structure.collision(x-structureXStart,y-structureYStart)) + if(structure.collision(structureXStart,structureYStart)) terrainMap[x][y]|=collisionBit; terrainMap[x][y]|=isStructureBit; @@ -485,6 +504,7 @@ private void clearTerrain(int x,int y,int size) } } + currentTime=measureGenerationTime("poi placement",currentTime); //sort towns List> allSortedTowns = new ArrayList<>(); @@ -624,6 +644,7 @@ private void clearTerrain(int x,int y,int size) } } } + currentTime=measureGenerationTime("roads",currentTime); mapObjectIds = new SpritesDataMap(getChunkSize(), data.tileSize, data.width / getChunkSize()); for (int x = 0; x < width; x++) { @@ -656,7 +677,7 @@ private void clearTerrain(int x,int y,int size) } } biomeImage = pix; - + measureGenerationTime("sprites",currentTime); WorldStage.getInstance().clearCache(); return this; } diff --git a/forge-gui-mobile/src/forge/animation/ForgeAnimation.java b/forge-gui-mobile/src/forge/animation/ForgeAnimation.java index 4ce7ceb42d3..7c7566f7323 100644 --- a/forge-gui-mobile/src/forge/animation/ForgeAnimation.java +++ b/forge-gui-mobile/src/forge/animation/ForgeAnimation.java @@ -1,12 +1,11 @@ package forge.animation; +import com.badlogic.gdx.Gdx; +import forge.Forge; + import java.util.ArrayList; import java.util.List; -import com.badlogic.gdx.Gdx; - -import forge.Forge; - public abstract class ForgeAnimation { private static final List activeAnimations = new ArrayList<>(); // A guard against inspecting activeAnimations while it's in the process of being edited diff --git a/forge-gui-mobile/src/forge/animation/ForgeTransition.java b/forge-gui-mobile/src/forge/animation/ForgeTransition.java index 4e2fb125394..066b3bdd70a 100644 --- a/forge-gui-mobile/src/forge/animation/ForgeTransition.java +++ b/forge-gui-mobile/src/forge/animation/ForgeTransition.java @@ -1,15 +1,14 @@ package forge.animation; +import com.badlogic.gdx.math.Rectangle; +import forge.Graphics; +import forge.toolbox.FDisplayObject; +import forge.toolbox.FOverlay; + import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; -import com.badlogic.gdx.math.Rectangle; - -import forge.Graphics; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FOverlay; - public class ForgeTransition extends ForgeAnimation { private static final FOverlay overlay = new FOverlay(null) { @Override protected void doLayout(final float width, final float height) { diff --git a/forge-gui-mobile/src/forge/animation/GifAnimation.java b/forge-gui-mobile/src/forge/animation/GifAnimation.java index 6cd7aa7cde5..bdc313a51a7 100644 --- a/forge-gui-mobile/src/forge/animation/GifAnimation.java +++ b/forge-gui-mobile/src/forge/animation/GifAnimation.java @@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.Animation; import com.badlogic.gdx.graphics.g2d.Animation.PlayMode; import com.badlogic.gdx.graphics.g2d.TextureRegion; - import forge.Graphics; public class GifAnimation extends ForgeAnimation { diff --git a/forge-gui-mobile/src/forge/animation/GifDecoder.java b/forge-gui-mobile/src/forge/animation/GifDecoder.java index 506bda6bf6f..4af968cc208 100644 --- a/forge-gui-mobile/src/forge/animation/GifDecoder.java +++ b/forge-gui-mobile/src/forge/animation/GifDecoder.java @@ -5,9 +5,6 @@ package forge.animation; /* Released under Apache 2.0 */ /* https://code.google.com/p/animated-gifs-in-android/ */ -import java.io.InputStream; -import java.util.Vector; - import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Animation; @@ -15,6 +12,9 @@ import com.badlogic.gdx.graphics.g2d.Animation.PlayMode; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Array; +import java.io.InputStream; +import java.util.Vector; + public class GifDecoder { /** * File read status: No errors. diff --git a/forge-gui-mobile/src/forge/assets/AssetsDownloader.java b/forge-gui-mobile/src/forge/assets/AssetsDownloader.java index 02ece668d82..0e5f29264e5 100644 --- a/forge-gui-mobile/src/forge/assets/AssetsDownloader.java +++ b/forge-gui-mobile/src/forge/assets/AssetsDownloader.java @@ -1,24 +1,22 @@ package forge.assets; -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.List; - -import forge.gui.GuiBase; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.gui.FThreads; +import forge.gui.GuiBase; import forge.gui.download.GuiDownloadZipService; import forge.gui.util.SOptionPane; import forge.localinstance.properties.ForgeConstants; import forge.screens.SplashScreen; import forge.util.FileUtil; +import org.apache.commons.lang3.StringUtils; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.List; public class AssetsDownloader { public static final boolean SHARE_DESKTOP_ASSETS = true; //change to false to test downloading separate assets for desktop version diff --git a/forge-gui-mobile/src/forge/assets/BitmapFontWriter.java b/forge-gui-mobile/src/forge/assets/BitmapFontWriter.java index c5b17a2e44a..5ec2993c392 100644 --- a/forge-gui-mobile/src/forge/assets/BitmapFontWriter.java +++ b/forge-gui-mobile/src/forge/assets/BitmapFontWriter.java @@ -23,7 +23,6 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.BitmapFontData; import com.badlogic.gdx.graphics.g2d.BitmapFont.Glyph; import com.badlogic.gdx.graphics.g2d.PixmapPacker.Page; import com.badlogic.gdx.utils.Array; - import forge.util.TextUtil; /** diff --git a/forge-gui-mobile/src/forge/assets/FBufferedImage.java b/forge-gui-mobile/src/forge/assets/FBufferedImage.java index eaebff0e25b..51bd937792c 100644 --- a/forge-gui-mobile/src/forge/assets/FBufferedImage.java +++ b/forge-gui-mobile/src/forge/assets/FBufferedImage.java @@ -7,7 +7,6 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.FrameBuffer; import com.badlogic.gdx.math.Matrix4; - import forge.Graphics; import forge.gui.FThreads; diff --git a/forge-gui-mobile/src/forge/assets/FDelayLoadImage.java b/forge-gui-mobile/src/forge/assets/FDelayLoadImage.java index 10a339f59ba..3559315df78 100644 --- a/forge-gui-mobile/src/forge/assets/FDelayLoadImage.java +++ b/forge-gui-mobile/src/forge/assets/FDelayLoadImage.java @@ -2,7 +2,6 @@ package forge.assets; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; - import com.badlogic.gdx.graphics.g2d.TextureRegion; import forge.Graphics; diff --git a/forge-gui-mobile/src/forge/assets/FLanguage.java b/forge-gui-mobile/src/forge/assets/FLanguage.java index a10d7284174..e5d4c1bfa96 100644 --- a/forge-gui-mobile/src/forge/assets/FLanguage.java +++ b/forge-gui-mobile/src/forge/assets/FLanguage.java @@ -1,16 +1,15 @@ package forge.assets; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; - import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; +import java.util.ArrayList; +import java.util.List; + public class FLanguage { public static void changeLanguage(final String languageName) { diff --git a/forge-gui-mobile/src/forge/assets/FRotatedImage.java b/forge-gui-mobile/src/forge/assets/FRotatedImage.java index 1022aaebd52..2e2c0bd32cf 100644 --- a/forge-gui-mobile/src/forge/assets/FRotatedImage.java +++ b/forge-gui-mobile/src/forge/assets/FRotatedImage.java @@ -1,7 +1,6 @@ package forge.assets; import com.badlogic.gdx.graphics.Texture; - import com.badlogic.gdx.graphics.g2d.TextureRegion; import forge.Graphics; diff --git a/forge-gui-mobile/src/forge/assets/FSkinColor.java b/forge-gui-mobile/src/forge/assets/FSkinColor.java index ae9d69328bc..3aa53bb1a97 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinColor.java +++ b/forge-gui-mobile/src/forge/assets/FSkinColor.java @@ -1,12 +1,11 @@ package forge.assets; -import java.util.HashMap; - import com.badlogic.gdx.graphics.Color; - import forge.localinstance.skin.FSkinProp; import forge.screens.match.TargetingOverlay; +import java.util.HashMap; + public class FSkinColor { public enum Colors { CLR_THEME (FSkinProp.CLR_THEME), diff --git a/forge-gui-mobile/src/forge/assets/FSkinFont.java b/forge-gui-mobile/src/forge/assets/FSkinFont.java index b7fa468dd58..d91563c9744 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinFont.java +++ b/forge-gui-mobile/src/forge/assets/FSkinFont.java @@ -1,10 +1,5 @@ package forge.assets; -import java.io.FileInputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; @@ -20,7 +15,6 @@ import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; import com.badlogic.gdx.utils.Array; - import com.badlogic.gdx.utils.IntSet; import forge.Forge; import forge.gui.FThreads; @@ -30,6 +24,11 @@ import forge.util.LineReader; import forge.util.TextBounds; import forge.util.Utils; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; + public class FSkinFont { private static final int MIN_FONT_SIZE = 8; private static int MAX_FONT_SIZE = 72; diff --git a/forge-gui-mobile/src/forge/assets/FSkinImage.java b/forge-gui-mobile/src/forge/assets/FSkinImage.java index 2e79623a888..d80df909565 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinImage.java +++ b/forge-gui-mobile/src/forge/assets/FSkinImage.java @@ -6,7 +6,6 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; - import forge.Forge; import forge.Graphics; import forge.localinstance.properties.ForgeConstants; diff --git a/forge-gui-mobile/src/forge/assets/FSkinTexture.java b/forge-gui-mobile/src/forge/assets/FSkinTexture.java index be4da23b628..671cd57d1d1 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinTexture.java +++ b/forge-gui-mobile/src/forge/assets/FSkinTexture.java @@ -1,17 +1,16 @@ package forge.assets; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture.TextureWrap; - import forge.Forge; import forge.Graphics; import forge.localinstance.properties.ForgeConstants; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public enum FSkinTexture implements FImage { BG_TEXTURE(ForgeConstants.TEXTURE_BG_FILE, true, false), BG_MATCH(ForgeConstants.MATCH_BG_FILE, false, false), diff --git a/forge-gui-mobile/src/forge/assets/FTextureImage.java b/forge-gui-mobile/src/forge/assets/FTextureImage.java index 292d97c083e..bca8d94fb85 100644 --- a/forge-gui-mobile/src/forge/assets/FTextureImage.java +++ b/forge-gui-mobile/src/forge/assets/FTextureImage.java @@ -1,7 +1,6 @@ package forge.assets; import com.badlogic.gdx.graphics.Texture; - import com.badlogic.gdx.graphics.g2d.TextureRegion; import forge.Graphics; diff --git a/forge-gui-mobile/src/forge/assets/FTextureRegionImage.java b/forge-gui-mobile/src/forge/assets/FTextureRegionImage.java index dcd6c914b1b..0966fb76f97 100644 --- a/forge-gui-mobile/src/forge/assets/FTextureRegionImage.java +++ b/forge-gui-mobile/src/forge/assets/FTextureRegionImage.java @@ -2,7 +2,6 @@ package forge.assets; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; - import forge.Graphics; public class FTextureRegionImage extends FImageComplex { diff --git a/forge-gui-mobile/src/forge/assets/ImageCache.java b/forge-gui-mobile/src/forge/assets/ImageCache.java index 3af05833443..2c6e61060a7 100644 --- a/forge-gui-mobile/src/forge/assets/ImageCache.java +++ b/forge-gui-mobile/src/forge/assets/ImageCache.java @@ -17,48 +17,41 @@ */ package forge.assets; -import java.io.File; -import java.util.ConcurrentModificationException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Queue; -import java.util.Set; - +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.Pixmap.Format; +import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.TextureData; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.PixmapTextureData; import com.google.common.collect.EvictingQueue; import com.google.common.collect.Queues; import com.google.common.collect.Sets; -import forge.deck.DeckProxy; -import forge.gui.FThreads; -import forge.gui.GuiBase; -import forge.util.FileUtil; -import forge.util.TextUtil; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Pair; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.Pixmap.Format; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.TextureRegion; - import forge.Forge; import forge.ImageKeys; import forge.card.CardEdition; import forge.card.CardRenderer; import forge.deck.Deck; +import forge.deck.DeckProxy; import forge.game.card.CardView; import forge.game.player.IHasIcon; +import forge.gui.FThreads; +import forge.gui.GuiBase; import forge.item.InventoryItem; import forge.item.PaperCard; import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; +import forge.util.FileUtil; import forge.util.ImageUtil; +import forge.util.TextUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import java.io.File; +import java.util.*; /** * This class stores ALL card images in a cache with soft values. this means diff --git a/forge-gui-mobile/src/forge/assets/TextRenderer.java b/forge-gui-mobile/src/forge/assets/TextRenderer.java index 9f6c4ee4fcd..d977d6a94b0 100644 --- a/forge-gui-mobile/src/forge/assets/TextRenderer.java +++ b/forge-gui-mobile/src/forge/assets/TextRenderer.java @@ -1,13 +1,7 @@ package forge.assets; -import java.text.BreakIterator; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.card.CardFaceSymbols; @@ -16,6 +10,11 @@ import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; import forge.util.TextBounds; +import java.text.BreakIterator; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + //Encodes text for drawing with symbols and reminder text public class TextRenderer { static { diff --git a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java index cb8cc135829..6c5cf738b89 100644 --- a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java +++ b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java @@ -17,8 +17,6 @@ */ package forge.card; -import java.util.StringTokenizer; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinImage; @@ -26,6 +24,8 @@ import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; import forge.gui.error.BugReporter; +import java.util.StringTokenizer; + public class CardFaceSymbols { public static final float FONT_SIZE_FACTOR = 0.85f; diff --git a/forge-gui-mobile/src/forge/card/CardImage.java b/forge-gui-mobile/src/forge/card/CardImage.java index d542a7509bd..6e7da4f9784 100644 --- a/forge-gui-mobile/src/forge/card/CardImage.java +++ b/forge-gui-mobile/src/forge/card/CardImage.java @@ -1,7 +1,6 @@ package forge.card; import com.badlogic.gdx.graphics.Texture; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index 1a001553b64..e92e7624cc6 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -1,24 +1,13 @@ package forge.card; -import static forge.card.CardRenderer.CROP_MULTIPLIER; -import static forge.card.CardRenderer.isModernFrame; - -import java.util.ArrayList; -import java.util.List; - -import forge.ImageKeys; -import forge.assets.*; -import forge.item.PaperCard; -import forge.util.ImageUtil; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.Graphics; +import forge.ImageKeys; +import forge.assets.*; import forge.card.CardRenderer.CardStackPosition; import forge.card.mana.ManaCost; import forge.game.GameView; @@ -27,13 +16,22 @@ import forge.game.card.CardView.CardStateView; import forge.game.zone.ZoneType; import forge.gui.card.CardDetailUtil; import forge.gui.card.CardDetailUtil.DetailColors; +import forge.item.PaperCard; import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; import forge.screens.FScreen; import forge.screens.match.MatchController; import forge.util.CardTranslation; +import forge.util.ImageUtil; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +import static forge.card.CardRenderer.CROP_MULTIPLIER; +import static forge.card.CardRenderer.isModernFrame; public class CardImageRenderer { private static final float BASE_IMAGE_WIDTH = 360; diff --git a/forge-gui-mobile/src/forge/card/CardListPreview.java b/forge-gui-mobile/src/forge/card/CardListPreview.java index cd6411f8c72..4a321eb48c0 100644 --- a/forge-gui-mobile/src/forge/card/CardListPreview.java +++ b/forge-gui-mobile/src/forge/card/CardListPreview.java @@ -2,7 +2,6 @@ package forge.card; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.item.PaperCard; import forge.toolbox.FChoiceList; import forge.toolbox.FLabel; diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index bb1ab421dad..a7713347fae 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -1,17 +1,5 @@ package forge.card; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import forge.ImageKeys; -import forge.localinstance.properties.ForgeConstants; -import forge.util.*; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; @@ -27,19 +15,11 @@ import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFont import com.badlogic.gdx.graphics.glutils.PixmapTextureData; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Array; - import forge.CachedCardImage; import forge.Forge; import forge.Graphics; -import forge.assets.FImage; -import forge.assets.FImageComplex; -import forge.assets.FRotatedImage; -import forge.assets.FSkin; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.FTextureRegionImage; -import forge.assets.ImageCache; +import forge.ImageKeys; +import forge.assets.*; import forge.card.CardZoom.ActivateHandler; import forge.card.mana.ManaCost; import forge.game.card.CardView; @@ -51,12 +31,20 @@ import forge.gui.card.CardDetailUtil; import forge.gui.card.CardDetailUtil.DetailColors; import forge.item.IPaperCard; import forge.item.InventoryItem; +import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgeConstants.CounterDisplayType; import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; import forge.screens.match.MatchController; import forge.toolbox.FList; +import forge.util.CardTranslation; +import forge.util.FileUtil; +import forge.util.TextBounds; +import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; public class CardRenderer { public enum CardStackPosition { diff --git a/forge-gui-mobile/src/forge/card/CardZoom.java b/forge-gui-mobile/src/forge/card/CardZoom.java index 2100a310b9b..461c9e049f1 100644 --- a/forge-gui-mobile/src/forge/card/CardZoom.java +++ b/forge-gui-mobile/src/forge/card/CardZoom.java @@ -1,13 +1,8 @@ package forge.card; -import java.util.ArrayList; -import java.util.List; -import java.util.Map.Entry; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinImage; @@ -30,6 +25,10 @@ import forge.toolbox.FOverlay; import forge.util.Utils; import forge.util.collect.FCollectionView; +import java.util.ArrayList; +import java.util.List; +import java.util.Map.Entry; + public class CardZoom extends FOverlay { private static final float REQ_AMOUNT = Utils.AVG_FINGER_WIDTH; diff --git a/forge-gui-mobile/src/forge/card/GameEntityPicker.java b/forge-gui-mobile/src/forge/card/GameEntityPicker.java index 22aa5cb889f..ccb1b2d8254 100644 --- a/forge-gui-mobile/src/forge/card/GameEntityPicker.java +++ b/forge-gui-mobile/src/forge/card/GameEntityPicker.java @@ -1,11 +1,6 @@ package forge.card; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -22,6 +17,10 @@ import forge.toolbox.FOptionPane; import forge.toolbox.FTextField; import forge.util.Callback; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + public class GameEntityPicker extends TabPageScreen { private final FOptionPane optionPane; diff --git a/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java b/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java index 31819c20052..01fda9ec328 100644 --- a/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java +++ b/forge-gui-mobile/src/forge/deck/AddBasicLandsDialog.java @@ -17,13 +17,8 @@ */ package forge.deck; -import java.text.NumberFormat; -import java.util.Map; -import java.util.Map.Entry; - import com.badlogic.gdx.utils.Align; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; import forge.StaticData; @@ -37,21 +32,16 @@ import forge.card.CardZoom; import forge.card.mana.ManaCostShard; import forge.item.PaperCard; import forge.model.FModel; -import forge.toolbox.FCardPanel; -import forge.toolbox.FComboBox; -import forge.toolbox.FContainer; -import forge.toolbox.FDialog; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; -import forge.toolbox.FTextArea; import forge.util.Callback; import forge.util.MyRandom; import forge.util.Utils; +import java.text.NumberFormat; +import java.util.Map; +import java.util.Map.Entry; + public class AddBasicLandsDialog extends FDialog { private static final float ADD_BTN_SIZE = Utils.AVG_FINGER_HEIGHT * 0.75f; diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index dea7c235863..32db7788bb7 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -1,20 +1,7 @@ package forge.deck; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import forge.util.MyRandom; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.assets.ImageCache; import forge.deck.FDeckEditor.EditorType; @@ -43,17 +30,16 @@ import forge.screens.FScreen; import forge.screens.LoadingOverlay; import forge.screens.home.NewGameMenu.NewGameScreen; import forge.screens.match.MatchController; -import forge.toolbox.FButton; -import forge.toolbox.FComboBox; -import forge.toolbox.FContainer; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FOptionPane; -import forge.toolbox.GuiChoose; -import forge.toolbox.ListChooser; import forge.util.Callback; +import forge.util.MyRandom; import forge.util.Utils; import forge.util.storage.IStorage; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; +import java.util.stream.Collectors; public class FDeckChooser extends FScreen { public static final float PADDING = Utils.scale(5); diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index d55d25ca4e6..72cd70e2fad 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -35,7 +35,10 @@ import forge.screens.TabPageScreen; import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; -import forge.util.*; +import forge.util.Callback; +import forge.util.ItemPool; +import forge.util.Lang; +import forge.util.Utils; import forge.util.storage.IStorage; import org.apache.commons.lang3.StringUtils; diff --git a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java index 144bf237709..1d64b8f52f9 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java +++ b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java @@ -17,11 +17,7 @@ */ package forge.deck; -import java.util.ArrayList; -import java.util.List; - import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.Graphics; import forge.StaticData; @@ -29,15 +25,13 @@ import forge.deck.DeckRecognizer.TokenType; import forge.game.GameType; import forge.gui.FThreads; import forge.gui.util.SOptionPane; -import forge.toolbox.FCheckBox; -import forge.toolbox.FComboBox; -import forge.toolbox.FDialog; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FOptionPane; -import forge.toolbox.FTextArea; import forge.util.Callback; +import java.util.ArrayList; +import java.util.List; + public class FDeckImportDialog extends FDialog { private Callback callback; diff --git a/forge-gui-mobile/src/forge/deck/FDeckViewer.java b/forge-gui-mobile/src/forge/deck/FDeckViewer.java index 16b359a8766..26cb4149586 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckViewer.java +++ b/forge-gui-mobile/src/forge/deck/FDeckViewer.java @@ -1,13 +1,7 @@ package forge.deck; -import java.util.Map.Entry; - import forge.Forge; -import forge.assets.FImage; -import forge.assets.FSkin; -import forge.assets.FSkinImage; -import forge.assets.FTextureRegionImage; -import forge.assets.ImageCache; +import forge.assets.*; import forge.item.PaperCard; import forge.itemmanager.CardManager; import forge.itemmanager.ItemManagerConfig; @@ -20,6 +14,8 @@ import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FOptionPane; +import java.util.Map.Entry; + public class FDeckViewer extends FScreen { private static FDeckViewer deckViewer; private static FPopupMenu menu = new FPopupMenu() { diff --git a/forge-gui-mobile/src/forge/deck/FSideboardDialog.java b/forge-gui-mobile/src/forge/deck/FSideboardDialog.java index 3255d779db8..72b8ecc84bc 100644 --- a/forge-gui-mobile/src/forge/deck/FSideboardDialog.java +++ b/forge-gui-mobile/src/forge/deck/FSideboardDialog.java @@ -1,10 +1,6 @@ package forge.deck; -import java.util.List; - import forge.Forge; -import org.apache.commons.lang3.StringUtils; - import forge.assets.FImage; import forge.item.PaperCard; import forge.itemmanager.CardManager; @@ -19,6 +15,9 @@ import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.GuiChoose; import forge.util.Callback; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; public class FSideboardDialog extends FDialog { private final SideboardTabs tabs; diff --git a/forge-gui-mobile/src/forge/error/BugReportDialog.java b/forge-gui-mobile/src/forge/error/BugReportDialog.java index eaf6ff02a75..0eeae737acd 100644 --- a/forge-gui-mobile/src/forge/error/BugReportDialog.java +++ b/forge-gui-mobile/src/forge/error/BugReportDialog.java @@ -1,7 +1,6 @@ package forge.error; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/itemmanager/CardManager.java b/forge-gui-mobile/src/forge/itemmanager/CardManager.java index 6f194a42afc..e3780528656 100644 --- a/forge-gui-mobile/src/forge/itemmanager/CardManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/CardManager.java @@ -1,22 +1,17 @@ package forge.itemmanager; -import java.util.Map.Entry; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; import forge.card.CardRenderer; import forge.card.CardZoom; import forge.item.PaperCard; -import forge.itemmanager.filters.AdvancedSearchFilter; -import forge.itemmanager.filters.CardColorFilter; -import forge.itemmanager.filters.CardFormatFilter; -import forge.itemmanager.filters.CardSearchFilter; -import forge.itemmanager.filters.CardTypeFilter; -import forge.itemmanager.filters.TextSearchFilter; +import forge.itemmanager.filters.*; import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; +import java.util.Map.Entry; + /** * ItemManager for cards */ diff --git a/forge-gui-mobile/src/forge/itemmanager/DeckManager.java b/forge-gui-mobile/src/forge/itemmanager/DeckManager.java index b7caa658876..8a78e60f927 100644 --- a/forge-gui-mobile/src/forge/itemmanager/DeckManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/DeckManager.java @@ -1,9 +1,6 @@ package forge.itemmanager; -import java.util.Map.Entry; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -25,6 +22,8 @@ import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; import forge.util.Utils; +import java.util.Map.Entry; + /** * ItemManager for decks */ diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index c026f10d756..209b60e8272 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -17,16 +17,6 @@ */ package forge.itemmanager; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; @@ -34,7 +24,6 @@ import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -53,17 +42,16 @@ import forge.menu.FDropDownMenu; import forge.menu.FMenuItem; import forge.menu.FPopupMenu; import forge.screens.FScreen; -import forge.toolbox.FComboBox; -import forge.toolbox.FContainer; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; -import forge.toolbox.FLabel; -import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; import forge.util.ItemPool; import forge.util.LayoutHelper; +import java.util.*; +import java.util.Map.Entry; + public abstract class ItemManager extends FContainer implements IItemManager, ActivateHandler { private ItemPool pool; diff --git a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java index 6202cff5591..05b58ea7dcf 100644 --- a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java @@ -1,11 +1,8 @@ package forge.itemmanager; -import java.util.Map.Entry; - import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Align; import com.google.common.base.Function; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -21,6 +18,8 @@ import forge.itemmanager.filters.TextSearchFilter; import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; +import java.util.Map.Entry; + public class SpellShopManager extends ItemManager { private final Function, Object> fnGetPrice; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java index e4870f49300..8600df15191 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/AdvancedSearchFilter.java @@ -3,7 +3,6 @@ package forge.itemmanager.filters; import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; - import forge.Forge; import forge.assets.FSkinImage; import forge.assets.TextRenderer; @@ -16,14 +15,8 @@ import forge.menu.FMenuItem; import forge.menu.FPopupMenu; import forge.menu.FTooltip; import forge.screens.FScreen; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FList; -import forge.toolbox.FScrollPane; -import forge.toolbox.FTextField; import forge.util.Callback; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ArchivedFormatSelect.java b/forge-gui-mobile/src/forge/itemmanager/filters/ArchivedFormatSelect.java index cb3d1d6ec26..54d58870b79 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ArchivedFormatSelect.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ArchivedFormatSelect.java @@ -1,11 +1,6 @@ package forge.itemmanager.filters; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -19,6 +14,10 @@ import forge.toolbox.FList; import forge.util.Callback; import forge.util.Utils; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + /** * Created by maustin on 16/04/2018. */ diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java index 2166262d712..0adafdb50ce 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.card.CardRules; import forge.card.CardRulesPredicates; import forge.item.PaperCard; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardColorFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardColorFilter.java index b3bc12c091b..0ec55488ee8 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardColorFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardColorFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; - import forge.item.PaperCard; import forge.itemmanager.ItemManager; import forge.itemmanager.SFilterUtil; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardColorlessCostFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardColorlessCostFilter.java index 3cb0670784a..21c51b53f73 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardColorlessCostFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardColorlessCostFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.card.CardRules; import forge.card.CardRulesPredicates; import forge.item.PaperCard; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardFormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardFormatFilter.java index 3d8942d2f77..36c80aa64d6 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardFormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardFormatFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.item.PaperCard; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardPowerFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardPowerFilter.java index 57d3dba01a0..19dd6c9d2ec 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardPowerFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardPowerFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.card.CardRules; import forge.card.CardRulesPredicates; import forge.item.PaperCard; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardRarityFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardRarityFilter.java index 902bf59389c..47c494b6bfb 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardRarityFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardRarityFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; - import forge.card.CardRarity; import forge.item.PaperCard; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardSearchFilter.java index 35fa8ec8633..c0c22addfb8 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardSearchFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; - import forge.item.InventoryItem; import forge.item.PaperCard; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardToughnessFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardToughnessFilter.java index 940e67e7a27..3acb2f19312 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardToughnessFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardToughnessFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.card.CardRules; import forge.card.CardRulesPredicates; import forge.item.PaperCard; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardTypeFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardTypeFilter.java index 167beaaeb2a..249ac6cbe3e 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardTypeFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardTypeFilter.java @@ -1,16 +1,15 @@ package forge.itemmanager.filters; -import java.util.ArrayList; -import java.util.List; - import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.card.CardRules; import forge.item.PaperCard; import forge.itemmanager.ItemManager; import forge.itemmanager.SItemManagerUtil.StatTypes; +import java.util.ArrayList; +import java.util.List; + public class CardTypeFilter extends StatTypeFilter { public CardTypeFilter(ItemManager itemManager0) { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/DeckColorFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/DeckColorFilter.java index 52cc7b4b593..885f4b13bc2 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/DeckColorFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/DeckColorFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; - import forge.deck.DeckProxy; import forge.itemmanager.ItemManager; import forge.itemmanager.SFilterUtil; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java index 1a24bfb9aae..79e2cb0d81e 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFolderFilter.java @@ -1,13 +1,12 @@ package forge.itemmanager.filters; +import com.google.common.base.Predicate; +import forge.deck.DeckProxy; +import forge.itemmanager.ItemManager; + import java.util.HashSet; import java.util.Set; -import com.google.common.base.Predicate; - -import forge.deck.DeckProxy; -import forge.itemmanager.ItemManager; - public class DeckFolderFilter extends ListLabelFilter { protected final Set folders = new HashSet<>(); diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFormatFilter.java index 1a3a51dd06e..0ca3dc64f61 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/DeckFormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/DeckFormatFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.deck.DeckProxy; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java index 0db437ac335..54dd6c08e87 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java @@ -1,13 +1,6 @@ package forge.itemmanager.filters; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -19,17 +12,14 @@ import forge.itemmanager.ItemManager; import forge.model.FModel; import forge.screens.FScreen; import forge.screens.settings.SettingsScreen; -import forge.toolbox.FCheckBox; -import forge.toolbox.FComboBox; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FGroupList; -import forge.toolbox.FList; import forge.util.Callback; import forge.util.TextUtil; import forge.util.Utils; +import java.util.*; + public abstract class FormatFilter extends ItemFilter { protected GameFormat format; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java index 8eaaad46868..401b48825c2 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ItemFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.google.common.base.Predicate; - import forge.assets.FSkinFont; import forge.item.InventoryItem; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java index 04c179a4789..7398e095dc7 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java @@ -1,7 +1,6 @@ package forge.itemmanager.filters; import com.badlogic.gdx.utils.Align; - import forge.assets.FSkinFont; import forge.item.InventoryItem; import forge.itemmanager.ItemManager; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/StatTypeFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/StatTypeFilter.java index 70045e02123..7fecb5cb863 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/StatTypeFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/StatTypeFilter.java @@ -1,8 +1,5 @@ package forge.itemmanager.filters; -import java.util.HashMap; -import java.util.Map; - import forge.assets.FSkin; import forge.item.InventoryItem; import forge.item.ItemPredicate; @@ -14,6 +11,9 @@ import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FLabel; +import java.util.HashMap; +import java.util.Map; + public abstract class StatTypeFilter extends ToggleButtonsFilter { protected final Map buttonMap; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java index b3a0c9906f3..2ac7005cfc1 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/TextSearchFilter.java @@ -3,7 +3,6 @@ package forge.itemmanager.filters; import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.base.Predicates; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinFont; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java index 61f986c9c38..c666f2f18f9 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java @@ -1,10 +1,6 @@ package forge.itemmanager.filters; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.assets.FImage; import forge.item.InventoryItem; import forge.itemmanager.ItemManager; @@ -13,6 +9,9 @@ import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; import forge.toolbox.FLabel; +import java.util.ArrayList; +import java.util.List; + public abstract class ToggleButtonsFilter extends ItemFilter { protected boolean lockFiltering; diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java index 588ab1809b6..47cddb538c1 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ValueRangeFilter.java @@ -2,7 +2,6 @@ package forge.itemmanager.filters; import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; - import forge.card.CardRules; import forge.card.CardRulesPredicates; import forge.item.InventoryItem; diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java b/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java index 2c8881865be..7559c1428cb 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ItemListView.java @@ -17,14 +17,7 @@ */ package forge.itemmanager.views; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import com.badlogic.gdx.math.Rectangle; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -33,15 +26,17 @@ import forge.assets.FSkinColor.Colors; import forge.assets.FSkinFont; import forge.assets.FSkinImage; import forge.item.InventoryItem; -import forge.itemmanager.ColumnDef; -import forge.itemmanager.ItemColumn; -import forge.itemmanager.ItemManager; -import forge.itemmanager.ItemManagerConfig; -import forge.itemmanager.ItemManagerModel; +import forge.itemmanager.*; import forge.toolbox.FCheckBox; import forge.toolbox.FDisplayObject; import forge.toolbox.FList; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + public final class ItemListView extends ItemView { private static final FSkinColor ROW_COLOR = FSkinColor.get(Colors.CLR_ZEBRA); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java index 3a33ae11a2d..64a73071532 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java @@ -1,27 +1,22 @@ package forge.itemmanager.views; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.math.Rectangle; - import forge.Graphics; import forge.assets.FImage; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; import forge.item.InventoryItem; -import forge.itemmanager.ColumnDef; -import forge.itemmanager.ItemColumn; -import forge.itemmanager.ItemManager; -import forge.itemmanager.ItemManagerConfig; -import forge.itemmanager.ItemManagerModel; +import forge.itemmanager.*; import forge.toolbox.FContainer; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventType; import forge.toolbox.FScrollPane; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + public abstract class ItemView { protected static final float UNOWNED_ALPHA_COMPOSITE = 0.35f; private static final FSkinColor BORDER_COLOR = FSkinColor.get(Colors.CLR_TEXT); diff --git a/forge-gui-mobile/src/forge/menu/FDropDown.java b/forge-gui-mobile/src/forge/menu/FDropDown.java index 84ccde8799d..df23b86498a 100644 --- a/forge-gui-mobile/src/forge/menu/FDropDown.java +++ b/forge-gui-mobile/src/forge/menu/FDropDown.java @@ -1,7 +1,6 @@ package forge.menu; import com.badlogic.gdx.math.Rectangle; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/menu/FMagnifyView.java b/forge-gui-mobile/src/forge/menu/FMagnifyView.java index 495e094ad3b..6c33345e13f 100644 --- a/forge-gui-mobile/src/forge/menu/FMagnifyView.java +++ b/forge-gui-mobile/src/forge/menu/FMagnifyView.java @@ -1,7 +1,6 @@ package forge.menu; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; diff --git a/forge-gui-mobile/src/forge/menu/FMenuBar.java b/forge-gui-mobile/src/forge/menu/FMenuBar.java index 58096d0293e..324c5ff79f0 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuBar.java +++ b/forge-gui-mobile/src/forge/menu/FMenuBar.java @@ -1,11 +1,11 @@ package forge.menu; -import java.util.ArrayList; -import java.util.List; - import forge.Graphics; import forge.screens.FScreen.Header; +import java.util.ArrayList; +import java.util.List; + public class FMenuBar extends Header { private final List tabs = new ArrayList<>(); diff --git a/forge-gui-mobile/src/forge/menu/FMenuItem.java b/forge-gui-mobile/src/forge/menu/FMenuItem.java index 1b8e7a00fbf..0c56962adf0 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuItem.java +++ b/forge-gui-mobile/src/forge/menu/FMenuItem.java @@ -3,7 +3,6 @@ package forge.menu; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; - import forge.Graphics; import forge.assets.FImage; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/menu/FMenuTab.java b/forge-gui-mobile/src/forge/menu/FMenuTab.java index 34198ae06d4..405e7e34d1d 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuTab.java +++ b/forge-gui-mobile/src/forge/menu/FMenuTab.java @@ -1,7 +1,6 @@ package forge.menu; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; diff --git a/forge-gui-mobile/src/forge/menu/FPopupMenu.java b/forge-gui-mobile/src/forge/menu/FPopupMenu.java index 19d3e7751c5..a3cea1656d5 100644 --- a/forge-gui-mobile/src/forge/menu/FPopupMenu.java +++ b/forge-gui-mobile/src/forge/menu/FPopupMenu.java @@ -1,7 +1,6 @@ package forge.menu; import com.badlogic.gdx.math.Vector2; - import forge.Forge; import forge.Graphics; import forge.screens.FScreen; diff --git a/forge-gui-mobile/src/forge/menu/FTooltip.java b/forge-gui-mobile/src/forge/menu/FTooltip.java index 4686a03573f..e20dc607a70 100644 --- a/forge-gui-mobile/src/forge/menu/FTooltip.java +++ b/forge-gui-mobile/src/forge/menu/FTooltip.java @@ -1,7 +1,6 @@ package forge.menu; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/screens/FScreen.java b/forge-gui-mobile/src/forge/screens/FScreen.java index ec36dc3884d..450c3553e77 100644 --- a/forge-gui-mobile/src/forge/screens/FScreen.java +++ b/forge-gui-mobile/src/forge/screens/FScreen.java @@ -1,11 +1,8 @@ package forge.screens; -import java.util.List; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -25,6 +22,8 @@ import forge.toolbox.FLabel; import forge.util.Callback; import forge.util.Utils; +import java.util.List; + public abstract class FScreen extends FContainer { public static final FSkinColor TEXTURE_OVERLAY_COLOR = FSkinColor.get(Colors.CLR_THEME); diff --git a/forge-gui-mobile/src/forge/screens/LaunchScreen.java b/forge-gui-mobile/src/forge/screens/LaunchScreen.java index 5917c67972e..1f345dd4114 100644 --- a/forge-gui-mobile/src/forge/screens/LaunchScreen.java +++ b/forge-gui-mobile/src/forge/screens/LaunchScreen.java @@ -1,7 +1,6 @@ package forge.screens; import com.badlogic.gdx.Input.Keys; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinImage; diff --git a/forge-gui-mobile/src/forge/screens/LoadingOverlay.java b/forge-gui-mobile/src/forge/screens/LoadingOverlay.java index 2ccda45df86..ccad3622efc 100644 --- a/forge-gui-mobile/src/forge/screens/LoadingOverlay.java +++ b/forge-gui-mobile/src/forge/screens/LoadingOverlay.java @@ -2,7 +2,6 @@ package forge.screens; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkin; diff --git a/forge-gui-mobile/src/forge/screens/SplashScreen.java b/forge-gui-mobile/src/forge/screens/SplashScreen.java index 5b9ffcb8e2b..474cff437f9 100644 --- a/forge-gui-mobile/src/forge/screens/SplashScreen.java +++ b/forge-gui-mobile/src/forge/screens/SplashScreen.java @@ -3,7 +3,6 @@ package forge.screens; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; diff --git a/forge-gui-mobile/src/forge/screens/TabPageScreen.java b/forge-gui-mobile/src/forge/screens/TabPageScreen.java index 0c369d6ac42..3dbc86a1b6a 100644 --- a/forge-gui-mobile/src/forge/screens/TabPageScreen.java +++ b/forge-gui-mobile/src/forge/screens/TabPageScreen.java @@ -1,7 +1,6 @@ package forge.screens; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -11,12 +10,8 @@ import forge.assets.FSkinFont; import forge.localinstance.properties.ForgePreferences.FPref; import forge.menu.FPopupMenu; import forge.model.FModel; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FScrollPane; import forge.util.Utils; public class TabPageScreen> extends FScreen { diff --git a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java index bc1a36e8fcd..f72ef3a6946 100644 --- a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java +++ b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java @@ -3,15 +3,9 @@ package forge.screens.achievements; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; -import forge.assets.FBufferedImage; -import forge.assets.FImage; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.FSkinTexture; +import forge.assets.*; import forge.card.CardZoom; import forge.item.IPaperCard; import forge.localinstance.achievements.Achievement; diff --git a/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java b/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java index 113d00743a3..f6ff97d13a5 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java +++ b/forge-gui-mobile/src/forge/screens/constructed/AvatarSelector.java @@ -1,11 +1,7 @@ package forge.screens.constructed; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkin; @@ -21,6 +17,9 @@ import forge.util.Callback; import forge.util.MyRandom; import forge.util.Utils; +import java.util.List; +import java.util.Map; + public class AvatarSelector extends FScreen { public static int getRandomAvatar(List usedAvatars) { int random = 0; diff --git a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java index 216b4c46463..a691adde2c5 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java @@ -1,29 +1,15 @@ package forge.screens.constructed; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import forge.player.GamePlayerUtil; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Align; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; import forge.ai.AIOption; import forge.assets.FSkinColor; import forge.assets.FSkinFont; import forge.assets.ImageCache; -import forge.deck.CardPool; -import forge.deck.Deck; -import forge.deck.DeckSection; -import forge.deck.DeckType; -import forge.deck.FDeckChooser; +import forge.deck.*; import forge.game.GameType; import forge.gamemodes.match.GameLobby; import forge.gamemodes.match.LobbySlot; @@ -38,19 +24,18 @@ import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; import forge.menu.FPopupMenu; import forge.model.FModel; +import forge.player.GamePlayerUtil; import forge.screens.FScreen; import forge.screens.LaunchScreen; import forge.screens.LoadingOverlay; import forge.screens.settings.SettingsScreen; -import forge.toolbox.FCheckBox; -import forge.toolbox.FComboBox; -import forge.toolbox.FLabel; -import forge.toolbox.FList; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; +import forge.toolbox.*; import forge.util.MyRandom; import forge.util.TextUtil; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; public abstract class LobbyScreen extends LaunchScreen implements ILobbyView { private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java index fd4bc7713d8..da6252fe7ed 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java @@ -1,15 +1,8 @@ package forge.screens.constructed; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; - import forge.Forge; import forge.Graphics; import forge.ai.AIOption; @@ -17,11 +10,7 @@ import forge.assets.FSkin; import forge.assets.FSkinFont; import forge.assets.FSkinImage; import forge.assets.FTextureRegionImage; -import forge.deck.Deck; -import forge.deck.DeckProxy; -import forge.deck.DeckType; -import forge.deck.FDeckChooser; -import forge.deck.FVanguardChooser; +import forge.deck.*; import forge.game.GameType; import forge.gamemodes.match.LobbySlot; import forge.gamemodes.match.LobbySlotType; @@ -31,20 +20,14 @@ import forge.itemmanager.DeckManager; import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; -import forge.toolbox.FComboBox; -import forge.toolbox.FContainer; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FList; -import forge.toolbox.FOptionPane; -import forge.toolbox.FTextField; -import forge.toolbox.FToggleSwitch; -import forge.util.Callback; -import forge.util.Lang; -import forge.util.NameGenerator; -import forge.util.TextUtil; -import forge.util.Utils; +import forge.util.*; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.List; +import java.util.Set; public class PlayerPanel extends FContainer { private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui-mobile/src/forge/screens/constructed/SleevesSelector.java b/forge-gui-mobile/src/forge/screens/constructed/SleevesSelector.java index 9dd1550b647..acd7eec392f 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/SleevesSelector.java +++ b/forge-gui-mobile/src/forge/screens/constructed/SleevesSelector.java @@ -1,11 +1,7 @@ package forge.screens.constructed; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkin; @@ -21,6 +17,9 @@ import forge.util.Callback; import forge.util.MyRandom; import forge.util.Utils; +import java.util.List; +import java.util.Map; + public class SleevesSelector extends FScreen { public static int getRandomSleeves(List usedSleeves) { int random = 0; diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java index e8dc7a078ca..54fff9e5a71 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java @@ -1,13 +1,6 @@ package forge.screens.gauntlet; -import java.io.File; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -36,6 +29,12 @@ import forge.util.Callback; import forge.util.ThreadUtil; import forge.util.Utils; +import java.io.File; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public class LoadGauntletScreen extends LaunchScreen { private static final float ITEM_HEIGHT = Utils.AVG_FINGER_HEIGHT; private static final float PADDING = Utils.AVG_FINGER_HEIGHT * 0.1f; diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java index 14853c017c9..db7f0a45b3d 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java @@ -1,10 +1,5 @@ package forge.screens.gauntlet; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import forge.Forge; import forge.assets.FSkinFont; import forge.deck.Deck; @@ -26,6 +21,11 @@ import forge.toolbox.ListChooser; import forge.util.Callback; import forge.util.Utils; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class NewGauntletScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index b82e9c0ed69..d30bc46ef23 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -1,11 +1,7 @@ package forge.screens.home; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Align; - import com.google.common.collect.ImmutableList; import forge.Forge; import forge.Graphics; @@ -23,15 +19,14 @@ import forge.screens.online.OnlineMenu.OnlineScreen; import forge.screens.planarconquest.ConquestMenu; import forge.screens.quest.QuestMenu; import forge.screens.settings.SettingsScreen; -import forge.toolbox.FButton; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; import forge.util.Callback; import forge.util.Utils; +import java.util.ArrayList; +import java.util.List; + public class HomeScreen extends FScreen { private static final float PADDING = Utils.scale(5); private static final FSkinColor clrTheme = FSkinColor.get(Colors.CLR_THEME); diff --git a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java index 2393dd7ca24..9be5063f384 100644 --- a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java @@ -1,9 +1,5 @@ package forge.screens.home.puzzle; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import forge.Forge; import forge.assets.FSkinFont; import forge.deck.Deck; @@ -26,6 +22,10 @@ import forge.toolbox.GuiChoose; import forge.util.Callback; import forge.util.Utils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public class PuzzleScreen extends LaunchScreen { private static final float PADDING = Utils.scale(10); diff --git a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java index 1ce0b215a6d..b18203fb2c6 100644 --- a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java @@ -1,8 +1,6 @@ package forge.screens.limited; import forge.Forge; -import org.apache.commons.lang3.StringUtils; - import forge.deck.Deck; import forge.deck.DeckGroup; import forge.deck.FDeckEditor; @@ -16,6 +14,7 @@ import forge.screens.FScreen; import forge.screens.home.LoadGameMenu.LoadGameScreen; import forge.toolbox.FOptionPane; import forge.util.Callback; +import org.apache.commons.lang3.StringUtils; public class DraftingProcessScreen extends FDeckEditor { private boolean isDraftSaved; diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java index 1331e0824a8..d05e2ceec97 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java @@ -1,17 +1,9 @@ package forge.screens.limited; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; -import forge.deck.Deck; -import forge.deck.DeckGroup; -import forge.deck.DeckProxy; -import forge.deck.FDeckChooser; -import forge.deck.FDeckEditor; +import forge.deck.*; import forge.deck.FDeckEditor.EditorType; import forge.deck.io.DeckPreferences; import forge.game.GameType; @@ -33,6 +25,9 @@ import forge.toolbox.FComboBox; import forge.toolbox.FLabel; import forge.toolbox.FOptionPane; +import java.util.ArrayList; +import java.util.List; + public class LoadDraftScreen extends LaunchScreen { private final DeckManager lstDecks = add(new DeckManager(GameType.Draft)); private final FLabel lblTip = add(new FLabel.Builder() diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java index 27f7c82e56b..dee07f06d43 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java @@ -1,17 +1,9 @@ package forge.screens.limited; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; -import forge.deck.Deck; -import forge.deck.DeckGroup; -import forge.deck.DeckProxy; -import forge.deck.FDeckChooser; -import forge.deck.FDeckEditor; +import forge.deck.*; import forge.deck.FDeckEditor.EditorType; import forge.deck.io.DeckPreferences; import forge.game.GameType; @@ -33,6 +25,9 @@ import forge.toolbox.FComboBox; import forge.toolbox.FLabel; import forge.toolbox.FOptionPane; +import java.util.ArrayList; +import java.util.List; + public class LoadSealedScreen extends LaunchScreen { private final DeckManager lstDecks = add(new DeckManager(GameType.Draft)); private final FLabel lblTip = add(new FLabel.Builder() diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index 50a3cc66b33..003450d2e4a 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -1,42 +1,27 @@ package forge.screens.match; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import forge.adventure.scene.DuelScene; -import forge.adventure.scene.SceneType; -import forge.ai.GameState; -import forge.deck.Deck; -import forge.game.player.Player; -import forge.item.IPaperCard; -import forge.screens.TransitionScreen; -import forge.util.collect.FCollection; -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; - import forge.Forge; import forge.Graphics; import forge.LobbyPlayer; -import forge.assets.FImage; -import forge.assets.FSkin; -import forge.assets.FSkinImage; -import forge.assets.FTextureRegionImage; -import forge.assets.ImageCache; +import forge.adventure.scene.DuelScene; +import forge.adventure.scene.SceneType; +import forge.ai.GameState; +import forge.assets.*; import forge.card.CardAvatarImage; import forge.card.GameEntityPicker; import forge.deck.CardPool; +import forge.deck.Deck; import forge.deck.FSideboardDialog; import forge.game.GameEntityView; import forge.game.card.CardView; import forge.game.phase.PhaseType; import forge.game.player.DelayedReveal; import forge.game.player.IHasIcon; +import forge.game.player.Player; import forge.game.player.PlayerView; import forge.game.spellability.SpellAbilityView; import forge.game.zone.ZoneType; @@ -46,6 +31,7 @@ import forge.gui.FThreads; import forge.gui.GuiBase; import forge.gui.util.SGuiChoose; import forge.gui.util.SOptionPane; +import forge.item.IPaperCard; import forge.item.PaperCard; import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; @@ -53,12 +39,9 @@ import forge.localinstance.skin.FSkinProp; import forge.model.FModel; import forge.player.PlayerZoneUpdate; import forge.player.PlayerZoneUpdates; -import forge.screens.match.views.VAssignCombatDamage; -import forge.screens.match.views.VAssignGenericAmount; -import forge.screens.match.views.VPhaseIndicator; -import forge.screens.match.views.VPlayerPanel; +import forge.screens.TransitionScreen; +import forge.screens.match.views.*; import forge.screens.match.views.VPlayerPanel.InfoTab; -import forge.screens.match.views.VPrompt; import forge.screens.match.winlose.ViewWinLose; import forge.toolbox.FButton; import forge.toolbox.FDisplayObject; @@ -67,7 +50,14 @@ import forge.trackable.TrackableCollection; import forge.util.ITriggerEvent; import forge.util.MessageUtil; import forge.util.WaitCallback; +import forge.util.collect.FCollection; import forge.util.collect.FCollectionView; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; public class MatchController extends AbstractGuiGame { private MatchController() { } diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index b9c01727900..8d421a44ab0 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -1,71 +1,60 @@ package forge.screens.match; -import java.util.*; -import java.util.Map.Entry; - -import com.badlogic.gdx.math.Vector2; -import forge.animation.ForgeAnimation; -import forge.assets.FImage; -import forge.card.CardImageRenderer; -import forge.card.CardRenderer; -import forge.card.CardZoom; -import forge.game.spellability.StackItemView; -import forge.gui.interfaces.IGuiGame; -import forge.toolbox.FDisplayObject; -import forge.util.Utils; -import forge.util.collect.FCollectionView; -import org.apache.commons.lang3.tuple.Pair; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.math.Vector2; import com.google.common.collect.Maps; - import forge.Forge; import forge.Forge.KeyInputAdapter; import forge.Graphics; import forge.animation.AbilityEffect; +import forge.animation.ForgeAnimation; +import forge.assets.FImage; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; import forge.assets.FSkinTexture; +import forge.card.CardImageRenderer; +import forge.card.CardRenderer; +import forge.card.CardZoom; import forge.game.GameEntityView; import forge.game.GameView; import forge.game.card.CardView; import forge.game.combat.CombatView; import forge.game.phase.PhaseType; import forge.game.player.PlayerView; +import forge.game.spellability.StackItemView; import forge.game.zone.ZoneType; import forge.gui.GuiBase; +import forge.gui.interfaces.IGuiGame; import forge.interfaces.IGameController; import forge.localinstance.properties.ForgePreferences; import forge.localinstance.properties.ForgePreferences.FPref; -import forge.menu.FDropDown; -import forge.menu.FDropDownMenu; -import forge.menu.FMenuBar; -import forge.menu.FMenuItem; -import forge.menu.FMenuTab; +import forge.menu.*; import forge.model.FModel; import forge.player.PlayerZoneUpdate; import forge.screens.FScreen; -import forge.screens.match.views.VAvatar; +import forge.screens.match.views.*; import forge.screens.match.views.VCardDisplayArea.CardAreaPanel; -import forge.screens.match.views.VDevMenu; -import forge.screens.match.views.VGameMenu; -import forge.screens.match.views.VLog; -import forge.screens.match.views.VManaPool; import forge.screens.match.views.VPhaseIndicator.PhaseLabel; -import forge.screens.match.views.VPlayerPanel; import forge.screens.match.views.VPlayerPanel.InfoTab; -import forge.screens.match.views.VPlayers; -import forge.screens.match.views.VPrompt; -import forge.screens.match.views.VStack; import forge.screens.match.winlose.ViewWinLose; import forge.sound.MusicPlaylist; import forge.sound.SoundSystem; import forge.toolbox.FCardPanel; +import forge.toolbox.FDisplayObject; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FScrollPane; import forge.util.Callback; +import forge.util.Utils; +import forge.util.collect.FCollectionView; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; public class MatchScreen extends FScreen { public static FSkinColor BORDER_COLOR = FSkinColor.get(Colors.CLR_BORDERS); diff --git a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java index 6a6261db737..497f48309e9 100644 --- a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java +++ b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java @@ -19,7 +19,6 @@ package forge.screens.match; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Vector2; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAssignCombatDamage.java b/forge-gui-mobile/src/forge/screens/match/views/VAssignCombatDamage.java index 918a0fcd4dc..b9d2d7c0739 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAssignCombatDamage.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAssignCombatDamage.java @@ -17,13 +17,7 @@ */ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -37,20 +31,14 @@ import forge.game.card.CardView; import forge.game.card.CounterEnumType; import forge.game.player.PlayerView; import forge.screens.match.MatchController; -import forge.toolbox.FCardPanel; -import forge.toolbox.FContainer; -import forge.toolbox.FDialog; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; -import forge.util.Callback; -import forge.util.CardTranslation; -import forge.util.TextUtil; -import forge.util.Utils; -import forge.util.WaitCallback; +import forge.util.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class VAssignCombatDamage extends FDialog { private static final float CARD_GAP_X = Utils.scale(10); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAssignGenericAmount.java b/forge-gui-mobile/src/forge/screens/match/views/VAssignGenericAmount.java index 7650c8f5e06..f3d4e6c6dc8 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAssignGenericAmount.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAssignGenericAmount.java @@ -17,13 +17,7 @@ */ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -36,20 +30,14 @@ import forge.card.MagicColor; import forge.game.card.CardView; import forge.game.player.PlayerView; import forge.screens.match.MatchController; -import forge.toolbox.FCardPanel; -import forge.toolbox.FContainer; -import forge.toolbox.FDialog; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; -import forge.util.Callback; -import forge.util.CardTranslation; -import forge.util.TextUtil; -import forge.util.Utils; -import forge.util.WaitCallback; +import forge.util.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class VAssignGenericAmount extends FDialog { private static final float CARD_GAP_X = Utils.scale(10); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java b/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java index d98195d43d0..a62129d971a 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAutoYields.java @@ -1,18 +1,14 @@ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.List; - import forge.Forge; import forge.screens.match.MatchController; -import forge.toolbox.FCheckBox; -import forge.toolbox.FChoiceList; -import forge.toolbox.FDialog; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FOptionPane; import forge.util.TextBounds; +import java.util.ArrayList; +import java.util.List; + public class VAutoYields extends FDialog { private final FChoiceList lstAutoYields; private final FCheckBox chkDisableAll; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java index e32ea675cfb..8a20be01aec 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java @@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java index d88b05f1ded..01b573d2e40 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java @@ -1,14 +1,8 @@ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.math.Vector2; - import forge.Forge; import forge.Graphics; import forge.card.CardRenderer.CardStackPosition; @@ -23,6 +17,11 @@ import forge.toolbox.FCardPanel; import forge.toolbox.FDisplayObject; import forge.util.ThreadUtil; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public abstract class VCardDisplayArea extends VDisplayArea implements ActivateHandler { private static final float CARD_STACK_OFFSET = 0.2f; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VField.java b/forge-gui-mobile/src/forge/screens/match/views/VField.java index 615afc93982..b59c0e99e3e 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VField.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VField.java @@ -1,8 +1,5 @@ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.List; - import forge.game.card.CardView; import forge.game.card.CardView.CardStateView; import forge.game.player.PlayerView; @@ -10,6 +7,9 @@ import forge.gui.FThreads; import forge.screens.match.views.VCardDisplayArea.CardAreaPanel; import forge.toolbox.FContainer; +import java.util.ArrayList; +import java.util.List; + public class VField extends FContainer { private final PlayerView player; private final FieldRow row1, row2; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VLog.java b/forge-gui-mobile/src/forge/screens/match/views/VLog.java index b2242350a9b..de5e754fa3d 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VLog.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VLog.java @@ -1,9 +1,6 @@ package forge.screens.match.views; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -18,6 +15,8 @@ import forge.screens.match.MatchController; import forge.toolbox.FDisplayObject; import forge.util.Utils; +import java.util.List; + public class VLog extends FDropDown { private static final float PADDING = Utils.scale(5); private static final FSkinFont FONT = FSkinFont.get(11); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java b/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java index 4d0bfbc56b8..f823a4ae3a3 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VManaPool.java @@ -1,10 +1,6 @@ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -18,6 +14,9 @@ import forge.player.GamePlayerUtil; import forge.screens.match.MatchController; import forge.toolbox.FDisplayObject; +import java.util.ArrayList; +import java.util.List; + public class VManaPool extends VDisplayArea { private static final FSkinColor FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT); private static final FSkinFont FONT = FSkinFont.get(16); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java index f2064e1008c..db08d3b75d3 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java @@ -1,11 +1,7 @@ package forge.screens.match.views; -import java.util.HashMap; -import java.util.Map; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -16,6 +12,9 @@ import forge.toolbox.FDisplayObject; import forge.util.TextBounds; import forge.util.Utils; +import java.util.HashMap; +import java.util.Map; + public class VPhaseIndicator extends FContainer { public static final FSkinFont BASE_FONT = FSkinFont.get(11); public static final float PADDING_X = Utils.scale(1); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java index b7592677798..8da7dec2115 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java @@ -1,14 +1,8 @@ package forge.screens.match.views; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -28,6 +22,11 @@ import forge.toolbox.FContainer; import forge.toolbox.FDisplayObject; import forge.util.Utils; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class VPlayerPanel extends FContainer { private static final FSkinFont LIFE_FONT = FSkinFont.get(18); private static final FSkinFont LIFE_FONT_ALT = FSkinFont.get(22); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java index a380ecf60b6..eee291f4fef 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayers.java @@ -1,7 +1,6 @@ package forge.screens.match.views; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinFont; @@ -11,11 +10,7 @@ import forge.deck.FDeckViewer; import forge.game.player.PlayerView; import forge.menu.FDropDown; import forge.screens.match.MatchController; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; -import forge.toolbox.FLabel; -import forge.toolbox.FList; +import forge.toolbox.*; import forge.util.Utils; public class VPlayers extends FDropDown { diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java b/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java index 73ee45326ef..8a705a6e208 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPrompt.java @@ -1,9 +1,6 @@ package forge.screens.match.views; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -19,6 +16,7 @@ import forge.toolbox.FDisplayObject; import forge.toolbox.FEvent.FEventHandler; import forge.util.TextBounds; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; public class VPrompt extends FContainer { public static final float HEIGHT = Utils.AVG_FINGER_HEIGHT; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VStack.java b/forge-gui-mobile/src/forge/screens/match/views/VStack.java index 2b5e32e3263..f0c549dab00 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VStack.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VStack.java @@ -1,14 +1,8 @@ package forge.screens.match.views; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -26,11 +20,7 @@ import forge.gui.card.CardDetailUtil; import forge.gui.card.CardDetailUtil.DetailColors; import forge.gui.interfaces.IGuiGame; import forge.interfaces.IGameController; -import forge.menu.FCheckBoxMenuItem; -import forge.menu.FDropDown; -import forge.menu.FMenuItem; -import forge.menu.FMenuTab; -import forge.menu.FPopupMenu; +import forge.menu.*; import forge.player.PlayerZoneUpdates; import forge.screens.match.MatchController; import forge.screens.match.TargetingOverlay; @@ -43,6 +33,11 @@ import forge.util.TextUtil; import forge.util.Utils; import forge.util.collect.FCollectionView; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + public class VStack extends FDropDown { public static final float CARD_WIDTH = Utils.AVG_FINGER_WIDTH; public static final float CARD_HEIGHT = Math.round(CARD_WIDTH * FCardPanel.ASPECT_RATIO); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java index 5421f3affee..54e517679fd 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java @@ -1,7 +1,5 @@ package forge.screens.match.views; -import java.util.List; - import forge.Forge; import forge.Graphics; import forge.game.player.PlayerView; @@ -9,6 +7,8 @@ import forge.game.zone.ZoneType; import forge.toolbox.FCardPanel; import forge.toolbox.FDisplayObject; +import java.util.List; + public class VZoneDisplay extends VCardDisplayArea { private final PlayerView player; private final ZoneType zoneType; diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java index 2519001b4c2..d4d69770920 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java @@ -1,7 +1,5 @@ package forge.screens.match.winlose; -import java.util.List; - import forge.Forge; import forge.game.GameView; import forge.gamemodes.gauntlet.GauntletWinLoseController; @@ -9,6 +7,8 @@ import forge.gui.FThreads; import forge.gui.util.SOptionPane; import forge.localinstance.skin.FSkinProp; +import java.util.List; + /** * The Win/Lose handler for 'gauntlet' type tournament * games. diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java index 600631e2ae5..415bbab70e0 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java @@ -1,12 +1,7 @@ package forge.screens.match.winlose; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -22,15 +17,12 @@ import forge.item.PaperCard; import forge.localinstance.skin.FSkinProp; import forge.menu.FMagnifyView; import forge.model.FModel; -import forge.toolbox.FButton; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOverlay; -import forge.toolbox.FTextArea; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; public class ViewWinLose extends FOverlay implements IWinLoseView { private static final float INSETS_FACTOR = 0.025f; diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java index 614649a7e38..567bde97f45 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java @@ -2,7 +2,6 @@ package forge.screens.online; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java index 5eeb5f5169d..0ab1ff5b782 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java @@ -1,14 +1,9 @@ package forge.screens.online; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.gamemodes.match.GameLobby; -import forge.gamemodes.net.ChatMessage; -import forge.gamemodes.net.IOnlineChatInterface; -import forge.gamemodes.net.IOnlineLobby; -import forge.gamemodes.net.NetConnectUtil; -import forge.gamemodes.net.OfflineLobby; +import forge.gamemodes.net.*; import forge.gamemodes.net.client.FGameClient; import forge.gamemodes.net.server.FServerManager; import forge.gui.FThreads; diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java index 521ab3491b2..e2ab059d93a 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java @@ -1,7 +1,5 @@ package forge.screens.online; -import static forge.screens.online.OnlineLobbyScreen.getGameLobby; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkinImage; @@ -17,6 +15,8 @@ import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FOptionPane; import forge.util.Callback; +import static forge.screens.online.OnlineLobbyScreen.getGameLobby; + public class OnlineMenu extends FPopupMenu { public enum OnlineScreen { Lobby("lblLobby", FSkinImage.FAVICON, OnlineLobbyScreen.class), diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java index ad4cce3b5c1..30a3cf44880 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java @@ -1,9 +1,5 @@ package forge.screens.planarconquest; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; @@ -11,21 +7,12 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; -import forge.assets.FSkin; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinTexture; -import forge.assets.TextRenderer; -import forge.card.CardRarity; -import forge.card.CardRenderer; +import forge.assets.*; +import forge.card.*; import forge.card.CardRenderer.CardStackPosition; -import forge.card.CardZoom; -import forge.card.ColorSet; -import forge.card.ColorSetImage; import forge.gamemodes.planarconquest.ConquestCommander; import forge.gamemodes.planarconquest.ConquestData; import forge.gamemodes.planarconquest.ConquestPlane; @@ -36,17 +23,17 @@ import forge.item.PaperCard; import forge.localinstance.skin.FSkinProp; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FCardPanel; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.GuiChoose; import forge.util.Aggregates; import forge.util.Callback; import forge.util.MyRandom; import forge.util.Utils; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + public class ConquestAEtherScreen extends FScreen { public static final Color FILTER_BUTTON_COLOR = ConquestMultiverseScreen.LOCATION_BAR_COLOR; public static final FSkinColor FILTER_BUTTON_TEXT_COLOR = FSkinColor.getStandardColor(ConquestMultiverseScreen.LOCATION_BAR_TEXT_COLOR); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java index c24ac7370d4..1364a326b89 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java @@ -1,7 +1,6 @@ package forge.screens.planarconquest; import com.badlogic.gdx.math.Vector2; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java index 8f335335cf5..81c34c980b9 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java @@ -1,11 +1,7 @@ package forge.screens.planarconquest; -import java.util.Collection; -import java.util.Map.Entry; - import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkinFont; @@ -34,6 +30,9 @@ import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FLabel; +import java.util.Collection; +import java.util.Map.Entry; + public class ConquestCollectionScreen extends TabPageScreen { private final FLabel lblShards = add(new FLabel.Builder().font(ConquestAEtherScreen.LABEL_FONT).parseSymbols().build()); private final FLabel lblInfo = add(new FLabel.Builder().font(FSkinFont.get(11)).build()); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java index cc684bbfe7a..a554b16622b 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java @@ -1,10 +1,7 @@ package forge.screens.planarconquest; -import java.util.Map.Entry; - import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -26,22 +23,16 @@ import forge.itemmanager.ItemManager; import forge.itemmanager.ItemManagerConfig; import forge.itemmanager.SFilterUtil; import forge.itemmanager.SItemManagerUtil.StatTypes; -import forge.itemmanager.filters.AdvancedSearchFilter; -import forge.itemmanager.filters.ComboBoxFilter; -import forge.itemmanager.filters.ItemFilter; -import forge.itemmanager.filters.StatTypeFilter; -import forge.itemmanager.filters.TextSearchFilter; +import forge.itemmanager.filters.*; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FButton; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FList; import forge.toolbox.FList.CompactModeHandler; -import forge.toolbox.FOptionPane; -import forge.toolbox.FTextField; import forge.util.Callback; +import java.util.Map.Entry; + public class ConquestCommandersScreen extends FScreen { private static final float PADDING = FDeckChooser.PADDING; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java index 439fc001775..58cef268e05 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java @@ -1,7 +1,5 @@ package forge.screens.planarconquest; -import java.util.Map; - import forge.Forge; import forge.deck.DeckProxy; import forge.deck.FDeckEditor; @@ -15,6 +13,8 @@ import forge.model.FModel; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; +import java.util.Map; + public class ConquestDeckEditor extends FDeckEditor { public ConquestDeckEditor(final ConquestCommander commander) { super(EditorType.PlanarConquest, new DeckProxy(commander.getDeck(), Forge.getLocalizer().getMessage("lblConquestCommander"), diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java index fbe7327925c..5aa64340e7b 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java @@ -1,42 +1,18 @@ package forge.screens.planarconquest; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; -import forge.assets.FImage; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.FSkinTexture; -import forge.card.CardAvatarImage; -import forge.card.CardFaceSymbols; -import forge.card.CardImageRenderer; -import forge.card.CardRenderer; -import forge.card.CardZoom; -import forge.card.ColorSet; -import forge.gamemodes.planarconquest.ConquestAwardPool; -import forge.gamemodes.planarconquest.ConquestBattle; -import forge.gamemodes.planarconquest.ConquestChaosBattle; -import forge.gamemodes.planarconquest.ConquestData; -import forge.gamemodes.planarconquest.ConquestEvent; +import forge.assets.*; +import forge.card.*; +import forge.gamemodes.planarconquest.*; import forge.gamemodes.planarconquest.ConquestEvent.ChaosWheelOutcome; import forge.gamemodes.planarconquest.ConquestEvent.ConquestEventRecord; -import forge.gamemodes.planarconquest.ConquestLocation; -import forge.gamemodes.planarconquest.ConquestPlane; -import forge.gamemodes.planarconquest.ConquestPlaneData; import forge.gamemodes.planarconquest.ConquestPreferences.CQPref; -import forge.gamemodes.planarconquest.ConquestRegion; -import forge.gamemodes.planarconquest.ConquestReward; -import forge.gamemodes.planarconquest.ConquestUtil; import forge.gui.FThreads; import forge.gui.card.CardDetailUtil; import forge.gui.card.CardDetailUtil.DetailColors; @@ -44,15 +20,13 @@ import forge.item.PaperCard; import forge.model.FModel; import forge.screens.FScreen; import forge.screens.LoadingOverlay; -import forge.toolbox.FButton; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FList; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; +import forge.toolbox.*; import forge.util.Callback; import forge.util.Utils; import forge.util.collect.FCollectionView; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; public class ConquestMultiverseScreen extends FScreen { private static final Color FOG_OF_WAR_COLOR = FSkinColor.alphaColor(Color.BLACK, 0.65f); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java index 89b368bd69a..d4548b71293 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java @@ -1,21 +1,14 @@ package forge.screens.planarconquest; -import java.util.List; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Align; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; -import forge.assets.FImage; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.FSkinTexture; +import forge.assets.*; import forge.card.CardRenderer; import forge.gamemodes.planarconquest.ConquestPlane; import forge.item.PaperCard; @@ -27,6 +20,8 @@ import forge.toolbox.GuiDialog; import forge.util.Utils; import forge.util.collect.FCollectionView; +import java.util.List; + public class ConquestPlaneSelector extends FDisplayObject { private static final FSkinFont PLANE_NAME_FONT = FSkinFont.get(30); private static final Color BACK_COLOR = FSkinColor.fromRGB(1, 2, 2); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java index 65fe6e6d9f8..71ec5f83819 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java @@ -2,7 +2,6 @@ package forge.screens.planarconquest; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinFont; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java index 60833e8cdb5..daee1621b08 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java @@ -8,15 +8,8 @@ import forge.gamemodes.planarconquest.ConquestPreferences; import forge.gamemodes.planarconquest.ConquestPreferences.CQPref; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FNumericTextField; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; -import forge.toolbox.FTextField; import forge.util.Utils; public class ConquestPrefsScreen extends FScreen { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java index f148d39d2bf..62918f10b21 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java @@ -1,11 +1,7 @@ package forge.screens.planarconquest; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.ImageKeys; @@ -18,14 +14,13 @@ import forge.card.CardRenderer.CardStackPosition; import forge.card.CardZoom; import forge.gamemodes.planarconquest.ConquestReward; import forge.item.PaperCard; -import forge.toolbox.FCardPanel; -import forge.toolbox.FDialog; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FScrollPane; import forge.util.Utils; +import java.util.ArrayList; +import java.util.List; + public class ConquestRewardDialog extends FScrollPane { private static final float PADDING = Utils.scale(5); diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java index 94af5690b78..1f38341fc88 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java @@ -1,7 +1,6 @@ package forge.screens.planarconquest; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkinFont; @@ -12,12 +11,8 @@ import forge.gamemodes.planarconquest.IVConquestStats; import forge.gui.interfaces.IButton; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FComboBox; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FScrollPane; import forge.util.Utils; public class ConquestStatsScreen extends FScreen implements IVConquestStats { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java index 6df8ee87386..e2f92c2e960 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java @@ -1,16 +1,7 @@ package forge.screens.planarconquest; -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -40,6 +31,9 @@ import forge.util.FileUtil; import forge.util.ThreadUtil; import forge.util.Utils; +import java.io.File; +import java.util.*; + public class LoadConquestScreen extends LaunchScreen { private static final float ITEM_HEIGHT = Utils.AVG_FINGER_HEIGHT; private static final float PADDING = Utils.AVG_FINGER_HEIGHT * 0.1f; diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java index 5cfbaa7fb21..073283f5c64 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java @@ -1,7 +1,6 @@ package forge.screens.planarconquest; import com.google.common.collect.Iterables; - import forge.Forge; import forge.assets.FImage; import forge.card.CardImage; diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java index a98717ba8e1..84f59174f2f 100644 --- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java @@ -1,18 +1,7 @@ package forge.screens.quest; -import java.io.File; -import java.io.FilenameFilter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -42,6 +31,11 @@ import forge.toolbox.FTextArea; import forge.util.ThreadUtil; import forge.util.Utils; +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.*; + public class LoadQuestScreen extends LaunchScreen { private static final float ITEM_HEIGHT = Utils.AVG_FINGER_HEIGHT; private static final float PADDING = Utils.AVG_FINGER_HEIGHT * 0.1f; diff --git a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java index 51f14a71410..317b228cfac 100644 --- a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java @@ -1,13 +1,6 @@ package forge.screens.quest; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map.Entry; -import java.util.Set; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; import forge.assets.FSkinImage; @@ -16,13 +9,8 @@ import forge.deck.Deck; import forge.deck.DeckGroup; import forge.deck.DeckSection; import forge.game.GameFormat; -import forge.gamemodes.quest.QuestController; -import forge.gamemodes.quest.QuestMode; -import forge.gamemodes.quest.QuestUtil; -import forge.gamemodes.quest.QuestWorld; -import forge.gamemodes.quest.StartingPoolPreferences; +import forge.gamemodes.quest.*; import forge.gamemodes.quest.StartingPoolPreferences.PoolType; -import forge.gamemodes.quest.StartingPoolType; import forge.gamemodes.quest.data.DeckConstructionRules; import forge.gamemodes.quest.data.GameFormatQuest; import forge.gamemodes.quest.data.QuestPreferences.QPref; @@ -39,19 +27,18 @@ import forge.screens.FScreen; import forge.screens.LoadingOverlay; import forge.screens.home.NewGameMenu; import forge.screens.quest.QuestMenu.LaunchReason; -import forge.toolbox.FCheckBox; -import forge.toolbox.FComboBox; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FLabel; -import forge.toolbox.FNumericTextField; -import forge.toolbox.FOptionPane; -import forge.toolbox.FRadioButton; +import forge.toolbox.*; import forge.toolbox.FRadioButton.RadioButtonGroup; -import forge.toolbox.FScrollPane; import forge.util.FileUtil; import forge.util.ThreadUtil; import forge.util.Utils; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; + public class NewQuestScreen extends FScreen { private static final float EMBARK_BTN_HEIGHT = 2 * Utils.AVG_FINGER_HEIGHT; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java index 3a1183c30e5..ac40451f307 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java @@ -1,11 +1,7 @@ package forge.screens.quest; -import java.util.List; -import java.util.Set; - import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -20,16 +16,13 @@ import forge.gamemodes.quest.data.QuestAssets; import forge.gui.GuiBase; import forge.model.FModel; import forge.screens.TabPageScreen; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FList; -import forge.toolbox.FScrollPane; -import forge.toolbox.FTextArea; import forge.util.Utils; +import java.util.List; +import java.util.Set; + public class QuestBazaarScreen extends TabPageScreen { public QuestBazaarScreen() { diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java index e86019ad2d9..fbf9b192dca 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java @@ -2,7 +2,6 @@ package forge.screens.quest; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; import forge.gui.interfaces.IButton; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java b/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java index 173c618ba3c..37951dbae7b 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java @@ -1,8 +1,5 @@ package forge.screens.quest; -import java.util.HashMap; -import java.util.Map; - import forge.deck.DeckProxy; import forge.deck.FDeckEditor; import forge.gamemodes.quest.QuestSpellShop; @@ -12,6 +9,9 @@ import forge.itemmanager.ItemColumn; import forge.itemmanager.ItemManagerConfig; import forge.model.FModel; +import java.util.HashMap; +import java.util.Map; + public class QuestDeckEditor extends FDeckEditor { public QuestDeckEditor(boolean commander) { super(commander ? EditorType.QuestCommander: EditorType.Quest, "", false); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java index c3c98f39998..17bcfd67482 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java @@ -1,7 +1,6 @@ package forge.screens.quest; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; import forge.assets.ImageCache; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java index 8560f42ec61..5d62bd3c038 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java @@ -1,10 +1,7 @@ package forge.screens.quest; -import java.util.List; - import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FSkinFont; import forge.gamemodes.quest.QuestEventDuel; @@ -14,6 +11,8 @@ import forge.model.FModel; import forge.screens.LoadingOverlay; import forge.toolbox.FLabel; +import java.util.List; + public class QuestDuelsScreen extends QuestLaunchScreen { private final FLabel lblInfo = add(new FLabel.Builder().text(Forge.getLocalizer().getMessage("lblSelectNextDuel")) diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java index 956ca72a852..08d3fa57ce4 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java @@ -2,14 +2,9 @@ package forge.screens.quest; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Graphics; -import forge.assets.FImage; -import forge.assets.FSkinColor; +import forge.assets.*; import forge.assets.FSkinColor.Colors; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.ImageCache; import forge.gamemodes.quest.IQuestEvent; import forge.screens.settings.SettingsScreen; import forge.toolbox.FDisplayObject; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java index 67ca2c6eba6..176e0997d78 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java @@ -1,8 +1,5 @@ package forge.screens.quest; -import java.io.File; -import java.io.IOException; - import forge.Forge; import forge.assets.FSkinImage; import forge.deck.Deck; @@ -28,6 +25,9 @@ import forge.screens.home.LoadGameMenu.LoadGameScreen; import forge.screens.home.NewGameMenu.NewGameScreen; import forge.util.ThreadUtil; +import java.io.File; +import java.io.IOException; + public class QuestMenu extends FPopupMenu implements IVQuestStats { private static final QuestMenu questMenu = new QuestMenu(); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java index 4164e09814c..950240cbbec 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java @@ -8,15 +8,8 @@ import forge.gamemodes.quest.data.QuestPreferences; import forge.gamemodes.quest.data.QuestPreferences.QPref; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FContainer; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FNumericTextField; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; -import forge.toolbox.FTextField; import forge.util.Utils; public class QuestPrefsScreen extends FScreen { diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java index 4cf53a0909f..206ab3fd21d 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java @@ -1,13 +1,6 @@ package forge.screens.quest; -import java.text.DecimalFormat; -import java.text.NumberFormat; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkinFont; @@ -36,6 +29,12 @@ import forge.util.Callback; import forge.util.ItemPool; import forge.util.Utils; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; + public class QuestSpellShopScreen extends TabPageScreen { private final SpellShopPage spellShopPage; private final InventoryPage inventoryPage; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java index 154e9462a72..9331fc945ed 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java @@ -1,7 +1,5 @@ package forge.screens.quest; -import java.util.List; - import forge.Forge; import forge.assets.FImage; import forge.assets.FSkinFont; @@ -14,16 +12,12 @@ import forge.gui.interfaces.ICheckBox; import forge.gui.interfaces.IComboBox; import forge.model.FModel; import forge.screens.FScreen; -import forge.toolbox.FCheckBox; -import forge.toolbox.FComboBox; -import forge.toolbox.FDisplayObject; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FLabel; -import forge.toolbox.FOptionPane; -import forge.toolbox.FScrollPane; import forge.util.Utils; +import java.util.List; + public class QuestStatsScreen extends FScreen { private static final float PADDING = FOptionPane.PADDING; diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java index 98f4a5ac791..5962018b0d5 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java @@ -1,17 +1,9 @@ package forge.screens.quest; -import java.util.Arrays; - import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; -import forge.assets.FSkin; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.FTextureRegionImage; -import forge.assets.ImageCache; +import forge.assets.*; import forge.deck.CardPool; import forge.deck.Deck; import forge.deck.DeckGroup; @@ -38,6 +30,8 @@ import forge.toolbox.FLabel; import forge.toolbox.FTextField; import forge.util.Utils; +import java.util.Arrays; + public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestTournamentView { //Select Tournament panel private final SelectTournamentPanel pnlSelectTournament = add(new SelectTournamentPanel()); diff --git a/forge-gui-mobile/src/forge/screens/settings/FilesPage.java b/forge-gui-mobile/src/forge/screens/settings/FilesPage.java index cbd354505bb..3ed187d8804 100644 --- a/forge-gui-mobile/src/forge/screens/settings/FilesPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/FilesPage.java @@ -1,45 +1,32 @@ package forge.screens.settings; +import com.badlogic.gdx.utils.Align; +import com.google.common.collect.ImmutableList; +import forge.Forge; +import forge.Graphics; +import forge.StaticData; +import forge.assets.FSkinColor; +import forge.assets.FSkinFont; +import forge.assets.FSkinImage; +import forge.gui.FThreads; +import forge.gui.GuiBase; +import forge.gui.download.*; +import forge.localinstance.properties.ForgeConstants; +import forge.localinstance.properties.ForgeProfileProperties; +import forge.screens.LoadingOverlay; +import forge.screens.TabPageScreen.TabPage; +import forge.toolbox.*; +import forge.toolbox.FFileChooser.ChoiceType; +import forge.util.Callback; +import forge.util.FileUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; -import com.google.common.collect.ImmutableList; -import forge.StaticData; -import forge.gui.FThreads; -import forge.gui.GuiBase; -import forge.screens.LoadingOverlay; -import org.apache.commons.lang3.StringUtils; - -import com.badlogic.gdx.utils.Align; - -import forge.Forge; -import forge.Graphics; -import forge.assets.FSkinColor; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.gui.download.GuiDownloadAchievementImages; -import forge.gui.download.GuiDownloadPicturesLQ; -import forge.gui.download.GuiDownloadPrices; -import forge.gui.download.GuiDownloadQuestImages; -import forge.gui.download.GuiDownloadService; -import forge.gui.download.GuiDownloadSetPicturesLQ; -import forge.gui.download.GuiDownloadSkins; -import forge.gui.download.GuiDownloadZipService; -import forge.localinstance.properties.ForgeConstants; -import forge.localinstance.properties.ForgeProfileProperties; -import forge.screens.TabPageScreen.TabPage; -import forge.toolbox.FFileChooser; -import forge.toolbox.FFileChooser.ChoiceType; -import forge.toolbox.FGroupList; -import forge.toolbox.FList; -import forge.toolbox.FOptionPane; -import forge.toolbox.GuiChoose; -import forge.util.Callback; -import forge.util.FileUtil; -import org.apache.commons.lang3.tuple.Pair; - public class FilesPage extends TabPage { private final FGroupList lstItems = add(new FGroupList<>()); diff --git a/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java b/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java index 537f0d64819..c00e9b6e4bc 100644 --- a/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java +++ b/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java @@ -17,22 +17,18 @@ */ package forge.screens.settings; -import java.net.Proxy; - import forge.Forge; import forge.gui.UiCommand; import forge.gui.download.GuiDownloadService; import forge.gui.download.GuiDownloadZipService; -import forge.toolbox.FDialog; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FProgressBar; -import forge.toolbox.FRadioButton; import forge.toolbox.FRadioButton.RadioButtonGroup; -import forge.toolbox.FTextField; import forge.util.Callback; import forge.util.Utils; +import java.net.Proxy; + public class GuiDownloader extends FDialog { public static final Proxy.Type[] TYPES = Proxy.Type.values(); private static final float PADDING = Utils.scale(10); diff --git a/forge-gui-mobile/src/forge/toolbox/DualListBox.java b/forge-gui-mobile/src/forge/toolbox/DualListBox.java index d9698d747b0..bb0a621a3b2 100644 --- a/forge-gui-mobile/src/forge/toolbox/DualListBox.java +++ b/forge-gui-mobile/src/forge/toolbox/DualListBox.java @@ -1,17 +1,16 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; import forge.util.Callback; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + // An input box for handling the order of choices. // Left box has the original choices // Right box has the final order diff --git a/forge-gui-mobile/src/forge/toolbox/FButton.java b/forge-gui-mobile/src/forge/toolbox/FButton.java index 4c62825ae36..0291ce5cad9 100644 --- a/forge-gui-mobile/src/forge/toolbox/FButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FButton.java @@ -1,10 +1,7 @@ package forge.toolbox; -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -18,6 +15,7 @@ import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; import forge.util.TextBounds; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; public class FButton extends FDisplayObject implements IButton { private static final FSkinColor DEFAULT_FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT); diff --git a/forge-gui-mobile/src/forge/toolbox/FCheckBox.java b/forge-gui-mobile/src/forge/toolbox/FCheckBox.java index fd7d6438737..ca8b2cb5f09 100644 --- a/forge-gui-mobile/src/forge/toolbox/FCheckBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FCheckBox.java @@ -1,7 +1,6 @@ package forge.toolbox; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FImage; import forge.assets.FSkinColor; diff --git a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java index e63a7c8acd9..77abaa7871c 100644 --- a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java +++ b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java @@ -1,13 +1,6 @@ package forge.toolbox; -import static forge.card.CardRenderer.MANA_SYMBOL_SIZE; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkin; import forge.assets.FSkinColor; @@ -38,6 +31,12 @@ import forge.screens.match.views.VStack; import forge.util.TextUtil; import forge.util.Utils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static forge.card.CardRenderer.MANA_SYMBOL_SIZE; + public class FChoiceList extends FList implements ActivateHandler { public static final FSkinColor ITEM_COLOR = FSkinColor.get(Colors.CLR_ZEBRA); public static final FSkinColor ALT_ITEM_COLOR = ITEM_COLOR.getContrastColor(-20); diff --git a/forge-gui-mobile/src/forge/toolbox/FComboBox.java b/forge-gui-mobile/src/forge/toolbox/FComboBox.java index 2a2a863157d..65753a8c151 100644 --- a/forge-gui-mobile/src/forge/toolbox/FComboBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FComboBox.java @@ -1,11 +1,6 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.gui.interfaces.IComboBox; import forge.menu.FDropDownMenu; @@ -13,6 +8,10 @@ import forge.menu.FMenuItem; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class FComboBox extends FTextField implements IComboBox { private final List items = new ArrayList<>(); private T selectedItem; diff --git a/forge-gui-mobile/src/forge/toolbox/FContainer.java b/forge-gui-mobile/src/forge/toolbox/FContainer.java index bb0f248c431..6b14cfb711d 100644 --- a/forge-gui-mobile/src/forge/toolbox/FContainer.java +++ b/forge-gui-mobile/src/forge/toolbox/FContainer.java @@ -1,14 +1,13 @@ package forge.toolbox; +import com.badlogic.gdx.math.Vector2; +import forge.Graphics; +import forge.gui.error.BugReporter; + import java.util.ArrayList; import java.util.ConcurrentModificationException; import java.util.List; -import com.badlogic.gdx.math.Vector2; - -import forge.Graphics; -import forge.gui.error.BugReporter; - public abstract class FContainer extends FDisplayObject { private final List children = new ArrayList<>(); diff --git a/forge-gui-mobile/src/forge/toolbox/FDialog.java b/forge-gui-mobile/src/forge/toolbox/FDialog.java index 28f86cf4729..3e8e87222d5 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDialog.java +++ b/forge-gui-mobile/src/forge/toolbox/FDialog.java @@ -2,7 +2,6 @@ package forge.toolbox; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; diff --git a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java index 92aaef7130d..4355a1a57a6 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java +++ b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java @@ -1,13 +1,12 @@ package forge.toolbox; -import java.util.List; - import com.badlogic.gdx.math.Rectangle; - import forge.Forge; import forge.Graphics; import forge.gui.GuiBase; +import java.util.List; + public abstract class FDisplayObject { protected static final float DISABLED_COMPOSITE = 0.25f; diff --git a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java index 8b12f2cf3dd..3d7cd187fe7 100644 --- a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java +++ b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java @@ -1,13 +1,7 @@ package forge.toolbox; -import java.io.File; -import java.io.FilenameFilter; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -19,6 +13,10 @@ import forge.toolbox.FEvent.FEventHandler; import forge.util.Callback; import forge.util.FileUtil; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.io.File; +import java.io.FilenameFilter; public class FFileChooser extends FDialog { private static final float BACK_ICON_THICKNESS = Utils.scale(2); diff --git a/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java b/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java index 10178690641..89cf891724a 100644 --- a/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java +++ b/forge-gui-mobile/src/forge/toolbox/FGestureAdapter.java @@ -6,7 +6,6 @@ import com.badlogic.gdx.InputAdapter; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; - import forge.Forge; import forge.assets.FSkin; import forge.localinstance.properties.ForgePreferences.FPref; diff --git a/forge-gui-mobile/src/forge/toolbox/FGroupBox.java b/forge-gui-mobile/src/forge/toolbox/FGroupBox.java index fbfd85e2ecf..e7e6eb0219b 100644 --- a/forge-gui-mobile/src/forge/toolbox/FGroupBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FGroupBox.java @@ -1,7 +1,6 @@ package forge.toolbox; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; diff --git a/forge-gui-mobile/src/forge/toolbox/FGroupList.java b/forge-gui-mobile/src/forge/toolbox/FGroupList.java index 0bf2b243018..dd4109d9247 100644 --- a/forge-gui-mobile/src/forge/toolbox/FGroupList.java +++ b/forge-gui-mobile/src/forge/toolbox/FGroupList.java @@ -1,8 +1,5 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.List; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; @@ -13,6 +10,9 @@ import forge.toolbox.FList.DefaultListItemRenderer; import forge.toolbox.FList.ListItemRenderer; import forge.util.Utils; +import java.util.ArrayList; +import java.util.List; + public class FGroupList extends FScrollPane { private static final float GROUP_HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.6f); diff --git a/forge-gui-mobile/src/forge/toolbox/FLabel.java b/forge-gui-mobile/src/forge/toolbox/FLabel.java index a48b09c9b6c..d16a84dee43 100644 --- a/forge-gui-mobile/src/forge/toolbox/FLabel.java +++ b/forge-gui-mobile/src/forge/toolbox/FLabel.java @@ -3,14 +3,9 @@ package forge.toolbox; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Graphics; -import forge.assets.FImage; -import forge.assets.FSkinColor; +import forge.assets.*; import forge.assets.FSkinColor.Colors; -import forge.assets.FSkinFont; -import forge.assets.FSkinImage; -import forge.assets.TextRenderer; import forge.gui.UiCommand; import forge.gui.interfaces.IButton; import forge.localinstance.skin.FSkinProp; diff --git a/forge-gui-mobile/src/forge/toolbox/FList.java b/forge-gui-mobile/src/forge/toolbox/FList.java index e5282ad3b20..f7014384ae5 100644 --- a/forge-gui-mobile/src/forge/toolbox/FList.java +++ b/forge-gui-mobile/src/forge/toolbox/FList.java @@ -1,11 +1,6 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; @@ -18,6 +13,10 @@ import forge.model.FModel; import forge.screens.FScreen; import forge.util.Utils; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + public class FList extends FScrollPane implements Iterable { public static final float PADDING = Utils.scale(3); public static final FSkinColor FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT); diff --git a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java index 96dbe34a66d..45869375fa4 100644 --- a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java +++ b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java @@ -1,14 +1,9 @@ package forge.toolbox; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.Graphics; import forge.assets.FImage; @@ -25,6 +20,9 @@ import forge.toolbox.FEvent.FEventHandler; import forge.util.Callback; import forge.util.Utils; import forge.util.WaitCallback; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; public class FOptionPane extends FDialog { public static final FSkinImage QUESTION_ICON = FSkinImage.QUESTION; diff --git a/forge-gui-mobile/src/forge/toolbox/FOverlay.java b/forge-gui-mobile/src/forge/toolbox/FOverlay.java index 7dd5911e493..d65457db31d 100644 --- a/forge-gui-mobile/src/forge/toolbox/FOverlay.java +++ b/forge-gui-mobile/src/forge/toolbox/FOverlay.java @@ -1,13 +1,8 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.List; -import java.util.Stack; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -16,6 +11,10 @@ import forge.gui.FThreads; import forge.screens.FScreen; import forge.screens.match.MatchController; +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + public abstract class FOverlay extends FContainer { public static final float ALPHA_COMPOSITE = 0.5f; private static final Stack overlays = new Stack<>(); diff --git a/forge-gui-mobile/src/forge/toolbox/FProgressBar.java b/forge-gui-mobile/src/forge/toolbox/FProgressBar.java index c4ba558b089..a610fa653ff 100644 --- a/forge-gui-mobile/src/forge/toolbox/FProgressBar.java +++ b/forge-gui-mobile/src/forge/toolbox/FProgressBar.java @@ -1,18 +1,16 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.apache.commons.lang3.tuple.Pair; - import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinFont; import forge.gui.interfaces.IProgressBar; import forge.util.Utils; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; public class FProgressBar extends FDisplayObject implements IProgressBar { public static Color BACK_COLOR, FORE_COLOR, SEL_BACK_COLOR, SEL_FORE_COLOR; diff --git a/forge-gui-mobile/src/forge/toolbox/FRadioButton.java b/forge-gui-mobile/src/forge/toolbox/FRadioButton.java index 7488045e387..f4b618d2a4d 100644 --- a/forge-gui-mobile/src/forge/toolbox/FRadioButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FRadioButton.java @@ -1,16 +1,15 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.List; - import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FImage; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; import forge.util.Utils; +import java.util.ArrayList; +import java.util.List; + public class FRadioButton extends FLabel { private static final FSkinColor INNER_CIRCLE_COLOR = FSkinColor.get(Colors.CLR_TEXT); private static final FSkinColor OUTER_CIRCLE_COLOR = INNER_CIRCLE_COLOR.alphaColor(0.5f); diff --git a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java index 2f6dde5199a..2cd7316fefb 100644 --- a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java +++ b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java @@ -1,9 +1,6 @@ package forge.toolbox; -import java.util.List; - import com.badlogic.gdx.math.Vector2; - import forge.Graphics; import forge.animation.ForgeAnimation; import forge.assets.FSkinColor; @@ -12,6 +9,8 @@ import forge.model.FModel; import forge.util.PhysicsObject; import forge.util.Utils; +import java.util.List; + public abstract class FScrollPane extends FContainer { private static final float FLING_DECEL = 750f; private static final FSkinColor INDICATOR_COLOR = FSkinColor.get(FSkinColor.Colors.CLR_TEXT).alphaColor(0.7f); diff --git a/forge-gui-mobile/src/forge/toolbox/FTextArea.java b/forge-gui-mobile/src/forge/toolbox/FTextArea.java index fe1e02c47d8..6bdf9cd5992 100644 --- a/forge-gui-mobile/src/forge/toolbox/FTextArea.java +++ b/forge-gui-mobile/src/forge/toolbox/FTextArea.java @@ -2,7 +2,6 @@ package forge.toolbox; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinFont; diff --git a/forge-gui-mobile/src/forge/toolbox/FTextField.java b/forge-gui-mobile/src/forge/toolbox/FTextField.java index 6510cc32fd5..428f9418ddd 100644 --- a/forge-gui-mobile/src/forge/toolbox/FTextField.java +++ b/forge-gui-mobile/src/forge/toolbox/FTextField.java @@ -2,7 +2,6 @@ package forge.toolbox; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.utils.Align; - import forge.Forge; import forge.Forge.KeyInputAdapter; import forge.Graphics; diff --git a/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java b/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java index e65c4697b39..fabff813983 100644 --- a/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java +++ b/forge-gui-mobile/src/forge/toolbox/FToggleSwitch.java @@ -1,7 +1,6 @@ package forge.toolbox; import com.badlogic.gdx.utils.Align; - import forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; diff --git a/forge-gui-mobile/src/forge/toolbox/GuiChoose.java b/forge-gui-mobile/src/forge/toolbox/GuiChoose.java index 04cb896d927..cb8797007f9 100644 --- a/forge-gui-mobile/src/forge/toolbox/GuiChoose.java +++ b/forge-gui-mobile/src/forge/toolbox/GuiChoose.java @@ -1,20 +1,13 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import forge.Forge; -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.Function; import com.google.common.collect.Iterables; - +import forge.Forge; import forge.game.card.CardView; import forge.util.Callback; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; public class GuiChoose { diff --git a/forge-gui-mobile/src/forge/toolbox/GuiDialog.java b/forge-gui-mobile/src/forge/toolbox/GuiDialog.java index dbc1605c654..657c058d8f4 100644 --- a/forge-gui-mobile/src/forge/toolbox/GuiDialog.java +++ b/forge-gui-mobile/src/forge/toolbox/GuiDialog.java @@ -1,13 +1,11 @@ package forge.toolbox; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; - import com.google.common.collect.ImmutableList; - import forge.game.card.CardView; import forge.util.Callback; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; /** * Holds player interactions using standard windows diff --git a/forge-gui-mobile/src/forge/toolbox/ListChooser.java b/forge-gui-mobile/src/forge/toolbox/ListChooser.java index 5f0e0359ec9..ad7d8c39204 100644 --- a/forge-gui-mobile/src/forge/toolbox/ListChooser.java +++ b/forge-gui-mobile/src/forge/toolbox/ListChooser.java @@ -18,16 +18,11 @@ package forge.toolbox; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinFont; @@ -43,6 +38,10 @@ import forge.toolbox.FEvent.FEventHandler; import forge.util.Callback; import forge.util.Utils; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + /** * A simple class that shows a list of choices in a dialog. Two properties * influence the behavior of a list chooser: minSelection and maxSelection. diff --git a/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java b/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java index 271cca37605..09c2cde8026 100644 --- a/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java +++ b/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java @@ -1,5 +1,9 @@ package forge.util; +import com.badlogic.gdx.files.FileHandle; +import forge.Forge; +import forge.gui.GuiBase; + import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -7,11 +11,6 @@ import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; -import com.badlogic.gdx.files.FileHandle; - -import forge.Forge; -import forge.gui.GuiBase; - public class LibGDXImageFetcher extends ImageFetcher { @Override protected Runnable getDownloadTask(String[] downloadUrls, String destPath, Runnable notifyObservers) { diff --git a/forge-gui/res/adventure/Shandalar/world/black.json b/forge-gui/res/adventure/Shandalar/world/black.json index 9a9c1d7f76f..5413ac49ede 100644 --- a/forge-gui/res/adventure/Shandalar/world/black.json +++ b/forge-gui/res/adventure/Shandalar/world/black.json @@ -1,37 +1,145 @@ { - "startPointX": 0.70, - "startPointY": 0.78, - "name": "black", - "noiseWeight": 0.5, - "distWeight": 1.5, - "tilesetName":"Black", - "tilesetAtlas":"world/tilesets/terrain.atlas", - "terrain":[ - { - "spriteName":"Black_1", - "min": 0, - "max": 0.2, - "resolution": 10 - },{ - "spriteName":"Black_2", - "min": 0.8, - "max": 1.0, - "resolution": 10 - } - ], - "width": 0.7, - "height": 0.7, - "color": "110903", - "spriteNames":[ "SwampTree","SwampTree2","DarkGras","Skull","SwampRock","DarkWood","Reed","Waterlily","Shroom","Shroom2"] , - "enemies":[ "Beholder","Big Zombie","Black Wiz1","Black Wiz2","Black Wiz3","Dark Knight","Death Knight","Demon","Ghoul","Ghost","Harpy","Harpy 2","High Vampire","Lich","Rakdos Devil","Skeleton","Skeleton Soldier","Vampire","Zombie","Zombie Lord" ] , - "pointsOfInterest":[ - "Black Castle", - "Swamp Town","Swamp Town2", - "Zombie Town", - "Graveyard", "Graveyard1", "Graveyard2", "Graveyard3", "Graveyard4", - "VampireCastle", "VampireCastle1", "VampireCastle2", - "EvilGrove", "EvilGrove1", "EvilGrove2", "EvilGrove3", "EvilGrove4", - "SkullCaveB", "SkullCaveB1", "SkullCaveB2", - "CaveB", "CaveB1", "CaveB2", "CaveB3", "CaveB4", "CaveB5", "CaveB6", "CaveB8", "CaveBA" - ] +"startPointX": 0.7, +"startPointY": 0.78, +"noiseWeight": 0.5, +"distWeight": 1.5, +"name": "black", +"tilesetAtlas": "world/tilesets/terrain.atlas", +"tilesetName": "Black", +"terrain": [ + { + "spriteName": "Black_1", + "max": 0.2, + "resolution": 10 + }, + { + "spriteName": "Black_2", + "min": 0.8, + "max": 1, + "resolution": 10 + } +], +"width": 0.7, +"height": 0.7, +"color": "110903", +"spriteNames": [ + "SwampTree", + "SwampTree2", + "DarkGras", + "Skull", + "SwampRock", + "DarkWood", + "Reed", + "Waterlily", + "Shroom", + "Shroom2" +], +"enemies": [ + "Beholder", + "Big Zombie", + "Black Wiz1", + "Black Wiz2", + "Black Wiz3", + "Dark Knight", + "Death Knight", + "Demon", + "Ghoul", + "Ghost", + "Harpy", + "Harpy 2", + "High Vampire", + "Lich", + "Rakdos Devil", + "Skeleton", + "Skeleton Soldier", + "Vampire", + "Zombie", + "Zombie Lord" +], +"pointsOfInterest": [ + "Black Castle", + "Swamp Town", + "Swamp Town2", + "Zombie Town", + "Graveyard", + "Graveyard1", + "Graveyard2", + "Graveyard3", + "Graveyard4", + "VampireCastle", + "VampireCastle1", + "VampireCastle2", + "EvilGrove", + "EvilGrove1", + "EvilGrove2", + "EvilGrove3", + "EvilGrove4", + "SkullCaveB", + "SkullCaveB1", + "SkullCaveB2", + "CaveB", + "CaveB1", + "CaveB2", + "CaveB3", + "CaveB4", + "CaveB5", + "CaveB6", + "CaveB8", + "CaveBA" +], +"structures": [ + { + "N": 2, + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/swamp_forest.png", + "maskPath": "world/tilesets/ring.png", + "height": 0.4, + "width": 0.4, + "symmetry": 8, + "periodicOutput": false, + "mappingInfo": [ + { + "name": "swamp_forest", + "color": "007000", + "collision": true + }, + { + "name": "swamp_water", + "color": "005050", + "collision": true + } + ] + }, + { + "N": 2, + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/swamp_ruins.png", + "maskPath": "world/tilesets/circle.png", + "height": 0.20000002, + "width": 0.20000002, + "symmetry": 1, + "periodicOutput": false, + "mappingInfo": [ + { + "name": "deep_swamp", + "color": "002000", + "collision": true + }, + { + "name": "structure", + "color": "505050", + "collision": true + }, + { + "name": "swamp_forest2", + "color": "007000", + "collision": true + } + ] + } +] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/blue.json b/forge-gui/res/adventure/Shandalar/world/blue.json index bb8fc0927ec..fafce7a20d8 100644 --- a/forge-gui/res/adventure/Shandalar/world/blue.json +++ b/forge-gui/res/adventure/Shandalar/world/blue.json @@ -1,38 +1,126 @@ { - "startPointX": 0.79, - "startPointY": 0.43, - "name": "blue", - "noiseWeight": 0.5, - "distWeight": 1.5, - "tilesetName":"Blue", - "tilesetAtlas":"world/tilesets/terrain.atlas", - "terrain":[ - { - "spriteName":"Blue_1", - "min": 0, - "max": 0.2, - "resolution": 10 - }, { - "spriteName":"Blue_2", - "min": 0.8, - "max": 1.0, - "resolution": 10 - } - ], - "width": 0.7, - "height": 0.7, - "color": "10a2e0", - "spriteNames":["IslandTree" ,"Coral" ,"Shell" ], - "enemies":[ "Bird","Djinn","Elemental","Merfolk","Merfolk Avatar","Merfolk Fighter","Merfolk Lord","Merfolk Soldier","Merfolk warrior","Blue Wiz1","Blue Wiz2","Blue Wiz3","Geist","Rogue","Sea Monster","Tarkir Djinn","Doppelganger" ] , - "pointsOfInterest":[ - "Blue Castle", - "Island Town", - "NestU", - "MerfolkPool", "MerfolkPool1", "MerfolkPool2", "MerfolkPool3", "MerfolkPool4", - "DjinnPalace", "DjinnPalace1", - "Factory", "Factory1", - "MageTowerX", - "MageTowerU", "MageTowerU1", "MageTowerU2", "MageTowerU3", "MageTowerU4", "MageTowerU5", "MageTowerU6", "MageTowerU7", "MageTowerUD", - "CaveU", "CaveU1", "CaveU2", "CaveU3", "CaveU4" - ] +"startPointX": 0.79, +"startPointY": 0.43, +"noiseWeight": 0.5, +"distWeight": 1.5, +"name": "blue", +"tilesetAtlas": "world/tilesets/terrain.atlas", +"tilesetName": "Blue", +"terrain": [ + { + "spriteName": "Blue_1", + "max": 0.2, + "resolution": 10 + }, + { + "spriteName": "Blue_2", + "min": 0.8, + "max": 1, + "resolution": 10 + } +], +"width": 0.7, +"height": 0.7, +"color": "10a2e0", +"spriteNames": [ + "IslandTree", + "Coral", + "Shell" +], +"enemies": [ + "Bird", + "Djinn", + "Elemental", + "Merfolk", + "Merfolk Avatar", + "Merfolk Fighter", + "Merfolk Lord", + "Merfolk Soldier", + "Merfolk warrior", + "Blue Wiz1", + "Blue Wiz2", + "Blue Wiz3", + "Geist", + "Rogue", + "Sea Monster", + "Tarkir Djinn", + "Doppelganger" +], +"pointsOfInterest": [ + "Blue Castle", + "Island Town", + "NestU", + "MerfolkPool", + "MerfolkPool1", + "MerfolkPool2", + "MerfolkPool3", + "MerfolkPool4", + "DjinnPalace", + "DjinnPalace1", + "Factory", + "Factory1", + "MageTowerX", + "MageTowerU", + "MageTowerU1", + "MageTowerU2", + "MageTowerU3", + "MageTowerU4", + "MageTowerU5", + "MageTowerU6", + "MageTowerU7", + "MageTowerUD", + "CaveU", + "CaveU1", + "CaveU2", + "CaveU3", + "CaveU4" +], +"structures": [ + { + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/water.png", + "maskPath": "world/tilesets/circle.png", + "height": 0.20000002, + "width": 0.20000002, + "symmetry": 8, + "periodicOutput": false, + "mappingInfo": [ + { + "name": "water", + "color": "0070a0", + "collision": true + }, + { + "name": "island_forest", + "color": "00a000", + "collision": true + } + ] + }, + { + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/island_forest.png", + "maskPath": "world/tilesets/ring.png", + "height": 0.4, + "width": 0.4, + "symmetry": 8, + "periodicOutput": false, + "mappingInfo": [ + { + "name": "water", + "color": "0070a0", + "collision": true + }, + { + "name": "island_forest", + "color": "00a000", + "collision": true + } + ] + } +] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/green.json b/forge-gui/res/adventure/Shandalar/world/green.json index 644004f6b77..cf577f13624 100644 --- a/forge-gui/res/adventure/Shandalar/world/green.json +++ b/forge-gui/res/adventure/Shandalar/world/green.json @@ -91,17 +91,18 @@ ], "structures": [ { + "N": 2, "x": 0.5, "y": 0.5, "structureAtlasPath": "world/tilesets/structures.atlas", - "sourcePath": "world/tilesets/forestSource.png", - "height": 0.3, - "width": 0.3, + "sourcePath": "world/tilesets/forest.png", + "maskPath": "world/tilesets/circle.png", + "height": 0.20000002, + "width": 0.20000002, "symmetry": 1, - "periodicOutput": false, "mappingInfo": [ { - "name": "Forest", + "name": "forest", "color": "007000", "collision": true } @@ -109,21 +110,22 @@ }, { "N": 2, - "x": 0.3, - "y": 0.3, + "x": 0.5, + "y": 0.5, "structureAtlasPath": "world/tilesets/structures.atlas", - "sourcePath": "world/tilesets/lakeSource.png", - "height": 0.3, - "width": 0.3, + "sourcePath": "world/tilesets/lake.png", + "maskPath": "world/tilesets/ring.png", + "height": 0.4, + "width": 0.4, "periodicOutput": false, "mappingInfo": [ { - "name": "Lake", + "name": "lake", "color": "0070a0", "collision": true }, { - "name": "Forest2", + "name": "forest2", "color": "009000", "collision": true } diff --git a/forge-gui/res/adventure/Shandalar/world/red.json b/forge-gui/res/adventure/Shandalar/world/red.json index b91c3da9f19..9cb469cdd20 100644 --- a/forge-gui/res/adventure/Shandalar/world/red.json +++ b/forge-gui/res/adventure/Shandalar/world/red.json @@ -1,39 +1,144 @@ { - "startPointX": 0.31, - "startPointY": 0.78, - "name": "red", - "noiseWeight": 0.5, - "distWeight": 1.5, - "tilesetName":"Red", - "tilesetAtlas":"world/tilesets/terrain.atlas", - "terrain":[ - { - "spriteName":"Red_1", - "min": 0, - "max": 0.2, - "resolution": 10 - },{ - "spriteName":"Red_2", - "min": 0.8, - "max": 1.0, - "resolution": 10 - } - ], - "width": 0.7, - "height": 0.7, - "color": "b63729", - "spriteNames":[ "MountainTree","MountainTree2","MountainRock","LargeMountainRock","Gravel"] , - "enemies":[ "Amonkhet Minotaur","Ashmouth Devil","Axgard Dwarf","Berserker","Boggart","Cyclops","Devil","Dinosaur","Dragon","Dwarf","Efreet","Fire Elemental","Flame Elemental","Goblin","Goblin Chief","Goblin Warrior","Hellhound","Immersturm Demon","Khan","Minotaur","Minotaur Flayer","Red Beast","Red Wiz1","Red Wiz2","Red Wiz3","Shaman","Troll","Vampire Lord","Viashino","Yeti" ] , - "pointsOfInterest":[ - "Red Castle", - "Mountain Town", - "YuleTown", - "BarbarianCamp", "BarbarianCamp1", "BarbarianCamp2", - "Maze", "Maze1", "Maze2", "Maze3", - "Fort", "Fort5", - "Factory", "Factory2", "Factory3", - "SnowAbbey", "SnowAbbey1", "SnowAbbey2", - "SkullCaveR", "SkullCaveR1", "SkullCaveR2", - "CaveR", "CaveR1", "CaveR2", "CaveR3", "CaveR4", "CaveR5", "CaveR6", "CaveR7", "CaveR8", "CaveR9", "CaveRA", "CaveRB", "CaveRC", "CaveRE", "CaveRG", "CaveRH", "CaveRJ" - ] +"startPointX": 0.31, +"startPointY": 0.78, +"noiseWeight": 0.5, +"distWeight": 1.5, +"name": "red", +"tilesetAtlas": "world/tilesets/terrain.atlas", +"tilesetName": "Red", +"terrain": [ + { + "spriteName": "Red_1", + "max": 0.2, + "resolution": 10 + }, + { + "spriteName": "Red_2", + "min": 0.8, + "max": 1, + "resolution": 10 + } +], +"width": 0.7, +"height": 0.7, +"color": "b63729", +"spriteNames": [ + "MountainTree", + "MountainTree2", + "MountainRock", + "Gravel" +], +"enemies": [ + "Amonkhet Minotaur", + "Ashmouth Devil", + "Axgard Dwarf", + "Berserker", + "Boggart", + "Cyclops", + "Devil", + "Dinosaur", + "Dragon", + "Dwarf", + "Efreet", + "Fire Elemental", + "Flame Elemental", + "Goblin", + "Goblin Chief", + "Goblin Warrior", + "Hellhound", + "Immersturm Demon", + "Khan", + "Minotaur", + "Minotaur Flayer", + "Red Beast", + "Red Wiz1", + "Red Wiz2", + "Red Wiz3", + "Shaman", + "Troll", + "Vampire Lord", + "Viashino", + "Yeti" +], +"pointsOfInterest": [ + "Red Castle", + "Mountain Town", + "YuleTown", + "BarbarianCamp", + "BarbarianCamp1", + "BarbarianCamp2", + "Maze", + "Maze1", + "Maze2", + "Maze3", + "Fort", + "Fort5", + "Factory", + "Factory2", + "Factory3", + "SnowAbbey", + "SnowAbbey1", + "SnowAbbey2", + "SkullCaveR", + "SkullCaveR1", + "SkullCaveR2", + "CaveR", + "CaveR1", + "CaveR2", + "CaveR3", + "CaveR4", + "CaveR5", + "CaveR6", + "CaveR7", + "CaveR8", + "CaveR9", + "CaveRA", + "CaveRB", + "CaveRC", + "CaveRE", + "CaveRG", + "CaveRH", + "CaveRJ" +], +"structures": [ + { + "N": 2, + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/mountain.png", + "maskPath": "world/tilesets/ring.png", + "height": 0.4, + "width": 0.4, + "periodicOutput": false, + "mappingInfo": [ + { + "name": "mountain", + "color": "a07020", + "collision": true + }, + { + "name": "mountain_forest", + "color": "007000", + "collision": true + } + ] + }, + { + "x": 0.5, + "y": 0.5, + "structureAtlasPath": "world/tilesets/structures.atlas", + "sourcePath": "world/tilesets/lava.png", + "maskPath": "world/tilesets/circle.png", + "height": 0.2, + "width": 0.2, + "mappingInfo": [ + { + "name": "lava", + "color": "ff5000", + "collision": true + } + ] + } +] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/circle.png b/forge-gui/res/adventure/Shandalar/world/tilesets/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..73f7a8e663b4a8a62f0a2a487fcad53cf65edeb5 GIT binary patch literal 9611 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/deep_swamp.png b/forge-gui/res/adventure/Shandalar/world/tilesets/deep_swamp.png new file mode 100644 index 0000000000000000000000000000000000000000..a97692a24ae4287fe208a2411d74fd72ea34848f GIT binary patch literal 11197 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/forest.png b/forge-gui/res/adventure/Shandalar/world/tilesets/forest.png index cf8dd71e0c9d2cb2327c33398a99d087c459cf34..8bcd553e6637b317a70fd1a58a6cab279ef09458 100644 GIT binary patch delta 1766 zcmY+FeKb`0AIE1%#$?heQf#I%WO120_ujepPUM*oStcfOn7K0(swGm1OjsfnHS3{L zi8?|_rVZ74Xg#b|5m{}Xl73iuDngrw-_)Mpp7Z;h^Zk6z_jAtc{du3yAK&l!MDnlZ z(o|0mXBu@Ql|&-ZT(&!SDJtd5p{!KodX4Hd5=ohLjK@FZB{)J4j|h{5>=)AyMTd*& z;-euF66xrx@ofL{L1Xpg{@o2`b?4V;whRc1C93j;Pj?RvF}L()&P3;omMY)fOn)~^ z_ISM1+HbIs^w_~aCG<*!tFF}b2^eYHR3ZOq(8J$yVsF*ZNStMlk&b2_l-su9nQMdSR4B#i;mTg%-k@xaC|(x0#Nyn`aZWm#|cW5b@#`G4aIlb zMv-E-`GFW%bjNgzGHuS(onXXr>C&!(@wo8YRg*;)CUzB-GWz604`V~>?ZQ*VGyN`f)!_KNe5*P7 z?m%h=BgY4`S5nGL4zNw-5F7@xoqV%4D(g3`727kn=Dsz4=_qY{)&XwDu^u9la4|@g4Z6fPBRFrP;O1+3qPw$^ck*@Z#Sik+RyyQbbMSGQ7)2HX& z6%$r-8it)DvN`w zv?nXy-#Nc(ZSSSG+ahC}Znt)MZcVxTFx)6=?bx>8)*X(WD&6~cPqM!Iqwb}lQyIjz z2T|yCUZ4*%X8fIPx^m6RCB5{xp}O_Zvy-w2xLMk;q9hs`)1A4W8Z@{Y}O- z?#~R9H^#fn5|Y||f;;Qpwp#?ZXWXmAsHG~Z*4ibj&7VEsR#FpQtELplWcg`7&DUIS zV>BiX#yxsCR~e&9c}n$udPU8qGt|js(^`4euIF=9>%Z63Vhl~_qr)*!x$AwDhDP9I zzGcf|&((s!=1b~RDfN*%q-bcpZas7fxjen?U`i%4X+9SdwyC7*SD9~JXsimB*FyGA zM#xS*hIU$j*%8omgUNgNApd*h_x0tgO>---l1%QtepwAGr^}~(Pa&RwWo6iCGDI)F zcTzzdLOQpD=kgbG(xfkEw=^5dO4Oass_?Gal`p=QPCfLOvk>WDOclarGEIE^v{H3I zUT4{@Nunk6GO2IxYu9)4CGJ79vKc4mRr+M*?%IYZXW86|mT!YbT(Z@hvmU`ocI2bh z1!2FF6Dw?jp8j?Fm-G%*x_to9Pf|Tu%Rg7%70@?6IWgW3jW5NKO4=f-TSL}`kx1V> z4^g~beD@t(B20eW;)D_t6LN$CjDrCn4zmE5kYIq~#sLTf7Kk7S0!0WR+s-bc;V2H_ z2*P6H91bj7V*fzHxGWA2M7Ri>3n8*-X!HMfHu1jGqIBt|6w41)xK zvvC2yVG}|QE+HfW9FpyVchJ}v4}`dEl#8GY3t1~f7+?Y%M{pK^2_-lHizH$|hze0a zgtCMz0%L-$at`u z1_rPY9*A;5kPBn~uuOuD5->+31lU4_YghmZ0Rbuj0gMHSFcBM+5FCkOtm_x}>jqfZ zzk``#Ow19Y5CI556jgXeF+iXQg@OPPqZok^#23%5wEw|h*C)RP2UAw?mowMPOsw>G zQ&!So1B$cnjN;e9TpVn9IvvEq^768DrR52g#vn7%kE@m@oks+A*$%@HxQ4{nqWjlT nBAHM4In2|oDNolktH`9!@3jN&s`gz~XpmeSJse8yf)f4<&1C7L delta 13511 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 CrHKIm diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/hole.png b/forge-gui/res/adventure/Shandalar/world/tilesets/hole.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9cd1e0e0523e9db031628b383661acf858eb9c GIT binary patch literal 10184 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 WJ-_KZtbqcfvl!`_>6U6ch5tW&A+}op literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/island_forest.png b/forge-gui/res/adventure/Shandalar/world/tilesets/island_forest.png new file mode 100644 index 0000000000000000000000000000000000000000..d9de72cb85b8981b7b5a05fbb3401aa53410eff6 GIT binary patch literal 8670 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/lakeSource.png b/forge-gui/res/adventure/Shandalar/world/tilesets/lakeSource.png deleted file mode 100644 index af2f51f4f895de6935338315e6c3184aac620ba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10750 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 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/lava.png b/forge-gui/res/adventure/Shandalar/world/tilesets/lava.png new file mode 100644 index 0000000000000000000000000000000000000000..c78188f8d9009d64be99d8a0edd87ef9900583b1 GIT binary patch literal 11819 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

!2qEbi=xO60VX<_%x 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 HovHr^=W5uz literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/moon2.png b/forge-gui/res/adventure/Shandalar/world/tilesets/moon2.png new file mode 100644 index 0000000000000000000000000000000000000000..57c483641412bd5c26a4062f56df00369a6f69cb GIT binary patch literal 10837 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 U9d64~B15I6rmtG8Y#Z`_03JogX8-^I literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/moon3.png b/forge-gui/res/adventure/Shandalar/world/tilesets/moon3.png new file mode 100644 index 0000000000000000000000000000000000000000..2fe39f08bf1cbf75da3da3ba676194bf15e0f47c GIT binary patch literal 10545 zcmeHrc{J4T`}f$h%bKmmSfgQ9X2!lGM1(Anj9D1lOpLW;m$EO3WXrx(b}D;hizFpG zp#>!=l%;3XXFbpFoacPb^ZkAQ`Z&hC-`9Ozulu@Q*K%(6RkKqkIN3zl0001|p@E(` z?K^n?L&re-yW^c;1_1Dl1zOrr&9Qz!iWiwkawh<(0Tcp|;7=j~0RH2JH%Y#tDuR(e za01PYPab(evY)HITiow0Agc0o_qN60GJJD>`^`MVQ@hZ&pLWOt_m*c?A12Uc7Y~+yDGpt_6a=}v zliM}A_4T>dJyE8Co^_{YX4iY6VZj=ddvxDxj%C_`gB?0vJzZbkHa)cE`~@<-S~S{~ zv!^L|yMcF;b$WF+Y!S-%!x;E3Mq-~9&5 z-rmhP^Cg|t=Q4PyId%KmGIPVwopP+}nBbmtl-y>+nqBEqZ*y9f?-M&1vCS6UD&$9=SV3%hURPD> zE}Vv@C;#YgePi89i9g$pw$pU#YHG5s%!q;&pHP%!`PdY8(=%kIH77WAREs&~c7-5` z(N|43c41E|jKU}02wB_tlB=+c1W3God9}Aui@8VS++1}{*TollpRP0d6n)hF63)?> zy5p3r!Tg|PYsts0#eA}PME2=K)FvGqmZZZKIaxboXcc?)`_U?MUG+$QK1jMzS!rRm zZajMN)=5FR4PGOJ^mTiq(!%Qwx^c)C_9ySuy_mkl9zt}zf8EN?t=aqOU{4m=Pw`#Q z)l3TmRiR(|r6wahBhhPs0>

G&^ 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 JY0&hnKLJ?QnHK;6 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/mountain_forest.png b/forge-gui/res/adventure/Shandalar/world/tilesets/mountain_forest.png new file mode 100644 index 0000000000000000000000000000000000000000..224e0d9138e8f779ce645d95ce8b9b51321d5028 GIT binary patch literal 11197 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/plains_forest.png b/forge-gui/res/adventure/Shandalar/world/tilesets/plains_forest.png new file mode 100644 index 0000000000000000000000000000000000000000..98ebe05fbf685000a3232045b92df448c10d6d09 GIT binary patch literal 5761 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 Q0x*s`a=K#YwB+3X0&2J?P5=M^ literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/plateau.png b/forge-gui/res/adventure/Shandalar/world/tilesets/plateau.png new file mode 100644 index 0000000000000000000000000000000000000000..b415a0c76d917e2d35509cf4b789a2d7bd005e72 GIT binary patch literal 9010 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/ring.png b/forge-gui/res/adventure/Shandalar/world/tilesets/ring.png new file mode 100644 index 0000000000000000000000000000000000000000..759eb1645c824f6975e99e6bcebba27564e0cbdf GIT binary patch literal 11799 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 Lf!aeA`^f(Te2=I& literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/ring2.png b/forge-gui/res/adventure/Shandalar/world/tilesets/ring2.png new file mode 100644 index 0000000000000000000000000000000000000000..90636b7824d04f57dec63bb737000b5c7af9541f GIT binary patch literal 12684 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/structures.atlas b/forge-gui/res/adventure/Shandalar/world/tilesets/structures.atlas index c7b9d7cff58..9ea32b0053c 100644 --- a/forge-gui/res/adventure/Shandalar/world/tilesets/structures.atlas +++ b/forge-gui/res/adventure/Shandalar/world/tilesets/structures.atlas @@ -1,27 +1,60 @@ structures.png -size: 96,64 +size: 288,384 format: RGBA8888 filter: Nearest,Nearest repeat: none -Forest - rotate: false +forest xy: 0, 0 size: 48, 64 - orig: 0, 0 - offset: 0, 0 - index: 0 -Lake - Lake: false +lake xy: 48, 0 - size: 48, 64 - orig: 0, 0 - offset: 0, 0 - index: 0 -Forest2 - rotate: false + size: 48, 64 +forest2 xy: 96, 0 size: 48, 64 - orig: 0, 0 - offset: 0, 0 - index: 0 \ No newline at end of file +swamp_forest + xy: 0, 64 + size: 48, 64 +swamp_forest2 + xy: 48, 64 + size: 48, 64 +structure + xy: 96, 64 + size: 48, 64 +swamp_water + xy: 144, 64 + size: 48, 64 +deep_swamp + xy: 192, 64 + size: 48, 64 +mountain + xy: 0, 128 + size: 48, 64 +lava + xy: 48, 128 + size: 48, 64 +mountain_forest + xy: 96, 128 + size: 48, 64 +plateau + xy: 0, 192 + size: 48, 64 +plains_forest + xy: 48, 192 + size: 48, 64 +water + xy: 0, 256 + size: 48, 64 +island_forest + xy: 48, 256 + size: 48, 64 +hole + xy: 0, 320 + size: 48, 64 +waste_mountain + xy: 48, 320 + size: 48, 64 +waste_structure + xy: 96, 320 + size: 48, 64 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/structures.png b/forge-gui/res/adventure/Shandalar/world/tilesets/structures.png index 444966a1c76855b33e1684e4d3c21773884ab179..376ba44ed4d8ee61bbbd2d208e11e731465b4e9b 100644 GIT binary patch delta 37281 zcmV(sK<&ScxCQIK0+1trK6iRlSaechcOYro+V*0+?K`+10p-Yh&QCT^3hcYFX{5?JrFuQiI4e)FKpZ`ABfBn~g zg%tCBrCeL-rQH0Ndg}4zi+2C~_kO>JJAJ=@|Ha>5g+KrM)qa0}8Ts?!&*$eGt^E8M ze*gQgH~juHynL1a{zCKDH^!g8(bKOxXn(oTuMc{>BW~|rzb@2&UFeBF-w3}h@cum3 zU3#m3{|ICM{Q2wsKg+=XFMk`q|26-5@n8O)Dyz3LpYz1HpYYuL{yg#L1|I((ujl29 z_WfRXVR#Z>=cn+0dwhOBDhu+D*6EM`I(Kxu)$|Wv^ru~!fBV-z{rm5)uD|Y9ioag+ z{AH2LAAkPCf4@Th$Gh?^{oj3ZYJZr?pZ-0Mr~KT}Usm7$pR?Neo|&h3Q(>vguZQ~m zDBoASZtxL)bi25yKY`^FAeOlv_SKy^FaIv6W z{HMRJ|MU²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 literal 89101 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

    A3 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 QPyhe`07*qoM6N<$f+Q|$mH+?% diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/swamp.png b/forge-gui/res/adventure/Shandalar/world/tilesets/swamp.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf0d6c324b6e00e833196042a58ca88d6edc3f3 GIT binary patch literal 11213 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 Al>h($ literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/swamp_forest.png b/forge-gui/res/adventure/Shandalar/world/tilesets/swamp_forest.png new file mode 100644 index 0000000000000000000000000000000000000000..f061ee9cdda03f7fb9d5958c9538e5cc44f26bce GIT binary patch literal 6167 zcmeHLc~leU77rqVAmY+e>jG)q#YtvOW(E*}u!M?I2#O1pNoFRAki{gJh(#?_q~Zc1 zN}r&j)TJ)1NL_J3alsuBwTj5AR;@ciMQd%}B%tDXJ?9-*@kw zFY|TO=rDKJ-mW|z&s`QSjpn{xY;TuN+-HTyzAPTk@n(uV&Kyly_y(h%)g&=|^K=8l zXRI2Q$Fp9l9XE05HQeR7>chPq9fKDAa*Hag@y-9`Odhb#XXv`0<)@C8#zL+KXWw@s zLhc0Y_kDhFU|&z8=jt)_qMehBGI-F`pS~}IoH?z^`t@FsX8Yop?d8awBLriZhrl)r%uco1AS2!G~Pn2ytDcp5me`+qo^9-2JzrLL-z#I2mnnAco?o}d@{AcZ_act1 zUnIY>p~`>a(fMb7Yd*F#SF_rK|7^KmZO_YuPoHLQ!5&;?{C-)udg9NeWm{9k{#kU*IEGUmp8>CGbTdFJd&6_AJn-lrzx4;DH^&{Yi8HiVM zT8X zMRYdzpFpXzXLuOZH4gkBbuhdsfwyUE?-`$`g(q~%?%t6p7TzwN?I6z07;t##?jhkz zy7ykxv3}Iyj#JXS=6;+Hn#c1bGUS-?bW}ij$hoM{8UktZ96q7sZmqAr{#nD(qWttu zVdZHapHyTAE$kg%dP|uJtF?YssKKF^9mqxODMXhnyB&tLUWSk2(hR@<{LSL1~xMOOKtdOwbv&4+tEW z&zJQnz`W*v8Mvb)?q<60;=-!(x<%GC4fn0N58$x$-I8yfoxJ>UqP8sK_K}PAa~#iw zRHgn<*`sl;rB)?7<5`~*9;IHs4C8E z@%*z4ArZQ}^Ea=FU%zm}wnn!*pHEm(K53I~MmKEHrIyR3s`JUEH_i>7@MvH5*^$#` zG{k@7rfm#v+Aw_kz-@jJkHdzSonLt{RFwJD*DVAc5Pdl##~YNx)Ua;d(MK9g{;skvmc$g8mV+MyJ3?Wf&E zbojC{Egvneclxb&=!E3T|v>s|2N^0aDMY*Xk=^U8)6hjo%E zH_-i#qTlt8#_Lp%J(_ZYEKi5b+`3@a-oKnii~9L#O(*ktJcl`&;NU1(aPW(g=L)?b zHOD{v(8#`rC&&Ewt-SAD{?FM(D}*fe5l zX5N4~PYQ6wS*NePcL{y}II>H;!VE%=%)sxl{Y53CYkv#h&xXSg6a5ly$(D7gTv~?C339LotkEBLNZ&Cs;nc62_b#e&<_E_ES9#8J z55(n^T!^o~_u&4$tH`}SXYw|lHSRm3`9RO(b+6KJJvc6M6sgo}g%qtnXh0}8lAu3!JhpBzJ~S}jKd4@jVcjD5QGSXMKBC-9)M}O&P-VWovFVKq7_5R zn3P71!K~5i_%=*Rp-(pZ3k2La|3!RSLuBMjc%7+D1x^o!ycmOx*g@?WWe6ieaX@6lI4uF^(l8_KYqWHU@2T`zCj36K&!Id061jYdz0Vx2aSXRP< z5*&eAd-+?bJ&qpNt}qfLNCXTahjnJ6k!Rp^*-|! z>9uv^7xer@w!_GaM(QW}uU6aY(C+lYwWL-XcPiozS)!MxthQdo#rjXa+FJZSxdfm8 zevvoQ_q|;2<$5Cp-pKiVcDr;)wUwqAAf#)TJ70$;`lo>J^DTqkixi$MfW6NqPlm qfn9HpSdhA9?7$$wje~cZh85&qOuZsc|LHNe08bV&TDm1DA?-iuuf??h literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/swamp_ruins.png b/forge-gui/res/adventure/Shandalar/world/tilesets/swamp_ruins.png new file mode 100644 index 0000000000000000000000000000000000000000..34904ade0c22a82cc148a679b441ff0116c7491b GIT binary patch literal 11665 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/waste_structure.png b/forge-gui/res/adventure/Shandalar/world/tilesets/waste_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f6fc80f996a47162d04b804bbfdb936fb4bd7c GIT binary patch literal 7804 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/adventure/Shandalar/world/tilesets/water.png b/forge-gui/res/adventure/Shandalar/world/tilesets/water.png new file mode 100644 index 0000000000000000000000000000000000000000..ed435a73e12591aa4dcb6109c3cd85632e239bc4 GIT binary patch literal 7139 zcmeHLcT^K;*AF7Sh!l~s5P~ZpruWbZMcj>x5(H7oB$0GrcmcCEtEzc|qdCqwLGE9 zo;S3)*)2K5_~k{96sJ%b@8B`mT}vuz{()f&Y^$U$FmTX<@*M-#fY0sA(B5(Ih-v<^ z1kMZ6P;-A(hCqepH>TV$n3S0CAU^)u75P->HLJY2PWLks%`&T;3q=yW7`Ah8%?X<(o4?f;aJd`W3>nL@Nu6-`oC}RGxhHezVzWLkQ<3+VU2Zgt> zuIB^^i~OFZkF~Pf^Aq~OF(p4!pdpR!Z5qEz!*B0P?rvQ7jXm7_C)e)m8@~QZ<<=yy zW1b&rd4KW4#`@Ij-(meKtDNDkKc=sZlmZ>8`#O z%aOjqf}u6*y!I6XeWT+WT-6b&IfsQKt8jOBFtwT=cAMI0pK5A(>6hnDI~3ryMnCj7 zclX7u%|Sc{{+9c3(i?t!P0tPN8O-i@PWXYs*$13W`8hYbiJi~(4Knkddj}kSaAg(m z{F~E5XGZS42s#?M`bg%+#d~Z@vQu1QVNSYso`1=aEmN8;D_Zudk;RE;YYuZf#D+Iw-qj6G*y%aA*&XkKzW$b9+3 z;Zj}Lri%H6U3W%rBQhG93>%Xtw#o9VLzlM=rrkaGrpA|3i`iT2YCV7ZCE!Kn%{-4K z1kweQhL+;n#f<|UvS6U6jn?e!=wXg}p~Agf)bBPvr1_U5nQc1DjJF7tSg-*7{jcd- zVc`|9{Ig2OVHC#2Cj6DoV{Zq7V7ndG?LKArCNh)MqDv$<_|kthQb*+jozp z@ms6;pKDL-3~IXAed2}2Dn}7@mW_Aa(pP?ULCN)qjFS#-5tpb}4F*UX=bnC+T@sag zQp(r${AAAD@~76u2c&1UH#JWRjQd2l zr+Rl=s~$+TRC!w;TzJf6&ix9z9D36P@7i|4P`5lAS1mOkt$$o@>zJ9A zJF>-VG}QK%Mcdp*TEA0<8QOCke0%Gp%_{Z=6)d1C*X%ApM6Gr& zh(}#D93L;zh}*d?f|T<|gSB#`>Tk=!$B(xkZg&(6>L?m~j0P#()3H9frc`_o6S zp6e_ysbhz@#y@LsN!mO4=6QbNzVGBY6{_s?C!_L}m!Fbztwzq|#u`u7)bjL?UOy%k zl$hI0Y_*6xE^l&HTd;&_-W8$iV0I{ogMGv}*yE+oA>ynqZa&J~Ho~6dO2hgRJjjNO!D+Fb!!ZP2y{nW6> zmhKLFjB|`g%G=9c2G6^%6uy5dv_m>FQrNv?_fJFRuaRc4FP#4vJ8UH|i@cky7NncG z5vO9F&JL?*9a7#qk(y@Nb=PU{n;n;;crF2tJ4=VJmlh2r24;1-d7i4!b#U{@O71(n z-%ar6*v{GO$8VgjY66naZ1Q*Qj9q`aa`l!}J-tJL-6N=lsHPJW&;LB-Yj(~A(X+Ai zg#2v?am7IR)`Kg`f5+W62t~LJ(>x2^4E#Hia@P1;|7_QF*N;dGCBJM-U79p|z-aPb z9PGUO_lek1;{nM7r7_KTt&@g-ceoDwKKE|O?j7ET47e!{%yO)st>dv>QlOt&Q^_9tW#5O()4S}*KobL z)@zZ4L20Fb>!_y7xLyqfp^qQ-NWdz$55~-y6WYJu@#@=qzZZsH-m5*3Rwwz9ytdA) z4!@U}_sTgcEqlSHv0MtPMP-X+CCXv4zB0VD22b}|Nc_nhF>hP&;yA3m$)Z6*RN!*r z72^_J``mKM(QI18gRE-I?)H^!YYtK6l$=ageFW#maxWF42mj_0>@WM@?%uY(W5nk2 z_gP1^z0y^f``k<3cC8<%T3w1E{{HlF9=PY59yOPYMP;^BprQ9{F>91qwGOnw^ z>A}bcFtyD!fxncr2jB1Q@9TYl@10759c_s|-^@1@!C-nrd}!|&$oP@Q7Db`}j)(=K zWRYTMZwZ4ry2!);I|7u#Ss;%ubVBr3RU_bhjuRq)$iOhfbTFL1Bq18~OIXHaCq%HR z9E6LrrlX7o0YrjQ04|FZ2qiR`6Ji>d23;$}Xasy(MH=CR2xR!e>7r;5PCyY*7^J6+ zAB#gcYr-9)Ib7Nb53lzS(47+^Tq+gQ(CE0hI8+=SC5q;uu~aG*jlrRDI3%Qjl*9|A zfD9>=SSuiAFg!pBJDM++@dd5N^?;ZND77`}31xK#{C8C&UHs~1(3Z>ScLvYw1?Zq+Cg6VKLY&0kU zBOz4@G%NOtDZPCdz8@_V6!7?w;%O_0>@PH>eC{W*zVJ;kG9Aw6jzH!galg?15c{+; zq{U#+JVfjmg?m08P6);PG>(YP=g_7vi5x5kLnMJn0vCfp64)Fp62KF&NHP%%a7lO$ z7sL=hgYpqdq=1kODxe^66d%GNaHvEs9t$8T1Uwmnpkk3!0Kg#uHj%={V?ZMI3y7bh z`A}5?g3rBDKye@_Dj7oo0T748u>ls6fW@(p0GWeB;sHFD&Eb-8cz`hN4Tnwh5=BP> zP&)aM01rfqg}mtj1>rO|Umqs~4u$z7@f844E@S}p0AI)v#YsL5G5L|8pA=B=i6s%K zWGb0Lq7W%~9Fg=%X(bpffof5Kip8Mtxako^VrWn}5Ve4!QXzn8ITQ_z9t{FgQ8ZH| z5;!3gPQewHABP!GLva8p-~mWM2o!_E(J&MmhQ!2@XhbrNK(WU_lF#%-96mSx|I${p z58QDk=}Y($X#V(V(M(VIfl)JeGq(c%bTh%>(``Wm*fSwWfLM?-?I(maGsF%Dggg*h zKi(JY2RZ-06a$Nd!*ID+5Q!t;pkly4#Xy0wisS+mEEfbQI1GL!gCEf)BCa$Jhz8ww z5RVX7P=QW!1-E^lD!VVei3(WS1b|J#5-3C@1xKYI2_!ZY z8HmRtDQp%V#FJPY0%@iu|Ca1gkQm~0!DDGe+`kbXp2a3&2p|`Ur;-6^d0`WgEEWJF zNn|#Kj3=>iEX+)2|6Soh{Y<1my-oaAij#uJvauW-lrtg)TF|L@9FoNasYnV`nM4ep zOC=Mye_wGz+55CyeaN08TJg00u+li9|JPbHqwv||9qQQ`8MJMHb|L7G+mQFo45i|q zJl?N?|Kt>K__s;Eir;T^eWUBE82BpXZ`JjUuCHR?tCYW0*WX5$=BF1Kpb+}^5eL1d z2pZdY0(!-vAzrdd0)y$+DZWbC_PS<}P)+K?@KozjSJkCr9Om9~hD1wzJlvSJ&Fsl{ z@7}Ff)rT1