remove demo game
This commit is contained in:
47
ui.hotspot_debug.go
Normal file
47
ui.hotspot_debug.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package pncdsl
|
||||
|
||||
import (
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
||||
"github.com/hajimehoshi/ebiten/v2/vector"
|
||||
)
|
||||
|
||||
// HotspotDebug overlays a colored outline on every hotspot of the current
|
||||
// scene. F1 toggles it at runtime; the default is off.
|
||||
type HotspotDebug struct {
|
||||
Name string
|
||||
Enabled bool
|
||||
// ToggleKey, if non-zero, overrides the default F1 toggle.
|
||||
ToggleKey ebiten.Key
|
||||
}
|
||||
|
||||
func (h *HotspotDebug) GetName() string { return h.Name }
|
||||
|
||||
func (h *HotspotDebug) Tick(ctx *UICtx) {
|
||||
key := h.ToggleKey
|
||||
if key == 0 {
|
||||
key = ebiten.KeyF1
|
||||
}
|
||||
if inpututil.IsKeyJustPressed(key) {
|
||||
h.Enabled = !h.Enabled
|
||||
}
|
||||
}
|
||||
|
||||
func (h *HotspotDebug) Draw(dst *ebiten.Image, ctx *UICtx) {
|
||||
if !h.Enabled {
|
||||
return
|
||||
}
|
||||
g := ctx.Game
|
||||
if g.currentScene == "" {
|
||||
return
|
||||
}
|
||||
col := g.Theme().HotspotOutline
|
||||
s := g.SceneManager.MustGet(g.currentScene)
|
||||
for _, hs := range s.Hotspots {
|
||||
b := hs.Area.Bounds()
|
||||
vector.StrokeRect(dst, float32(b.X), float32(b.Y), float32(b.W), float32(b.H), 1, col, false)
|
||||
if hs.Label != "" {
|
||||
g.DrawText(dst, hs.Label, int(b.X)+1, int(b.Y)+1, col)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user