Skip to content

Commit

Permalink
update export for playable character
Browse files Browse the repository at this point in the history
  • Loading branch information
lemz1 committed Nov 16, 2024
1 parent f86b1f8 commit 79547dd
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import haxe.io.Path;
import funkin.data.character.CharacterRegistry;
import funkin.ui.debug.char.pages.CharCreatorGameplayPage;
import funkin.ui.debug.char.pages.CharCreatorSelectPage;
import funkin.ui.debug.char.pages.CharCreatorFreeplayPage;
import funkin.ui.debug.char.CharCreatorState;
import funkin.data.freeplay.player.PlayerData;
import funkin.util.FileUtil;

using StringTools;
Expand Down Expand Up @@ -96,6 +98,8 @@ class CharCreatorImportExportHandler
var selectPage:CharCreatorSelectPage = cast state.pages[CharacterSelect];
var charID = selectPage.data.importedCharacter ?? selectPage.data.characterID;

var freeplayPage:CharCreatorFreeplayPage = cast state.pages[Freeplay];

// for (file in selectPage.iconFiles)
// {
// // skip if the file is in a character path
Expand All @@ -107,7 +111,25 @@ class CharCreatorImportExportHandler
// zipEntries.push(FileUtil.makeZIPEntryFromBytes('images/freeplay/icons/${Path.withoutDirectory(file.name)}', file.bytes));
// }

zipEntries.push(FileUtil.makeZIPEntry('data/players/${charID}.json', selectPage.toJSON()));
var playerData:PlayerData = new PlayerData();
playerData.name = "Unknown";
playerData.ownedChars = selectPage.ownedCharacters;
playerData.showUnownedChars = false;
playerData.freeplayStyle = "bf";

@:privateAccess
{
playerData.freeplayDJ = new PlayerFreeplayDJData();
playerData.freeplayDJ.text1 = freeplayPage.bgText1;
playerData.freeplayDJ.text2 = freeplayPage.bgText2;
playerData.freeplayDJ.text3 = freeplayPage.bgText3;
}

playerData.charSelect = new PlayerCharSelectData(selectPage.position);
playerData.results = null;
playerData.unlocked = true;

zipEntries.push(FileUtil.makeZIPEntry('data/players/${charID}.json', playerData.serialize()));
if (selectPage.nametagFile != null) zipEntries.push(FileUtil.makeZIPEntryFromBytes('images/charSelect${charID}Nametag.png', selectPage.nametagFile.bytes));
}
}
21 changes: 21 additions & 0 deletions source/funkin/ui/debug/char/pages/CharCreatorFreeplayPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,27 @@ import openfl.display.BlendMode;
// mainly used for dj animations and style
class CharCreatorFreeplayPage extends CharCreatorDefaultPage
{
public var bgText1(get, never):String;

function get_bgText1():String
{
return cast(dialogMap[FreeplayDJSettings], FreeplayDJSettingsDialog).bgText1;
}

public var bgText2(get, never):String;

function get_bgText2():String
{
return cast(dialogMap[FreeplayDJSettings], FreeplayDJSettingsDialog).bgText2;
}

public var bgText3(get, never):String;

function get_bgText3():String
{
return cast(dialogMap[FreeplayDJSettings], FreeplayDJSettingsDialog).bgText3;
}

var dialogMap:Map<FreeplayDialogType, DefaultPageDialog>;

var data:WizardGenerateParams;
Expand Down
32 changes: 14 additions & 18 deletions source/funkin/ui/debug/char/pages/CharCreatorSelectPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import haxe.ui.containers.menus.Menu;
import haxe.ui.containers.menus.MenuItem;
import haxe.ui.containers.menus.MenuCheckBox;
import funkin.audio.FunkinSound;
import funkin.data.freeplay.player.PlayerData;
import funkin.data.freeplay.player.PlayerRegistry;
import funkin.graphics.adobeanimate.FlxAtlasSprite;
import funkin.graphics.FunkinSprite;
Expand All @@ -34,6 +33,20 @@ using StringTools;
@:allow(funkin.ui.debug.char.pages.subpages.CharSelectIndexSubPage)
class CharCreatorSelectPage extends CharCreatorDefaultPage
{
public var ownedCharacters(get, never):Array<String>;

function get_ownedCharacters():Array<String>
{
return cast(dialogMap[SettingsDialog], PlayableCharacterSettingsDialog).ownedCharacters;
}

public var position(get, never):Int;

function get_position():Int
{
return selectedIndexData;
}

var data:WizardGenerateParams;

var nametag:FlxSprite;
Expand Down Expand Up @@ -380,23 +393,6 @@ class CharCreatorSelectPage extends CharCreatorDefaultPage
if (FlxG.keys.justPressed.S) changeCharAnim(1, FlxG.keys.pressed.SHIFT);
}
}

public function toJSON():String
{
var settingsDialog:PlayableCharacterSettingsDialog = cast dialogMap[SettingsDialog];

var playerData:PlayerData = new PlayerData();
playerData.name = "Unknown";
playerData.ownedChars = settingsDialog.ownedCharacters;
playerData.showUnownedChars = false;
playerData.freeplayStyle = "bf";
playerData.freeplayDJ = null;
playerData.charSelect = new PlayerCharSelectData(selectedIndexData);
playerData.results = null;
playerData.unlocked = true;

return playerData.serialize();
}
}

enum CharCreatorSelectSubPage
Expand Down

0 comments on commit 79547dd

Please sign in to comment.