Noah Petherbridge
9a51ac39f9
* New doodad: Invisible Warp Door * All warp doors require the player to be grounded (if affected by gravity) to open them. No jumping or falling thru and opening a warp door mid-air! * Title Screen now randomly selects from a couple of levels. * Title Screen: if it fails to load a level it sets up a basic blank level with a wallpaper instead. * New developer shell command: titlescreen <level> Opens the MainScene with a custom user level as the background. * Add Auto-save to the Editor to save your drawing every 5 minutes * Add a MenuBar to the Play Scene for easier navigation to other features of the game. * Doodad JS API: time.Since() now available.
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package doodle
|
|
|
|
import (
|
|
"git.kirsle.net/apps/doodle/pkg/balance"
|
|
"git.kirsle.net/apps/doodle/pkg/branding"
|
|
"git.kirsle.net/apps/doodle/pkg/native"
|
|
"git.kirsle.net/apps/doodle/pkg/windows"
|
|
"git.kirsle.net/go/render"
|
|
"git.kirsle.net/go/ui"
|
|
)
|
|
|
|
// Common menubars between Play and Edit.
|
|
|
|
// MakeHelpMenu creates the "Help" menu with its common items
|
|
// across any scene.
|
|
func (d *Doodle) MakeHelpMenu(menu *ui.MenuBar, supervisor *ui.Supervisor) *ui.MenuButton {
|
|
helpMenu := menu.AddMenu("Help")
|
|
helpMenu.AddItemAccel("User Manual", "F1", func() {
|
|
native.OpenLocalURL(balance.GuidebookPath)
|
|
})
|
|
helpMenu.AddItem("About", func() {
|
|
aboutWindow := windows.NewAboutWindow(windows.About{
|
|
Supervisor: supervisor,
|
|
Engine: d.Engine,
|
|
})
|
|
aboutWindow.Compute(d.Engine)
|
|
aboutWindow.Supervise(supervisor)
|
|
|
|
// Center the window.
|
|
aboutWindow.MoveTo(render.Point{
|
|
X: (d.width / 2) - (aboutWindow.Size().W / 2),
|
|
Y: 60,
|
|
})
|
|
aboutWindow.Show()
|
|
})
|
|
helpMenu.AddSeparator()
|
|
helpMenu.AddItem("Go to Website", func() {
|
|
native.OpenURL(branding.Website)
|
|
})
|
|
helpMenu.AddItem("Guidebook Online", func() {
|
|
native.OpenURL(branding.GuidebookURL)
|
|
})
|
|
return helpMenu
|
|
}
|