Files
realworld/inc/boot/boot.go
T
mr.zero c5c0c02c03
ci/woodpecker/push/ebitengine Pipeline was successful
dirs
2026-08-30 23:21:06 +02:00

64 lines
1.7 KiB
Go

package boot
import (
inkwell "git.teletypegames.org/engines/inkwell"
"git.teletypegames.org/games/realworld/inc"
"git.teletypegames.org/games/realworld/inc/background"
"git.teletypegames.org/games/realworld/inc/character"
"git.teletypegames.org/games/realworld/inc/dialog"
"git.teletypegames.org/games/realworld/inc/item"
"git.teletypegames.org/games/realworld/inc/scene"
"git.teletypegames.org/games/realworld/inc/script"
_ "git.teletypegames.org/games/realworld/inc/tape"
"git.teletypegames.org/games/realworld/inc/theme"
"git.teletypegames.org/games/realworld/inc/widget"
"git.teletypegames.org/games/realworld/inc/world"
)
type Opts struct {
Scene string
Finale bool
}
func New(o Opts) *inkwell.Game {
start := o.Scene
if start == "" {
start = inc.SceneAlley
}
scene.FillSelectorPins()
g := inkwell.NewGame("Real World", widget.ScreenW, widget.ScreenH)
g.MaxLogLines = 64
g.WindowScale = 2
g.SceneRect = inkwell.Rect(0, widget.TopBarH, widget.ScreenW, widget.HUDTop-widget.TopBarH)
g.Player = inc.Paul
g.Walkboxes = scene.Floor
g.ExitLook = func(e inkwell.Exit) inkwell.Action {
return inkwell.Say(inc.Paul, "That way: "+e.Label+".")
}
g.ExitTake = func(inkwell.Exit) inkwell.Action {
return inkwell.Say(inc.Paul, "It's a way out, not a thing.")
}
g.UseWithFail = script.UseWithFail
g.AssetManager = background.Manager
g.CharacterManager = character.Manager
g.DialogueManager = dialog.Manager
g.ItemManager = item.Manager
g.SceneManager = scene.Manager
g.ScriptManager = script.Manager
g.WidgetManager = widget.Manager
theme.Manager.Each(g.ThemeManager.Register)
world.Attach(g)
g.UseTheme(inc.RealWorld)
g.StartAt(start)
g.OnStart(inc.ScriptOpening)
if o.Finale {
g.OnFinale(inc.ScriptFinale)
}
return g
}