- Added the
radsToDegrees
function.
- Added information about Crossbow.
- Updated some docs.
- Simplified sounds and menus.
- Use asset reference gains.
- Update dependencies.
- Added more encryption functions.
- Use decryption methods for loading assets.
- Added encryption utility functions.
- Added the
random
parameter to the constructor of the Game
class.
- Bump the max SDK constraint to 4.0.0.
- Added the
RumbleEffect
class.
- Added rumble effects to menus.
- Renamed
Game.setDefaultPannerStrategy
to Game.defaultPannerStrategy
.
- Level fades in and out can now be controlled by arguments to the level methods on the
Game
class.
- Because of the change to the way levels are pushed and popped, the signature of some of the level-related functions on the
Game
class have also undergone necessary changes.
- Stop shipping DLLs with the package.
- Level ambiance and music can now be faded with a
fadeLength
argument to Level.onPush
.
- Added the
UniformMenu
class.
- Fixed
Game.outputSound
to not throw errors.
- The
Game.outputSound
method now allows setting looping
and pitchBend
.
- Added sounds to ziggurat.
- Added the
Game.playSimpleSound
method.
- Sounds no longer work over a stream.
- The
Game
constructor now requires a SoundBackend
.
- Added the
Preferences.clear
method to clear preferences keys.
- When playing waves, set the default partials to
1
, to prevent synthizer crash.
- When playing waves, if playing a waver other than a sine wave, throw
StateError
if partials is less than 1.
- Removed the
sdl
argument from Level.tick
.
- Fixed a bug where preferences weren't loaded properly.
- Fixed some type problems with preferences.
- Convert the
Game
constructor to exclusively use named arguments.
- The
Game
class now requires a valid Sdl
instance.
- The
Game.run
method no longer accepts a sdl
argument.
- The
Game.tick
method no longer accepts a sdl
argument.
- Add
orgName
and appName
properties to the Game
class.
- Add a
preferencesDirectory
getter to the Game
class.
- Add the
Preferences
class.
- Give the
Game
class a preferences
getter.
- Added the
Game.rumble
method.
- Allow all levels to take advantage of commands.
- When overriding
Level.handleSdlEvent
, you must now call super.handleSdlEvent
to ensure commands are handled properly.
- You can now pass many more super parameters to
Level
subclasses.
- Added the
Tile
, TileMap
, and TileMapLevel
classes.
- Allow instances of
AssetReferenceMenu
to be cancelled.
- Updated dependencies.
- Code clean-up.
- Added the
angleBetween
extension method on Point<double>
.
Editor.toggleShift
is now a shiftPressed
property.
- Downgraded lints.
- Upgraded dart_sdl.
- Automatically open joysticks.
- Fixed some bugs around command scheduling.
- Fixed a menu crash when there are no menu items.
- Added a
soundChannel
property to the Menu
class.
- Handle level music properly.
- The
ParameterMenu
class no longer inadvertently changes the type of its .menuItems
property.
- Added a
gain
property to the music
class.
- Added the
Music
class.
- Added a
music
field to the Level
class.
- Added
music
arguments to the constructors of all Level
subclasses.
- Added
music
, ambiances
, and randomSounds
arguments to the constructors of the FilePickerMenu
class.
- Updated the minimum Dart version.
- Tasks can now be bound to levels.
- Use faster SDL-based timestamps.
- Start using relative timings for tasks.
- Rip out unmaintained and under-tested mapping code.
- Moved a load of functions into their proper places.
- Stop handling commands after the first one.
- The
level.startCommand
and level.stopCommand
methods now return boolean values.
- Make
SoundChannel.reverb
a property.
- There is now the ability to set custom IDs on
PlaySound
instances.
- Fixed a bug where it became impossible to navigate with the arrow keys in menus with number lock on.
- Changed a bunch of constructors to use keyword-only arguments.
- Fixed links in changelog.
- Added the
SoundChannel.playWave
method.
- Added convenience methods on
SoundChannel
for playing waves.
- Added a
channel
argument to the PlayWave
constructor.
- Added the ability o pause and unpause waves.
- Added more tests.
- Added the ability to play waves.
- Fixed a link in the readme.
- Updated the package description to bring it more in line with what pub.dev expects.
- Made the
ReverbPreset
class serializable.
*( Include the asset type in PlaySound
descriptions`)
- Added useful descriptions to sound events.
- Added the
AssetReferenceMenu
class.
- Renamed
LoopSound
to SetSoundLooping
.
- Made it possible to serialize many classes.
- Added the
ParameterMenu
class.
- Changed the signatures for A lot of functions to use named arguments.
- Moved some files into the
json
directory.
- Changed the relevant exports so that normal
package:ziggurat/xxx.dart
imports will work without changes.
- Reformatted some code.
- Fixed an oversight in
game.handleSdlEvent
where controllers would get removed when remap
event was received.
- Added the
LevelStub
class.
- Added the
Level.fromStub
constructor.
- Removed random sound and ambiance playback storage to the
Level
class.
- Added the
SimpleMenuItem
class.
- Fixed a bug where empty text input events were used for menu searches.
- Added an
onStart
parameter to Game.run
.
- Added the
FilePickerMenu
class.
- Instances of
CommandKeyboardKey
are now printable.
- Random sounds now get rescheduled after playing for the first time.
- Changed the way random sound playback is handled.
- Added the
emptyMessage
constant.
- Any widget can now specify an
onActivate
method.
- Added the
DynamicWidget
class.
- Fixed a bug with the
MultiGridLevel
class.
- Added a
after
argument to Game.pushLevel
, so that levels can be pushed after a specified delay.
- Added the
MultiGridLevelRow.fromDict
factory constructor.
- Added the ability to search menus.
- Expose the current position in a menu.
- Fixed a crash when moving right in a multi grid level with a single item in a row.
- Added the
MultiGridLevel
.
- Split the package up a little bit.
- Swapped the default axes used for tile map movement.
- Old menu sounds are now destroyed when menus are popped.
- You can now turn and move simultaneously with
TileMapLevel
instances.
- Reminders to call super methods on the
TileMapLevel
class.
- Added the
SceneLevel
class.
- Added the
DialogueLevel
class.
- Added the
TileMapLevel
class.
- Added the
AxisSetting
class.
- Added the
Level.tick
method.
- Added some direction enums for use with
TileMapLevel
.
- Renamed
Directions
to CardinalDirections
.
- Added the
SoundChannelGroup
class.
- Changing the reverb changes the reverb ID again.
- Changing channel reverb no longer changes the stored reverb ID.
Added
- You can now set (or clear) reverbs for sound channels.
- Changed the signature for the
Box
constructor.
- The
Box.onActivate
callback is now an instance variable, rather than a class method.
- Renamed
Surface.moveInterval
to maxMoveInterval
.
- Make
Box.sound
a List
.
- Rename
Box.sound
to sounds
.
- Added the
BoxMapLevel
class.
- It is now possible to unregister game tasks.
- Tasks can now be registered from within other task functions.
- Added checked and unchecked sounds for checkboxes.
- Added the
Widget.getLabel
method.
- Any widget can now override the
getLabel
method to override the label on its parent MenuItem
..
- Added a
Editor
level.
- Added a
onCancel
parameter to the Menu
constructor, so the cancel
method doesn't need to be overridden every time.
- When creating a
Menu
instance, it is now possible to set the initial position within the menu.
- You can now specify random sounds for
Menu
instances.
- It is now possible to specify multiple triggers with the same name.
- Added the
ControllerAxisDispatcher
class.
- Fixed a broken link in the documentation for
angleToRad
.
- Cleaned up code.
- Update SDL.
- Added a bunch of parameters to the
Menu
constructor, to replace the old registerCommands
method.
- The
TriggerMap
class now uses a list for command triggers.
- Removed
Menu.registerCommands
, in favour of the new parameters to the constructor.
- Removed the unused
InvalidCommandNameError
error.
- Removed the unused
InvalidStateError
error.
- The
onChanged
argument to ListButton
is now mandatory.
- Added the
ListButton
class.
- Added the
Checkbox
class.
- Ambiance positions are now respected.
- Ambiances now store their own playback information.
- Removed the
Level.ambianceSounds
list.
- It is now possible to add random sounds to any level.
- It is now possible to know when a
Game
instance started running with the started
property.
- You can now get the time that a
Game
instance has been running with the runDurationMilliseconds
integer, and the runDurationSeconds
double.
- Made
Game.window
a readonly property.
- Add events for setting global audio settings.
- Added a
getFile
method to the AssetReference
class.
- Added the ability to load files (and random files) via the
AssetReference.load
method.
- Added the
AssetStore
class, which will be used by ziggurat_utils.
- Added a load more tests.
- Renamed
SoundReference
to AssetReference
.
Added a encryptionKey
field to the SoundReference
class.
- Added the
SoundPositionScalar
class.
- Added the
SoundPositionAngular
class.
- Removed the
SoundPositionPanned
class.
- Changed the constructor of
SoundPositionPanned
to allow the use of either a scalar value, or an azimuth / elevation pair.
- Removed the
elevation
property from SoundPositionPanned
.
- Added the
Menu.addButton
convenience method.
- Added the
Menu.addLabel
convenience method.
- Added the
PitchBend
sound event.
- Added events for applying filters to
SoundChannel
instances.
- Added the `CommandTrigger.basic constructor.
- Added more tests.
- No longer allow changing from one sound position type to another.
- Added the
SetSoundChannelPosition
event.
- Made both parameters to the constructor of
SoundPositionPanned
optional.
- Made all parameters to the constructor of
SoundPosition3d
optional.
- Added the
Game.replaceLevel
method.
- Added the ability to specify a fade time for ambiances when popping levels.
- Made
Game.destroy
not a future.
- You can now set a time to wait before applying an automation fade.
- The
AutomationFade.cancel
method now returns void.
- Changed the way sound events are created and what information they hold.
- Added the ability to cancel a fade.
- Added a reference to the sound that should be faded.
- Added an
AutomationFade
sound event.
- Moved executable scripts and accompanying JSON schemas to to the ziggurat_sounds package.
- Maintain a list of open game controllers on
Game
instances.
- Fixed a bug with double-playing menu ambiances.
- Menus now properly announce themselves when they're revealed.
- Added an activate
sound
property to Button
.
- When activating a menu, if the current widget is a button, play the button's activate sound.
- Added a time offset to
Game.registerTask
for tasks that are scheduled before calling Game.run
..
- Show menu items with the
onPush
method, rather than onReveal
.
- Show the current menu item when revealing a menu.
SoundChannel.playSound
now respects the looping
argument.
- Destroy interface and ambiance channels with
Game.destroy
.
- Stop menu sounds playing when returning to the top of the menu.
- Added a
keepAlive
property to the Message
class.
- Added a
Game.outputText
method.
- Added a
Game.outputSound
method.
- Split
Game.outputMessage
up to use the new outputText
and outputSound
methods.
- Made
Game.outputMessage
return a PlaySound
instance.
- Remove
oldSound
, when passed as an argument to outputMessage
.
- Changed the constructor for the
Ambiance
class.
- Added a
keepAlive
property to the PlaySound
event.
- Calling
destroy
on a PlaySound
event with its keepAlive
property set to false
will result in a DeadSound
error being thrown.
- Sound events are now queued while the stream has no listeners or is paused.
- Added a
channel
property to DestroySound
.
- Changed the type of
PlaySound.channel
from SoundChannel
to int
.
- Added a
destroy
method to the CreateReverb
class.
- Reverbs must now be destroyed with
CreateReverb.destroy
.
- Renamed
PlaySound.destroySound
to destroy
.
- Removed the
Game.destroyReverb
method.