v0.1.0 initial commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user