Skip to content

Commit

Permalink
page title
Browse files Browse the repository at this point in the history
  • Loading branch information
KoloInDaCrib committed Feb 1, 2025
1 parent b48c847 commit b6a9e6d
Showing 1 changed file with 35 additions and 8 deletions.
43 changes: 35 additions & 8 deletions source/funkin/ui/options/PreferencesMenu.hx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.text.FlxText;
import flixel.util.FlxColor;
import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
import flixel.group.FlxSpriteGroup;
import funkin.ui.AtlasText.AtlasFont;
import funkin.ui.options.OptionsState.Page;
import funkin.graphics.FunkinCamera;
Expand Down Expand Up @@ -102,8 +102,9 @@ class PreferencesMenu extends Page

public var preferencePages:Array<PreferencePageData> = [
{
name: "BASE GAME",
items: new TextMenuList(),
prefItems: new FlxTypedSpriteGroup<FlxSprite>(),
prefItems: new FlxSpriteGroup(),
itemDatas: DEFAULT_PREFERENCES
}
];
Expand All @@ -112,6 +113,8 @@ class PreferencesMenu extends Page
var preferenceDesc:Array<String> = [];
var itemDesc:FlxText;
var itemDescBox:FunkinSprite;
var pageDesc:FlxText;
var pageDescBox:FunkinSprite;

var menuCamera:FlxCamera;
var hudCamera:FlxCamera;
Expand Down Expand Up @@ -144,6 +147,12 @@ class PreferencesMenu extends Page
add(itemDesc = new FlxText(0, 0, 1180, null, 32));
itemDesc.cameras = [hudCamera];

add(pageDescBox = new FunkinSprite());
pageDescBox.cameras = [hudCamera];

add(pageDesc = new FlxText(0, 15, 1180, null, 32));
pageDesc.cameras = [hudCamera];

createPrefDescription();

camFollow = new FlxObject(FlxG.width / 2, 0, 140, 70);
Expand Down Expand Up @@ -174,6 +183,21 @@ class PreferencesMenu extends Page
itemDescBox.setPosition(itemDesc.x - 10, itemDesc.y - 10);
itemDescBox.setGraphicSize(Std.int(itemDesc.width + 20), Std.int(itemDesc.height + 25));
itemDescBox.updateHitbox();

// Create the stuff for Pages.
pageDescBox.makeSolidColor(1, 1, FlxColor.BLACK);
pageDescBox.alpha = 0.6;
pageDesc.setFormat(Paths.font('vcr.ttf'), 32, FlxColor.WHITE, FlxTextAlign.CENTER, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
pageDesc.borderSize = 3;

// Update the page text.
pageDesc.text = preferencePages[currentPage].name;
pageDesc.screenCenter(X);

// Create the box around the page text.
pageDescBox.setPosition(pageDesc.x - 10, pageDesc.y - 10);
pageDescBox.setGraphicSize(Std.int(pageDesc.width + 20), Std.int(pageDesc.height + 25));
pageDescBox.updateHitbox();
}

/**
Expand Down Expand Up @@ -264,6 +288,8 @@ class PreferencesMenu extends Page
add(preferencePages[currentPage].prefItems);
preferencePages[currentPage].items.selectItem(preferencePages[currentPage].items.selectedIndex);

pageDesc.text = preferencePages[currentPage].name;

FunkinSound.playOnce(Paths.sound('scrollMenu'), 0.4);
}

Expand All @@ -277,9 +303,9 @@ class PreferencesMenu extends Page
*/
function createPrefItemCheckbox(index:Int, prefName:String, prefDesc:String, onChange:Bool->Void, defaultValue:Bool):Void
{
var checkbox:CheckboxPreferenceItem = new CheckboxPreferenceItem(0, 120 * (preferencePages[index].items.length - 1 + 1), defaultValue);
var checkbox:CheckboxPreferenceItem = new CheckboxPreferenceItem(0, 120 * (preferencePages[index].items.length - 1 + 1) + 25, defaultValue);

preferencePages[index].items.createItem(0, (120 * preferencePages[index].items.length) + 30, prefName, AtlasFont.BOLD, function() {
preferencePages[index].items.createItem(0, (120 * preferencePages[index].items.length) + 55, prefName, AtlasFont.BOLD, function() {
var value = !checkbox.currentValue;
onChange(value);
checkbox.currentValue = value;
Expand All @@ -301,7 +327,7 @@ class PreferencesMenu extends Page
function createPrefItemNumber(index:Int, prefName:String, prefDesc:String, onChange:Float->Void, ?valueFormatter:Float->String, defaultValue:Int, min:Int,
max:Int, step:Float = 0.1, precision:Int):Void
{
var item = new NumberPreferenceItem(0, (120 * preferencePages[index].items.length) + 30, prefName, defaultValue, min, max, step, precision, onChange,
var item = new NumberPreferenceItem(0, (120 * preferencePages[index].items.length) + 55, prefName, defaultValue, min, max, step, precision, onChange,
valueFormatter);
preferencePages[index].items.addItem(prefName, item);
preferencePages[index].prefItems.add(item.lefthandText);
Expand All @@ -322,7 +348,7 @@ class PreferencesMenu extends Page
var formatter = function(value:Float) {
return '${value}%';
};
var item = new NumberPreferenceItem(0, (120 * preferencePages[index].items.length) + 30, prefName, defaultValue, min, max, 10, 0, newCallback, formatter);
var item = new NumberPreferenceItem(0, (120 * preferencePages[index].items.length) + 55, prefName, defaultValue, min, max, 10, 0, newCallback, formatter);
preferencePages[index].items.addItem(prefName, item);
preferencePages[index].prefItems.add(item.lefthandText);
}
Expand All @@ -335,16 +361,17 @@ class PreferencesMenu extends Page
*/
function createPrefItemEnum(index:Int, prefName:String, prefDesc:String, values:Map<String, String>, onChange:String->Void, defaultValue:String):Void
{
var item = new EnumPreferenceItem(0, (120 * preferencePages[index].items.length) + 30, prefName, values, defaultValue, onChange);
var item = new EnumPreferenceItem(0, (120 * preferencePages[index].items.length) + 55, prefName, values, defaultValue, onChange);
preferencePages[index].items.addItem(prefName, item);
preferencePages[index].prefItems.add(item.lefthandText);
}
}

typedef PreferencePageData =
{
var name:String;
var items:TextMenuList;
var prefItems:FlxTypedSpriteGroup<FlxSprite>;
var prefItems:FlxSpriteGroup;
var itemDatas:Array<PreferenceItemData>;
}

Expand Down

0 comments on commit b6a9e6d

Please sign in to comment.