epervier-old/CHANGELOG.md
Kazhnuz 8c1e9d8e05 feat(world): initial support for external hitbox
For the moment it doesn't add any real feature, but it allow the 
mainHitbox to be an external object to the actor, giving to it more 
power.
2019-06-22 19:27:31 +02:00

271 lines
7.1 KiB
Markdown

# CHANGELOG
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Changed
- **world2D:** Use a list for bodies (hitboxes, etc) and one other for actors
- **world2D:** Make the hitbox an object, owned by the actor
### Fixed
- **world:** Remove a forgotten camera debug function
## 0.5.1 - 2019-06-21
### Fixed
- **examples:** Add missing HUD example for one-player plateformer
- **world:** Separate getting dimensions of the internal and advertised view.
- **world:** use right camera internal coordinate
## 0.5.0 - 2019-06-16
- Meta: Add a Code of Conduct
- Meta: Add a Changelog
### Added
- **world:** Add an activity system
- **assets:** Add an activity system
- **example/plateformer:** add a basic pause button
- **scene**: Add functions to add stuf before and after `update` and `draw()`
- **actor**: Add functions to add stuf before and after `update` and `draw()`
- **world/camera:** Add support for Head-Up-Display
- **world:** Support batching actor loading
- **world:** Add `Actor.creationID` to keep the order in which actors have been created
- **world:** Add `Actor.depth` to keep the order in which actors are drawn
- **menusystem;** Add a way to deactivate assets and the world when activating the menu
- **world:** Add a reset function
- **examples/plateform:** Add a pause menu
### Changed
- **world:** automatize world integration in a scene
- **world:** only visible actors are drawn
### Fixed
- **core.input:** use the right argument in `core.input:flushKeys()`'s loop
- **scene:** use `core.input:flushKeys()` in `Scene:flushKeys()` instead of `core.input:flushSourceKeys()`
## [0.4.0] - 2019-05-06
- Add Bump2D-handled world system
### Added
- **world:** Add a `World2D` world object using Bump2D as a backend
- **world/actor:** Support bump2D filter
- **loveutils:** `love.math.toZero` substract a variable to another to zero
- **assets:** Add batch loading of assets
- **examples:** Add batch asset files
- **examples/plateformer:** Add a plateformer example
- **world:** Add a splitscreen-compatible camera system powered by hump.camera
- **examples:** Add cameras
- **world:** Support object loading from Tiled
- **world/actor:** Add sprite support in Actor2D
- **assets:** Add support for sprites origins in tileset and animations
- **world:** Add `World:initActors()` to init Actors
- **world:** automatize multiple character handling
- **loveutils:** `utils.math.between(num, min, max)` make sure that a number is between two value
- **world:** Add a gravity system
- **world/actors:** `Actor:destroy()` destroy the actor
- **world/actors:** Add a basic timer system to actors
- **world/actors:** Create a parent `BaseActor` that'll serve as a parent for Actor2D and other future actors
- **assets:** add getDimensions() to tileset, sprite and animators
- **world:** add a generic gfx actor
### Changed
- **examples/moveplayer:** move to World2D
- **world:** separate map loading from level initialization
- **examples/moveplayer:** use a different map
- **examples/moveplayer:** Use this example to show multiplayer capabilities
## [0.3.0] - 2019-04-20
- General cleanups and reorganisation of the base code to be more legible
- Add translation
- Some internal improvement to how gamecore works
### Added
- **examples:** Basic Inventory menu
- **menusystem:** Horizontal listbox menu
- **menusystem:** Lock/visiblity management functions
- **examples/mainmenu:** Add a back and exit widget
- **world:** Embed librairies
- **world:** Add actors managing functions
- **world:** Map loading system using STI
- **examples:** Add a movable multi-player example
- **world:** Add a basic player system directly inside world system
- **menusystem:** `Widget.creationID` contain the creation order of every menu widget
- **menusystem:** `Widget.order` handle the order of the widget in the menu
- **world:** add `xsp` and `ysp` variable to handle speed to the actor object
- **examples:** add an option menu
- **menusystem:** `Widget:invalidateCanvas()` to make a canvas need a redraw
- **core.lang:** Get the translation data instead of directly putting them in core.lang.datas
- **core.options:** Add controller variable
- **core.options:** `core.options:setInputKey(sourceid, padkey, key)`
- **scenes:** `Scene:keypressed( key, scancode, isrepeat )` and `Scene:keyreleased( key )` callbacks added
- **menusystem:** Add a global activity flag
- **examples/options:** Key customization handling
- **examples:** Add music and SFX
- **menusystem:** Add `Menu:resetSound()` to entirely reset the sound values of a menu
- **menusystem:** Add `Menu:setSoundFromSceneAssets(name)` to simplify sound managin
- **menusystem:** Add sound batch management function
### Changed
- **menusystem:** Separate activity and visiblity lock
- **menusystem:** Add as an argument to widgets actions if the widget have been interacted by a pointer or a key
- **examples:** Reorganize folder
- **world:** Make world system need an actorlist
- **core.inputs:** /!\BREAKING: Use a multi-source system for the input system, and adapt different module to use it
- **core.lang:** /!\BREAKING: New language metadata format and complete rework of the translation system
- **core:** directly handle love2D's callbacks inside gamecore
- **menusystem:** rename `Menu:playSelectSound()` to `Menu:self:playSelectSound()`
- **menusystem:** Internally link the whole menusystem to a scene
### Removed
- `MenuSystem.TextMenu` wasn't used since a long time, and was a menu that modified the widgets.
- `MenuSystem:keyreleased(key, code)` was just dead code
- `core.lang:getStringList(library, file)` is replaced in the new translation system
### Fixed
- core: load core.lang
## [0.2.0] - 2019-06-04
### Added
- **examples:** Use some text menus in the example menu
- **examples:** Test entity system
- **examples:** Add a main menu to the examples
- **menusystem:** Add functions to menusystem to set visibility to menus
- **menusystem:** Add functions to menusystem to switch current menu
- **menusystem:** Add depth system to menus
- **world:** Add world and actor system
### Changed
- **scene:** rework input locking system to add a timeout
### Fixed
- **loveutils:** Fix a crash in `utils.math.pointDistance`
## [0.1.0] - 2019-18-03
### Added
- **examples:** First two basic examples to show the capability of gamecore
- **scenes:** Start using a wrapper around `core.scenemanager.currentScene` to set the new Scene
- **scenes:** Add a storage system inside `core.scenemanager` to be able to keep previous scene
- **menusystem:** Basic menu examples to test menu capabilities
- **assets:** Add a mask system to `Texture`, `Tileset` and `Animation`
### Changed
- **scene:** `Scene` now registerd themselves
- **assets:** `Texture` assets are now a custom object instead of directly using love's texture.
### Fixed
## [0.0.1] - 2019-16-03
- Initial release based on a standalone version of Imperium Porcorum's Core.