ChartTable
namespace Griff.Modules.Rhythm;
public static class ChartTableChanges to a chart table (a row a note: Beat, Lane, Hold and Difficulty), as the editor’s Chart panel makes them: a recorded take put in (added over what’s there, or in place of it), and a note added, taken out, moved or made a hold. Each gives a new table; the rows it adds are named by their difficulty (“Hard 12”) and go in after the notes before them. Editing a note that’s in several difficulties changes it in the one being edited only.
Methods
Section titled “Methods”public static ValueTuple<Table, string> Add(Table table, ChartNote note, string? difficulty)With note added at difficulty (named for it, e.g. “Normal 41”, or “Note 41” with none), after the notes of the difficulty before it; and the new row’s name.
Change
Section titled “Change”public static ValueTuple<Table, string> Change(Table table, string row, ChartNote note, string? difficulty)With the note in row made note at difficulty (moved, or its hold changed); one in other difficulties as well stays as it was in those, and the changed note is a row of its own. Returns the row the note is in now.
Create
Section titled “Create”public static Table Create(string name)A new, empty chart table called name: Beat, Lane, Hold and Difficulty (Easy, Normal or Hard).
IsChart
Section titled “IsChart”public static bool IsChart(Table? table)True when table is a chart: it has a Beat and a Lane column.
Record
Section titled “Record”public static ValueTuple<Table, int, int> Record(Table table, IReadOnlyList<ChartNote> notes, string? difficulty, bool replace, double from, double to)Puts a recorded take into the chart at difficulty: notes added, and with replace, the difficulty’s notes from beat from up to to taken out first (overdubbing keeps them, leaving out a recorded note that’s already there). Returns the table and how many notes went in and came out.
Remove
Section titled “Remove”public static Table Remove(Table table, string row, string? difficulty)Without the note in row at difficulty: a note in other difficulties as well stays in those (one in every difficulty is then in the others the chart names).
public static List<ChartRow> Rows(Table table, string? difficulty)The notes of table, in its order: each with whether it’s in difficulty (it names it, or names none). With no difficulty, every note is.
public static string Text(double beat)A beat as a chart writes it: up to four places, “12”, “12.5”, “12.3333”.
WhyNotEditable
Section titled “WhyNotEditable”public static string? WhyNotEditable(Table table)Why notes can’t be written into table (its Beat or Lane is worked out by a formula), or null.