it works but not really

This commit is contained in:
lunarcleint
2023-08-04 22:18:58 -07:00
parent 1f6b7625ad
commit 642d71c031
2 changed files with 18 additions and 4 deletions
@@ -327,6 +327,8 @@ class CharacterEditor extends UIState {
}
function _file_save(_) {
if (characterAnimsWindow.dragging) return;
#if sys
sys.io.File.saveContent(
Assets.getPath(Paths.xml('characters/${character.curCharacter}')),
@@ -338,13 +340,18 @@ class CharacterEditor extends UIState {
}
function _file_saveas(_) {
if (characterAnimsWindow.dragging) return;
openSubState(new SaveSubstate(buildCharacter(), {
defaultSaveFile: '${character.curCharacter}.xml'
}));
}
function buildCharacter():String {
var charXML:Xml = character.buildXML();
var charXML:Xml = character.buildXML([
for (button in characterAnimsWindow.buttons.members)
button.anim
]);
// clean
if (charXML.exists("gameOverChar") && character.gameOverCharacter == "bf-dead") charXML.remove("gameOverChar");
+10 -3
View File
@@ -397,7 +397,7 @@ class Character extends FunkinSprite implements IBeatReceiver implements IOffset
dance();
}
public function buildXML():Xml {
public function buildXML(?animsOrder:Array<String>):Xml {
var xml = Xml.createElement("character");
xml.set("isPlayer", playerOffsets == true ? "true" : "false");
xml.set("isGF", isGF == true ? "true" : "false");
@@ -408,14 +408,21 @@ class Character extends FunkinSprite implements IBeatReceiver implements IOffset
xml.set("camy", Std.string(cameraOffset.y));
xml.set("holdTime", Std.string(holdTime));
xml.set("flipX", Std.string(flipX));
xml.set("icon", icon);
xml.set("icon", getIcon());
if (iconColor != null)
xml.set("color", iconColor.toHexString(false).replace("0x", "#"));
xml.set("scale", Std.string(scale.x));
xml.set("antialiasing", antialiasing == true ? "true" : "false");
xml.set("sprite", sprite);
for (anim in animDatas)
var anims:Array<AnimData> = [];
if (animsOrder != null) {
for (name in animsOrder)
if (animDatas.exists(name)) anims.push(animDatas.get(name));
} else
anims = [for (anim in animDatas) anim];
for (anim in anims)
{
var animXml:Xml = Xml.createElement('anim');
animXml.set("name", anim.name);