62 lines
999 B
Go
62 lines
999 B
Go
package inc
|
|
|
|
import (
|
|
inkwell "git.teletypegames.org/engines/inkwell"
|
|
)
|
|
|
|
type Scene = inkwell.Scene
|
|
|
|
var SceneManager = NewManager(func(entity Scene) string { return entity.Name })
|
|
|
|
func registerScene() {
|
|
fillSelectorPins()
|
|
registerAll(SceneManager, func(entity Scene) {
|
|
World.G.SceneManager.Register(sceneDefaults(entity))
|
|
})
|
|
}
|
|
|
|
var sceneFloor = []inkwell.Polygon{
|
|
inkwell.Poly(
|
|
inkwell.Point{
|
|
X: 16,
|
|
Y: 196,
|
|
}, inkwell.Point{
|
|
X: 624,
|
|
Y: 196,
|
|
},
|
|
inkwell.Point{
|
|
X: 624,
|
|
Y: 258,
|
|
}, inkwell.Point{
|
|
X: 16,
|
|
Y: 258,
|
|
},
|
|
),
|
|
}
|
|
|
|
func sceneDefaults(s Scene) Scene {
|
|
if s.Actors == nil {
|
|
s.Actors = []inkwell.SceneActor{
|
|
{
|
|
CharacterName: Paul,
|
|
At: inkwell.Point{
|
|
X: 320,
|
|
Y: 232,
|
|
},
|
|
},
|
|
}
|
|
}
|
|
if s.Walkboxes == nil {
|
|
s.Walkboxes = sceneFloor
|
|
}
|
|
return s
|
|
}
|
|
|
|
func setVarIfEmpty(name string, v any) inkwell.Action {
|
|
return Fn(func(ctx *inkwell.Ctx) {
|
|
if ctx.Game.State.Var(name) == nil {
|
|
ctx.Game.State.SetVar(name, v)
|
|
}
|
|
})
|
|
}
|