diff --git a/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx b/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx index f0e620aee..34adea301 100644 --- a/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx +++ b/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx @@ -3,6 +3,7 @@ package funkin.ui.stageBuildShit; import flixel.math.FlxPoint; import flixel.ui.FlxButton; import funkin.play.PlayState; +import funkin.play.character.BaseCharacter; import funkin.play.stage.StageData; import haxe.Json; import openfl.Assets; @@ -29,6 +30,10 @@ class StageOffsetSubstate extends MusicBeatSubstate stageLol.characters.dad.position[0] = Std.int(dadPos.x); stageLol.characters.dad.position[1] = Std.int(dadPos.y); + var GF_FEET_SNIIIIIIIIIIIIIFFFF = PlayState.instance.currentStage.getGirlfriend().feetPosition; + stageLol.characters.gf.position[0] = Std.int(GF_FEET_SNIIIIIIIIIIIIIFFFF.x); + stageLol.characters.gf.position[1] = Std.int(GF_FEET_SNIIIIIIIIIIIIIFFFF.y); + var outputJson = CoolUtil.jsonStringify(stageLol); #if sys @@ -49,6 +54,8 @@ class StageOffsetSubstate extends MusicBeatSubstate var mosPosOld:FlxPoint = new FlxPoint(); var sprOld:FlxPoint = new FlxPoint(); + var char:BaseCharacter = null; + override function update(elapsed:Float) { super.update(elapsed); @@ -62,30 +69,24 @@ class StageOffsetSubstate extends MusicBeatSubstate { if (FlxG.mouse.justPressed) { - sprOld.x = PlayState.instance.currentStage.getBoyfriend().x; - sprOld.y = PlayState.instance.currentStage.getBoyfriend().y; + for (thing in PlayState.instance.currentStage) + { + if (FlxG.mouse.overlaps(thing) && Std.isOfType(thing, BaseCharacter)) + char = cast thing; + } + + sprOld.x = char.x; + sprOld.y = char.y; mosPosOld.x = FlxG.mouse.x; mosPosOld.y = FlxG.mouse.y; } - PlayState.instance.currentStage.getBoyfriend().x = sprOld.x - (mosPosOld.x - FlxG.mouse.x); - PlayState.instance.currentStage.getBoyfriend().y = sprOld.y - (mosPosOld.y - FlxG.mouse.y); - } - - if (FlxG.mouse.pressedRight) - { - if (FlxG.mouse.justPressedRight) + if (char != null) { - sprOld.x = PlayState.instance.currentStage.getDad().x; - sprOld.y = PlayState.instance.currentStage.getDad().y; - - mosPosOld.x = FlxG.mouse.x; - mosPosOld.y = FlxG.mouse.y; + char.x = sprOld.x - (mosPosOld.x - FlxG.mouse.x); + char.y = sprOld.y - (mosPosOld.y - FlxG.mouse.y); } - - PlayState.instance.currentStage.getDad().x = sprOld.x - (mosPosOld.x - FlxG.mouse.x); - PlayState.instance.currentStage.getDad().y = sprOld.y - (mosPosOld.y - FlxG.mouse.y); } if (FlxG.keys.justPressed.Y)