diff --git a/Project.xml b/Project.xml index f25ce51..63b25bd 100644 --- a/Project.xml +++ b/Project.xml @@ -40,12 +40,14 @@ - - + + + + -
+
@@ -57,7 +59,7 @@
-
+
@@ -112,7 +114,8 @@ - + + diff --git a/source/LoadingState.hx b/source/LoadingState.hx index 8e3676e..23bce2e 100644 --- a/source/LoadingState.hx +++ b/source/LoadingState.hx @@ -152,7 +152,7 @@ class LoadingState extends MusicBeatState static function getNextState(target:FlxState, stopMusic = false):FlxState { Paths.setCurrentLevel("week" + PlayState.storyWeek); - #if js + #if NO_PRELOAD_ALL var loaded = isSoundLoaded(getSongPath()) && (!PlayState.SONG.needsVoices || isSoundLoaded(getVocalPath())) && isLibraryLoaded("shared"); @@ -166,7 +166,7 @@ class LoadingState extends MusicBeatState return target; } - #if js + #if NO_PRELOAD_ALL static function isSoundLoaded(path:String):Bool { return Assets.cache.hasSound(path); diff --git a/source/Paths.hx b/source/Paths.hx index 73214c0..4bee419 100644 --- a/source/Paths.hx +++ b/source/Paths.hx @@ -17,60 +17,78 @@ class Paths currentLevel = name.toLowerCase(); } - static function getPath(file:String, type:AssetType) + static function getPath(file:String, type:AssetType, library:Null) { + if (library != null) + return getLibraryPath(file, library); + if (currentLevel != null) { - var levelPath = getLibraryPath(currentLevel, file); + var levelPath = getLibraryPathForce(file, currentLevel); if (OpenFlAssets.exists(levelPath, type)) return levelPath; - levelPath = getLibraryPath("shared", file); + levelPath = getLibraryPathForce(file, "shared"); if (OpenFlAssets.exists(levelPath, type)) return levelPath; } - return 'assets/preload/$file'; + return getPreloadPath(file); } - inline static function getLibraryPath(library:String, file:String) + static public function getLibraryPath(file:String, library = "preload") { + return if (library == "preload" || library == "default") + getPreloadPath(file); + else + getLibraryPathForce(file, library); + } + + inline static function getLibraryPathForce(file:String, library:String) + { + return '$library:assets/$library/$file'; } - inline static public function file(file:String, type:AssetType = TEXT) + inline static function getPreloadPath(file:String) { - return getPath(file, type); + + return 'assets/$file'; } - inline static public function txt(key:String) + inline static public function file(file:String, type:AssetType = TEXT, ?library:String) { - return getPath('data/$key.txt', TEXT); + return getPath(file, type, library); } - inline static public function xml(key:String) + inline static public function txt(key:String, ?library:String) { - return getPath('data/$key.xml', TEXT); + return getPath('data/$key.txt', TEXT, library); } - inline static public function json(key:String) + inline static public function xml(key:String, ?library:String) { - return getPath('data/$key.json', TEXT); + return getPath('data/$key.xml', TEXT, library); } - static public function sound(key:String) + inline static public function json(key:String, ?library:String) { - return getPath('sounds/$key.$SOUND_EXT', SOUND); + return getPath('data/$key.json', TEXT, library); } - inline static public function soundRandom(key:String, min:Int, max:Int) + static public function sound(key:String, ?library:String) { - return sound(key + FlxG.random.int(min, max)); + return getPath('sounds/$key.$SOUND_EXT', SOUND, library); } - inline static public function music(key:String) + inline static public function soundRandom(key:String, min:Int, max:Int, ?library:String) { - return getPath('music/$key.$SOUND_EXT', MUSIC); + return sound(key + FlxG.random.int(min, max), library); + } + + inline static public function music(key:String, ?library:String) + { + return getPath('music/$key.$SOUND_EXT', MUSIC, library); } inline static public function voices(song:String) @@ -83,9 +101,9 @@ class Paths return 'songs:assets/songs/${song.toLowerCase()}/Inst.$SOUND_EXT'; } - inline static public function image(key:String) + inline static public function image(key:String, ?library:String) { - return getPath('images/$key.png', IMAGE); + return getPath('images/$key.png', IMAGE, library); } inline static public function font(key:String) @@ -93,13 +111,13 @@ class Paths return 'assets/fonts/$key'; } - inline static public function getSparrowAtlas(key:String) + inline static public function getSparrowAtlas(key:String, ?library:String) { - return FlxAtlasFrames.fromSparrow(image(key), file('images/$key.xml')); + return FlxAtlasFrames.fromSparrow(image(key, library), file('images/$key.xml', library)); } - inline static public function getPackerAtlas(key:String) + inline static public function getPackerAtlas(key:String, ?library:String) { - return FlxAtlasFrames.fromSpriteSheetPacker(image(key), file('images/$key.txt')); + return FlxAtlasFrames.fromSpriteSheetPacker(image(key, library), file('images/$key.txt', library)); } } \ No newline at end of file