realtradam/FelFlame

View on GitHub
CHANGELOG.mdown

Summary

Maintainability
Test Coverage
# 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