Files
2026-07-15 01:28:56 -04:00

41 lines
1021 B
Go

package types
import (
"time"
"symph/parameter"
)
// Note represents a single musical note
type Note struct {
Value Value
// TODO: more properties to be added
}
// IsEmpty reports whether the Note has no content
func (n Note) IsEmpty() bool { return n.Value == ValueNone }
// IsWall reports whether the Note is a Wall obstacle
func (n Note) IsWall() bool { return n.Value == ValueWall }
// Chord represents a 3x3 grid of notes
type Chord struct {
Notes [parameter.GamePlayIndexYMax][parameter.GamePlayIndexXMax]Note // 3x3 grid of notes
}
type Song struct {
Chords []Chord
}
// PlayerState holds the current playing position and temporal displacement state.
// Lane (X) position is persistent; row (Y) displacement expires back to BaseIndexY
type PlayerState struct {
ResetTime time.Time // When the current row displacement expires (Zero = no reset)
PlayIndexY int // Current Y coordinate
PlayIndexX int // Current X coordinate
BaseIndexY int // Resting row (returns here after jump/slide expiry)
}