fix preloaded versions

This commit is contained in:
George FunBook 2021-02-11 13:14:02 -06:00
parent 8b53e0c0b9
commit da69d16d80
3 changed files with 53 additions and 32 deletions

View File

@ -40,12 +40,14 @@
<classpath name="source" /> <classpath name="source" />
<assets path="assets/preload" exclude="*.ogg" if="web"/> <assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
<assets path="assets/preload" exclude="*.mp3" unless="web"/> <assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
<!-- <define name="PRELOAD_ALL" /> -->
<define name="PRELOAD_ALL" unless="web" /> <define name="PRELOAD_ALL" unless="web" />
<define name="NO_PRELOAD_ALL" unless="PRELOAD_ALL"/>
<section if="PREELOAD_ALL"> <section if="PRELOAD_ALL">
<library name="songs" preload="true" /> <library name="songs" preload="true" />
<library name="shared" preload="true" /> <library name="shared" preload="true" />
<library name="tutorial" preload="true" /> <library name="tutorial" preload="true" />
@ -57,7 +59,7 @@
<library name="week6" preload="true" /> <library name="week6" preload="true" />
</section> </section>
<section unless="PREELOAD_ALL"> <section if="NO_PRELOAD_ALL">
<library name="songs" preload="false" /> <library name="songs" preload="false" />
<library name="shared" preload="false" /> <library name="shared" preload="false" />
<library name="tutorial" preload="false" /> <library name="tutorial" preload="false" />
@ -112,7 +114,8 @@
<haxelib name="flixel-ui" /> <haxelib name="flixel-ui" />
<haxelib name="newgrounds"/> <haxelib name="newgrounds"/>
<haxelib name="faxe" if='switch'/> <haxelib name="faxe" if='switch'/>
<haxelib name="polymod" unless="web"/> <haxelib name="polymod"/>
<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->
<!-- <haxelib name="markdown" /> --> <!-- <haxelib name="markdown" /> -->
<!-- <haxelib name="HtmlParser" /> --> <!-- <haxelib name="HtmlParser" /> -->

View File

@ -152,7 +152,7 @@ class LoadingState extends MusicBeatState
static function getNextState(target:FlxState, stopMusic = false):FlxState static function getNextState(target:FlxState, stopMusic = false):FlxState
{ {
Paths.setCurrentLevel("week" + PlayState.storyWeek); Paths.setCurrentLevel("week" + PlayState.storyWeek);
#if js #if NO_PRELOAD_ALL
var loaded = isSoundLoaded(getSongPath()) var loaded = isSoundLoaded(getSongPath())
&& (!PlayState.SONG.needsVoices || isSoundLoaded(getVocalPath())) && (!PlayState.SONG.needsVoices || isSoundLoaded(getVocalPath()))
&& isLibraryLoaded("shared"); && isLibraryLoaded("shared");
@ -166,7 +166,7 @@ class LoadingState extends MusicBeatState
return target; return target;
} }
#if js #if NO_PRELOAD_ALL
static function isSoundLoaded(path:String):Bool static function isSoundLoaded(path:String):Bool
{ {
return Assets.cache.hasSound(path); return Assets.cache.hasSound(path);

View File

@ -17,60 +17,78 @@ class Paths
currentLevel = name.toLowerCase(); currentLevel = name.toLowerCase();
} }
static function getPath(file:String, type:AssetType) static function getPath(file:String, type:AssetType, library:Null<String>)
{ {
if (library != null)
return getLibraryPath(file, library);
if (currentLevel != null) if (currentLevel != null)
{ {
var levelPath = getLibraryPath(currentLevel, file); var levelPath = getLibraryPathForce(file, currentLevel);
if (OpenFlAssets.exists(levelPath, type)) if (OpenFlAssets.exists(levelPath, type))
return levelPath; return levelPath;
levelPath = getLibraryPath("shared", file); levelPath = getLibraryPathForce(file, "shared");
if (OpenFlAssets.exists(levelPath, type)) if (OpenFlAssets.exists(levelPath, type))
return levelPath; 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'; 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) inline static public function voices(song:String)
@ -83,9 +101,9 @@ class Paths
return 'songs:assets/songs/${song.toLowerCase()}/Inst.$SOUND_EXT'; 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) inline static public function font(key:String)
@ -93,13 +111,13 @@ class Paths
return 'assets/fonts/$key'; 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));
} }
} }