don't look inside .offset files

This commit is contained in:
Detoria 2021-04-13 19:43:18 -03:00 committed by GitHub
parent 7d11dc9081
commit 551f45ef4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 89 additions and 6 deletions

View File

@ -21,6 +21,9 @@ class PauseSubState extends MusicBeatSubstate
var curSelected:Int = 0; var curSelected:Int = 0;
var pauseMusic:FlxSound; var pauseMusic:FlxSound;
var perSongOffset:FlxText;
var offsetChanged:Bool = false;
public function new(x:Float, y:Float) public function new(x:Float, y:Float)
{ {
@ -63,6 +66,10 @@ class PauseSubState extends MusicBeatSubstate
grpMenuShit = new FlxTypedGroup<Alphabet>(); grpMenuShit = new FlxTypedGroup<Alphabet>();
add(grpMenuShit); add(grpMenuShit);
perSongOffset = new FlxText(5, FlxG.height - 18, 0, "Additive Offset (Left, Right): " + PlayState.songOffset + " - Description - " + 'Adds value to global offset, per song.', 12);
perSongOffset.scrollFactor.set();
perSongOffset.setFormat("VCR OSD Mono", 16, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
add(perSongOffset);
for (i in 0...menuItems.length) for (i in 0...menuItems.length)
{ {
@ -86,15 +93,70 @@ class PauseSubState extends MusicBeatSubstate
var upP = controls.UP_P; var upP = controls.UP_P;
var downP = controls.DOWN_P; var downP = controls.DOWN_P;
var leftP = controls.LEFT_P;
var rightP = controls.RIGHT_P;
var accepted = controls.ACCEPT; var accepted = controls.ACCEPT;
var oldOffset:Float = 0;
var songPath = 'assets/data/' + PlayState.SONG.song.toLowerCase() + '/';
if (upP) if (upP)
{ {
changeSelection(-1); changeSelection(-1);
}
if (downP) }else if (downP)
{ {
changeSelection(1); changeSelection(1);
}else if (leftP)
{
oldOffset = PlayState.songOffset;
PlayState.songOffset -= 1;
sys.FileSystem.rename(songPath + oldOffset + '.offset', songPath + PlayState.songOffset + '.offset');
perSongOffset.text = "Additive Offset (Left, Right): " + PlayState.songOffset + " - Description - " + 'Adds value to global offset, per song.';
// Prevent loop from happening every single time the offset changes
if(!offsetChanged)
{
grpMenuShit.clear();
menuItems = ['Restart Song', 'Exit to menu'];
for (i in 0...menuItems.length)
{
var songText:Alphabet = new Alphabet(0, (70 * i) + 30, menuItems[i], true, false);
songText.isMenuItem = true;
songText.targetY = i;
grpMenuShit.add(songText);
}
changeSelection();
cameras = [FlxG.cameras.list[FlxG.cameras.list.length - 1]];
offsetChanged = true;
}
}else if (rightP)
{
oldOffset = PlayState.songOffset;
PlayState.songOffset += 1;
sys.FileSystem.rename(songPath + oldOffset + '.offset', songPath + PlayState.songOffset + '.offset');
perSongOffset.text = "Additive Offset (Left, Right): " + PlayState.songOffset + " - Description - " + 'Adds value to global offset, per song.';
if(!offsetChanged)
{
grpMenuShit.clear();
menuItems = ['Restart Song', 'Exit to menu'];
for (i in 0...menuItems.length)
{
var songText:Alphabet = new Alphabet(0, (70 * i) + 30, menuItems[i], true, false);
songText.isMenuItem = true;
songText.targetY = i;
grpMenuShit.add(songText);
}
changeSelection();
cameras = [FlxG.cameras.list[FlxG.cameras.list.length - 1]];
offsetChanged = true;
} }
if (accepted) if (accepted)

View File

@ -39,6 +39,7 @@ import lime.utils.Assets;
import openfl.display.BlendMode; import openfl.display.BlendMode;
import openfl.display.StageQuality; import openfl.display.StageQuality;
import openfl.filters.ShaderFilter; import openfl.filters.ShaderFilter;
import Sys;
#if windows #if windows
import Discord.DiscordClient; import Discord.DiscordClient;
@ -180,6 +181,8 @@ class PlayState extends MusicBeatState
// Will decide if she's even allowed to headbang at all depending on the song // Will decide if she's even allowed to headbang at all depending on the song
private var allowedToHeadbang:Bool = false; private var allowedToHeadbang:Bool = false;
// Per song additive offset
public static var songOffset:Float = 0;
override public function create() override public function create()
{ {
@ -1226,6 +1229,24 @@ class PlayState extends MusicBeatState
var playerCounter:Int = 0; var playerCounter:Int = 0;
// Per song offset check
var songPath = 'assets/data/' + PlayState.SONG.song.toLowerCase() + '/';
for(file in sys.FileSystem.readDirectory(songPath))
{
var path = haxe.io.Path.join([songPath, file]);
if(!sys.FileSystem.isDirectory(path))
{
if(path.endsWith('.offset'))
{
trace('Found offset file: ' + path);
songOffset = Std.parseFloat(file.substring(0, file.indexOf('.off')));
break;
}else {
trace('Offset file not found. Creating one @: ' + songPath);
sys.io.File.saveContent(songPath + songOffset + '.offset', '');
}
}
}
var daBeats:Int = 0; // Not exactly representative of 'daBeats' lol, just how much it has looped var daBeats:Int = 0; // Not exactly representative of 'daBeats' lol, just how much it has looped
for (section in noteData) for (section in noteData)
{ {
@ -1233,7 +1254,7 @@ class PlayState extends MusicBeatState
for (songNotes in section.sectionNotes) for (songNotes in section.sectionNotes)
{ {
var daStrumTime:Float = songNotes[0] + FlxG.save.data.offset; var daStrumTime:Float = songNotes[0] + FlxG.save.data.offset + songOffset;
if (daStrumTime < 0) if (daStrumTime < 0)
daStrumTime = 0; daStrumTime = 0;
var daNoteData:Int = Std.int(songNotes[1] % 4); var daNoteData:Int = Std.int(songNotes[1] % 4);