mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-23 16:17:53 -05:00
loaded up teehee
This commit is contained in:
parent
de7fab4371
commit
67a56f7416
4 changed files with 158 additions and 20 deletions
4
.haxerc
4
.haxerc
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"version": "4.2.5",
|
|
||||||
"resolveLibs": "scoped"
|
|
||||||
}
|
|
|
@ -1,5 +1,6 @@
|
||||||
package funkin;
|
package funkin;
|
||||||
|
|
||||||
|
import funkin.ui.StickerSubState;
|
||||||
import flash.text.TextField;
|
import flash.text.TextField;
|
||||||
import flixel.FlxCamera;
|
import flixel.FlxCamera;
|
||||||
import flixel.FlxGame;
|
import flixel.FlxGame;
|
||||||
|
@ -73,10 +74,35 @@ class FreeplayState extends MusicBeatSubstate
|
||||||
var typing:FlxInputText;
|
var typing:FlxInputText;
|
||||||
var exitMovers:Map<Array<FlxSprite>, MoveData> = new Map();
|
var exitMovers:Map<Array<FlxSprite>, MoveData> = new Map();
|
||||||
|
|
||||||
override function create()
|
var stickerSubState:StickerSubState;
|
||||||
|
|
||||||
|
public function new(?stickers:StickerSubState = null)
|
||||||
{
|
{
|
||||||
|
if (stickers != null)
|
||||||
|
{
|
||||||
|
stickerSubState = stickers;
|
||||||
|
}
|
||||||
|
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
override function create():Void
|
||||||
|
{
|
||||||
|
super.create();
|
||||||
|
|
||||||
FlxTransitionableState.skipNextTransIn = true;
|
FlxTransitionableState.skipNextTransIn = true;
|
||||||
|
|
||||||
|
if (stickerSubState != null)
|
||||||
|
{
|
||||||
|
this.persistentUpdate = true;
|
||||||
|
this.persistentDraw = true;
|
||||||
|
|
||||||
|
openSubState(stickerSubState);
|
||||||
|
stickerSubState.degenStickers();
|
||||||
|
|
||||||
|
// resetSubState();
|
||||||
|
}
|
||||||
|
|
||||||
#if discord_rpc
|
#if discord_rpc
|
||||||
// Updating Discord Rich Presence
|
// Updating Discord Rich Presence
|
||||||
DiscordClient.changePresence("In the Menus", null);
|
DiscordClient.changePresence("In the Menus", null);
|
||||||
|
@ -429,8 +455,6 @@ class FreeplayState extends MusicBeatSubstate
|
||||||
forEach(function(bs) {
|
forEach(function(bs) {
|
||||||
bs.cameras = [funnyCam];
|
bs.cameras = [funnyCam];
|
||||||
});
|
});
|
||||||
|
|
||||||
super.create();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateSongList(?filterStuff:SongFilter, ?force:Bool = false)
|
public function generateSongList(?filterStuff:SongFilter, ?force:Bool = false)
|
||||||
|
|
|
@ -7,19 +7,72 @@ import lime.utils.Assets;
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
import flixel.group.FlxGroup.FlxTypedGroup;
|
||||||
import flixel.util.FlxTimer;
|
import flixel.util.FlxTimer;
|
||||||
import flixel.FlxG;
|
import flixel.FlxG;
|
||||||
|
import flixel.math.FlxMath;
|
||||||
import flixel.util.FlxSort;
|
import flixel.util.FlxSort;
|
||||||
|
import flixel.util.FlxSignal;
|
||||||
|
import flixel.addons.transition.FlxTransitionableState;
|
||||||
|
import openfl.display.BitmapData;
|
||||||
|
import openfl.geom.Matrix;
|
||||||
|
import openfl.display.Sprite;
|
||||||
|
import openfl.display.Bitmap;
|
||||||
|
|
||||||
class StickerSubState extends MusicBeatSubstate
|
class StickerSubState extends MusicBeatSubstate
|
||||||
{
|
{
|
||||||
var grpStickers:FlxTypedGroup<StickerSprite>;
|
public var grpStickers:FlxTypedGroup<StickerSprite>;
|
||||||
|
|
||||||
public function new():Void
|
// yes... a damn OpenFL sprite!!!
|
||||||
|
public var dipshit:Sprite;
|
||||||
|
|
||||||
|
public function new(?oldStickers:Array<StickerSprite>):Void
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
grpStickers = new FlxTypedGroup<StickerSprite>();
|
grpStickers = new FlxTypedGroup<StickerSprite>();
|
||||||
add(grpStickers);
|
add(grpStickers);
|
||||||
|
|
||||||
|
if (oldStickers != null)
|
||||||
|
{
|
||||||
|
for (sticker in oldStickers)
|
||||||
|
{
|
||||||
|
grpStickers.add(sticker);
|
||||||
|
trace(sticker);
|
||||||
|
}
|
||||||
|
|
||||||
|
degenStickers();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
regenStickers();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function degenStickers():Void
|
||||||
|
{
|
||||||
|
if (dipshit != null)
|
||||||
|
{
|
||||||
|
FlxG.removeChild(dipshit);
|
||||||
|
dipshit = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ind => sticker in grpStickers.members)
|
||||||
|
{
|
||||||
|
new FlxTimer().start(sticker.timing, _ -> {
|
||||||
|
sticker.visible = false;
|
||||||
|
|
||||||
|
if (ind == grpStickers.members.length - 1)
|
||||||
|
{
|
||||||
|
switchingState = false;
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function regenStickers():Void
|
||||||
|
{
|
||||||
|
if (grpStickers.members.length > 0)
|
||||||
|
{
|
||||||
|
grpStickers.clear();
|
||||||
|
}
|
||||||
|
|
||||||
var stickerInfo:StickerInfo = new StickerInfo('stickers-set-1');
|
var stickerInfo:StickerInfo = new StickerInfo('stickers-set-1');
|
||||||
for (stickerSets in stickerInfo.getPack("all"))
|
for (stickerSets in stickerInfo.getPack("all"))
|
||||||
{
|
{
|
||||||
|
@ -32,20 +85,12 @@ class StickerSubState extends MusicBeatSubstate
|
||||||
sticky.x -= sticky.width / 2;
|
sticky.x -= sticky.width / 2;
|
||||||
sticky.y -= sticky.height / 2;
|
sticky.y -= sticky.height / 2;
|
||||||
sticky.visible = false;
|
sticky.visible = false;
|
||||||
|
sticky.scrollFactor.set();
|
||||||
sticky.angle = FlxG.random.int(-60, 70);
|
sticky.angle = FlxG.random.int(-60, 70);
|
||||||
// sticky.flipX = FlxG.random.bool();
|
// sticky.flipX = FlxG.random.bool();
|
||||||
grpStickers.add(sticky);
|
grpStickers.add(sticky);
|
||||||
|
|
||||||
sticky.timing = FlxG.random.float(0, 1.5);
|
sticky.timing = FlxG.random.float(0, 0.8);
|
||||||
|
|
||||||
new FlxTimer().start(sticky.timing, function(_) {
|
|
||||||
sticky.visible = true;
|
|
||||||
|
|
||||||
new FlxTimer().start((1 / 24) * 2, _ -> {
|
|
||||||
sticky.scale.x = sticky.scale.y = FlxG.random.float(0.97, 1.02);
|
|
||||||
// sticky.angle *= FlxG.random.float(0, 0.05);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,9 +103,81 @@ class StickerSubState extends MusicBeatSubstate
|
||||||
sticker.y += Math.floor(ind / 6) * sticker.height;
|
sticker.y += Math.floor(ind / 6) * sticker.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FlxG.random.shuffle(grpStickers.members);
|
||||||
|
|
||||||
|
// another damn for loop... apologies!!!
|
||||||
|
for (ind => sticker in grpStickers.members)
|
||||||
|
{
|
||||||
|
sticker.timing = FlxMath.remapToRange(ind, 0, grpStickers.members.length, 0, 0.9);
|
||||||
|
|
||||||
|
new FlxTimer().start(sticker.timing, _ -> {
|
||||||
|
sticker.visible = true;
|
||||||
|
|
||||||
|
var frameTimer:Int = FlxG.random.int(0, 2);
|
||||||
|
|
||||||
|
// always make the last one POP
|
||||||
|
if (ind == grpStickers.members.length - 1) frameTimer = 2;
|
||||||
|
|
||||||
|
new FlxTimer().start((1 / 24) * frameTimer, _ -> {
|
||||||
|
sticker.scale.x = sticker.scale.y = FlxG.random.float(0.97, 1.02);
|
||||||
|
|
||||||
|
if (ind == grpStickers.members.length - 1)
|
||||||
|
{
|
||||||
|
switchingState = true;
|
||||||
|
FlxTransitionableState.skipNextTransIn = true;
|
||||||
|
FlxTransitionableState.skipNextTransOut = true;
|
||||||
|
|
||||||
|
dipshit = new Sprite();
|
||||||
|
var scrn:BitmapData = new BitmapData(FlxG.width, FlxG.height, true, 0x00000000);
|
||||||
|
var mat:Matrix = new Matrix();
|
||||||
|
scrn.draw(FlxG.camera.canvas, mat);
|
||||||
|
|
||||||
|
var bitmap:Bitmap = new Bitmap(scrn);
|
||||||
|
|
||||||
|
dipshit.addChild(bitmap);
|
||||||
|
FlxG.addChildBelowMouse(dipshit);
|
||||||
|
|
||||||
|
FlxG.switchState(new FreeplayState(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
// sticky.angle *= FlxG.random.float(0, 0.05);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
grpStickers.sort((ord, a, b) -> {
|
grpStickers.sort((ord, a, b) -> {
|
||||||
return FlxSort.byValues(ord, a.timing, b.timing);
|
return FlxSort.byValues(ord, a.timing, b.timing);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// centers the very last sticker
|
||||||
|
var lastOne:StickerSprite = grpStickers.members[grpStickers.members.length - 1];
|
||||||
|
lastOne.updateHitbox();
|
||||||
|
lastOne.angle = 0;
|
||||||
|
lastOne.screenCenter();
|
||||||
|
}
|
||||||
|
|
||||||
|
override public function update(elapsed:Float):Void
|
||||||
|
{
|
||||||
|
super.update(elapsed);
|
||||||
|
|
||||||
|
if (FlxG.keys.justPressed.ANY)
|
||||||
|
{
|
||||||
|
regenStickers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var switchingState:Bool = false;
|
||||||
|
|
||||||
|
override public function close():Void
|
||||||
|
{
|
||||||
|
if (switchingState) return;
|
||||||
|
super.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
override public function destroy():Void
|
||||||
|
{
|
||||||
|
if (switchingState) return;
|
||||||
|
super.destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,10 @@ class DebugMenuSubState extends MusicBeatSubstate
|
||||||
*/
|
*/
|
||||||
var camFocusPoint:FlxObject;
|
var camFocusPoint:FlxObject;
|
||||||
|
|
||||||
override function create()
|
override function create():Void
|
||||||
{
|
{
|
||||||
super.create();
|
super.create();
|
||||||
|
bgColor = 0x00000000;
|
||||||
|
|
||||||
// Create an object for the camera to track.
|
// Create an object for the camera to track.
|
||||||
camFocusPoint = new FlxObject(0, 0);
|
camFocusPoint = new FlxObject(0, 0);
|
||||||
|
|
Loading…
Reference in a new issue