mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-14 19:25:16 -05:00
Merge branch 'rewrite/master' into gamerbross/chart-reload-f5
This commit is contained in:
commit
5a26ece9d6
11 changed files with 152 additions and 34 deletions
2
assets
2
assets
|
@ -1 +1 @@
|
|||
Subproject commit 4e409880a2e25357ba755e816e237519d6d6adfb
|
||||
Subproject commit 005c96f85f4304865acb196e7cc4d6d83f9d76d8
|
|
@ -16,6 +16,7 @@ import flixel.tweens.FlxTween;
|
|||
import flixel.ui.FlxBar;
|
||||
import flixel.util.FlxColor;
|
||||
import flixel.util.FlxTimer;
|
||||
import flixel.util.FlxStringUtil;
|
||||
import funkin.api.newgrounds.NGio;
|
||||
import funkin.audio.FunkinSound;
|
||||
import funkin.audio.VoicesGroup;
|
||||
|
@ -2009,7 +2010,9 @@ class PlayState extends MusicBeatSubState
|
|||
}
|
||||
else
|
||||
{
|
||||
scoreText.text = 'Score:' + songScore;
|
||||
// TODO: Add an option for this maybe?
|
||||
var commaSeparated:Bool = true;
|
||||
scoreText.text = 'Score: ${FlxStringUtil.formatMoney(songScore, false, commaSeparated)}';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2577,10 +2580,18 @@ class PlayState extends MusicBeatSubState
|
|||
{
|
||||
disableKeys = true;
|
||||
persistentUpdate = false;
|
||||
FlxG.switchState(() -> new ChartEditorState(
|
||||
{
|
||||
targetSongId: currentSong.id,
|
||||
}));
|
||||
if (isChartingMode)
|
||||
{
|
||||
FlxG.sound.music?.pause();
|
||||
this.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
FlxG.switchState(() -> new ChartEditorState(
|
||||
{
|
||||
targetSongId: currentSong.id,
|
||||
}));
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
|
|
|
@ -461,7 +461,6 @@ class BaseCharacter extends Bopper
|
|||
if (!currentAnimation.startsWith('dance') && !currentAnimation.startsWith('idle') && !isAnimationFinished()) return;
|
||||
}
|
||||
|
||||
trace('${characterId}: Actually dancing');
|
||||
// Otherwise, fallback to the super dance() method, which handles playing the idle animation.
|
||||
super.dance();
|
||||
}
|
||||
|
|
|
@ -598,7 +598,6 @@ class Strumline extends FlxSpriteGroup
|
|||
{
|
||||
note.holdNoteSprite.hitNote = true;
|
||||
note.holdNoteSprite.missedNote = false;
|
||||
note.holdNoteSprite.alpha = 1.0;
|
||||
|
||||
note.holdNoteSprite.sustainLength = (note.holdNoteSprite.strumTime + note.holdNoteSprite.fullSustainLength) - conductorInUse.songPosition;
|
||||
}
|
||||
|
|
|
@ -177,10 +177,8 @@ class Bopper extends StageProp implements IPlayStateScriptedClass
|
|||
*/
|
||||
public function onStepHit(event:SongTimeScriptEvent)
|
||||
{
|
||||
if (danceEvery > 0) trace('step hit(${danceEvery}): ${event.step % (danceEvery * Constants.STEPS_PER_BEAT)} == 0?');
|
||||
if (danceEvery > 0 && (event.step % (danceEvery * Constants.STEPS_PER_BEAT)) == 0)
|
||||
{
|
||||
trace('dance onStepHit!');
|
||||
dance(shouldBop);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -769,7 +769,16 @@ class Stage extends FlxSpriteGroup implements IPlayStateScriptedClass implements
|
|||
* A function that gets called once per step in the song.
|
||||
* @param curStep The current step number.
|
||||
*/
|
||||
public function onStepHit(event:SongTimeScriptEvent):Void {}
|
||||
public function onStepHit(event:SongTimeScriptEvent):Void
|
||||
{
|
||||
// Override me in your scripted stage to perform custom behavior!
|
||||
// Make sure to call super.onStepHit(event) if you want to keep the boppers dancing.
|
||||
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A function that gets called once per beat in the song (once every four steps).
|
||||
|
@ -786,7 +795,13 @@ class Stage extends FlxSpriteGroup implements IPlayStateScriptedClass implements
|
|||
}
|
||||
}
|
||||
|
||||
public function onUpdate(event:UpdateScriptEvent) {}
|
||||
public function onUpdate(event:UpdateScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public override function kill()
|
||||
{
|
||||
|
@ -866,35 +881,131 @@ class Stage extends FlxSpriteGroup implements IPlayStateScriptedClass implements
|
|||
return StageRegistry.instance.parseEntryDataWithMigration(id, StageRegistry.instance.fetchEntryVersion(id));
|
||||
}
|
||||
|
||||
public function onScriptEvent(event:ScriptEvent) {}
|
||||
public function onScriptEvent(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onPause(event:PauseScriptEvent) {}
|
||||
public function onPause(event:PauseScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onResume(event:ScriptEvent) {}
|
||||
public function onResume(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onSongStart(event:ScriptEvent) {}
|
||||
public function onSongStart(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onSongEnd(event:ScriptEvent) {}
|
||||
public function onSongEnd(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onGameOver(event:ScriptEvent) {}
|
||||
public function onGameOver(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onCountdownStart(event:CountdownScriptEvent) {}
|
||||
public function onCountdownStart(event:CountdownScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onCountdownStep(event:CountdownScriptEvent) {}
|
||||
public function onCountdownStep(event:CountdownScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onCountdownEnd(event:CountdownScriptEvent) {}
|
||||
public function onCountdownEnd(event:CountdownScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onNoteIncoming(event:NoteScriptEvent) {}
|
||||
public function onNoteIncoming(event:NoteScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onNoteHit(event:HitNoteScriptEvent) {}
|
||||
public function onNoteHit(event:HitNoteScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onNoteMiss(event:NoteScriptEvent) {}
|
||||
public function onNoteMiss(event:NoteScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onSongEvent(event:SongEventScriptEvent) {}
|
||||
public function onSongEvent(event:SongEventScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onNoteGhostMiss(event:GhostMissNoteScriptEvent) {}
|
||||
public function onNoteGhostMiss(event:GhostMissNoteScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onSongLoaded(event:SongLoadScriptEvent) {}
|
||||
public function onSongLoaded(event:SongLoadScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
|
||||
public function onSongRetry(event:ScriptEvent) {}
|
||||
public function onSongRetry(event:ScriptEvent)
|
||||
{
|
||||
for (bopper in boppers)
|
||||
{
|
||||
ScriptEventDispatcher.callEvent(bopper, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ class MemoryCounter extends TextField
|
|||
@:noCompletion
|
||||
#if !flash override #end function __enterFrame(deltaTime:Float):Void
|
||||
{
|
||||
var mem:Float = Math.round(MemoryUtil.getMemoryUsed() / BYTES_PER_MEG / ROUND_TO) * ROUND_TO;
|
||||
var mem:Float = Math.fround(MemoryUtil.getMemoryUsed() / BYTES_PER_MEG / ROUND_TO) * ROUND_TO;
|
||||
|
||||
if (mem > memPeak) memPeak = mem;
|
||||
|
||||
|
|
|
@ -412,8 +412,8 @@ class MainMenuState extends MusicBeatState
|
|||
|
||||
if (controls.BACK && menuItems.enabled && !menuItems.busy)
|
||||
{
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
FlxG.switchState(() -> new TitleState());
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -145,8 +145,8 @@ class Page extends FlxGroup
|
|||
{
|
||||
if (canExit && controls.BACK)
|
||||
{
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
exit();
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -390,9 +390,9 @@ class StoryMenuState extends MusicBeatState
|
|||
|
||||
if (controls.BACK && !exitingMenu && !selectedLevel)
|
||||
{
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
exitingMenu = true;
|
||||
FlxG.switchState(() -> new MainMenuState());
|
||||
FunkinSound.playOnce(Paths.sound('cancelMenu'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,11 +48,11 @@ class MemoryUtil
|
|||
* Calculate the total memory usage of the program, in bytes.
|
||||
* @return Int
|
||||
*/
|
||||
public static function getMemoryUsed():Int
|
||||
public static function getMemoryUsed():#if cpp Float #else Int #end
|
||||
{
|
||||
#if cpp
|
||||
// There is also Gc.MEM_INFO_RESERVED, MEM_INFO_CURRENT, and MEM_INFO_LARGE.
|
||||
return cpp.vm.Gc.memInfo(cpp.vm.Gc.MEM_INFO_USAGE);
|
||||
return cpp.vm.Gc.memInfo64(cpp.vm.Gc.MEM_INFO_USAGE);
|
||||
#else
|
||||
return openfl.system.System.totalMemory;
|
||||
#end
|
||||
|
|
Loading…
Reference in a new issue