Scenario viewpoint, Z index management, and arrow controls
This commit is contained in:
@@ -97,6 +97,24 @@ func (f *Flow) Update(screenX, screenY int) error {
|
||||
return f.exit
|
||||
}
|
||||
|
||||
// Keybindings for map control
|
||||
// FIXME: this needs a big rethink
|
||||
if f.current != nil && f.scenario != nil && !f.current.IsInDialogue() {
|
||||
step := 32
|
||||
if ebiten.IsKeyPressed(ebiten.KeyLeft) {
|
||||
f.scenario.Viewpoint.X -= step
|
||||
}
|
||||
if ebiten.IsKeyPressed(ebiten.KeyRight) {
|
||||
f.scenario.Viewpoint.X += step
|
||||
}
|
||||
if ebiten.IsKeyPressed(ebiten.KeyUp) {
|
||||
f.scenario.Viewpoint.Y -= step
|
||||
}
|
||||
if ebiten.IsKeyPressed(ebiten.KeyDown) {
|
||||
f.scenario.Viewpoint.Y += step
|
||||
}
|
||||
}
|
||||
|
||||
if f.scenario != nil {
|
||||
if err := f.scenario.Update(screenX, screenY); err != nil {
|
||||
return err
|
||||
@@ -265,6 +283,14 @@ func (f *Flow) hideDialogue(driver driverName) func() {
|
||||
return f.drivers[driver].HideDialogue
|
||||
}
|
||||
|
||||
func (f *Flow) withScenario(then func()) func() {
|
||||
return func() {
|
||||
if f.scenario != nil {
|
||||
then()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (f *Flow) reset() {
|
||||
if f.exit != nil {
|
||||
return
|
||||
|
Reference in New Issue
Block a user