65 lines
1,015 B
Go
65 lines
1,015 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/gdamore/tcell/v2"
|
|
|
|
"git.bonsai.cool/kayprish/ck/drw"
|
|
"git.bonsai.cool/kayprish/ck/util"
|
|
)
|
|
|
|
func main() {
|
|
util.Today = time.Now()
|
|
util.SelTime = util.Today
|
|
var err error
|
|
drw.Wall, err = tcell.NewScreen()
|
|
if err != nil {
|
|
log.Fatalf("%+v", err)
|
|
}
|
|
if err := drw.Wall.Init(); err != nil {
|
|
log.Fatalf("%+v", err)
|
|
}
|
|
|
|
drw.Wall.SetStyle(drw.DefStyle)
|
|
drw.Wall.Clear()
|
|
drw.DrawWall()
|
|
|
|
quit := func() {
|
|
drw.Wall.Fini()
|
|
os.Exit(0)
|
|
}
|
|
for {
|
|
// Update screen
|
|
drw.Wall.Show()
|
|
|
|
// Poll event
|
|
ev := drw.Wall.PollEvent()
|
|
|
|
// Process event
|
|
switch ev := ev.(type) {
|
|
case *tcell.EventResize:
|
|
case *tcell.EventKey:
|
|
if ev.Key() == tcell.KeyEscape || ev.Key() == tcell.KeyCtrlC ||
|
|
ev.Rune() == 'Q' || ev.Rune() == 'q' {
|
|
quit()
|
|
}
|
|
switch ev.Rune() {
|
|
case 'h':
|
|
drw.MoveLeft()
|
|
case 'j':
|
|
drw.MoveDown()
|
|
case 'k':
|
|
drw.MoveUp()
|
|
case 'l':
|
|
drw.MoveRight()
|
|
}
|
|
}
|
|
|
|
drw.DrawWall()
|
|
drw.Wall.Sync()
|
|
}
|
|
}
|