Merge pull request #3401 from kevlahnota/newmaster2

update paths
This commit is contained in:
Anthony Calosa
2023-07-04 19:25:11 +08:00
committed by GitHub
3 changed files with 126 additions and 133 deletions

View File

@@ -497,7 +497,10 @@ public class GameHUD extends Stage {
} }
private Pair<FileHandle, Music> getMusic(MusicPlaylist playlist) { private Pair<FileHandle, Music> getMusic(MusicPlaylist playlist) {
FileHandle file = Gdx.files.absolute(playlist.getNewRandomFilename()); String filename = playlist.getNewRandomFilename();
if (filename == null)
return null;
FileHandle file = Gdx.files.absolute(filename);
Music music = Forge.getAssets().getMusic(file); Music music = Forge.getAssets().getMusic(file);
if (music != null) { if (music != null) {
currentAudioPlaylist = playlist; currentAudioPlaylist = playlist;

View File

@@ -25,17 +25,17 @@ import java.util.Collections;
import java.util.Map; import java.util.Map;
public final class ForgeConstants { public final class ForgeConstants {
public static final String PATH_SEPARATOR = File.separator; public static final String PATH_SEPARATOR = File.separator;
public static final String ASSETS_DIR = GuiBase.getInterface().getAssetsDir(); public static final String ASSETS_DIR = GuiBase.getInterface().getAssetsDir();
public static final String PROFILE_FILE = ASSETS_DIR + "forge.profile.properties"; public static final String PROFILE_FILE = ASSETS_DIR + "forge.profile.properties";
public static final String PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example"; public static final String PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example";
public static final String RES_DIR = ASSETS_DIR + "res" + PATH_SEPARATOR; public static final String RES_DIR = ASSETS_DIR + "res" + PATH_SEPARATOR;
public static final String ADVENTURE_DIR = RES_DIR + "adventure" + PATH_SEPARATOR; public static final String ADVENTURE_DIR = RES_DIR + "adventure" + PATH_SEPARATOR;
public static final String ADVENTURE_DEFAULT_PLANE_DIR = ADVENTURE_DIR + "Shandalar" + PATH_SEPARATOR; public static final String ADVENTURE_DEFAULT_PLANE_DIR = ADVENTURE_DIR + "Shandalar" + PATH_SEPARATOR;
public static final String ADVENTURE_COMMON_DIR=ADVENTURE_DIR+"common"+PATH_SEPARATOR; public static final String ADVENTURE_COMMON_DIR = ADVENTURE_DIR + "common" + PATH_SEPARATOR;
public static final String LISTS_DIR = RES_DIR + "lists" + PATH_SEPARATOR; public static final String LISTS_DIR = RES_DIR + "lists" + PATH_SEPARATOR;
public static final String SETLOOKUP_DIR = RES_DIR + "setlookup" + PATH_SEPARATOR; public static final String SETLOOKUP_DIR = RES_DIR + "setlookup" + PATH_SEPARATOR;
public static final String KEYWORD_LIST_FILE = LISTS_DIR + "NonStackingKWList.txt"; public static final String KEYWORD_LIST_FILE = LISTS_DIR + "NonStackingKWList.txt";
public static final String TYPE_LIST_FILE = LISTS_DIR + "TypeLists.txt"; public static final String TYPE_LIST_FILE = LISTS_DIR + "TypeLists.txt";
public static final String SPECIAL_CARD_ACHIEVEMENT_LIST_FILE = LISTS_DIR + "special-card-achievements.txt"; public static final String SPECIAL_CARD_ACHIEVEMENT_LIST_FILE = LISTS_DIR + "special-card-achievements.txt";
@@ -69,97 +69,96 @@ public final class ForgeConstants {
public static final String NET_ARCHIVE_BLOCK_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-block.txt"; public static final String NET_ARCHIVE_BLOCK_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-block.txt";
public static final String CHANGES_FILE = ASSETS_DIR + "README.txt"; public static final String CHANGES_FILE = ASSETS_DIR + "README.txt";
public static final String CHANGES_FILE_NO_RELEASE = ASSETS_DIR + "CHANGES.txt"; public static final String CHANGES_FILE_NO_RELEASE = ASSETS_DIR + "CHANGES.txt";
public static final String LICENSE_FILE = ASSETS_DIR + "LICENSE.txt"; public static final String LICENSE_FILE = ASSETS_DIR + "LICENSE.txt";
public static final String README_FILE = ASSETS_DIR + "MANUAL.txt"; public static final String README_FILE = ASSETS_DIR + "MANUAL.txt";
public static final String HOWTO_FILE = RES_DIR + "howto.txt"; public static final String HOWTO_FILE = RES_DIR + "howto.txt";
public static final String DRAFT_DIR = RES_DIR + "draft" + PATH_SEPARATOR; public static final String DRAFT_DIR = RES_DIR + "draft" + PATH_SEPARATOR;
public static final String DRAFT_RANKINGS_FILE = DRAFT_DIR + "rankings.txt"; public static final String DRAFT_RANKINGS_FILE = DRAFT_DIR + "rankings.txt";
public static final String SEALED_DIR = RES_DIR + "sealed" + PATH_SEPARATOR; public static final String SEALED_DIR = RES_DIR + "sealed" + PATH_SEPARATOR;
public static final String CARD_DATA_DIR = RES_DIR + "cardsfolder" + PATH_SEPARATOR; public static final String CARD_DATA_DIR = RES_DIR + "cardsfolder" + PATH_SEPARATOR;
public static final String TOKEN_DATA_DIR = RES_DIR + "tokenscripts" + PATH_SEPARATOR; public static final String TOKEN_DATA_DIR = RES_DIR + "tokenscripts" + PATH_SEPARATOR;
public static final String EDITIONS_DIR = RES_DIR + "editions" + PATH_SEPARATOR; public static final String EDITIONS_DIR = RES_DIR + "editions" + PATH_SEPARATOR;
public static final String BLOCK_DATA_DIR = RES_DIR + "blockdata" + PATH_SEPARATOR; public static final String BLOCK_DATA_DIR = RES_DIR + "blockdata" + PATH_SEPARATOR;
public static final String FORMATS_DATA_DIR = RES_DIR + "formats" + PATH_SEPARATOR; public static final String FORMATS_DATA_DIR = RES_DIR + "formats" + PATH_SEPARATOR;
public static final String DECK_CUBE_DIR = RES_DIR + "cube" + PATH_SEPARATOR; public static final String DECK_CUBE_DIR = RES_DIR + "cube" + PATH_SEPARATOR;
public static final String AI_PROFILE_DIR = RES_DIR + "ai" + PATH_SEPARATOR; public static final String AI_PROFILE_DIR = RES_DIR + "ai" + PATH_SEPARATOR;
public static final String SOUND_DIR = RES_DIR + "sound" + PATH_SEPARATOR; public static final String SOUND_DIR = RES_DIR + "sound" + PATH_SEPARATOR;
public static final String MUSIC_DIR = RES_DIR + "music" + PATH_SEPARATOR; public static final String MUSIC_DIR = RES_DIR + "music" + PATH_SEPARATOR;
public static final String ADVENTURE_MUSIC_DIR = ADVENTURE_DEFAULT_PLANE_DIR + "music" + PATH_SEPARATOR; public static final String ADVENTURE_MUSIC_DIR = ADVENTURE_DEFAULT_PLANE_DIR + "music" + PATH_SEPARATOR;
public static final String ADVENTURE_COMMON_MUSIC_DIR=ADVENTURE_COMMON_DIR+"music"+PATH_SEPARATOR; public static final String ADVENTURE_COMMON_MUSIC_DIR = ADVENTURE_COMMON_DIR + "music" + PATH_SEPARATOR;
public static final String LANG_DIR = RES_DIR + "languages" + PATH_SEPARATOR; public static final String LANG_DIR = RES_DIR + "languages" + PATH_SEPARATOR;
public static final String EFFECTS_DIR = RES_DIR + "effects" + PATH_SEPARATOR; public static final String EFFECTS_DIR = RES_DIR + "effects" + PATH_SEPARATOR;
public static final String PUZZLE_DIR = RES_DIR + "puzzle" + PATH_SEPARATOR; public static final String PUZZLE_DIR = RES_DIR + "puzzle" + PATH_SEPARATOR;
public static final String TUTORIAL_DIR = RES_DIR + "tutorial" + PATH_SEPARATOR; public static final String TUTORIAL_DIR = RES_DIR + "tutorial" + PATH_SEPARATOR;
public static final String DECK_GEN_DIR = RES_DIR + "deckgendecks" + PATH_SEPARATOR; public static final String DECK_GEN_DIR = RES_DIR + "deckgendecks" + PATH_SEPARATOR;
public static final String GENETIC_AI_DECK_DIR = RES_DIR + "geneticaidecks" + PATH_SEPARATOR; public static final String GENETIC_AI_DECK_DIR = RES_DIR + "geneticaidecks" + PATH_SEPARATOR;
private static final String QUEST_DIR = RES_DIR + "quest" + PATH_SEPARATOR; private static final String QUEST_DIR = RES_DIR + "quest" + PATH_SEPARATOR;
public static final String QUEST_WORLD_DIR = QUEST_DIR + "world" + PATH_SEPARATOR; public static final String QUEST_WORLD_DIR = QUEST_DIR + "world" + PATH_SEPARATOR;
public static final String QUEST_PRECON_DIR = QUEST_DIR + "precons" + PATH_SEPARATOR; public static final String QUEST_PRECON_DIR = QUEST_DIR + "precons" + PATH_SEPARATOR;
public static final String PRICES_BOOSTER_FILE = QUEST_DIR + "booster-prices.txt"; public static final String PRICES_BOOSTER_FILE = QUEST_DIR + "booster-prices.txt";
public static final String BAZAAR_DIR = QUEST_DIR + "bazaar" + PATH_SEPARATOR; public static final String BAZAAR_DIR = QUEST_DIR + "bazaar" + PATH_SEPARATOR;
public static final String BAZAAR_INDEX_FILE = BAZAAR_DIR + "index.xml"; public static final String BAZAAR_INDEX_FILE = BAZAAR_DIR + "index.xml";
public static final String DEFAULT_DUELS_DIR = QUEST_DIR + "duels"; public static final String DEFAULT_DUELS_DIR = QUEST_DIR + "duels";
public static final String DEFAULT_CHALLENGES_DIR = QUEST_DIR + "challenges"; public static final String DEFAULT_CHALLENGES_DIR = QUEST_DIR + "challenges";
public static final String THEMES_DIR = QUEST_DIR + "themes"; public static final String THEMES_DIR = QUEST_DIR + "themes";
private static final String CONQUEST_DIR = RES_DIR + "conquest" + PATH_SEPARATOR; private static final String CONQUEST_DIR = RES_DIR + "conquest" + PATH_SEPARATOR;
public static final String CONQUEST_PLANES_DIR = CONQUEST_DIR + "planes" + PATH_SEPARATOR; public static final String CONQUEST_PLANES_DIR = CONQUEST_DIR + "planes" + PATH_SEPARATOR;
public static final String BASE_SKINS_DIR = RES_DIR + "skins" + PATH_SEPARATOR;
public static final String BASE_SKINS_DIR = RES_DIR + "skins" + PATH_SEPARATOR; public static final String COMMON_FONTS_DIR = RES_DIR + "fonts" + PATH_SEPARATOR;
public static final String COMMON_FONTS_DIR = RES_DIR + "fonts" + PATH_SEPARATOR; public static final String DEFAULT_SKINS_DIR = BASE_SKINS_DIR + "default" + PATH_SEPARATOR;
public static final String DEFAULT_SKINS_DIR = BASE_SKINS_DIR + "default" + PATH_SEPARATOR;
//don't associate these skin files with a directory since skin directory will be determined later //don't associate these skin files with a directory since skin directory will be determined later
public static final String SPRITE_ICONS_FILE = "sprite_icons.png"; public static final String SPRITE_ICONS_FILE = "sprite_icons.png";
public static final String SPRITE_FOILS_FILE = "sprite_foils.png"; public static final String SPRITE_FOILS_FILE = "sprite_foils.png";
public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png";
public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png"; public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png";
public static final String SPRITE_ABILITY_FILE = "sprite_ability.png"; public static final String SPRITE_ABILITY_FILE = "sprite_ability.png";
public static final String SPRITE_BORDER_FILE = "sprite_border.png"; public static final String SPRITE_BORDER_FILE = "sprite_border.png";
public static final String SPRITE_ADV_BUTTONS_FILE = "sprite_adv_buttons.png"; public static final String SPRITE_ADV_BUTTONS_FILE = "sprite_adv_buttons.png";
public static final String SPRITE_BUTTONS_FILE = "sprite_buttons.png"; public static final String SPRITE_BUTTONS_FILE = "sprite_buttons.png";
public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png"; public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png";
public static final String SPRITE_START_FILE = "sprite_start.png"; public static final String SPRITE_START_FILE = "sprite_start.png";
public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png"; public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png";
public static final String SPRITE_PHYREXIAN_FILE = "sprite_phyrexian.png"; public static final String SPRITE_PHYREXIAN_FILE = "sprite_phyrexian.png";
public static final String SPRITE_CURSOR_FILE = "sprite_cursor.png"; public static final String SPRITE_CURSOR_FILE = "sprite_cursor.png";
public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png";
public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png"; public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png";
public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png"; public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";
public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png"; public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png";
public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png"; public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png";
public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png"; public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png";
public static final String SPRITE_ADVENTURE_FILE = "sprite_adventure.png"; public static final String SPRITE_ADVENTURE_FILE = "sprite_adventure.png";
public static final String SPRITE_SETLOGO_FILE = "sprite_setlogo.png"; public static final String SPRITE_SETLOGO_FILE = "sprite_setlogo.png";
public static final String SPRITE_WATERMARK_FILE = "sprite_watermark.png"; public static final String SPRITE_WATERMARK_FILE = "sprite_watermark.png";
public static final String SPRITE_DRAFTRANKS_FILE = "sprite_draftranks.png"; public static final String SPRITE_DRAFTRANKS_FILE = "sprite_draftranks.png";
public static final String FONT_FILE = "font1.ttf"; public static final String FONT_FILE = "font1.ttf";
public static final String SPLASH_BG_FILE = "bg_splash.png"; public static final String SPLASH_BG_FILE = "bg_splash.png";
public static final String MATCH_BG_FILE = "bg_match.jpg"; public static final String MATCH_BG_FILE = "bg_match.jpg";
public static final String MATCH_BG_DAY_FILE = "bg_day.jpg"; public static final String MATCH_BG_DAY_FILE = "bg_day.jpg";
public static final String MATCH_BG_NIGHT_FILE = "bg_night.jpg"; public static final String MATCH_BG_NIGHT_FILE = "bg_night.jpg";
public static final String ADV_MATCH_BG_FILE = "adv_bg_match.jpg"; public static final String ADV_MATCH_BG_FILE = "adv_bg_match.jpg";
public static final String ADV_MATCH_BG_DAY_FILE = "adv_bg_match_day.jpg"; public static final String ADV_MATCH_BG_DAY_FILE = "adv_bg_match_day.jpg";
public static final String ADV_MATCH_BG_NIGHT_FILE= "adv_bg_match_nigh.jpg"; public static final String ADV_MATCH_BG_NIGHT_FILE = "adv_bg_match_nigh.jpg";
public static final String ADV_TEXTURE_BG_FILE = "adv_bg_texture.jpg"; public static final String ADV_TEXTURE_BG_FILE = "adv_bg_texture.jpg";
public static final String TEXTURE_BG_FILE = "bg_texture.jpg"; public static final String TEXTURE_BG_FILE = "bg_texture.jpg";
public static final String SPACE_BG_FILE = "bg_space.png"; public static final String SPACE_BG_FILE = "bg_space.png";
public static final String CHAOS_WHEEL_IMG_FILE = "bg_chaos_wheel.png"; public static final String CHAOS_WHEEL_IMG_FILE = "bg_chaos_wheel.png";
public static final String DRAFT_DECK_IMG_FILE = "bg_draft_deck.png"; public static final String DRAFT_DECK_IMG_FILE = "bg_draft_deck.png";
//Adventure locations //Adventure locations
public static final String ADV_BG_SWAMP_FILE = "adv_bg_swamp.jpg"; public static final String ADV_BG_SWAMP_FILE = "adv_bg_swamp.jpg";
public static final String ADV_BG_FOREST_FILE = "adv_bg_forest.jpg"; public static final String ADV_BG_FOREST_FILE = "adv_bg_forest.jpg";
public static final String ADV_BG_MOUNTAIN_FILE = "adv_bg_mountain.jpg"; public static final String ADV_BG_MOUNTAIN_FILE = "adv_bg_mountain.jpg";
public static final String ADV_BG_ISLAND_FILE = "adv_bg_island.jpg"; public static final String ADV_BG_ISLAND_FILE = "adv_bg_island.jpg";
public static final String ADV_BG_PLAINS_FILE = "adv_bg_plains.jpg"; public static final String ADV_BG_PLAINS_FILE = "adv_bg_plains.jpg";
public static final String ADV_BG_WASTE_FILE = "adv_bg_waste.jpg"; public static final String ADV_BG_WASTE_FILE = "adv_bg_waste.jpg";
public static final String ADV_BG_COMMON_FILE = "adv_bg_common.jpg"; public static final String ADV_BG_COMMON_FILE = "adv_bg_common.jpg";
public static final String ADV_BG_CAVE_FILE = "adv_bg_cave.jpg"; public static final String ADV_BG_CAVE_FILE = "adv_bg_cave.jpg";
public static final String ADV_BG_DUNGEON_FILE = "adv_bg_dungeon.jpg"; public static final String ADV_BG_DUNGEON_FILE = "adv_bg_dungeon.jpg";
public static final String ADV_BG_CASTLE_FILE = "adv_bg_castle.jpg"; public static final String ADV_BG_CASTLE_FILE = "adv_bg_castle.jpg";
//Planes addon //Planes addon
public static final String BG_1 = "Academy_at_Tolaria_West.jpg"; public static final String BG_1 = "Academy_at_Tolaria_West.jpg";
@@ -480,7 +479,7 @@ public final class ForgeConstants {
TOP("Top of Card"), BOTTOM("Bottom of Card"); TOP("Top of Card"), BOTTOM("Bottom of Card");
private String name; private final String name;
CounterDisplayLocation(final String name) { CounterDisplayLocation(final String name) {
this.name = name; this.name = name;

View File

@@ -3,27 +3,28 @@ package forge.sound;
import forge.gui.GuiBase; import forge.gui.GuiBase;
import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgeConstants;
import forge.util.MyRandom; import forge.util.MyRandom;
import org.apache.commons.lang3.ArrayUtils;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FilenameFilter;
public enum MusicPlaylist { public enum MusicPlaylist {
BLACK ("black/"), BLACK ("black/"),
BLUE ("blue/"), BLUE ("blue/"),
RED ("red/"), RED ("red/"),
GREEN ("green/"), GREEN ("green/"),
WHITE ("white/"), WHITE ("white/"),
COLORLESS ("colorless/"), COLORLESS ("colorless/"),
CASTLE ("castle/"), CASTLE ("castle/"),
CAVE ("cave/"), CAVE ("cave/"),
TOWN ("town/"), TOWN ("town/"),
BOSS ("boss/"), BOSS ("boss/"),
MENUS ("menus/"), MENUS ("menus/"),
MATCH ("match/"); MATCH ("match/");
private final String subDir; private final String subDir;
private int mostRecentTrackIdx = -1; private int mostRecentTrackIdx = -1;
private String[] filenames; private File[] filenames;
private static boolean isInvalidated = false; private static boolean isInvalidated = false;
MusicPlaylist(String subDir0) { MusicPlaylist(String subDir0) {
@@ -35,26 +36,21 @@ public enum MusicPlaylist {
} }
public String getRandomFilename() { public String getRandomFilename() {
String path = SoundSystem.instance.getMusicDirectory()+subDir; String path = SoundSystem.instance.getMusicDirectory() + subDir;
if (filenames == null || isInvalidated) { if (filenames == null || isInvalidated) {
try { try {
FilenameFilter filter = new FilenameFilter(){ FilenameFilter filter = (file, name) -> name.endsWith(".mp3") || name.endsWith(".wav") || name.endsWith(".m4a");
@Override filenames = new File(path).listFiles(filter);
public boolean accept(File file, String name) { if (GuiBase.isAdventureMode() && filenames == null || ArrayUtils.isEmpty(filenames)) {
return name.endsWith(".mp3") || name.endsWith(".wav") || name.endsWith(".m4a");
}
};
filenames = new File(path).list(filter);
if (GuiBase.isAdventureMode() && filenames == null) {
path = ForgeConstants.ADVENTURE_COMMON_MUSIC_DIR + subDir; path = ForgeConstants.ADVENTURE_COMMON_MUSIC_DIR + subDir;
filenames = new File(path).list(filter); filenames = new File(path).listFiles(filter);
} }
if (filenames == null) if (filenames == null)
filenames = new String[0]; filenames = new File[0];
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
filenames = new String[0]; filenames = new File[0];
} }
isInvalidated = false; isInvalidated = false;
} }
@@ -73,23 +69,18 @@ public enum MusicPlaylist {
mostRecentTrackIdx = newIndex; mostRecentTrackIdx = newIndex;
} }
return path + filenames[mostRecentTrackIdx]; return filenames[mostRecentTrackIdx].getPath();
} }
public String getNewRandomFilename() { public String getNewRandomFilename() {
String[] music; File[] music;
String path = SoundSystem.instance.getMusicDirectory() + subDir; String path = SoundSystem.instance.getMusicDirectory() + subDir;
try { try {
FilenameFilter filter = new FilenameFilter(){ FilenameFilter filter = (file, name) -> name.endsWith(".mp3") || name.endsWith(".wav") || name.endsWith(".m4a");
@Override music = new File(path).listFiles(filter);
public boolean accept(File file, String name) {
return name.endsWith(".mp3") || name.endsWith(".wav") || name.endsWith(".m4a");
}
};
music = new File(path).list(filter);
if (GuiBase.isAdventureMode() && music == null) { if (GuiBase.isAdventureMode() && music == null) {
path = ForgeConstants.ADVENTURE_COMMON_MUSIC_DIR + subDir; path = ForgeConstants.ADVENTURE_COMMON_MUSIC_DIR + subDir;
music = new File(path).list(filter); music = new File(path).listFiles(filter);
} }
if (music == null) if (music == null)
return null; return null;