doodle/pkg/shmem/globals.go

46 lines
1.2 KiB
Go

package shmem
import (
"fmt"
"git.kirsle.net/go/render"
)
// Shared globals for easy access throughout the app.
// Not an ideal place to keep things but *shrug*
var (
// Tick is incremented by the main game loop each frame.
Tick uint64
// Current position of the cursor relative to the window.
Cursor render.Point
// Current render engine (i.e. SDL2 or HTML5 Canvas)
// The level.Chunk.ToBitmap() uses this to cache a texture image.
CurrentRenderEngine render.Engine
// Offline mode, if True then the updates check in MainScene is skipped.
OfflineMode bool
// Globally available Flash() function so we can emit text to the Doodle UI.
Flash func(string, ...interface{})
FlashError func(string, ...interface{})
// Globally available Prompt() function.
Prompt func(string, func(string))
PromptPre func(string, string, func(string))
// Ajax file cache for WASM use.
AjaxCache map[string][]byte
)
func init() {
AjaxCache = map[string][]byte{}
// Default Flash function in case the app misconfigures it. Output to the
// console in an obvious way.
Flash = func(tmpl string, v ...interface{}) {
fmt.Printf("[shmem.Flash] "+tmpl+"\n", v...)
}
}