2021-09-07 17:09:34 -04:00
|
|
|
package;
|
|
|
|
|
2022-01-20 23:33:51 -05:00
|
|
|
import charting.ChartingState;
|
2021-09-07 17:09:34 -04:00
|
|
|
import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond;
|
|
|
|
import flixel.addons.transition.FlxTransitionableState;
|
|
|
|
import flixel.addons.transition.TransitionData;
|
|
|
|
import flixel.graphics.FlxGraphic;
|
|
|
|
import flixel.math.FlxPoint;
|
|
|
|
import flixel.math.FlxRect;
|
|
|
|
import flixel.util.FlxColor;
|
|
|
|
import openfl.display.BitmapData;
|
|
|
|
import ui.PreferencesMenu;
|
2021-09-08 11:16:16 -04:00
|
|
|
import ui.stageBuildShit.StageBuilderState;
|
2021-09-07 17:09:34 -04:00
|
|
|
|
2021-09-10 10:07:55 -04:00
|
|
|
using StringTools;
|
|
|
|
|
2021-09-07 17:09:34 -04:00
|
|
|
#if colyseus
|
|
|
|
import io.colyseus.Client;
|
|
|
|
import io.colyseus.Room;
|
|
|
|
#end
|
|
|
|
#if discord_rpc
|
|
|
|
import Discord.DiscordClient;
|
|
|
|
#end
|
|
|
|
#if desktop
|
|
|
|
import sys.FileSystem;
|
|
|
|
import sys.io.File;
|
|
|
|
import sys.thread.Thread;
|
|
|
|
#end
|
|
|
|
|
|
|
|
class InitState extends FlxTransitionableState
|
|
|
|
{
|
|
|
|
override public function create():Void
|
|
|
|
{
|
|
|
|
#if android
|
|
|
|
FlxG.android.preventDefaultKeys = [FlxAndroidKey.BACK];
|
|
|
|
#end
|
|
|
|
#if newgrounds
|
|
|
|
NGio.init();
|
|
|
|
#end
|
|
|
|
#if discord_rpc
|
|
|
|
DiscordClient.initialize();
|
|
|
|
|
2021-09-10 10:07:55 -04:00
|
|
|
Application.current.onExit.add(function(exitCode)
|
|
|
|
{
|
2021-09-07 17:09:34 -04:00
|
|
|
DiscordClient.shutdown();
|
|
|
|
});
|
|
|
|
#end
|
|
|
|
|
|
|
|
// ==== flixel shit ==== //
|
|
|
|
|
2021-09-10 10:07:55 -04:00
|
|
|
// This big obnoxious white button is for MOBILE, so that you can press it
|
|
|
|
// easily with your finger when debug bullshit pops up during testing lol!
|
|
|
|
FlxG.debugger.addButton(LEFT, new BitmapData(200, 200), function()
|
|
|
|
{
|
2021-09-07 17:09:34 -04:00
|
|
|
FlxG.debugger.visible = false;
|
|
|
|
});
|
|
|
|
|
|
|
|
FlxG.sound.muteKeys = [ZERO];
|
|
|
|
FlxG.game.focusLostFramerate = 60;
|
|
|
|
|
|
|
|
// FlxG.stage.window.borderless = true;
|
|
|
|
// FlxG.stage.window.mouseLock = true;
|
|
|
|
|
|
|
|
var diamond:FlxGraphic = FlxGraphic.fromClass(GraphicTransTileDiamond);
|
|
|
|
diamond.persist = true;
|
|
|
|
diamond.destroyOnNoUse = false;
|
|
|
|
|
|
|
|
FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 1, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32},
|
|
|
|
new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
|
2021-09-10 10:07:55 -04:00
|
|
|
FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 0.7, new FlxPoint(0, 1), {asset: diamond, width: 32, height: 32},
|
|
|
|
new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
|
2021-09-07 17:09:34 -04:00
|
|
|
|
|
|
|
// ===== save shit ===== //
|
|
|
|
|
|
|
|
FlxG.save.bind('funkin', 'ninjamuffin99');
|
|
|
|
|
|
|
|
// https://github.com/HaxeFlixel/flixel/pull/2396
|
|
|
|
// IF/WHEN MY PR GOES THRU AND IT GETS INTO MAIN FLIXEL, DELETE THIS CHUNKOF CODE, AND THEN UNCOMMENT THE LINE BELOW
|
|
|
|
// FlxG.sound.loadSavedPrefs();
|
|
|
|
|
|
|
|
if (FlxG.save.data.volume != null)
|
|
|
|
FlxG.sound.volume = FlxG.save.data.volume;
|
|
|
|
if (FlxG.save.data.mute != null)
|
|
|
|
FlxG.sound.muted = FlxG.save.data.mute;
|
|
|
|
|
|
|
|
// FlxG.save.close();
|
|
|
|
// FlxG.sound.loadSavedPrefs();
|
|
|
|
PreferencesMenu.initPrefs();
|
|
|
|
PlayerSettings.init();
|
|
|
|
Highscore.load();
|
|
|
|
|
|
|
|
if (FlxG.save.data.weekUnlocked != null)
|
|
|
|
{
|
|
|
|
// FIX LATER!!!
|
|
|
|
// WEEK UNLOCK PROGRESSION!!
|
|
|
|
// StoryMenuState.weekUnlocked = FlxG.save.data.weekUnlocked;
|
|
|
|
|
|
|
|
if (StoryMenuState.weekUnlocked.length < 4)
|
|
|
|
StoryMenuState.weekUnlocked.insert(0, true);
|
|
|
|
|
|
|
|
// QUICK PATCH OOPS!
|
|
|
|
if (!StoryMenuState.weekUnlocked[0])
|
|
|
|
StoryMenuState.weekUnlocked[0] = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (FlxG.save.data.seenVideo != null)
|
|
|
|
VideoState.seenVideo = FlxG.save.data.seenVideo;
|
|
|
|
|
|
|
|
// ===== fuck outta here ===== //
|
|
|
|
|
|
|
|
// FlxTransitionableState.skipNextTransOut = true;
|
|
|
|
FlxTransitionableState.skipNextTransIn = true;
|
|
|
|
|
|
|
|
#if FREEPLAY
|
|
|
|
FlxG.switchState(new FreeplayState());
|
|
|
|
#elseif ANIMATE
|
|
|
|
FlxG.switchState(new animate.AnimTestStage());
|
|
|
|
#elseif CHARTING
|
|
|
|
FlxG.switchState(new ChartingState());
|
|
|
|
#elseif STAGEBUILD
|
|
|
|
FlxG.switchState(new StageBuilderState());
|
|
|
|
#elseif ANIMDEBUG
|
|
|
|
FlxG.switchState(new ui.animDebugShit.DebugBoundingState());
|
|
|
|
#elseif NETTEST
|
|
|
|
FlxG.switchState(new netTest.NetTest());
|
|
|
|
#else
|
|
|
|
FlxG.sound.cache(Paths.music('freakyMenu'));
|
|
|
|
FlxG.switchState(new TitleState());
|
|
|
|
#end
|
|
|
|
}
|
|
|
|
}
|