Releases: sschmid/Entitas
Entitas 0.42.0
See and discuss changes in Milestone 0.42.0
Breaking changes
Please follow the Entitas upgrade guide
- Removed Entitas.Blueprints.Unity.*
- Changed ReactiveSystem.GetTrigger method signature
- Marked obsolete:
context.DestroyEntity(entity)
. Useentity.Destroy()
instead - Marked obsolete:
context.CreateCollector(matcher, event)
, use newcontext.CreateCollector(triggerOnEvent)
when you need.Removed
or.AddedOrRemoved
, (e.g. GameMatcher.View.Removed()))
Top new features:
- Use MultiReactiveSystem to process entities from different contexts in one system (see Test Example)
- Use
entity.Destroy()
instead ofcontext.DestroyEntity(entity)
- Unit Testing in external console works on Windows now
General
- Moved Entitas menu item under the Tools tab
- Removed Entitas.Blueprints.Unity.* from zips
- Creating new zip for code generator default plugins
- UX improvements
Entitas
- Added MultiReactiveSystem to support reactive systems observing different contexts #303
- Added TriggerOnEvent
- Renamed
entity.Destroy()
toentity.InternalDestroy()
to reduce confusion - Added
entity.Destroy()
instead ofcontext.DestroyEntity(entity)
#254
CodeGenerator
Entitas 0.41.2
After installing please check your Entitas.properties. Due to the addition of IConfigurable
for code generator plugins some keys in Entitas.properties changed. entitas.exe doctor
, entitas.exe status
and entitas.exe fix
can help you fixing any issues. A new default Entitas.properties file will be created if none is found. The default Entitas.properties should work with Unity without modification. For reference take a look at Match-One - Entitas.properties
Exiting limitation mentioned in the Entitas upgrade guide still apply (Entitas.Blueprints.CodeGeneration.Plugins is not supported in the code generator CLI)
Top new features:
- UpdateCSProjPostProcessor will update your project.csproj. Generated methods are available immediately without switching to Unity and waiting for the project to be updated. This feels even better when using the new code generator (roslyn coming soon) where you don't even have to compile your project anymore - super fast feedback loops!
- Better out-of-the-box experience when starting a new Unity project. Everything will work without any manual setup. Just generate :)
- Great code generator CLI experience with helpful commands like
status
andfix
which will let you modify Entitas.properties interactively - Logo refinements based on magic numbers (1.618 - golden ratio) :D
CodeGenerator
- Added
IConfigurable
interface to easily create customizable and configurable code generator plugins - Fixed
ignoreNamespaces
by using the newIConfigurable
#376 - Added UpdateCSProjPostProcessor which updates project.csproj so you don't need to wait for Unity to update your project
- Greatly improved the code generator CLI.
status
andfix
command will help you a lot to spot and fix problems in Entitas.properties - Added
Compile.cs
to ensureAssembly-CSharp.dll
in Unity - CodeGenFile converts to unix line endings when setting fileContent #352
- Added progress indicator to code generator CLI when running with
-v
in verbose mode - Added multiple smaller sub configs for TargetDirectory, ContextNames, Assemblies, ProjectPath, IgnoreNamespaces
- Placeholder
${myPlaceHolder}
in properties will remain even when overwriting - Caching AssemblyResolver
VisualDebugging
- Drawing generic text labels for configurables found in Entitas.properties
- Better error handling when Entitas.properties has problems
General
- Refined logo. More pleasant to the eye and more readable in smaller icons
Entitas 0.41.1
See and discuss changes in Milestone 0.41.1
Note
The feature mentioned below (Entitas.CodeGeneration.Plugins.IgnoreNamespaces = true
) doesn't work yet because it's not used in the code. Will be fixed in the next release.
CodeGenerator
// instead of
Matcher<GameEntity>.AllOf(GameMatcher.Position, GameMatcher.View);
// you can write
GameMatcher.AllOf(GameMatcher.Position, GameMatcher.View);
- Added option to ignore namespace in generated api
- Simply add
Entitas.CodeGeneration.Plugins.IgnoreNamespaces = true
to your Entitas.properties - You can run
entitas status
to see if any plugins require additional keys
- Simply add
$ entitas status
Missing key: Entitas.CodeGeneration.Plugins.IgnoreNamespaces
- Added
IConfigurable
to support optional keys needed in Entitas.properties
Other
- Added properties.ToDictionary()
Entitas 0.41.0
See and discuss changes in Milestone 0.41.0
This milestone paves the way for a more customizable version of Entitas. A streamlined and modular project structure enables deploying Entitas as Dlls which opens the door for 3rd party Addons and the extendable command line code generator.
Breaking changes
Please follow the Entitas upgrade guide
- Renamed Entitas.properties config keys
- Removed context.DeactivateAndRemoveEntityIndices()
- Removed context.ClearGroups()
- New namespaces as a consequence of project restructuring
General
- Project restructuring. All Entitas projects are now in Entitas.sln, including all Addons and Unity projects
- Deploying Entitas as Dlls instead of source code which has multiple benefits, e.g.
- Entitas Unity menu appears even if code doesn't compile
- Enables 3rd party Addons and Plugins
- Enables command line code generator
Entitas
- Extracted Automatic Entity Reference Counting (AERC) as a strategy which can be set per context
- Better exception handling for Entitas.properties config
- Renamed config keys
- Removed context.DeactivateAndRemoveEntityIndices()
- Removed context.ClearGroups()
CodeGenerator
- Added command line code generator #158 #353
- Unsupported Plugins: Entitas.Blueprints.CodeGeneration.Plugins, Entitas.CodeGeneration.Unity.Editor
- ContextObserverGenerator puts VisualDebugging in try-catch to support Unit Testing #362
- Added FeatureClassGenerator and removed Feature class from Entitas to support conditional compilation with
#if UNITY_EDITOR
- Added MethodData instead of using System.Reflection.MethodInfo
- Added CleanTargetDirectoryPostProcessor
VisualDebugging
- Removed Feature class
- UX improvements
- Better exception handling for Entitas.properties config
Entitas 0.40.0
See and discuss changes in Milestone 0.40.0
Note
Please update Entitas.properties by opening Entitas Preferences. Added assemblyPath
and codeGeneratorAssemblyPath
to code generator config. When not selected already, navigate to Library/ScriptAssemblies/
in your Unity project and select Assembly-CSharp.dll
for the assembly and Assembly-CSharp-Editor.dll
for the code generator assembly.
Entitas.CodeGenerator
- Add ConsoleWriteLinePostProcessor #342
- Make EntitasPreferences.CONFIG_PATH public field in order to customize the path to the config file #342
- Add CodeGeneratorUtil to simplify creating an instance based on Entitas.properties
- Add
assemblyPath
andcodeGeneratorAssemblyPath
to code generator config
Entitas.Unity.VisualDebugging
- Added SystemWarningThreshold to visualize slow systems
- Tinting slow systems red
- Systems list unfolded by default
Entitas 0.39.2
See and discuss changes in Milestone 0.39.2
Entitas
- Optimize group update performance for component add/remove #321
- Ignore indexed properties in PublicMemberInfo #339
- More explicit EntityIndex.ToString()
- More explicit EntityLink.ToString()
Entitas.Unity.VisualDebugging
- Automatically draw types. No TypeDrawers #327
Entitas 0.39.1
See and discuss changes in Milestone 0.39.1
Entitas
- Added
entityIndex.ToString()
with name #329
Entitas.CodeGenerator
- Add ContextObserverGenerator #337
- Simplified EntityIndexGenerator getKey
Entitas.Unity.VisualDebugging
- Optimize DebugSystemsInspector #338
Entitas.Unity.Blueprints
- Blueprints not persistent after changes to components. #331
Entitas 0.39.0
See and discuss changes in Milestone 0.39.0
Entitas
- Added
entityIndex.ToString()
with name #329
Entitas.CodeGenerator
Entitas 0.38.0
0.38.0
See and discuss changes in Milestone 0.38.0
This seems to be the release of enhancements! Lots of useful improvments and features have been added to increase productivity and ease of use.
Breaking changes
- Removed HideInBlueprintsInspector (#270 #306)
- Changed interface
ITypeDrawer
- Added Contexts constructor (#286)
Entitas
- Using ToString on subclassed components, too (#290)
- Fixed cached entity ToString() wasn’t updated when calling entity.Release()
- Fixed typo
TEntitiy
toTEntity
(#291)
Entitas.Unity
- Simplified DrawTexture
- Refactored EntitasLayout
Entitas.CodeGenerator
- Generating Entity Indices (#75 #319)
- Added priority to ICodeGenFilePostProcessor
- Move logic to DebugLogPostProcessor to speed up code generation
- Added MergeFilesPostProcessor (#301)
- Added Contexts constructor (#286)
- Added default context (#288)
- Using MemberData instead of PublicMemberInfo in DataProviders (#280)
- Added progess report to code generator
Entitas.Unity.CodeGenerator
- Added cancellable progess bar when generating
Entitas.Unity.VisualDebugging
- Redesigned Entitas Preferences Window
- Redesigned DebugSystemsInspector
- Redesigned Type Drawers
- Added component member search (#298)
- Added search field to DictionaryTypeDrawer (#299)
- Better UX, better Buttons
- Entitaslayout.SearchTextField won’t affect GUI.change
- Fixed Hashset changes didn’t replace component
- Added
context.FindContextObserver()
for getting ContextObserver (#295) - Added default constructor to Feature class (#293)
- Added Entitas Stats Dialog
- EntityDrawer will use pooled components
- Simplified EntityDrawer and TypeDrawers
- Removed TypeEqualityComparer (#289)
- Drawing public fields of unsupported types
- Updated code templates for TypeDrawer and DefaultInstanceCreators (#297)
Entitas.Unity.Migration
- Redesigned Entitas Migration Window
General
- Using HD header textures
Entitas 0.37.0
See and discuss changes in Milestone 0.37.0
Breaking changes
Please follow the Entitas upgrade guide
The deed is done. Entitas went type-safe! This was a huge task and I'm happy to finally share this with you guys!
This feature makes Entitas safer and more managable in growing code bases and will eliminate certain kind of bugs. Thanks to @mstrchrstphr
for starting the conversation and proposing solutions.
Entitas
- Entitas went type-safe! (#257 #266)
- Entity API doesn't return Entity anymore (e.g. e.AddComponent())
- Fixed matchers not recalculating hash when changed
- Added EntityIndex support for multiple keys (#279 #281)
- Removed as many virtual keywords as possible
Entitas.CodeGenerator
- Entitas went type-safe! (#257 #266)
- Rewrote code generator architecture (#265 #274 #275)
- ComponentsGenerator doesn't generate
e.IsMoveble(value)
. Onlye.isMoveble = value
- ComponentsGenerator Entity API doesn't return Entity anymore (e.g. e.AddPosition())
- Added additional ComponentGenerator which respects namespaces (#274)
Entitas.Blueprints
Entitas.Migration
- Automatically embedding all migrations to Entitas.Migration.exe
Entitas.Unity.Codegenerator
- Added sloc (Source Lines Of Code) and loc (Lines Of Code) info
Entitas.Unity.VisualDebugging
- Entitas went type-safe! (#257 #266)
- Added EntityLink (#271)
- Prettier search fields that support multiple search strings
Other
- New folder structure with Entitas as the core and everything else as Addons
- Complete reorganization of the project structure (more modular and easier to reason about)