Skip to content

[BUGFIX/ENHANCEMENT] Miscellaneous Stage Editor Bugfixes and Missing Features #3974

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
8 changes: 8 additions & 0 deletions source/funkin/InitState.hx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import funkin.play.character.CharacterData.CharacterDataParser;
import funkin.play.notes.notekind.NoteKindManager;
import funkin.play.PlayStatePlaylist;
import funkin.ui.debug.charting.ChartEditorState;
import funkin.ui.debug.stageeditor.StageEditorState;
import funkin.ui.title.TitleState;
import funkin.ui.transition.LoadingState;
import funkin.util.CLIUtil;
Expand Down Expand Up @@ -303,6 +304,13 @@ class InitState extends FlxState
fnfcTargetPath: params.chart.chartPath,
}));
}
else if (params.stage.shouldLoadStage)
{
FlxG.switchState(() -> new StageEditorState(
{
fnfsTargetPath: params.stage.stagePath,
}));
}
else
{
FlxG.sound.cache(Paths.music('freakyMenu/freakyMenu'));
Expand Down
4 changes: 2 additions & 2 deletions source/funkin/play/stage/Stage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,8 @@ class Stage extends FlxSpriteGroup implements IPlayStateScriptedClass implements
propSprite.scrollFactor.y = dataProp.scroll[1];

propSprite.angle = dataProp.angle;
propSprite.color = FlxColor.fromString(dataProp.color);
@:privateAccess if (!isSolidColor) propSprite.blend = BlendMode.fromString(dataProp.blend);
if (!isSolidColor) propSprite.color = FlxColor.fromString(dataProp.color);
@:privateAccess propSprite.blend = BlendMode.fromString(dataProp.blend);

propSprite.zIndex = dataProp.zIndex;

Expand Down
78 changes: 77 additions & 1 deletion source/funkin/save/Save.hx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package funkin.save;

import flixel.util.FlxSave;
import funkin.input.Controls.Device;
import funkin.play.character.CharacterData.CharacterDataParser;
import funkin.play.scoring.Scoring;
import funkin.play.scoring.Scoring.ScoringRank;
import funkin.save.migrator.RawSaveData_v1_0_0;
Expand Down Expand Up @@ -181,7 +182,10 @@ class Save
previousFiles: [],
moveStep: "1px",
angleStep: 5,
theme: StageEditorTheme.Light
theme: StageEditorTheme.Light,
bfChar: "bf",
gfChar: "gf",
dadChar: "dad"
}
};
}
Expand Down Expand Up @@ -550,6 +554,60 @@ class Save
return data.optionsStageEditor.theme;
}

public var stageBoyfriendChar(get, set):String;

function get_stageBoyfriendChar():String
{
if (data.optionsStageEditor.bfChar == null
|| CharacterDataParser.fetchCharacterData(data.optionsStageEditor.bfChar) == null) data.optionsStageEditor.bfChar = "bf";

return data.optionsStageEditor.bfChar;
}

function set_stageBoyfriendChar(value:String):String
{
// Set and apply.
data.optionsStageEditor.bfChar = value;
flush();
return data.optionsStageEditor.bfChar;
}

public var stageGirlfriendChar(get, set):String;

function get_stageGirlfriendChar():String
{
if (data.optionsStageEditor.gfChar == null
|| CharacterDataParser.fetchCharacterData(data.optionsStageEditor.gfChar ?? "") == null) data.optionsStageEditor.gfChar = "gf";

return data.optionsStageEditor.gfChar;
}

function set_stageGirlfriendChar(value:String):String
{
// Set and apply.
data.optionsStageEditor.gfChar = value;
flush();
return data.optionsStageEditor.gfChar;
}

public var stageDadChar(get, set):String;

function get_stageDadChar():String
{
if (data.optionsStageEditor.dadChar == null
|| CharacterDataParser.fetchCharacterData(data.optionsStageEditor.dadChar ?? "") == null) data.optionsStageEditor.dadChar = "dad";

return data.optionsStageEditor.dadChar;
}

function set_stageDadChar(value:String):String
{
// Set and apply.
data.optionsStageEditor.dadChar = value;
flush();
return data.optionsStageEditor.dadChar;
}

/**
* When we've seen a character unlock, add it to the list of characters seen.
* @param character
Expand Down Expand Up @@ -1699,4 +1757,22 @@ typedef SaveDataStageEditorOptions =
* @default `StageEditorTheme.Light`
*/
var ?theme:StageEditorTheme;

/**
* The BF character ID used in testing stages.
* @default bf
*/
var ?bfChar:String;

/**
* The GF character ID used in testing stages.
* @default gf
*/
var ?gfChar:String;

/**
* The Dad character ID used in testing stages.
* @default dad
*/
var ?dadChar:String;
};
Loading
Loading