Skip to content

Commit deb8d84

Browse files
committed
a lil bit of this
1 parent bd82448 commit deb8d84

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

source/funkin/editors/stage/StageEditor.hx

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,36 @@ class StageEditor extends UIState {
684684
return Options.editorStagePrettyPrint ? xmlThingYea : xmlThingYea.replace("\n", "");
685685
}
686686

687+
function storeSpriteTransform(sprite:FunkinSprite) {
688+
sprite.setPosition(CoolUtil.quantize(sprite.x, 100), CoolUtil.quantize(sprite.y, 100));
689+
sprite.scale.set(CoolUtil.quantize(sprite.scale.x, 100), CoolUtil.quantize(sprite.scale.y, 100));
690+
sprite.skew.set(CoolUtil.quantize(sprite.skew.x, 100), CoolUtil.quantize(sprite.skew.y, 100));
691+
sprite.angle = CoolUtil.quantize(sprite.angle, 100);
692+
693+
var button:StageElementButton = cast(sprite.extra.get(exID("button")), StageElementButton);
694+
button.xml.att.x = Std.string(sprite.x);
695+
button.xml.att.y = Std.string(sprite.y);
696+
button.xml.att.skewx = Std.string(sprite.skew.x);
697+
button.xml.att.skewy = Std.string(sprite.skew.y);
698+
button.xml.att.angle = Std.string(sprite.angle);
699+
700+
for (attrib in ["graphicSize", "graphicSizex", "graphicSizey"])
701+
button.xml.x.remove(attrib);
702+
if (MathUtil.equal(sprite.scale.x, sprite.scale.y)) {
703+
button.xml.att.scale = Std.string(sprite.scale.x);
704+
} else {
705+
button.xml.att.scalex = Std.string(sprite.scale.x);
706+
button.xml.att.scaley = Std.string(sprite.scale.y);
707+
}
708+
709+
if (button.xml.has.width)
710+
button.xml.att.width = Std.string(sprite.width);
711+
if (button.xml.has.height)
712+
button.xml.att.height = Std.string(sprite.height);
713+
714+
button.updateInfo();
715+
}
716+
687717
function _edit_undo(_) {
688718
UIState.playEditorSound(Flags.DEFAULT_EDITOR_UNDO_SOUND);
689719
var undo = undos.undo();
@@ -706,7 +736,7 @@ class StageEditor extends UIState {
706736
sprite.scale.set(oldInfo.scaleX, oldInfo.scaleY);
707737
sprite.skew.set(oldInfo.skewX, oldInfo.skewY);
708738
sprite.angle = oldInfo.angle;
709-
cast(sprite.extra.get(exID("button")), StageElementButton).updateInfo();
739+
storeSpriteTransform(sprite);
710740
}
711741
}
712742

@@ -732,7 +762,7 @@ class StageEditor extends UIState {
732762
sprite.scale.set(newInfo.scaleX, newInfo.scaleY);
733763
sprite.skew.set(newInfo.skewX, newInfo.skewY);
734764
sprite.angle = newInfo.angle;
735-
cast(sprite.extra.get(exID("button")), StageElementButton).updateInfo();
765+
storeSpriteTransform(sprite);
736766
}
737767
}
738768

@@ -1117,6 +1147,7 @@ class StageEditor extends UIState {
11171147
if (prevMode == NONE && mouseMode == NONE) return;
11181148

11191149
if (prevMode != NONE && mouseMode == NONE) {
1150+
storeSpriteTransform(sprite);
11201151
undos.addToUndo(CTransform(sprite, {
11211152
x: storedPos.x,
11221153
y: storedPos.y,

0 commit comments

Comments
 (0)