fixing character editing
This commit is contained in:
@@ -308,7 +308,7 @@ class CharacterEditor extends UIState {
|
||||
case null:
|
||||
// do nothing
|
||||
case CEditInfo(oldInfo, newInfo):
|
||||
editInfo(oldInfo);
|
||||
editInfo(oldInfo, false);
|
||||
case CCreateAnim(animID, animData):
|
||||
deleteAnim(animData.name, false);
|
||||
case CEditAnim(name, oldData, animData):
|
||||
@@ -336,7 +336,7 @@ class CharacterEditor extends UIState {
|
||||
case null:
|
||||
// do nothing
|
||||
case CEditInfo(oldInfo, newInfo):
|
||||
editInfo(newInfo);
|
||||
editInfo(newInfo, false);
|
||||
case CCreateAnim(animID, animData):
|
||||
createAnim(animData, animID, false);
|
||||
case CEditAnim(name, oldData, animData):
|
||||
@@ -430,9 +430,13 @@ class CharacterEditor extends UIState {
|
||||
}
|
||||
|
||||
public function editInfo(newInfo:Xml, addtoUndo:Bool = true) {
|
||||
var lastAnim:String = character.getAnimName();
|
||||
|
||||
var oldInfo = character.buildXML();
|
||||
character.applyXML(new Access(newInfo));
|
||||
|
||||
playAnimation(lastAnim);
|
||||
|
||||
if (addtoUndo)
|
||||
addToUndo(CEditInfo(oldInfo, newInfo));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package funkin.editors.character;
|
||||
|
||||
import flixel.math.FlxPoint;
|
||||
import haxe.xml.Access;
|
||||
import funkin.game.Character;
|
||||
|
||||
@@ -161,6 +162,21 @@ class CharacterInfoScreen extends UISubstateWindow {
|
||||
xml.set("antialiasing", antialiasingCheckbox.checked ? "true" : "false");
|
||||
xml.set("sprite", spriteTextBox.label.text);
|
||||
|
||||
for (anim in character.animDatas)
|
||||
{
|
||||
var animXml:Xml = Xml.createElement('anim');
|
||||
animXml.set("name", anim.name);
|
||||
animXml.set("anim", anim.anim);
|
||||
animXml.set("loop", Std.string(anim.loop));
|
||||
animXml.set("fps", Std.string(anim.fps));
|
||||
var offset:FlxPoint = character.getAnimOffset(anim.name);
|
||||
animXml.set("x", Std.string(offset.x));
|
||||
animXml.set("y", Std.string(offset.y));
|
||||
if (anim.indices.length > 0)
|
||||
animXml.set("indices", anim.indices.join(","));
|
||||
xml.addChild(animXml);
|
||||
}
|
||||
|
||||
if (onSave != null) onSave(xml);
|
||||
}
|
||||
}
|
||||
@@ -176,6 +176,7 @@ class Character extends FunkinSprite implements IBeatReceiver implements IOffset
|
||||
switchOffset('singLEFT', 'singRIGHT');
|
||||
switchOffset('singLEFTmiss', 'singRIGHTmiss');
|
||||
}
|
||||
frameOffset.set(getAnimOffset(getAnimName()).x, getAnimOffset(getAnimName()).y);
|
||||
if (isPlayer)
|
||||
flipX = !flipX;
|
||||
__baseFlipped = flipX;
|
||||
|
||||
Reference in New Issue
Block a user