- 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.