1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-05-24 08:02:22 +00:00

What if modded songs showed up in game with no extra work? 😳

This commit is contained in:
EliteMasterEric 2024-05-01 21:51:33 -04:00
parent 60b75c4bb5
commit 1e5f90774c
3 changed files with 11 additions and 35 deletions

View file

@ -1,5 +1,6 @@
package funkin.data.story.level; package funkin.data.story.level;
import funkin.util.SortUtil;
import funkin.ui.story.Level; import funkin.ui.story.Level;
import funkin.data.story.level.LevelData; import funkin.data.story.level.LevelData;
import funkin.ui.story.ScriptedLevel; import funkin.ui.story.ScriptedLevel;
@ -105,6 +106,13 @@ class LevelRegistry extends BaseRegistry<Level, LevelData>
]; ];
} }
public function listSortedLevelIds():Array<String>
{
var result = listEntryIds();
result.sort(SortUtil.defaultsThenAlphabetically.bind(listBaseGameLevelIds()));
return result;
}
/** /**
* A list of all installed story weeks that are not from the base game. * A list of all installed story weeks that are not from the base game.
*/ */

View file

@ -189,7 +189,7 @@ class FreeplayState extends MusicBeatSubState
displayedVariations = (currentCharacter == 'bf') ? [Constants.DEFAULT_VARIATION, 'erect'] : [currentCharacter]; displayedVariations = (currentCharacter == 'bf') ? [Constants.DEFAULT_VARIATION, 'erect'] : [currentCharacter];
// programmatically adds the songs via LevelRegistry and SongRegistry // programmatically adds the songs via LevelRegistry and SongRegistry
for (levelId in LevelRegistry.instance.listBaseGameLevelIds()) for (levelId in LevelRegistry.instance.listSortedLevelIds())
{ {
for (songId in LevelRegistry.instance.parseEntryData(levelId).songs) for (songId in LevelRegistry.instance.parseEntryData(levelId).songs)
{ {

View file

@ -43,8 +43,6 @@ class StoryMenuState extends MusicBeatState
var exitingMenu:Bool = false; var exitingMenu:Bool = false;
var selectedLevel:Bool = false; var selectedLevel:Bool = false;
var displayingModdedLevels:Bool = false;
// //
// RENDER OBJECTS // RENDER OBJECTS
// //
@ -172,13 +170,6 @@ class StoryMenuState extends MusicBeatState
scoreText.zIndex = 1000; scoreText.zIndex = 1000;
add(scoreText); add(scoreText);
modeText = new FlxText(10, 10, 0, 'Base Game Levels [TAB to switch]');
modeText.setFormat('VCR OSD Mono', 32);
modeText.screenCenter(X);
modeText.visible = hasModdedLevels();
modeText.zIndex = 1000;
add(modeText);
levelTitleText = new FlxText(FlxG.width * 0.7, 10, 0, 'LEVEL 1'); levelTitleText = new FlxText(FlxG.width * 0.7, 10, 0, 'LEVEL 1');
levelTitleText.setFormat('VCR OSD Mono', 32, FlxColor.WHITE, RIGHT); levelTitleText.setFormat('VCR OSD Mono', 32, FlxColor.WHITE, RIGHT);
levelTitleText.alpha = 0.7; levelTitleText.alpha = 0.7;
@ -282,7 +273,7 @@ class StoryMenuState extends MusicBeatState
{ {
levelTitles.clear(); levelTitles.clear();
var levelIds:Array<String> = displayingModdedLevels ? LevelRegistry.instance.listModdedLevelIds() : LevelRegistry.instance.listBaseGameLevelIds(); var levelIds:Array<String> = LevelRegistry.instance.listSortedLevelIds();
if (levelIds.length == 0) levelIds = ['tutorial']; // Make sure there's at least one level to display. if (levelIds.length == 0) levelIds = ['tutorial']; // Make sure there's at least one level to display.
for (levelIndex in 0...levelIds.length) for (levelIndex in 0...levelIds.length)
@ -298,15 +289,6 @@ class StoryMenuState extends MusicBeatState
} }
} }
function switchMode(moddedLevels:Bool):Void
{
displayingModdedLevels = moddedLevels;
buildLevelTitles();
changeLevel(999999); // Jump past the end of the list to the beginning.
changeDifficulty(0);
}
override function update(elapsed:Float):Void override function update(elapsed:Float):Void
{ {
Conductor.instance.update(); Conductor.instance.update();
@ -315,9 +297,6 @@ class StoryMenuState extends MusicBeatState
scoreText.text = 'LEVEL SCORE: ${Math.round(highScoreLerp)}'; scoreText.text = 'LEVEL SCORE: ${Math.round(highScoreLerp)}';
modeText.text = displayingModdedLevels ? 'Mods [TAB to switch]' : 'Base Game [TAB to switch]';
modeText.screenCenter(X);
levelTitleText.text = currentLevel.getTitle(); levelTitleText.text = currentLevel.getTitle();
levelTitleText.x = FlxG.width - (levelTitleText.width + 10); // Right align. levelTitleText.x = FlxG.width - (levelTitleText.width + 10); // Right align.
@ -372,11 +351,6 @@ class StoryMenuState extends MusicBeatState
{ {
leftDifficultyArrow.animation.play('idle'); leftDifficultyArrow.animation.play('idle');
} }
if (FlxG.keys.justPressed.TAB && modeText.visible)
{
switchMode(!displayingModdedLevels);
}
} }
if (controls.ACCEPT) if (controls.ACCEPT)
@ -393,19 +367,13 @@ class StoryMenuState extends MusicBeatState
} }
} }
function hasModdedLevels():Bool
{
return false;
// return LevelRegistry.instance.listModdedLevelIds().length > 0;
}
/** /**
* Changes the selected level. * Changes the selected level.
* @param change +1 (down), -1 (up) * @param change +1 (down), -1 (up)
*/ */
function changeLevel(change:Int = 0):Void function changeLevel(change:Int = 0):Void
{ {
var levelList:Array<String> = displayingModdedLevels ? LevelRegistry.instance.listModdedLevelIds() : LevelRegistry.instance.listBaseGameLevelIds(); var levelList:Array<String> = LevelRegistry.instance.listSortedLevelIds();
if (levelList.length == 0) levelList = ['tutorial']; if (levelList.length == 0) levelList = ['tutorial'];
var currentIndex:Int = levelList.indexOf(currentLevelId); var currentIndex:Int = levelList.indexOf(currentLevelId);