v0.1.0 initial commit

This commit is contained in:
2026-07-15 01:28:56 -04:00
commit 874abee663
35 changed files with 3486 additions and 0 deletions
+116
View File
@@ -0,0 +1,116 @@
package parameter
// Row-reset funnels, drawn in the inter-tile gap row of the player lane.
// Drop = jump expiry (falling to the base row), Rise = slide expiry.
// %s is the countdown; formatted width must not exceed RenderNoteWidth
const (
DropFunnelFormat = `\\ %s //`
RiseFunnelFormat = `// %s \\`
)
// Inbound — chords until the lane shuts.
// Clear — chords until the lane reopens.
// Open — the wall run reaches the window edge; the value is a lower bound.
// Trap — the lane reopens for <= TrapGapMax chords before shutting again;
// flagged on both the inbound and the clear timer
const (
TimerInboundPrefix = '▼'
TimerClearPrefix = '▲'
TimerOpenSuffix = '+'
TimerTrapSuffix = '!'
)
// StripEmptyChar is lookahead strip rail cell — a chord with no content at this position
const StripEmptyChar = '·'
// ItemFadeChars is the glyph tail of a consumed item's burn-out. Stage 0
// keeps the item glyph; later stages collapse it into the rail cell
var ItemFadeChars = [...]rune{'+', StripEmptyChar}
// UnknownChar is placeholder for a Value with no authored visual.
// Keeps NoteVisual total so an unrendered kind is visible rather than eating an item slot
const UnknownChar = '?'
// MutedText marks the host audio gate in the header. ASCII, so it
// renders in both atlases
const MutedText = "MUTE"
// QuadrantChars provides 2x2 sub-cell resolution for TrueColor mode
// Bitmap encoding: bit0=UL, bit1=UR, bit2=LL, bit3=LR
// Layout: [UL][UR]
//
// [LL][LR]
var QuadrantChars = [16]rune{
' ', // 0000 - empty
'▘', // 0001 - upper-left
'▝', // 0010 - upper-right
'▀', // 0011 - upper half
'▖', // 0100 - lower-left
'▌', // 0101 - left half
'▞', // 0110 - anti-diagonal
'▛', // 0111 - UL + UR + LL
'▗', // 1000 - lower-right
'▚', // 1001 - diagonal
'▐', // 1010 - right half
'▜', // 1011 - UL + UR + LR
'▄', // 1100 - lower half
'▙', // 1101 - UL + LL + LR
'▟', // 1110 - UR + LL + LR
'█', // 1111 - full block
}
// Half256Chars provides vertical half-cell resolution for 256-color mode.
// Unicode block characters, CP437-equivalent visuals, naked-TTY compatible
// Bitmap encoding: bit0=top, bit1=bottom
var Half256Chars = [4]rune{
' ', // 00 - empty
'\u2580', // 01 - top half only (▀)
'\u2584', // 10 - bottom half only (▄)
'\u2588', // 11 - both halves (█)
}
// Horizontal256Chars provides horizontal half-cell characters.
// Reserved for future horizontal sub-pixel support
var Horizontal256Chars = [2]rune{
'\u258C', // ▌ - left half
'\u258E', // ▐ - right half
}
// Density256Chars provides intensity variants for trail and glow effects,
// ordered lowest to highest density. Also indexes wall proximity bands
var Density256Chars = [4]rune{
'\u2591', // ░ - light shade (25%)
'\u2592', // ▒ - medium shade (50%)
'\u2593', // ▓ - dark shade (75%)
'\u2588', // █ - full block (100%)
}
// Single-line box drawing characters
const (
BorderSingleHorizontal = '─' // U+2500
BorderSingleVertical = '│' // U+2502
BorderSingleTopLeft = '┌' // U+250C
BorderSingleTopRight = '┐' // U+2510
BorderSingleBottomLeft = '└' // U+2514
BorderSingleBottomRight = '┘' // U+2518
BorderSingleVerticalRight = '├' // U+251C
BorderSingleVerticalLeft = '┤' // U+2524
BorderSingleHorizontalDown = '┬' // U+252C
BorderSingleHorizontalUp = '┴' // U+2534
BorderSingleCross = '┼' // U+253C
)
// Double-line box drawing characters
const (
BorderDoubleHorizontal = '═' // U+2550
BorderDoubleVertical = '║' // U+2551
BorderDoubleTopLeft = '╔' // U+2554
BorderDoubleTopRight = '╗' // U+2557
BorderDoubleBottomLeft = '╚' // U+255A
BorderDoubleBottomRight = '╝' // U+255D
BorderDoubleVerticalRight = '╠' // U+2560
BorderDoubleVerticalLeft = '╣' // U+2563
BorderDoubleHorizontalDown = '╦' // U+2566
BorderDoubleHorizontalUp = '╩' // U+2569
BorderDoubleCross = '╬' // U+256C
)