mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-08-20 15:35:13 +00:00
anim debug bullshit
This commit is contained in:
parent
1fa00fab9b
commit
ae37e98cdf
|
@ -547,7 +547,7 @@ class Character extends FlxSprite
|
|||
|
||||
private function loadOffsetFile(offsetCharacter:String)
|
||||
{
|
||||
var daFile:Array<String> = CoolUtil.coolTextFile(Paths.file("images/characters/" + offsetCharacter + "Offsets.txt"));
|
||||
var daFile:Array<String> = CoolUtil.coolTextFile(Paths.file("images/characters/" + offsetCharacter + "Offsets.txt", TEXT, 'shared'));
|
||||
|
||||
for (i in daFile)
|
||||
{
|
||||
|
|
|
@ -5,11 +5,14 @@ import flixel.FlxG;
|
|||
import flixel.FlxSprite;
|
||||
import flixel.FlxState;
|
||||
import flixel.addons.display.FlxGridOverlay;
|
||||
import flixel.addons.ui.FlxInputText;
|
||||
import flixel.addons.ui.FlxUIDropDownMenu;
|
||||
import flixel.graphics.frames.FlxAtlasFrames;
|
||||
import flixel.group.FlxGroup;
|
||||
import flixel.text.FlxText;
|
||||
import flixel.util.FlxColor;
|
||||
import flixel.util.FlxSpriteUtil;
|
||||
import lime.utils.Assets as LimeAssets;
|
||||
import openfl.Assets;
|
||||
import sys.io.File;
|
||||
|
||||
|
@ -17,6 +20,17 @@ using flixel.util.FlxSpriteUtil;
|
|||
|
||||
class DebugBoundingState extends FlxState
|
||||
{
|
||||
/*
|
||||
TODAY'S TO-DO
|
||||
- Refactor the animation offset menu to be in this one instead
|
||||
- Cleaner UI
|
||||
- Easier to access, test, and export data from.
|
||||
- Easier movement
|
||||
- Onion skinning
|
||||
- Mouse controls??
|
||||
- Load different characters on the fly
|
||||
|
||||
*/
|
||||
var bg:FlxSprite;
|
||||
var fileInfo:FlxText;
|
||||
|
||||
|
@ -24,8 +38,12 @@ class DebugBoundingState extends FlxState
|
|||
|
||||
var hudCam:FlxCamera;
|
||||
|
||||
var charInput:FlxUIDropDownMenu;
|
||||
|
||||
override function create()
|
||||
{
|
||||
Paths.setCurrentLevel('week1');
|
||||
|
||||
hudCam = new FlxCamera();
|
||||
hudCam.bgColor.alpha = 0;
|
||||
|
||||
|
@ -62,6 +80,22 @@ class DebugBoundingState extends FlxState
|
|||
txtGrp.cameras = [hudCam];
|
||||
add(txtGrp);
|
||||
|
||||
// charInput = new FlxInputText(300, 10, 150, "bf", 16);
|
||||
// charInput.focusCam = hudCam;
|
||||
// charInput.cameras = [hudCam];
|
||||
// charInput.scrollFactor.set();
|
||||
|
||||
var characters:Array<String> = CoolUtil.coolTextFile(Paths.txt('characterList'));
|
||||
|
||||
charInput = new FlxUIDropDownMenu(200, 20, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(str:String)
|
||||
{
|
||||
loadAnimShit(characters[Std.parseInt(str)]);
|
||||
// trace();
|
||||
});
|
||||
// charInput.
|
||||
charInput.cameras = [hudCam];
|
||||
txtGrp.add(charInput);
|
||||
|
||||
addInfo('boyfriend.xml', "");
|
||||
addInfo('Width', bf.width);
|
||||
addInfo('Height', bf.height);
|
||||
|
@ -99,8 +133,31 @@ class DebugBoundingState extends FlxState
|
|||
swagText.text = str + ": " + Std.string(value);
|
||||
}
|
||||
|
||||
function checkLibrary(library:String)
|
||||
{
|
||||
trace(Assets.hasLibrary(library));
|
||||
if (Assets.getLibrary(library) == null)
|
||||
{
|
||||
@:privateAccess
|
||||
if (!LimeAssets.libraryPaths.exists(library))
|
||||
throw "Missing library: " + library;
|
||||
|
||||
// var callback = callbacks.add("library:" + library);
|
||||
Assets.loadLibrary(library).onComplete(function(_)
|
||||
{
|
||||
trace('LOADED... awesomeness...');
|
||||
// callback();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
override function update(elapsed:Float)
|
||||
{
|
||||
/* if (charInput.hasFocus && FlxG.keys.justPressed.ENTER)
|
||||
{
|
||||
loadAnimShit();
|
||||
}*/
|
||||
|
||||
CoolUtil.mouseCamDrag();
|
||||
CoolUtil.mouseWheelZoom();
|
||||
|
||||
|
@ -111,4 +168,21 @@ class DebugBoundingState extends FlxState
|
|||
|
||||
super.update(elapsed);
|
||||
}
|
||||
|
||||
var swagChar:Character;
|
||||
|
||||
function loadAnimShit(char:String)
|
||||
{
|
||||
// trace('TRYING TO LOAD - ' + charInput.text);
|
||||
|
||||
if (swagChar != null)
|
||||
{
|
||||
remove(swagChar);
|
||||
swagChar.destroy();
|
||||
}
|
||||
|
||||
swagChar = new Character(100, 100, char);
|
||||
swagChar.debugMode = true;
|
||||
add(swagChar);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import flixel.math.FlxPoint;
|
|||
import flixel.math.FlxRect;
|
||||
import flixel.system.FlxAssets.FlxGraphicAsset;
|
||||
import flixel.system.FlxAssets;
|
||||
import flixel.text.FlxText;
|
||||
import flixel.tweens.FlxEase;
|
||||
import flixel.tweens.FlxTween;
|
||||
import flixel.util.FlxColor;
|
||||
|
|
|
@ -7,6 +7,8 @@ import flixel.math.FlxPoint;
|
|||
|
||||
class SprStage extends FlxSprite
|
||||
{
|
||||
public var imgName:String = '';
|
||||
|
||||
public var layer:Int = 0;
|
||||
public var mousePressing:Bool = false;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package ui.stageBuildShit;
|
||||
|
||||
import flixel.FlxCamera;
|
||||
import flixel.FlxG;
|
||||
import flixel.FlxSprite;
|
||||
import flixel.addons.display.FlxGridOverlay;
|
||||
|
@ -7,21 +8,30 @@ import flixel.group.FlxGroup;
|
|||
import flixel.input.mouse.FlxMouseButton.FlxMouseButtonID;
|
||||
import flixel.input.mouse.FlxMouseEventManager;
|
||||
import flixel.math.FlxPoint;
|
||||
import flixel.text.FlxText;
|
||||
import flixel.ui.FlxButton;
|
||||
import flixel.util.FlxColor;
|
||||
import flixel.util.FlxSort;
|
||||
import flixel.util.FlxTimer;
|
||||
|
||||
class StageBuilderState extends MusicBeatState
|
||||
{
|
||||
private var hudGrp:FlxGroup;
|
||||
var textInfo:FlxText;
|
||||
|
||||
private var sprGrp:FlxTypedGroup<SprStage>;
|
||||
|
||||
// var snd:Sound;
|
||||
// var sndChannel:SoundChannel;
|
||||
var hudCam:FlxCamera;
|
||||
|
||||
override function create()
|
||||
{
|
||||
hudCam = new FlxCamera();
|
||||
hudCam.bgColor.alpha = 0;
|
||||
|
||||
FlxG.cameras.add(hudCam, false);
|
||||
|
||||
super.create();
|
||||
|
||||
FlxG.mouse.visible = true;
|
||||
|
@ -70,8 +80,14 @@ class StageBuilderState extends MusicBeatState
|
|||
add(sprGrp);
|
||||
|
||||
hudGrp = new FlxGroup();
|
||||
hudGrp.cameras = [hudCam];
|
||||
add(hudGrp);
|
||||
|
||||
textInfo = new FlxText(10, 80, 0, "", 24);
|
||||
textInfo.setFormat(Paths.font("vcr.ttf"), 20, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
|
||||
textInfo.scrollFactor.set();
|
||||
hudGrp.add(textInfo);
|
||||
|
||||
var imgBtn:FlxButton = new FlxButton(20, 20, "Load Image", loadImage);
|
||||
hudGrp.add(imgBtn);
|
||||
|
||||
|
@ -106,8 +122,11 @@ class StageBuilderState extends MusicBeatState
|
|||
awesomeImg.loadGraphic(Paths.image('stageBuild/stageTempImg'), false, 0, 0, true);
|
||||
|
||||
awesomeImg.layer = sprGrp.members.length;
|
||||
awesomeImg.imgName = fileName;
|
||||
|
||||
sprGrp.add(awesomeImg);
|
||||
|
||||
curFocus = MOVEMENTS;
|
||||
});
|
||||
|
||||
// Load the image shit by
|
||||
|
@ -148,6 +167,101 @@ class StageBuilderState extends MusicBeatState
|
|||
|
||||
override function update(elapsed:Float)
|
||||
{
|
||||
if (FlxG.keys.justPressed.H)
|
||||
hudGrp.visible = !hudGrp.visible;
|
||||
|
||||
if (FlxG.keys.justPressed.ESCAPE)
|
||||
{
|
||||
if (curFocus == ATTRIBUTES)
|
||||
curFocus = MOVEMENTS;
|
||||
else
|
||||
curFocus = ATTRIBUTES;
|
||||
}
|
||||
|
||||
switch (curFocus)
|
||||
{
|
||||
case MOVEMENTS:
|
||||
movementControls();
|
||||
case ATTRIBUTES:
|
||||
attributeControls();
|
||||
default:
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.DELETE)
|
||||
{
|
||||
if (curSelectedSpr != null)
|
||||
sprGrp.remove(curSelectedSpr, true);
|
||||
}
|
||||
|
||||
CoolUtil.mouseCamDrag();
|
||||
|
||||
if (FlxG.keys.pressed.CONTROL)
|
||||
CoolUtil.mouseWheelZoom();
|
||||
|
||||
if (isShaking)
|
||||
{
|
||||
FlxG.stage.window.x = Std.int(shakePos.x + (FlxG.random.float(-1, 1) * shakeIntensity));
|
||||
FlxG.stage.window.y = Std.int(shakePos.y + (FlxG.random.float(-1, 1) * shakeIntensity));
|
||||
|
||||
shakeIntensity -= 30 * elapsed;
|
||||
|
||||
if (shakeIntensity <= 0)
|
||||
{
|
||||
isShaking = false;
|
||||
shakeIntensity = 60;
|
||||
FlxG.stage.window.x = Std.int(shakePos.x);
|
||||
FlxG.stage.window.y = Std.int(shakePos.y);
|
||||
}
|
||||
}
|
||||
|
||||
if (curTool == GRABBING && FlxG.mouse.justReleased)
|
||||
{
|
||||
moveSprPos([
|
||||
curSelectedSpr.x - curSelectedSpr.oldPos.x,
|
||||
curSelectedSpr.y - curSelectedSpr.oldPos.y
|
||||
]);
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.Z && actionQueue.length > 0)
|
||||
{
|
||||
// trace('UNDO - QUEUE LENGTH: ' + actionQueue.length);
|
||||
isUndoRedo = true;
|
||||
|
||||
var daFunc = actionQueue.pop();
|
||||
var daValue = posQueue.pop();
|
||||
|
||||
daFunc(daValue);
|
||||
}
|
||||
|
||||
super.update(elapsed);
|
||||
}
|
||||
|
||||
function attributeControls():Void
|
||||
{
|
||||
textInfo.alpha = 1;
|
||||
|
||||
if (FlxG.keys.justPressed.LEFT || FlxG.keys.justPressed.RIGHT)
|
||||
{
|
||||
if (FlxG.keys.justPressed.LEFT)
|
||||
{
|
||||
curSelectedSpr.scrollFactor.x -= 0.1;
|
||||
curSelectedSpr.scrollFactor.y -= 0.1;
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.RIGHT)
|
||||
{
|
||||
curSelectedSpr.scrollFactor.x += 0.1;
|
||||
curSelectedSpr.scrollFactor.y += 0.1;
|
||||
}
|
||||
|
||||
updateTextInfo();
|
||||
}
|
||||
}
|
||||
|
||||
function movementControls():Void
|
||||
{
|
||||
textInfo.alpha = 0.5;
|
||||
|
||||
if (FlxG.keys.justPressed.CONTROL)
|
||||
{
|
||||
tempTool = curTool;
|
||||
|
@ -196,52 +310,10 @@ class StageBuilderState extends MusicBeatState
|
|||
if (curSelectedSpr != null)
|
||||
moveLayer(-1);
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.DELETE)
|
||||
{
|
||||
if (curSelectedSpr != null)
|
||||
sprGrp.remove(curSelectedSpr, true);
|
||||
}
|
||||
|
||||
CoolUtil.mouseCamDrag();
|
||||
|
||||
if (FlxG.keys.pressed.CONTROL)
|
||||
CoolUtil.mouseWheelZoom();
|
||||
|
||||
if (isShaking)
|
||||
{
|
||||
FlxG.stage.window.x = Std.int(shakePos.x + (FlxG.random.float(-1, 1) * shakeIntensity));
|
||||
FlxG.stage.window.y = Std.int(shakePos.y + (FlxG.random.float(-1, 1) * shakeIntensity));
|
||||
|
||||
shakeIntensity -= 30 * elapsed;
|
||||
|
||||
if (shakeIntensity <= 0)
|
||||
{
|
||||
isShaking = false;
|
||||
shakeIntensity = 60;
|
||||
FlxG.stage.window.x = Std.int(shakePos.x);
|
||||
FlxG.stage.window.y = Std.int(shakePos.y);
|
||||
}
|
||||
}
|
||||
|
||||
if (curTool == GRABBING && FlxG.mouse.justReleased)
|
||||
{
|
||||
moveSprPos([
|
||||
curSelectedSpr.x - curSelectedSpr.oldPos.x,
|
||||
curSelectedSpr.y - curSelectedSpr.oldPos.y
|
||||
]);
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.Z && actionQueue.length > 0)
|
||||
{
|
||||
// trace('UNDO - QUEUE LENGTH: ' + actionQueue.length);
|
||||
isUndoRedo = true;
|
||||
actionQueue.pop()(posQueue.pop());
|
||||
}
|
||||
|
||||
super.update(elapsed);
|
||||
}
|
||||
|
||||
var curFocus:FOCUS = MOVEMENTS;
|
||||
|
||||
static public function changeTool(newTool:TOOLS)
|
||||
{
|
||||
curTool = newTool;
|
||||
|
@ -264,6 +336,14 @@ class StageBuilderState extends MusicBeatState
|
|||
{
|
||||
undoRedoCheck(changeCurSelected, curSelectedSpr);
|
||||
curSelectedSpr = spr;
|
||||
|
||||
updateTextInfo();
|
||||
}
|
||||
|
||||
function updateTextInfo()
|
||||
{
|
||||
textInfo.text = curSelectedSpr.imgName;
|
||||
textInfo.text += ' - parallax: ' + curSelectedSpr.scrollFactor;
|
||||
}
|
||||
|
||||
// base check to see if its in a state of undo or redo
|
||||
|
@ -301,6 +381,7 @@ class StageBuilderState extends MusicBeatState
|
|||
// trace(xDiff);
|
||||
// trace(yDiff);
|
||||
|
||||
// usually set to false for the MOUSE DRAG, merely to track movements from the mouse
|
||||
if (forceMove)
|
||||
{
|
||||
curSelectedSpr.x += xDiff;
|
||||
|
@ -353,6 +434,12 @@ class StageBuilderState extends MusicBeatState
|
|||
}
|
||||
}
|
||||
|
||||
enum FOCUS
|
||||
{
|
||||
ATTRIBUTES;
|
||||
MOVEMENTS;
|
||||
}
|
||||
|
||||
enum TOOLS
|
||||
{
|
||||
SELECT;
|
||||
|
|
Loading…
Reference in a new issue