Prepare v1.14.0 for release

This commit is contained in:
Noah 2024-05-04 18:26:02 -07:00
parent 866e5e7fd8
commit 49cb972c5c
2 changed files with 47 additions and 0 deletions

View File

@ -23,6 +23,26 @@ Level screenshots and thumbnails:
block interaction with the game so that you don't accidentally modify
the level while the screenshot is generating.
Updates to the JavaScript API for doodad scripts:
* `setTimeout()` and `setInterval()` will now be more deterministic and
reliable to time your doodad scripts with, as they are now based on the
game's tick speed. At the target average of 60 FPS, 1000 millisecond
timers will fire in 60 game ticks every time.
* The `Self` API now exposes more functions on the underlying Actor object
that points to the current doodad. See the guidebook for full details.
* Self.Doodad() *Doodad
* Self.GetBoundingRect() Rect
* Self.HasGravity() bool
* Self.IsFrozen() bool
* Self.IsMobile() bool
* Self.LayerCount() int
* Self.ListItems() []string
* Self.SetGrounded(bool)
* Self.SetWet(bool)
* Self.Velocity() Point
* Self.GetVelocity() is now deprecated and will be an alias to Self.Velocity.
Some minor changes:
* Tweaked the player movement physics and adjusted doodads accordingly.
@ -46,6 +66,9 @@ Some minor changes:
of the fancy new one with the listbox.
* Fixed a touch screen detection bug that was causing the mouse cursor to hide
on Macbooks when using their touchpad.
* Fixed how touch screen mode is activated. The game's mouse cursor will
disappear on touch and reappear when your last finger leaves the screen, and
then a mouse movement is detected.
* Add a `--touch` command line flag to the game binary, which forces touch screen
mode to always be on (which hides the mouse cursor), in case of touch screen
detection errors or annoyances.

View File

@ -45,6 +45,7 @@ type MainScene struct {
winLevelPacks *ui.Window
winPlayLevel *ui.Window
winOpenDrawing *ui.Window
winAbout *ui.Window
// Update check variables.
updateButton *ui.Button
@ -250,6 +251,29 @@ func (s *MainScene) Setup(d *Doodle) error {
},
Style: &balance.ButtonPrimary,
},
{
Name: "About",
If: func() bool {
return !balance.DPP
},
Func: func() {
if s.winAbout == nil {
s.winAbout = windows.NewAboutWindow(windows.About{
Supervisor: s.Supervisor,
Engine: d.Engine,
})
s.winAbout.Compute(d.Engine)
s.winAbout.Supervise(s.Supervisor)
// Center the window.
s.winAbout.MoveTo(render.Point{
X: (d.width / 2) - (s.winAbout.Size().W / 2),
Y: 60,
})
}
s.winAbout.Show()
},
},
}
for _, button := range buttons {
if check := button.If; check != nil && !check() {