CHANGELOG.mdown
# ChangeLog
###### [major.minor.bugfix] - year-month-day
![Fixed](https://img.shields.io/badge/-Fixed-blue)
![Added](https://img.shields.io/badge/-Added-brightgreen)
![Changed](https://img.shields.io/badge/-Changed-yellow)
![Deprecated](https://img.shields.io/badge/-Deprecated-orange)
![Removed](https://img.shields.io/badge/-Removed-red)
## [5.0.1](https://github.com/realtradam/FelFlame/releases/tag/5.0.1) - 2022-02-03
![Added](https://img.shields.io/badge/-Added-brightgreen)
- Added a method to the Entity Manager which allows grouping entities by components and then execute a block for each one.
```ruby
FelECS::Entities.group(@component_manager_one, @component_manager_two).do |cmp1, cmp2, ent|
# do stuff with the components and entity
end
```
## [5.0.0](https://github.com/realtradam/FelFlame/releases/tag/5.0.0) - 2022-02-02
![Changed](https://img.shields.io/badge/-Changed-yellow)
- Renamed to FelECS
![Fixed](https://img.shields.io/badge/-Fixed-blue)
- Trigger on attr_changed was fixed to now trigger the system after the attr value is changed.
## [4.0.0](https://github.com/realtradam/FelFlame/releases/tag/4.0.0) - 2021-12-30
![Removed](https://img.shields.io/badge/-Removed-red)
- Removed all ids as they were not used
![Changed](https://img.shields.io/badge/-Changed-yellow)
- Scenes now have their own priority attribute
- Stages now sort and execute by Scenes, rather then the net Systems in the Scenes
- Component method `.attrs` was renamed to `.to_h`
- Renamed the `data` accessor to `._data`
- Various arrays are automatically compacted
![Added](https://img.shields.io/badge/-Added-brightgreen)
- Classes and Modules which used a data array now have the entire set of array methods available to their respective Classes and Modules
- Convenience methods for accessing a single entity in a component(`@component.entity`) and accessing a single entity in a component(`@entity.component[@component_manager]`)
- `FelFlame::Order` class which can set the order of your Scenes and Systems
![Fixed](https://img.shields.io/badge/-Fixed-blue)
- Replaced all instances of `sort_by!` with `sort_by` for compatibility with mruby
- Minor optimizations such as less array duplication
## [3.0.0](https://github.com/realtradam/FelFlame/releases/tag/3.0.0) - 2021-07-12
![Changed](https://img.shields.io/badge/-Changed-yellow)
- The Scene alias was changed from ```FelFlame::Sce``` to ```FelFlame::Scn``` as it is more intuitive.
## [2.0.0](https://github.com/realtradam/FelFlame/releases/tag/2.0.0) - 2021-07-10
![Changed](https://img.shields.io/badge/-Changed-yellow)
- Entities and Components now reference each other using the objects themselves rather then their id's
```ruby
# before:
@entity.components[@component_manager].each do |component_id|
# iterate over id's, usually would need to do a lookup to get the component itself
end
# after:
@entity.components[@component_manager].each do |component|
# iterate over the components themselves! No need for lookup anymore
end
```
```ruby
# same for components referencing entities
# before:
@component.entities.each do |entity_id|
#iterate over id's
end
# after:
@component.entities.each do |entity|
# directly iterate over entities themselves!
end
```
## [1.0.2](https://github.com/realtradam/FelFlame/releases/tag/1.0.2) - 2021-07-09
![Fixed](https://img.shields.io/badge/-Fixed-blue)
- Stripped superflous files shrinking gem size significantly
## [1.0.1](https://github.com/realtradam/FelFlame/releases/tag/1.0.1) - 2021-07-09
![Fixed](https://img.shields.io/badge/-Fixed-blue)
- Defining attributes in components are no longer allowed to overwrite methods
## [1.0.0](https://github.com/realtradam/FelFlame/releases/tag/1.0.0) - 2021-07-09
![Added](https://img.shields.io/badge/-Added-brightgreen)
- Initial release