Add overlay components 176-195; pixel Harbor and Kit.Cue

Dialogs on DialogBase with focusable panels that harbor parked focus,
popovers on PopoverBase, bubbles, drawers, sheets, a lightbox, an RPG
dialogue box, notifications, a pause menu and a dithered title card.
Kit.Cue moves from feedback to pixel.
This commit is contained in:
ZacharyZhang-NY committed 2026-10-11 23:11:46 -04:00
1 parent 03680980da
commit 5c3c883b7d
37 files changed
+2835 -31

No files matched your search

+1 -1
View File
@@ -20,7 +20,7 @@ func Achievement(c *ui.Context, title string, o AchievementOptions) *ui.Element
w := pixel.Or("Achievement Width", o.Width, 200)
e := ui.Box(c)
// Ten steps a second; in by 5, gone by 40.
step := k.Since(c, cue(e, k, o.Cue), 10, 40)
step := k.Since(c, k.Cue(e, o.Cue), 10, 40)
if step >= 40 {
return e
}
-20
View File
@@ -3,9 +3,6 @@ package feedback
import (
"strconv"
"time"
"github.com/egoist/mygo/ui"
"git.zacharyzhang.com/ZacharyZhang-NY/8bitMyGoUI/pixel"
)
@@ -35,20 +32,3 @@ func level(v, warn, bad float64) pixel.Slot {
// fmtNum prints a number without trailing zeros.
func fmtNum(v float64) string { return strconv.FormatFloat(v, 'g', 4, 64) }
type cueKey struct{}
// cued is a cue's last value and when it changed.
type cued struct {
n int
at time.Time
}
// cue is when n last changed; zero until it does.
func cue(e *ui.Element, k pixel.Kit, n int) time.Time {
s := ui.Local(e, cueKey{}, func() cued { return cued{n: n} })
if s.n != n {
s.n, s.at = n, k.Now()
}
return s.at
}
+1 -1
View File
@@ -19,7 +19,7 @@ func Shake(c *ui.Context, o ShakeOptions, content func()) *ui.Element {
k := pixel.K(c)
e := ui.Box(c)
dx := 0
if step := k.Since(c, cue(e, k, o.Cue), 20, len(shakes)-1); !k.Reduce() {
if step := k.Since(c, k.Cue(e, o.Cue), 20, len(shakes)-1); !k.Reduce() {
dx = shakes[step]
}
return e.Padding(0, k.D(2-dx), 0, k.D(2+dx)).Children(content)