Skip to content

Commit

Permalink
more freeplay DJ functions + dialog reorganization
Browse files Browse the repository at this point in the history
  • Loading branch information
KoloInDaCrib committed Nov 22, 2024
1 parent 472fd38 commit 5690316
Show file tree
Hide file tree
Showing 12 changed files with 79 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.freeplay;

import funkin.ui.debug.char.pages.CharCreatorFreeplayPage;
import funkin.data.freeplay.player.PlayerRegistry;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.freeplay;

import funkin.data.freeplay.style.FreeplayStyleRegistry;
import funkin.data.freeplay.player.PlayerRegistry;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.gameplay;

import funkin.ui.debug.char.pages.CharCreatorGameplayPage.CharDialogType;
import funkin.data.character.CharacterData.CharacterRenderType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.gameplay;

@:xml('<?xml version="1.0" encoding="utf-8"?>
<collapsible-dialog title="Character Metadata" width="400" height="400">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.gameplay;

import haxe.ui.core.Screen;
import haxe.ui.containers.Grid;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.gameplay;

import funkin.play.components.HealthIcon;
import funkin.util.FileUtil;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.results;

import haxe.ui.containers.VBox;
import haxe.ui.containers.HBox;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package funkin.ui.debug.char.components.dialogs;
package funkin.ui.debug.char.components.dialogs.select;

import haxe.ui.containers.HBox;
import haxe.ui.components.Button;
Expand Down
67 changes: 65 additions & 2 deletions source/funkin/ui/debug/char/pages/CharCreatorFreeplayPage.hx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package funkin.ui.debug.char.pages;

import haxe.ui.components.Label;
import haxe.ui.components.VerticalRule;
import haxe.ui.containers.Box;
import haxe.ui.containers.HBox;
import haxe.ui.containers.menus.Menu;
Expand All @@ -10,7 +11,8 @@ import funkin.ui.freeplay.LetterSort;
import funkin.ui.freeplay.CapsuleText;
import flixel.text.FlxText;
import funkin.ui.freeplay.FreeplayState.DifficultySprite;
import funkin.ui.debug.char.components.dialogs.*;
import funkin.ui.debug.char.components.dialogs.freeplay.*;
import funkin.ui.debug.char.components.dialogs.DefaultPageDialog;
import funkin.graphics.FunkinSprite;
import funkin.ui.freeplay.FreeplayStyle;
import funkin.data.animation.AnimationData;
Expand Down Expand Up @@ -93,6 +95,8 @@ class CharCreatorFreeplayPage extends CharCreatorDefaultPage
dj = new CharSelectAtlasSprite(640, 366, null, playuh?.getFreeplayDJData()?.getAtlasPath() != null ? playuh.getFreeplayDJData().getAtlasPath() : null);
add(dj);

generateUI();

if (playuh != null)
{
@:privateAccess
Expand All @@ -108,10 +112,16 @@ class CharCreatorFreeplayPage extends CharCreatorDefaultPage
{
super.update(elapsed);

// no need for handleKeybinds function since these are the only functions in update methinks
if (FlxG.keys.justPressed.SPACE) playDJAnimation();

if (FlxG.keys.justPressed.W) changeDJAnimation(-1);
if (FlxG.keys.justPressed.S) changeDJAnimation(1);

if (FlxG.keys.justPressed.UP) changeDJAnimationOffsets(0, 5);
if (FlxG.keys.justPressed.DOWN) changeDJAnimationOffsets(0, -5);
if (FlxG.keys.justPressed.LEFT) changeDJAnimationOffsets(5);
if (FlxG.keys.justPressed.RIGHT) changeDJAnimationOffsets(-5);
}

public function changeDJAnimation(change:Int = 0)
Expand All @@ -126,10 +136,25 @@ class CharCreatorFreeplayPage extends CharCreatorDefaultPage

function playDJAnimation()
{
dj.playAnimation(djAnims[currentDJAnimation].prefix);
labelAnimName.text = djAnims[currentDJAnimation].name;
labelAnimOffsetX.text = "" + (djAnims[currentDJAnimation].offsets[0] ?? 0.0);
labelAnimOffsetY.text = "" + (djAnims[currentDJAnimation].offsets[1] ?? 0.0);

dj.playAnimation(djAnims[currentDJAnimation].prefix, true);
dj.offset.set(djAnims[currentDJAnimation].offsets[0] ?? 0.0, djAnims[currentDJAnimation].offsets[1] ?? 0.0);
}

function changeDJAnimationOffsets(xOff:Float = 0, yOff:Float = 0)
{
if (currentDJAnimation >= djAnims.length) return; // this should in theory detect if we have dj animations loaded from an imported character
if (djAnims[currentDJAnimation].offsets.length < 2) djAnims[currentDJAnimation].offsets = [0.0, 0.0];

djAnims[currentDJAnimation].offsets[0] += xOff;
djAnims[currentDJAnimation].offsets[1] += yOff;

playDJAnimation();
}

override public function fillUpPageSettings(menu:Menu)
{
var settingsDialog = new MenuCheckBox();
Expand All @@ -149,6 +174,44 @@ class CharCreatorFreeplayPage extends CharCreatorDefaultPage
}
}

var labelAnimName:Label = new Label();
var labelAnimOffsetX:Label = new Label();
var labelAnimOffsetY:Label = new Label();

function generateUI()
{
labelAnimName.styleNames = labelAnimOffsetX.styleNames = labelAnimOffsetY.styleNames = "infoText";
labelAnimName.verticalAlign = labelAnimOffsetX.verticalAlign = labelAnimOffsetY.verticalAlign = "center";

labelAnimName.tooltip = "Left/Right Click to play the Next/Previous Animation";
labelAnimOffsetX.tooltip = "Left/Right Click to Increase/Decrease the Horizontal Offset.";
labelAnimOffsetY.tooltip = "Left/Right Click to Increase/Decrease the Vertical Offset.";

labelAnimName.text = "None";
labelAnimOffsetX.text = labelAnimOffsetY.text = "0";

labelAnimName.onClick = _ -> changeDJAnimation(1);
labelAnimName.onRightClick = _ -> changeDJAnimation(-1);

labelAnimOffsetX.onClick = _ -> changeDJAnimationOffsets(5);
labelAnimOffsetX.onRightClick = _ -> changeDJAnimationOffsets(-5);
labelAnimOffsetY.onClick = _ -> changeDJAnimationOffsets(0, 5);
labelAnimOffsetY.onRightClick = _ -> changeDJAnimationOffsets(0, -5);
}

override public function fillUpBottomBar(left:Box, middle:Box, right:Box)
{
var rule1 = new VerticalRule();
var rule2 = new VerticalRule();
rule1.percentHeight = rule2.percentHeight = 80;

middle.addComponent(labelAnimName);
middle.addComponent(rule1);
middle.addComponent(labelAnimOffsetX);
middle.addComponent(rule2);
middle.addComponent(labelAnimOffsetY);
}

var pinkBack:FunkinSprite;
var orangeBackShit:FunkinSprite;

Expand Down
3 changes: 2 additions & 1 deletion source/funkin/ui/debug/char/pages/CharCreatorGameplayPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ import funkin.data.character.CharacterRegistry;
import funkin.play.character.BaseCharacter.CharacterType;
import funkin.play.stage.StageProp;
import funkin.data.stage.StageRegistry;
import funkin.ui.debug.char.components.dialogs.*;
import funkin.ui.debug.char.components.dialogs.gameplay.*;
import funkin.ui.debug.char.components.dialogs.DefaultPageDialog;
import flixel.util.FlxColor;

using StringTools;
Expand Down
3 changes: 2 additions & 1 deletion source/funkin/ui/debug/char/pages/CharCreatorResultsPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import haxe.ui.containers.menus.MenuItem;
import haxe.ui.containers.menus.MenuCheckBox;
import funkin.graphics.adobeanimate.FlxAtlasSprite;
import funkin.graphics.FunkinSprite;
import funkin.ui.debug.char.components.dialogs.*;
import funkin.ui.debug.char.components.dialogs.results.*;
import funkin.ui.debug.char.components.dialogs.DefaultPageDialog;
import funkin.data.freeplay.player.PlayerRegistry;
import funkin.play.components.TallyCounter;
import funkin.play.components.ClearPercentCounter;
Expand Down
3 changes: 2 additions & 1 deletion source/funkin/ui/debug/char/pages/CharCreatorSelectPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import funkin.graphics.FunkinSprite;
import funkin.graphics.shaders.MosaicEffect;
import funkin.ui.debug.char.animate.CharSelectAtlasSprite;
import funkin.ui.debug.char.pages.subpages.CharSelectIndexSubPage;
import funkin.ui.debug.char.components.dialogs.*;
import funkin.ui.debug.char.components.dialogs.select.*;
import funkin.ui.debug.char.components.dialogs.DefaultPageDialog;
import funkin.util.FileUtil;
import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
import flixel.group.FlxSpriteGroup;
Expand Down

0 comments on commit 5690316

Please sign in to comment.