mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-03-25 19:40:11 +00:00
click preview to open screenshots folder (and moved openFolder
to FileUtil
This commit is contained in:
parent
0036a334bc
commit
94938313dd
|
@ -9,6 +9,7 @@ import funkin.ui.debug.charting.ChartEditorState;
|
||||||
import funkin.ui.MusicBeatSubState;
|
import funkin.ui.MusicBeatSubState;
|
||||||
import funkin.util.logging.CrashHandler;
|
import funkin.util.logging.CrashHandler;
|
||||||
import flixel.addons.transition.FlxTransitionableState;
|
import flixel.addons.transition.FlxTransitionableState;
|
||||||
|
import funkin.util.FileUtil;
|
||||||
|
|
||||||
class DebugMenuSubState extends MusicBeatSubState
|
class DebugMenuSubState extends MusicBeatSubState
|
||||||
{
|
{
|
||||||
|
@ -110,16 +111,7 @@ class DebugMenuSubState extends MusicBeatSubState
|
||||||
#if sys
|
#if sys
|
||||||
function openLogFolder()
|
function openLogFolder()
|
||||||
{
|
{
|
||||||
#if windows
|
FileUtil.openFolder(CrashHandler.LOG_FOLDER);
|
||||||
Sys.command('explorer', [CrashHandler.LOG_FOLDER]);
|
|
||||||
#elseif mac
|
|
||||||
// mac could be fuckie with where the log folder is relative to the game file...
|
|
||||||
// if this comment is still here... it means it has NOT been verified on mac yet!
|
|
||||||
Sys.command('open', [CrashHandler.LOG_FOLDER]);
|
|
||||||
#end
|
|
||||||
|
|
||||||
// TODO: implement linux
|
|
||||||
// some shit with xdg-open :thinking: emoji...
|
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
|
|
@ -645,6 +645,25 @@ class FileUtil
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if sys
|
||||||
|
public static function openFolder(pathFolder:String)
|
||||||
|
{
|
||||||
|
#if windows
|
||||||
|
Sys.command('explorer', [pathFolder]);
|
||||||
|
#elseif mac
|
||||||
|
// mac could be fuckie with where the log folder is relative to the game file...
|
||||||
|
// if this comment is still here... it means it has NOT been verified on mac yet!
|
||||||
|
//
|
||||||
|
// FileUtil.hx note: this was originally used to open the logs specifically!
|
||||||
|
// thats why the above comment is there!
|
||||||
|
Sys.command('open', [pathFolder]);
|
||||||
|
#end
|
||||||
|
|
||||||
|
// TODO: implement linux
|
||||||
|
// some shit with xdg-open :thinking: emoji...
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
|
||||||
static function convertTypeFilter(typeFilter:Array<FileFilter>):String
|
static function convertTypeFilter(typeFilter:Array<FileFilter>):String
|
||||||
{
|
{
|
||||||
var filter:String = null;
|
var filter:String = null;
|
||||||
|
|
|
@ -14,11 +14,13 @@ import flixel.util.FlxTimer;
|
||||||
import funkin.graphics.FunkinSprite;
|
import funkin.graphics.FunkinSprite;
|
||||||
import funkin.input.Cursor;
|
import funkin.input.Cursor;
|
||||||
import openfl.display.Bitmap;
|
import openfl.display.Bitmap;
|
||||||
|
import openfl.display.Sprite;
|
||||||
import openfl.display.BitmapData;
|
import openfl.display.BitmapData;
|
||||||
import openfl.display.PNGEncoderOptions;
|
import openfl.display.PNGEncoderOptions;
|
||||||
import openfl.geom.Matrix;
|
import openfl.geom.Matrix;
|
||||||
import openfl.geom.Rectangle;
|
import openfl.geom.Rectangle;
|
||||||
import openfl.utils.ByteArray;
|
import openfl.utils.ByteArray;
|
||||||
|
import openfl.events.MouseEvent;
|
||||||
|
|
||||||
typedef ScreenshotPluginParams =
|
typedef ScreenshotPluginParams =
|
||||||
{
|
{
|
||||||
|
@ -175,6 +177,27 @@ class ScreenshotPlugin extends FlxBasic
|
||||||
|
|
||||||
function showFancyPreview(bitmap:Bitmap):Void
|
function showFancyPreview(bitmap:Bitmap):Void
|
||||||
{
|
{
|
||||||
|
// ermmm stealing this??
|
||||||
|
var wasMouseHidden = false;
|
||||||
|
if (!FlxG.mouse.visible)
|
||||||
|
{
|
||||||
|
wasMouseHidden = true;
|
||||||
|
Cursor.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
// so that it doesnt change the alpha when tweening in/out
|
||||||
|
var changingAlpha:Bool = false;
|
||||||
|
|
||||||
|
// fuck it, cursed locally scoped functions, purely because im lazy
|
||||||
|
// (and so we can check changingAlpha, which is locally scoped.... because I'm lazy...)
|
||||||
|
var onHover = function(e:MouseEvent) {
|
||||||
|
if (!changingAlpha) e.target.alpha = 0.6;
|
||||||
|
};
|
||||||
|
|
||||||
|
var onHoverOut = function(e:MouseEvent) {
|
||||||
|
if (!changingAlpha) e.target.alpha = 1;
|
||||||
|
}
|
||||||
|
|
||||||
var scale:Float = 0.25;
|
var scale:Float = 0.25;
|
||||||
var w:Int = Std.int(bitmap.bitmapData.width * scale);
|
var w:Int = Std.int(bitmap.bitmapData.width * scale);
|
||||||
var h:Int = Std.int(bitmap.bitmapData.height * scale);
|
var h:Int = Std.int(bitmap.bitmapData.height * scale);
|
||||||
|
@ -184,28 +207,49 @@ class ScreenshotPlugin extends FlxBasic
|
||||||
matrix.scale(scale, scale);
|
matrix.scale(scale, scale);
|
||||||
preview.draw(bitmap.bitmapData, matrix);
|
preview.draw(bitmap.bitmapData, matrix);
|
||||||
|
|
||||||
|
// used for movement + button stuff
|
||||||
|
var previewSprite = new Sprite();
|
||||||
|
|
||||||
|
previewSprite.buttonMode = true;
|
||||||
|
previewSprite.addEventListener(MouseEvent.MOUSE_DOWN, openScreenshotsFolder);
|
||||||
|
previewSprite.addEventListener(MouseEvent.MOUSE_OVER, onHover);
|
||||||
|
previewSprite.addEventListener(MouseEvent.MOUSE_OUT, onHoverOut);
|
||||||
|
|
||||||
|
FlxG.stage.addChild(previewSprite);
|
||||||
|
|
||||||
|
previewSprite.alpha = 0.0;
|
||||||
|
previewSprite.y -= 10;
|
||||||
|
|
||||||
var previewBitmap = new Bitmap(preview);
|
var previewBitmap = new Bitmap(preview);
|
||||||
|
previewSprite.addChild(previewBitmap);
|
||||||
FlxG.stage.addChild(previewBitmap);
|
|
||||||
|
|
||||||
previewBitmap.alpha = 0.0;
|
|
||||||
previewBitmap.y -= 10;
|
|
||||||
|
|
||||||
// Wait to fade in.
|
// Wait to fade in.
|
||||||
new FlxTimer().start(PREVIEW_INITIAL_DELAY, function(_) {
|
new FlxTimer().start(PREVIEW_INITIAL_DELAY, function(_) {
|
||||||
// Fade in.
|
// Fade in.
|
||||||
FlxTween.tween(previewBitmap, {alpha: 1.0, y: 0}, PREVIEW_FADE_IN_DURATION,
|
changingAlpha = true;
|
||||||
|
FlxTween.tween(previewSprite, {alpha: 1.0, y: 0}, PREVIEW_FADE_IN_DURATION,
|
||||||
{
|
{
|
||||||
ease: FlxEase.quartOut,
|
ease: FlxEase.quartOut,
|
||||||
onComplete: function(_) {
|
onComplete: function(_) {
|
||||||
|
changingAlpha = false;
|
||||||
// Wait to fade out.
|
// Wait to fade out.
|
||||||
new FlxTimer().start(PREVIEW_FADE_OUT_DELAY, function(_) {
|
new FlxTimer().start(PREVIEW_FADE_OUT_DELAY, function(_) {
|
||||||
|
changingAlpha = true;
|
||||||
// Fade out.
|
// Fade out.
|
||||||
FlxTween.tween(previewBitmap, {alpha: 0.0, y: 10}, PREVIEW_FADE_OUT_DURATION,
|
FlxTween.tween(previewSprite, {alpha: 0.0, y: 10}, PREVIEW_FADE_OUT_DURATION,
|
||||||
{
|
{
|
||||||
ease: FlxEase.quartInOut,
|
ease: FlxEase.quartInOut,
|
||||||
onComplete: function(_) {
|
onComplete: function(_) {
|
||||||
FlxG.stage.removeChild(previewBitmap);
|
if (wasMouseHidden)
|
||||||
|
{
|
||||||
|
Cursor.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
previewSprite.removeEventListener(MouseEvent.MOUSE_DOWN, openScreenshotsFolder);
|
||||||
|
previewSprite.removeEventListener(MouseEvent.MOUSE_OVER, onHover);
|
||||||
|
previewSprite.removeEventListener(MouseEvent.MOUSE_OUT, onHoverOut);
|
||||||
|
|
||||||
|
FlxG.stage.removeChild(previewSprite);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -214,6 +258,11 @@ class ScreenshotPlugin extends FlxBasic
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openScreenshotsFolder(e:MouseEvent):Void
|
||||||
|
{
|
||||||
|
FileUtil.openFolder(SCREENSHOT_FOLDER);
|
||||||
|
}
|
||||||
|
|
||||||
static function getCurrentState():FlxState
|
static function getCurrentState():FlxState
|
||||||
{
|
{
|
||||||
var state = FlxG.state;
|
var state = FlxG.state;
|
||||||
|
|
Loading…
Reference in a new issue