Oak v3.0.0
This release marks the final, stable release of oak v3.
The below changelog notes the delta between this release and the previous oak v3 beta release. For a complete changelog since 2.5.0, see this link.
Changelog
audio
- The
FontManager
type has been removed. It was not frequently used and can be trivially introduced as a standalone package. - The
Cache
type has been introduced to handle file loading and caching. Several loading functions have changed to work with this new type and theDefaultCache
global variable. GetSounds
has been removed.
oak
Assets
no longer contains anAssetPath
or aFontPath
.- The
Font
config type has been removed. Non-default fonts must be manually loaded outside of a base oak config, with a full asset path. This change emphasizes the built in nature of the default font and the reality of font configuration that the color, dpi, and hinting of a font is not often customizable from an end user's perspective. Screen.Scale
is now afloat64
instead of anint
.- Most
Window
methods are now exposed as package level functions on the default window. SetBinaryPayload(func(...), func(...))
is nowSetFS(fs.FS)
debugtools
- New package, contains common debug helper functions like rendering collision trees and printing mouse position
dlog
Logger.GetLogLevel
has been removed. Its hard to imagine a scenario where you would want to query the current log level other than to update it to be more or less verbose-- just set the desired verbosity.- Log strings used by oak are now exposed as constants in this package.
physics
- All
Vector
methods now modifyVector
s in place. (#115)
entities/x/mods
- Adds the
Lighter
utility to return a lighter version of a color.
entities/x/shake
shake.ShakeScreen
has been renamedshake.Screen
fileutil
- This package has been stripped down to just be an exposed
FS fs.FS
, a couple configuration options, and theOpen
,ReadFile
, andReadDir
functions.
oakerr
- Language constants have been expanded from two characters to three, matching ISO 639-2 (#53)
scene
Context
now contains the currentkey.State
.
render
ParseSubSprite
has been removed.LoadSprites
has been removed.SetFontDefaults
has been removed.LoadSpriteAndDraw
has been removed.Font.DrawString
has been privatized.Font
s now more accurately determine which elements of a font are undefined runes, e.g. a kanji character in a roman alphabet font.Font
andFontGenerator
s have had their interface significantly adjusted to simplify creation and reduce accidental persistence of one font's qualities or pointer to secondary fonts.- The
Cache
type has been introduced to handle file loading and caching. Several loading functions have changed to work with this new type and theDefaultCache
global variable. - Batch loading has been rewritten. Alias json files are no longer supported. Individual file names can now hint to the batch loading system that they are a sheet with a particular sheet size, and this will supercede a hint coming from their containing directory. Directories and files now must end in explicitly %dx%d e.g.
window64x64.png
or/tiles32x32/
to be caught and automatically cached as sheets.
shiny
- The default OSX driver has improved feature parity with windows and linux and is substantially more stable.