Skip to content

Releases: sschmid/Entitas

Entitas 0.42.0

28 Apr 13:38
Compare
Choose a tag to compare

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). Use entity.Destroy() instead
  • Marked obsolete: context.CreateCollector(matcher, event), use new context.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 of context.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() to entity.InternalDestroy() to reduce confusion
  • Added entity.Destroy() instead of context.DestroyEntity(entity) #254

CodeGenerator

  • Added ComponentEntityInterfaceGenerator #303
  • Updated ContextObserverGenerator to avoid System.Security.SecurityException on Windows #375
  • .ToSafeDirectory() supports empty string and “.” to specify current directory

Entitas 0.41.2

20 Apr 15:02
Compare
Choose a tag to compare

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 and fix 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 new IConfigurable #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 and fix command will help you a lot to spot and fix problems in Entitas.properties
  • Added Compile.cs to ensure Assembly-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

10 Apr 17:02
Compare
Choose a tag to compare

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
$ 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

09 Apr 14:13
Compare
Choose a tag to compare

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

18 Mar 21:29
Compare
Choose a tag to compare

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 and codeGeneratorAssemblyPath 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

17 Mar 17:12
Compare
Choose a tag to compare

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

16 Mar 20:56
Compare
Choose a tag to compare

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

14 Mar 15:48
Compare
Choose a tag to compare

See and discuss changes in Milestone 0.39.0

Entitas
  • Added entityIndex.ToString() with name #329
Entitas.CodeGenerator
  • Add contexts.Reset() (#317)
  • Removed ComponentDataProvider without namespace #323
  • Don't generate EntityIndex when not specified #326
  • Cache static component index lookup into local var #316
  • Review and check for namespace awareness #328

Entitas 0.38.0

10 Mar 13:19
Compare
Choose a tag to compare

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 to TEntity(#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

14 Feb 13:19
Compare
Choose a tag to compare

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). Only e.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-loc

Entitas.Unity.VisualDebugging

  • Entitas went type-safe! (#257 #266)
  • Added EntityLink (#271)
  • Prettier search fields that support multiple search strings

entitas-search

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)