Releases: sschmid/Entitas
Entitas 0.36.0
0.36.0
See and discuss changes in Milestone 0.36.0
Note
Entitas will be type-safe and will add support for the planned DSL in future versions. This will be a big breaking change. This release contains a few breaking changes with the DSL and type-safety in mind to make the transition easier.
Note 2
The question came up whether to update or not. I didn't want to delay a release even more and later ship a giant version with too many big breaking changes. I wanted to split up the work into multiple versions. Early adopters can already play with the new features and APIs and give feedback. The planned DSL version will most likely make some of the necessary manual migration work obsolete. I suggest waiting with updating if you're in production.
Breaking changes
Please follow the Entitas upgrade guide
Entitas
- Removed pool.CreateSystem() (#233 #237)
- Removed
IEnsureComponents
,IExcludeComponents
,ISetPools
,ISetPool
,IReactiveSystem
,IMultiReactiveSystem
,IEntityCollectorSystem
- Changed the ReactiveSystem to be an abstract class instead of
IReactiveSystem
. You need to overrideGetTrigger
,Filter
andExecute
.
This enables filtering entities based on component values (#234) - Renamed the term Pool to Context (#99 #250)
- Renamed
EntityCollector
toCollector
(#252 #253) - Renamed
GroupEventType
toGroupEvent
and removed the prefixOnEntity
- entity.ToString uses component.ToString(). Override ToString() in your components
to get a nice description, e.g.Health(42)
(#203 #196)
Entitas.CodeGenerator
- Removed OldPoolsGenerator
- Fixed code generator line ending for header
Entitas.Unity.VisualDebugging
- Improved VisualDebugging performance by reusing StringBuilders
- Added support for
ICleanupSystem
andITearDownSystem
- Changed SystemsMonitor.axisRounding to 1
- Fix error when turning visual debugging on/off in Unity 5.4 or newer (#222)
- Changed default blueprint creation location (#206 #248)
Other
- Simplified build pipeline
Entitas 0.35.0
See and discuss changes in Milestone 0.35.0
Breaking changes
Please follow the Entitas upgrade guide
Entitas
Other
- Maintenance, cleanup and formatting
- Completely new build system to create new releases
Entitas 0.34.0
See and discuss changes in Milestone 0.34.0
Breaking changes
Please follow the Entitas upgrade guide
Entitas
- Added api to clone entities (#178 #182)
pool.CloneEntity(e);
entity.CopyTo(target);
- Added EntityIndex constructor with EqualityComparer (#170 #186)
- Rename GroupObserver to EntityCollector (#168 #188)
- Added filter condition to matchers (#165 #189)
Matcher.Position.Where(e => e.position.x > 10);
Entitas.Serialization.Blueprints
- Added HideInBlueprintInspectorAttribute (#185)
Other
Entitas 0.33.0
Breaking changes
Please follow the Entitas upgrade guide
Entitas
- Added pools.CreateSystem()
- Added ObjectPool and ObjectCache and updated EntitasCache to use ObjectCache (#157)
- Added entityIndex.Activate() and removing entity indices from pool (#163)
- Renamed IDeinitializeSystem to ITearDownSystem (#164)
Entitas.CodeGenerator
- TypeReflectionProvider sorts pool names and ToUppercaseFirst() (#155)
- CodeGeneratorConfig doesn't add default pool anymore (#156)
Other
- Added repository icon
- Added snippets (see Snippets folder)
Entitas 0.32.0
Summer break is over! Entitas development is back on track!
Thanks all of you guys for using and contributing to Entitas.
This release is packed with improvements from all of you, thanks for that!
Breaking changes
Please follow the Entitas upgrade guide
General
- Lots of maintenance, refactoring, documentation and cleanup. Checked every class and every test ;)
- Removed unused usings (#134 @thematthopkins )
- Added script to generate docset and included it in build script (#141 @mstrchrstphr)
- Updated policy.mdpolicy to support latest Xamarin Studio
- Fixed inconsistent Line endings (#116 @ParagonFable)
Entitas
- Added new
Pools
class. There is no static Pools anymore but an instance. - Added
ISetPools
to inject the shared pools instance - Removed
pool.CreateSystem<T>()
andpool.CreateSystem(Type type)
(Apply migration 0.32.0) - Fixed
pool.CreateSystem()
not creating a ReactiveSystem for IGroupObserverSystem - Added
EntityIndex
(#154) pool.Reset()
removes all event handlers- Fixed retain / release didn't update entity toString cache
- Added
EntitasCache
for object pooling of collections to reduce memory allocations - Updated Entity, Matcher and Pool to use EntitasCache (less garbage ❤️)
- Added
ICleanupSystem
- Added
IDeinitializeSystem
- Pushing removed component to component pool after dispatching event
Entitas.CodeGenerator
- Fixed ComponentIndicesGenerator with multiple pools (#124)
- CodeGeneratorConfig will add default pool
- Fixed pools order if default pool exists
Entitas.Unity.CodeGenerator
- CodeGenerator Preferences is using MaskField instead of Toggles now
Entitas.Unity.VisualDebugging
- Less editor repaints for DebugSystemsInspector to improve performance
- Fixed system stats (Log stats) not ignoring Feature class
- Add ITypeDrawer for doubles (#132 @bddckr)
- Added support for enum masks (#132 @bddckr)
- Adjusted foldout spacing in custom inspector (#149 @Bytesheep)
Other
- Updated keys for Entitas.properties and moved files from Entitas.Unity to Entitas.Serialization.Configuration
- Moved Properties from Entitas.Unity to Entitas.Serialization
Entitas 0.31.2
Entitas.CodeGenerator
- All attributes can now be used for classes, interfaces and structs
Entitas 0.31.1
Entitas.CodeGenerator
- Improved component generation for classes and interfaces and added support for default pool [Pool]
- Added support to CustomComponentNameAttribute to generate multiple components with different names for one class or interface
// This will automatically generate PositionComponent and VelocityComponent for you
[Pool, CustomComponentName("Position", "Velocity")]
public struct IntVector2 {
public int x;
public int y;
}
- Added support for generating components for structs
- Not generating obsolete pool attributes for generated classes
Entitas 0.31.0
General
- Removed obsolete code
Entitas.CodeGenerator
- Generating components for attributed classes and interfaces
// will automatically generate SomeClassComponent for you
[Core]
public class SomeClass {
public string name;
public SomeClass(string name) {
this.name = name;
}
}
- Added support to add empty PoolAttribute to assign component to default pool
// using [Pool] will also add this component to Pools.pool
[Core, Pool]
public class SomeComponent : IComponent {
}
Entitas.Unity.VisualDebugging
- Added IComponentDrawer which can draw the whole component
Entitas.Unity.VisualDebugging
- Added EntitasEntityErrorHierarchyIcon to indicate retained entities in the hierarchy
- Added CharTypeDrawer
- Fixed components not updating in the inspector (#107)
- Improved SystemsMonitor and added average line
Entitas.Unity.Serialization.Blueprints
- Fixed finding all BinaryBlueprints even when not loaded
- Correctly saving Blueprints when setting all BinaryBlueprints
- Added BlueprintsNotFoundException
- BinaryBlueprintInspector creates new pools instead of using one of Pools.allPools
- Fixed pool not shown when entering play-mode while a blueprint was selected in the project view
- Not caching blueprints when UNITY_EDITOR to enable live edit
Entitas 0.30.3
Entitas.CodeGenerator
- Added support for whitespace, '-' and braces in blueprint names
Entitas.Unity.Serialization.Blueprints
- Blueprints.FindAllBlueprints orders all blueprints by name
- Fixed pool not shown in hierarchy
Entitas 0.30.2
Note
This release introduces Blueprints for Entitas (Beta). Update if you want to
use and play with Blueprints. Read more...
Entitas.CodeGenerator
- Only creating PoolObserver when Application.isPlaying
- Added BlueprintsGenerator
Entitas.Unity.VisualDebugging
- Added more options for sorting systems in the inspector
- Removing event handlers from pool observer when leaving play-mode
Entitas.Serialization.Blueprints
- Added Blueprints (and more)
Entitas.Unity.Serialization.Blueprints
- Added BlueprintInspector (and more)
Other
- Moved build scripts into a folder