Files
realworld/internal/content/scene/scene.go
T
2026-08-29 19:07:32 +02:00

28 lines
641 B
Go

// Package scene registers the game's scenes.
package scene
import (
inkwell "git.teletypegames.org/engines/inkwell"
"realworld/internal/world"
)
// Register adds every scene to the game.
func Register(w *world.World) {
for _, s := range []inkwell.Scene{
alley(w),
} {
w.G.SceneManager.Register(s)
}
}
// setVarIfEmpty only writes when the variable is still unset, so re-entering a
// scene does not clobber what the game has set in the meantime.
func setVarIfEmpty(name string, v any) inkwell.Action {
return world.Fn(func(ctx *inkwell.Ctx) {
if ctx.Game.State.Var(name) == nil {
ctx.Game.State.SetVar(name, v)
}
})
}