Showing preview only (1,114K chars total). Download the full file or copy to clipboard to get everything.
Repository: sschmid/Entitas
Branch: main
Commit: 37547d1bd280
Files: 546
Total size: 963.8 KB
Directory structure:
gitextract_f_3brnil/
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── question.md
│ └── workflows/
│ ├── build.yml
│ ├── ci.yml
│ └── release.yml
├── .gitignore
├── .gitmodules
├── .sln.dotsettings/
│ ├── .gitignore
│ ├── CodeStyle.DotSettings
│ ├── InspectionSettings.DotSettings
│ └── PatternsAndTemplates.DotSettings
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Build.targets
├── Entitas.sln
├── Entitas.sln.DotSettings
├── EntitasUpgradeGuide.md
├── LICENSE.md
├── README.md
├── Unity3D.props
├── benchmarks/
│ └── Entitas.Benchmarks/
│ ├── AERCBenchmarks.cs
│ ├── CreateComponentBenchmarks.cs
│ ├── DelegateBenchmarks.cs
│ ├── Entitas.Benchmarks.csproj
│ └── Program.cs
├── gen/
│ └── Entitas.Generators/
│ ├── Component/
│ │ ├── ComponentDeclaration.cs
│ │ ├── ComponentGenerator.CleanupSystem.cs
│ │ ├── ComponentGenerator.CleanupSystems.cs
│ │ ├── ComponentGenerator.ComponentIndex.cs
│ │ ├── ComponentGenerator.ContextExtension.cs
│ │ ├── ComponentGenerator.ContextInitializationMethod.cs
│ │ ├── ComponentGenerator.EntityExtension.cs
│ │ ├── ComponentGenerator.EntityIndexExtension.cs
│ │ ├── ComponentGenerator.EventSystems.cs
│ │ ├── ComponentGenerator.Events.cs
│ │ ├── ComponentGenerator.Matcher.cs
│ │ ├── ComponentGenerator.cs
│ │ ├── ContextInitializationMethodDeclaration.cs
│ │ ├── EventDeclaration.cs
│ │ └── MemberDeclaration.cs
│ ├── Context/
│ │ ├── ContextDeclaration.cs
│ │ ├── ContextGenerator.ComponentIndex.cs
│ │ ├── ContextGenerator.Context.cs
│ │ ├── ContextGenerator.Entity.cs
│ │ ├── ContextGenerator.Matcher.cs
│ │ └── ContextGenerator.cs
│ ├── Entitas.Generators.csproj
│ ├── Entitas.Generators.csproj.DotSettings
│ ├── EntitasAnalyzerConfigOptions.cs
│ └── Templates.cs
├── samples/
│ └── Unity/
│ ├── .editorconfig
│ ├── Assets/
│ │ ├── Plugins.meta
│ │ ├── Sample/
│ │ │ ├── Editor/
│ │ │ │ ├── CustomObjectDrawer.cs
│ │ │ │ ├── CustomObjectDrawer.cs.meta
│ │ │ │ ├── PersonComponentDrawer.cs
│ │ │ │ └── PersonComponentDrawer.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── Runtime/
│ │ │ │ ├── Components/
│ │ │ │ │ ├── MyArray2DComponent.cs
│ │ │ │ │ ├── MyArray2DComponent.cs.meta
│ │ │ │ │ ├── MyArray3DComponent.cs
│ │ │ │ │ ├── MyArray3DComponent.cs.meta
│ │ │ │ │ ├── MyArrayComponent.cs
│ │ │ │ │ ├── MyArrayComponent.cs.meta
│ │ │ │ │ ├── MyCharComponent.cs
│ │ │ │ │ ├── MyCharComponent.cs.meta
│ │ │ │ │ ├── MyCustomObjectComponent.cs
│ │ │ │ │ ├── MyCustomObjectComponent.cs.meta
│ │ │ │ │ ├── MyDateTimeComponent.cs
│ │ │ │ │ ├── MyDateTimeComponent.cs.meta
│ │ │ │ │ ├── MyDictArrayComponent.cs
│ │ │ │ │ ├── MyDictArrayComponent.cs.meta
│ │ │ │ │ ├── MyDictionaryComponent.cs
│ │ │ │ │ ├── MyDictionaryComponent.cs.meta
│ │ │ │ │ ├── MyDontDrawComponent.cs
│ │ │ │ │ ├── MyDontDrawComponent.cs.meta
│ │ │ │ │ ├── MyFlagComponent.cs
│ │ │ │ │ ├── MyFlagComponent.cs.meta
│ │ │ │ │ ├── MyHashSetComponent.cs
│ │ │ │ │ ├── MyHashSetComponent.cs.meta
│ │ │ │ │ ├── MyJaggedArrayComponent.cs
│ │ │ │ │ ├── MyJaggedArrayComponent.cs.meta
│ │ │ │ │ ├── MyListArrayComponent.cs
│ │ │ │ │ ├── MyListArrayComponent.cs.meta
│ │ │ │ │ ├── MyListComponent.cs
│ │ │ │ │ ├── MyListComponent.cs.meta
│ │ │ │ │ ├── MyMemberListComponent.cs
│ │ │ │ │ ├── MyMemberListComponent.cs.meta
│ │ │ │ │ ├── MyMonoBehaviourSubClassComponent.cs
│ │ │ │ │ ├── MyMonoBehaviourSubClassComponent.cs.meta
│ │ │ │ │ ├── MyPersonComponent.cs
│ │ │ │ │ ├── MyPersonComponent.cs.meta
│ │ │ │ │ ├── MyPropertyComponent.cs
│ │ │ │ │ ├── MyPropertyComponent.cs.meta
│ │ │ │ │ ├── MySimpleObjectComponent.cs
│ │ │ │ │ ├── MySimpleObjectComponent.cs.meta
│ │ │ │ │ ├── MySystemObjectComponent.cs
│ │ │ │ │ ├── MySystemObjectComponent.cs.meta
│ │ │ │ │ ├── MyUniqueComponent.cs
│ │ │ │ │ ├── MyUniqueComponent.cs.meta
│ │ │ │ │ ├── MyUnsupportedObjectComponent.cs
│ │ │ │ │ ├── MyUnsupportedObjectComponent.cs.meta
│ │ │ │ │ ├── UnityBuiltInTypes/
│ │ │ │ │ │ ├── MyAnimationCurveComponent.cs
│ │ │ │ │ │ ├── MyAnimationCurveComponent.cs.meta
│ │ │ │ │ │ ├── MyBoolComponent.cs
│ │ │ │ │ │ ├── MyBoolComponent.cs.meta
│ │ │ │ │ │ ├── MyBoundsComponent.cs
│ │ │ │ │ │ ├── MyBoundsComponent.cs.meta
│ │ │ │ │ │ ├── MyColorComponent.cs
│ │ │ │ │ │ ├── MyColorComponent.cs.meta
│ │ │ │ │ │ ├── MyDoubleComponent.cs
│ │ │ │ │ │ ├── MyDoubleComponent.cs.meta
│ │ │ │ │ │ ├── MyEnumComponent.cs
│ │ │ │ │ │ ├── MyEnumComponent.cs.meta
│ │ │ │ │ │ ├── MyFlagsComponent.cs
│ │ │ │ │ │ ├── MyFlagsComponent.cs.meta
│ │ │ │ │ │ ├── MyFloatComponent.cs
│ │ │ │ │ │ ├── MyFloatComponent.cs.meta
│ │ │ │ │ │ ├── MyGameObjectComponent.cs
│ │ │ │ │ │ ├── MyGameObjectComponent.cs.meta
│ │ │ │ │ │ ├── MyIntComponent.cs
│ │ │ │ │ │ ├── MyIntComponent.cs.meta
│ │ │ │ │ │ ├── MyRectComponent.cs
│ │ │ │ │ │ ├── MyRectComponent.cs.meta
│ │ │ │ │ │ ├── MyStringComponent.cs
│ │ │ │ │ │ ├── MyStringComponent.cs.meta
│ │ │ │ │ │ ├── MyTexture2DComponent.cs
│ │ │ │ │ │ ├── MyTexture2DComponent.cs.meta
│ │ │ │ │ │ ├── MyTextureComponent.cs
│ │ │ │ │ │ ├── MyTextureComponent.cs.meta
│ │ │ │ │ │ ├── MyUnityObjectComponent.cs
│ │ │ │ │ │ ├── MyUnityObjectComponent.cs.meta
│ │ │ │ │ │ ├── MyVector2Component.cs
│ │ │ │ │ │ ├── MyVector2Component.cs.meta
│ │ │ │ │ │ ├── MyVector3Component.cs
│ │ │ │ │ │ ├── MyVector3Component.cs.meta
│ │ │ │ │ │ ├── MyVector4Component.cs
│ │ │ │ │ │ └── MyVector4Component.cs.meta
│ │ │ │ │ └── UnityBuiltInTypes.meta
│ │ │ │ ├── Components Scene.unity
│ │ │ │ ├── Components Scene.unity.meta
│ │ │ │ ├── Components.meta
│ │ │ │ ├── ComponentsController.cs
│ │ │ │ ├── ComponentsController.cs.meta
│ │ │ │ ├── Contexts/
│ │ │ │ │ ├── ContextInitialization.cs
│ │ │ │ │ ├── ContextInitialization.cs.meta
│ │ │ │ │ ├── GameContext.cs
│ │ │ │ │ ├── GameContext.cs.meta
│ │ │ │ │ ├── InputContext.cs
│ │ │ │ │ └── InputContext.cs.meta
│ │ │ │ ├── Contexts.meta
│ │ │ │ ├── Systems/
│ │ │ │ │ ├── AReactiveSystem.cs
│ │ │ │ │ ├── AReactiveSystem.cs.meta
│ │ │ │ │ ├── CleanupSystem.cs
│ │ │ │ │ ├── CleanupSystem.cs.meta
│ │ │ │ │ ├── FastSystem.cs
│ │ │ │ │ ├── FastSystem.cs.meta
│ │ │ │ │ ├── MixedSystem.cs
│ │ │ │ │ ├── MixedSystem.cs.meta
│ │ │ │ │ ├── ProcessRandomValueSystem.cs
│ │ │ │ │ ├── ProcessRandomValueSystem.cs.meta
│ │ │ │ │ ├── RandomDurationSystem.cs
│ │ │ │ │ ├── RandomDurationSystem.cs.meta
│ │ │ │ │ ├── RandomValueSystem.cs
│ │ │ │ │ ├── RandomValueSystem.cs.meta
│ │ │ │ │ ├── SlowInitializeExecuteSystem.cs
│ │ │ │ │ ├── SlowInitializeExecuteSystem.cs.meta
│ │ │ │ │ ├── SlowInitializeSystem.cs
│ │ │ │ │ ├── SlowInitializeSystem.cs.meta
│ │ │ │ │ ├── SlowSystem.cs
│ │ │ │ │ ├── SlowSystem.cs.meta
│ │ │ │ │ ├── SomeExecuteSystem.cs
│ │ │ │ │ ├── SomeExecuteSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeExecuteSystem.cs
│ │ │ │ │ ├── SomeInitializeExecuteSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeReactiveSystem.cs
│ │ │ │ │ ├── SomeInitializeReactiveSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeSystem.cs
│ │ │ │ │ ├── SomeInitializeSystem.cs.meta
│ │ │ │ │ ├── SomeReactiveSystem.cs
│ │ │ │ │ ├── SomeReactiveSystem.cs.meta
│ │ │ │ │ ├── TearDownSystem.cs
│ │ │ │ │ └── TearDownSystem.cs.meta
│ │ │ │ ├── Systems Scene.unity
│ │ │ │ ├── Systems Scene.unity.meta
│ │ │ │ ├── Systems.meta
│ │ │ │ ├── SystemsController.cs
│ │ │ │ └── SystemsController.cs.meta
│ │ │ ├── Runtime.meta
│ │ │ ├── Tests/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── ContextTests.cs
│ │ │ │ │ │ ├── ContextTests.cs.meta
│ │ │ │ │ │ ├── EntityLinkTests.cs
│ │ │ │ │ │ └── EntityLinkTests.cs.meta
│ │ │ │ │ └── Tests.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Manual Tests/
│ │ │ │ │ ├── Collector Destructor/
│ │ │ │ │ │ ├── Collector Destructor.unity
│ │ │ │ │ │ ├── Collector Destructor.unity.meta
│ │ │ │ │ │ ├── CollectorDestructorController.cs
│ │ │ │ │ │ └── CollectorDestructorController.cs.meta
│ │ │ │ │ ├── Collector Destructor.meta
│ │ │ │ │ ├── Entity Stress Test/
│ │ │ │ │ │ ├── Entity Stress Test Scene.unity
│ │ │ │ │ │ ├── Entity Stress Test Scene.unity.meta
│ │ │ │ │ │ ├── EntityStressTestController.cs
│ │ │ │ │ │ └── EntityStressTestController.cs.meta
│ │ │ │ │ ├── Entity Stress Test.meta
│ │ │ │ │ ├── EntityLink/
│ │ │ │ │ │ ├── EntityLink Scene.unity
│ │ │ │ │ │ ├── EntityLink Scene.unity.meta
│ │ │ │ │ │ ├── EntityLinkController.cs
│ │ │ │ │ │ └── EntityLinkController.cs.meta
│ │ │ │ │ ├── EntityLink.meta
│ │ │ │ │ ├── Fixtures/
│ │ │ │ │ │ ├── TestComponent.cs
│ │ │ │ │ │ ├── TestComponent.cs.meta
│ │ │ │ │ │ ├── TestReactiveSystem.cs
│ │ │ │ │ │ └── TestReactiveSystem.cs.meta
│ │ │ │ │ ├── Fixtures.meta
│ │ │ │ │ ├── Group Alloc/
│ │ │ │ │ │ ├── Group Alloc Scene.unity
│ │ │ │ │ │ ├── Group Alloc Scene.unity.meta
│ │ │ │ │ │ ├── GroupAllocController.cs
│ │ │ │ │ │ └── GroupAllocController.cs.meta
│ │ │ │ │ ├── Group Alloc.meta
│ │ │ │ │ ├── Reactive System Exception/
│ │ │ │ │ │ ├── Reactive System Exception Scene.unity
│ │ │ │ │ │ ├── Reactive System Exception Scene.unity.meta
│ │ │ │ │ │ ├── ReactiveSystemExceptionController.cs
│ │ │ │ │ │ └── ReactiveSystemExceptionController.cs.meta
│ │ │ │ │ ├── Reactive System Exception.meta
│ │ │ │ │ ├── ReactiveSystem Destructor/
│ │ │ │ │ │ ├── ReactiveSystem Destructor.unity
│ │ │ │ │ │ ├── ReactiveSystem Destructor.unity.meta
│ │ │ │ │ │ ├── ReactiveSystemDestructorController.cs
│ │ │ │ │ │ └── ReactiveSystemDestructorController.cs.meta
│ │ │ │ │ └── ReactiveSystem Destructor.meta
│ │ │ │ └── Manual Tests.meta
│ │ │ └── Tests.meta
│ │ └── Sample.meta
│ ├── Entitas.properties
│ ├── Jenny.properties
│ ├── Packages/
│ │ ├── manifest.json
│ │ └── packages-lock.json
│ ├── ProjectSettings/
│ │ ├── AudioManager.asset
│ │ ├── ClusterInputManager.asset
│ │ ├── DynamicsManager.asset
│ │ ├── EditorBuildSettings.asset
│ │ ├── EditorSettings.asset
│ │ ├── GraphicsSettings.asset
│ │ ├── InputManager.asset
│ │ ├── MemorySettings.asset
│ │ ├── NavMeshAreas.asset
│ │ ├── PackageManagerSettings.asset
│ │ ├── Physics2DSettings.asset
│ │ ├── PresetManager.asset
│ │ ├── ProjectSettings.asset
│ │ ├── ProjectVersion.txt
│ │ ├── QualitySettings.asset
│ │ ├── TagManager.asset
│ │ ├── TimeManager.asset
│ │ ├── UnityConnectSettings.asset
│ │ ├── VFXManager.asset
│ │ ├── VersionControlSettings.asset
│ │ └── XRSettings.asset
│ └── restore_unity.bash
├── src/
│ ├── Entitas/
│ │ ├── Collector/
│ │ │ ├── Collector.cs
│ │ │ ├── CollectorContextExtension.cs
│ │ │ ├── CollectorException.cs
│ │ │ ├── ICollector.cs
│ │ │ ├── TriggerOnEvent.cs
│ │ │ └── TriggerOnEventMatcherExtension.cs
│ │ ├── Context/
│ │ │ ├── Context.cs
│ │ │ ├── ContextInfo.cs
│ │ │ ├── Exceptions/
│ │ │ │ ├── ContextDoesNotContainEntityException.cs
│ │ │ │ ├── ContextEntityIndexDoesAlreadyExistException.cs
│ │ │ │ ├── ContextEntityIndexDoesNotExistException.cs
│ │ │ │ ├── ContextInfoException.cs
│ │ │ │ ├── ContextStillHasRetainedEntitiesException.cs
│ │ │ │ └── EntityIsNotDestroyedException.cs
│ │ │ └── IContext.cs
│ │ ├── Entitas.csproj
│ │ ├── Entitas.csproj.DotSettings
│ │ ├── EntitasException.cs
│ │ ├── Entity/
│ │ │ ├── Entity.cs
│ │ │ ├── EntityEqualityComparer.cs
│ │ │ ├── Exceptions/
│ │ │ │ ├── EntityAlreadyHasComponentException.cs
│ │ │ │ ├── EntityDoesNotHaveComponentException.cs
│ │ │ │ ├── EntityIsAlreadyRetainedByOwnerException.cs
│ │ │ │ ├── EntityIsNotEnabledException.cs
│ │ │ │ └── EntityIsNotRetainedByOwnerException.cs
│ │ │ ├── IAERC.cs
│ │ │ ├── SafeAERC.cs
│ │ │ └── UnsafeAERC.cs
│ │ ├── EntityIndex/
│ │ │ ├── AbstractEntityIndex.cs
│ │ │ ├── EntityIndex.cs
│ │ │ ├── EntityIndexException.cs
│ │ │ ├── IEntityIndex.cs
│ │ │ └── PrimaryEntityIndex.cs
│ │ ├── Extensions/
│ │ │ ├── CollectionExtension.cs
│ │ │ └── EntitasStringExtension.cs
│ │ ├── Group/
│ │ │ ├── Group.cs
│ │ │ ├── GroupEvent.cs
│ │ │ ├── GroupExtension.cs
│ │ │ ├── GroupSingleEntityException.cs
│ │ │ └── IGroup.cs
│ │ ├── IComponent.cs
│ │ ├── Matcher/
│ │ │ ├── Interfaces/
│ │ │ │ ├── IAllOfMatcher.cs
│ │ │ │ ├── IAnyOfMatcher.cs
│ │ │ │ ├── ICompoundMatcher.cs
│ │ │ │ ├── IMatcher.cs
│ │ │ │ └── INoneOfMatcher.cs
│ │ │ ├── Matcher.cs
│ │ │ ├── MatcherEquals.cs
│ │ │ ├── MatcherException.cs
│ │ │ ├── MatcherStatic.cs
│ │ │ └── MatcherToString.cs
│ │ └── Systems/
│ │ ├── Interfaces/
│ │ │ ├── ICleanupSystem.cs
│ │ │ ├── IExecuteSystem.cs
│ │ │ ├── IInitializeSystem.cs
│ │ │ ├── IReactiveSystem.cs
│ │ │ ├── ISystem.cs
│ │ │ └── ITearDownSystem.cs
│ │ ├── ParallelSystem.cs
│ │ ├── ReactiveSystem.cs
│ │ └── Systems.cs
│ ├── Entitas.Generators.Attributes/
│ │ ├── CleanupAttribute.cs
│ │ ├── ContextAttribute.cs
│ │ ├── ContextInitializationAttribute.cs
│ │ ├── Entitas.Generators.Attributes.csproj
│ │ ├── EntityIndexAttribute.cs
│ │ ├── EventAttribute.cs
│ │ └── UniqueAttribute.cs
│ ├── Entitas.Unity/
│ │ ├── ContextObserver/
│ │ │ ├── ContextObserverBehaviour.cs
│ │ │ └── ContextObserverExtension.cs
│ │ ├── DebugSystems/
│ │ │ ├── AvgResetInterval.cs
│ │ │ ├── DebugSystems.cs
│ │ │ ├── DebugSystemsBehaviour.cs
│ │ │ ├── Feature.cs
│ │ │ ├── SystemInfo.cs
│ │ │ └── SystemInterfaceFlags.cs
│ │ ├── Entitas.Unity.csproj
│ │ ├── Entitas.Unity.csproj.DotSettings
│ │ └── Entity/
│ │ ├── DontDrawComponentAttribute.cs
│ │ ├── EntityBehaviour.cs
│ │ └── EntityLink.cs
│ └── Entitas.Unity.Editor/
│ ├── ContextObserverEditor.cs
│ ├── DebugSystemsEditor.cs
│ ├── DefaultInstanceCreator/
│ │ ├── DefaultArrayCreator.cs
│ │ ├── DefaultStringCreator.cs
│ │ └── IDefaultInstanceCreator.cs
│ ├── Entitas.Unity.Editor.csproj
│ ├── Entitas.Unity.Editor.csproj.DotSettings
│ ├── EntitasHierarchyIcon.cs
│ ├── EntitasMenuItems.cs
│ ├── EntitasSettings.cs
│ ├── EntityDrawer.cs
│ ├── EntityDrawerState.cs
│ ├── EntityEditor.cs
│ ├── EntityLinkEditor.cs
│ ├── IComponentDrawer.cs
│ ├── Images/
│ │ ├── EntitasContextErrorHierarchyIcon.png.meta
│ │ ├── EntitasContextHierarchyIcon.png.meta
│ │ ├── EntitasEntityErrorHierarchyIcon.png.meta
│ │ ├── EntitasEntityHierarchyIcon.png.meta
│ │ ├── EntitasEntityLinkHierarchyIcon.png.meta
│ │ ├── EntitasEntityLinkWarnHierarchyIcon.png.meta
│ │ ├── EntitasHeader.png.meta
│ │ ├── EntitasSystemsHierarchyIcon.png.meta
│ │ └── EntitasSystemsWarnHierarchyIcon.png.meta
│ └── TypeDrawer/
│ ├── AnimationCurveTypeDrawer.cs
│ ├── ArrayTypeDrawer.cs
│ ├── BoolTypeDrawer.cs
│ ├── BoundsTypeDrawer.cs
│ ├── CharTypeDrawer.cs
│ ├── ColorTypeDrawer.cs
│ ├── DateTimeTypeDrawer.cs
│ ├── DictionaryTypeDrawer.cs
│ ├── DoubleTypeDrawer.cs
│ ├── EnumTypeDrawer.cs
│ ├── FloatTypeDrawer.cs
│ ├── HashSetTypeDrawer.cs
│ ├── ITypeDrawer.cs
│ ├── IntTypeDrawer.cs
│ ├── ListTypeDrawer.cs
│ ├── RectTypeDrawer.cs
│ ├── StringTypeDrawer.cs
│ ├── UnityObjectTypeDrawer.cs
│ ├── Vector2TypeDrawer.cs
│ ├── Vector3TypeDrawer.cs
│ └── Vector4TypeDrawer.cs
└── tests/
├── Entitas.Generators.IntegrationTests/
│ ├── AnyFlagComponentAddedTests.cs
│ ├── AnyFlagComponentRemovedTests.cs
│ ├── CleanupSystemTests.cs
│ ├── CleanupSystemsTests.cs
│ ├── ComponentIndexTests.cs
│ ├── ContextExtensionTests.cs
│ ├── ContextInitialization.cs
│ ├── ContextTests.cs
│ ├── Entitas.Generators.IntegrationTests.csproj
│ ├── EntityExtensionTests.cs
│ ├── EntityIndexExtensionTests.cs
│ ├── EntityIndexTests.cs
│ ├── EntityTests.cs
│ ├── EventSystemsTests.cs
│ ├── FlagComponentAddedTests.cs
│ ├── FlagComponentRemovedTests.cs
│ ├── ListenerEventEntityExtensionTests.cs
│ ├── MatcherTests.cs
│ └── fixtures/
│ ├── EmptyContext.cs
│ ├── LoadingComponent.cs
│ ├── MainContext.cs
│ ├── OtherContext.cs
│ └── UserComponent.cs
├── Entitas.Generators.Tests/
│ ├── ComponentGeneratorTests.cs
│ ├── ContextGeneratorTests.cs
│ ├── Entitas.Generators.Tests.csproj
│ ├── ModuleInitializer.cs
│ ├── TestHelper.cs
│ ├── fixtures/
│ │ ├── Components/
│ │ │ ├── CleanupDestroyEntityComponent.cs
│ │ │ ├── CleanupDestroyEntityNamespacedComponent.cs
│ │ │ ├── CleanupRemoveComponent.cs
│ │ │ ├── CleanupRemoveNamespacedComponent.cs
│ │ │ ├── ComplexTypesComponent.cs
│ │ │ ├── ContextFromDifferentAssemblyNamespacedComponent.cs
│ │ │ ├── DuplicatedContextsNamespacedComponent.cs
│ │ │ ├── EntityIndexComponent.cs
│ │ │ ├── EntityIndexNamespacedComponent.cs
│ │ │ ├── EventComponent.cs
│ │ │ ├── EventNamespacedComponent.cs
│ │ │ ├── FlagEventComponent.cs
│ │ │ ├── FlagEventNamespacedComponent.cs
│ │ │ ├── MultipleFieldsComponent.cs
│ │ │ ├── MultipleFieldsNamespacedComponent.cs
│ │ │ ├── MultiplePropertiesNamespacedComponent.cs
│ │ │ ├── NoContextComponent.cs
│ │ │ ├── NoValidFieldsNamespacedComponent.cs
│ │ │ ├── NonPublicComponent.cs
│ │ │ ├── OneFieldComponent.cs
│ │ │ ├── OneFieldNamespacedComponent.cs
│ │ │ ├── PrimaryEntityIndexComponent.cs
│ │ │ ├── PrimaryEntityIndexNamespacedComponent.cs
│ │ │ ├── ReservedKeywordFieldsNamespacedComponent.cs
│ │ │ ├── SomeComponent.cs
│ │ │ ├── SomeNamespacedComponent.cs
│ │ │ ├── UniqueNamespacedComponent.cs
│ │ │ └── UniqueOneFieldNamespacedComponent.cs
│ │ ├── Contexts/
│ │ │ ├── ContextInitialization.txt
│ │ │ ├── ContextInitializationFromDifferentAssembly.txt
│ │ │ ├── EmptyContextInitialization.txt
│ │ │ ├── NamespacedContext.txt
│ │ │ └── SomeContext.txt
│ │ ├── FakeGenerated/
│ │ │ ├── ContextInitialization.cs
│ │ │ ├── MainContext.cs
│ │ │ └── MyApp.Main.Entity.cs
│ │ ├── SomeClass.cs
│ │ └── SomeNamespacedClass.cs
│ ├── remove-snapshots.bash
│ ├── snapshots/
│ │ ├── ComponentGeneratorTests.CleanupDestroyEntityComponent#DestroyMyAppMainCleanupDestroyEntityCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupDestroyEntityNamespacedComponent#MyFeature.DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupRemoveComponent#RemoveMyAppMainCleanupRemoveCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupRemoveNamespacedComponent#MyFeature.RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupSystems#MyApp.MainContextCleanupSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ComplexTypesComponent#MyFeature.MyAppMainComplexTypesEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeComponentIndex.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeMatcher.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextFromDifferentAssemblyNamespacedComponent#MyFeature.MyAppLibraryContextFromDifferentAssemblyNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextInitializationFromDifferentAssembly#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.DuplicatedContextsNamespacedComponent#MyFeature.MyAppMainDuplicatedContextsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.EmptyContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.EntityIndexes#MyApp.MainContextEntityIndexExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainAnyEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainAnyEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventSystems#MyApp.MainContextEventSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultipleFieldsComponent#MyAppMainMultipleFieldsEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultipleFieldsNamespacedComponent#MyFeature.MyAppMainMultipleFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultiplePropertiesNamespacedComponent#MyFeature.MyAppMainMultiplePropertiesNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedComponentIndex.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedMatcher.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoCleanupSystems#EmptyContextCleanupSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoEntityIndexes#EmptyContextEntityIndexExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoEventSystems#EmptyContextEventSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoValidFieldsNamespacedComponent#MyFeature.MyAppMainNoValidFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.OneFieldComponent#MyAppMainOneFieldEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.OneFieldNamespacedComponent#MyFeature.MyAppMainOneFieldNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ReservedKeywordFieldsNamespacedComponent#MyFeature.MyAppMainReservedKeywordFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.UniqueNamespacedComponent#MyFeature.MyAppMainUniqueNamespacedContextExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.UniqueOneFieldNamespacedComponent#MyFeature.MyAppMainUniqueOneFieldNamespacedContextExtension.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.ComponentIndex.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Entity.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Matcher.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.NamespacedContext.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.ComponentIndex.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.Entity.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.Matcher.g.verified.cs
│ │ └── ContextGeneratorTests.SomeContext#SomeContext.g.verified.cs
│ └── snapshots-to-delete.txt
├── Entitas.Generators.Tests.Fixtures.Dependencies/
│ ├── CollisionComponent.cs
│ ├── ContextInitialization.cs
│ ├── Entitas.Generators.Tests.Fixtures.Dependencies.csproj
│ ├── HealthComponent.cs
│ ├── LibraryContext.cs
│ └── MyApp.Library.Entity.cs
├── Entitas.Tests/
│ ├── CollectorTests.cs
│ ├── ContextInfoTests.cs
│ ├── ContextTests.cs
│ ├── Entitas.Tests.csproj
│ ├── EntitasErrorMessagesTests.cs
│ ├── EntitasExceptionTests.cs
│ ├── EntitasStringExtension.cs
│ ├── EntityIndexTests.cs
│ ├── EntityTests.cs
│ ├── GroupTests.cs
│ ├── MatcherTests.cs
│ ├── ParallelSystemTests.cs
│ ├── PrimaryEntityIndexTests.cs
│ ├── ReactiveSystemTests.cs
│ ├── SystemsTests.cs
│ └── fixtures/
│ ├── Components.cs
│ ├── Contexts.cs
│ ├── Systems/
│ │ ├── CleanupSystemSpy.cs
│ │ ├── ExecuteSystemSpy.cs
│ │ ├── InitializeSystemSpy.cs
│ │ ├── ReactiveSystemSpy.cs
│ │ ├── TearDownSystemSpy.cs
│ │ └── TestParallelSystem.cs
│ └── UserComponent.cs
└── Entitas.Unity.Tests/
├── Entitas.Unity.Tests.csproj
├── SystemInfoTests.cs
└── fixtures/
├── TestCleanupSystem.cs
├── TestExecuteSystem.cs
├── TestInitializeSystem.cs
├── TestReactiveSystem.cs
└── TestTearDownSystem.cs
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
tab_width = 4
trim_trailing_whitespace = true
[*.sln]
indent_style = tab
[*.csproj]
indent_size = 2
ij_xml_space_inside_empty_tag = true
[*.DotSettings]
indent_style = tab
ij_xml_attribute_wrap = off
[*.yml]
indent_size = 2
# [*.cs]
# entitas_generator.component.cleanup_systems = false
# entitas_generator.component.component_index = false
# entitas_generator.component.context_extension = false
# entitas_generator.component.context_initialization_method = false
# entitas_generator.component.entity_extension = false
# entitas_generator.component.entity_index_extension = false
# entitas_generator.component.events = false
# entitas_generator.component.event_systems_extension = false
# entitas_generator.component.matcher = false
#
# entitas_generator.context.component_index = false
# entitas_generator.context.context = false
# entitas_generator.context.entity = false
# entitas_generator.context.matcher = false
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm having issues when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: Question
about: Ask a question and get help from the community
title: ''
labels: ''
assignees: ''
---
**Ask a question**
A clear and concise question. Ex. How to do xyz?
================================================
FILE: .github/workflows/build.yml
================================================
name: Build
on: [ workflow_call, workflow_dispatch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: recursive
- name: "Build"
run: |
dotnet build -c Release \
-p:UnityEditor=/home/runner/work/Entitas/Entitas/unity/Unity-2021.3.0f1/UnityEditor.dll \
-p:UnityEngine=/home/runner/work/Entitas/Entitas/unity/Unity-2021.3.0f1/UnityEngine.dll
- name: "Test"
run: dotnet test -c Release --no-build --collect:"XPlat Code Coverage"
- name: "Publish"
run: dotnet publish -c Release --no-build -p:UseAppHost=false -p:PublishDir=/home/runner/work/Entitas/Entitas/dist/Assemblies
- name: "Upload assemblies"
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.repository.name }} Assemblies
path: dist/Assemblies
- name: "Pack"
run: dotnet pack -c Release --no-build -o dist/NuGet
- name: "Upload packages"
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.repository.name }} NuGet Packages
path: dist/NuGet
- name: "Generate coverage report"
run: |
dotnet tool install -g dotnet-reportgenerator-globaltool
reportgenerator "-assemblyfilters:-Entitas*.Tests*" "-reports:tests/**/TestResults/**/coverage.cobertura.xml" "-targetdir:coverage" "-reporttypes:Html;lcov"
- name: "Upload coverage report"
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.repository.name }} Coverage Report
path: coverage
- name: Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "coverage/lcov.info"
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
uses: sschmid/Entitas/.github/workflows/build.yml@main
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on: workflow_dispatch
jobs:
build:
uses: sschmid/Entitas/.github/workflows/build.yml@main
release:
needs: build
runs-on: ubuntu-latest
steps:
- name: "Download packages"
uses: actions/download-artifact@v3
with:
name: ${{ github.event.repository.name }} NuGet Packages
- name: "Push to NuGet"
run: |
dotnet nuget push "*.nupkg" \
--api-key ${{ secrets.NUGET_API_KEY }} \
--skip-duplicate \
--source https://api.nuget.org/v3/index.json
================================================
FILE: .gitignore
================================================
# OS
.DS_Store
Thumbs.db
# Solution
obj
bin
*.userprefs
*.user
TestResults
# IDEs
.idea
.vs
.vscode
**/Assets/Plugins/Editor/JetBrains
**/Assets/Plugins/Editor/JetBrains.meta
# Unity
Library
Temp
Logs
UserSettings
*.unitypackage
# Custom
*.userproperties
build
samples/Unity/.sln.dotsettings
samples/Unity/*.sln*
samples/Unity/*.csproj
samples/Unity/Assets/Plugins
samples/Unity/Assets/Generated
coverage
dist
================================================
FILE: .gitmodules
================================================
[submodule "unity/Unity-2021.3.0f1"]
path = unity/Unity-2021.3.0f1
url = https://github.com/sschmid/Unity-2021.3.0f1.git
================================================
FILE: .sln.dotsettings/.gitignore
================================================
.DS_Store
Thumbs.db
================================================
FILE: .sln.dotsettings/CodeStyle.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_INTERNAL_MODIFIER/@EntryValue">Implicit</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/DEFAULT_PRIVATE_MODIFIER/@EntryValue">Implicit</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/OBJECT_CREATION_WHEN_TYPE_EVIDENT/@EntryValue">ExplicitlyTyped</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/OBJECT_CREATION_WHEN_TYPE_NOT_EVIDENT/@EntryValue">ExplicitlyTyped</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EMPTY_BLOCK_STYLE/@EntryValue">TOGETHER_SAME_LINE</s:String>
<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_BLANK_LINES_IN_DECLARATIONS/@EntryValue">1</s:Int64>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_EXISTING_ATTRIBUTE_ARRANGEMENT/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/LINE_FEED_AT_FILE_END/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AFTER_TYPECAST_PARENTHESES/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/Naming/CSharpNaming/ApplyAutoDetectedRules/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy></s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
================================================
FILE: .sln.dotsettings/InspectionSettings.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective_002EGlobal/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLabel/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameterInPartialMethod/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedPositionalParameterCompiler/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedTypeParameter/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable_002ECompiler/@EntryIndexedValue">ERROR</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable/@EntryIndexedValue">ERROR</s:String></wpf:ResourceDictionary>
================================================
FILE: .sln.dotsettings/PatternsAndTemplates.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/@KeyIndexDefined">True</s:Boolean>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Applicability/=Live/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Description/@EntryValue">xUnit test</s:String>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Field/=Fails/@KeyIndexDefined">True</s:Boolean>
<s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Field/=Fails/Order/@EntryValue">0</s:Int64>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Reformat/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Scope/=C3001E7C0DA78E4487072B7E050D86C5/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Scope/=C3001E7C0DA78E4487072B7E050D86C5/CustomProperties/=minimumLanguageVersion/@EntryIndexedValue">2.0</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Scope/=C3001E7C0DA78E4487072B7E050D86C5/Type/@EntryValue">InCSharpFile</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Shortcut/@EntryValue">fact</s:String>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/ShortenQualifiedReferences/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F654DC29CBB2734FAFCF41B7244C1C1B/Text/@EntryValue">[Fact]
public void $Fails$()
{
false.Should().BeTrue();$END$
}
</s:String></wpf:ResourceDictionary>
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.14.2] - 2022-11-11
### Other
- Use version ranges for package references in all projects
- Upgrade all NuGet packages
- Restructure project using tests folder
- Use `Version` instead of `PackageVersion`
- Add GitHub actions
### bee
- Upgrade to bee 1.3.1
## [1.14.1] - 2022-09-26
### Entitas
- Add `[ThreadStaticAtribute]` at static fields for multi-threaded game servers #919
### Entitas.CodeGeneration.Plugins
- Revert "Remove CodeDom" to support reserved C# keywords in component names #1032
- Update jenny standalone checks to test for `Jenny.Generator.Cli` namespace
### Entitas.VisualDebugging.Unity
- Fix entities order in visual debugging #1027
- Create `Entitas.properties` with all required keys #1031
- Set default systemWarningThreshold if `Entitas.properties` doesn't exists #1031
### Entitas.VisualDebugging.CodeGeneration.Plugins
- Prevent #963: Extend generator with adding debug log of exception when registering observers
### DesperateDevs
- See [CHANGELOG.md](https://github.com/sschmid/DesperateDevs/blob/main/CHANGELOG.md#2022-09-27)
### Other
- Move projects from `Addons` to `src` folder
- Remove top-level folder in projects
- Convert concatenation to interpolation
- Migrate unit tests from nspec to xunit
- Remove travis.yml
- Remove old Tests project
- Remove PerformanceTests
- Move Entitas.VisualDebugging.* to Entitas.Unity solution folder
- Add `Entitas.CodeGeneration.Program` project
- Apply formatting and syntax updates to Entitas
- Update Desperate Devs packages
- Update packages
### bee
- Upgrade to bee 1.2.0
- Add `entitas::new`
- Add `entitas::new_benchmark`
- Add `entitas::nuget`
- Add `entitas::nuget_local`
- Add `entitas::publish`
## [1.14.0] - 2022-09-02
### Notes
- Rename the repository to Entitas: https://github.com/sschmid/Entitas
- Desperate Devs 1.0 is now open-source. Please find changes and upgrade guides here: [CHANGELOG.md](https://github.com/sschmid/DesperateDevs/blob/main/CHANGELOG.md)
- Started migration to a modern SDK-style project structure using [.NET project SDKs](https://docs.microsoft.com/en-us/dotnet/core/project-sdk/overview)
- All projects have been updated to `.NET 6.0` and `.NET Standard 2.1`.
- `Entitas.Roslyn.CodeGeneration.Plugins` is now open-source and part of this Entitas repository
- `main` is new default branch and `master` is obsolete
### Upgrade
- Rename `CodeGeneratorExtentions` to `CodeGeneratorExtensions`
- Update `Jenny.properties` and rename to `Entitas.CodeGeneration.Plugins.EventListenerInterfaceGenerator`
- `mono Jenny/Jenny.exe` is obsolete. Use `dotnet Jenny/Jenny.Generator.Cli.dll` (requires dotnet)
- Run `dotnet Jenny/Jenny.Generator.Cli.dll auto-import -s` and follow instructions
- Consider using at least these search paths in `Jenny.properties`:
```
Jenny.SearchPaths = Jenny/Plugins/Entitas, \
Jenny/Plugins/Jenny, \
Assets/Entitas
```
- Some keys in `Jenny.properties` have changed due to renamed namespaces:
```
Jenny.SearchPaths
Jenny.Plugins
Jenny.PreProcessors
Jenny.DataProviders
Jenny.CodeGenerators
Jenny.PostProcessors
Jenny.Server.Port
Jenny.Client.Host
Jenny.Plugins.ProjectPath
Jenny.Plugins.TargetDirectory
```
- For reference, see [Match-One Jenny.properties](https://github.com/sschmid/Match-One/blob/main/Jenny.properties)
- Generate using `dotnet Jenny/Jenny.Generator.Cli.dll gen`
### Entitas
- Add `systems.Remove()`
### Entitas.CodeGeneration.Plugins
- Fix typo in `CodeGeneratorExtensions`
- Fix typo in `EventListenerInterfaceGenerator`
- Remove CodeDom
### Entitas.Unity.Editor
- Link chat to [Entitas Discord](https://discord.gg/uHrVx5Z)
### Other
- Use Desperate Devs 1.0.0
- Use nuget and delete dependencies
- Remove docs
- Remove doxygen
- Remove tree
### bee
- Migrate to bee 1.1.0
- Remove generated folder from VisualDebugging project
## [1.13.0] - 2019-02-20
### Added
- Update roslyn
- Update hierarchy icons
### Changed
- Change Preferences minified and doubleQuoteMode api
### Fixed
- Fix hierarchy icon null warning
## [1.12.2] - 2018-12-15
### Fixed
- Fix EntityLinkHierarchyIcon #843
## [1.12.1] - 2018-12-09
### Added
- Fix Jenny.exe load default `Jenny.properties` when not specified
## [1.12.0] - 2018-12-09
### Added
- Add Preferences require concrete properties path
- Add CodeGeneratorPreferencesWindow
- Add EntitasEntityLinkHierarchyIcon
### Changed
- Move Jenny Unity Preferences to its own editor window `Tools/Jenny/Preferences...`
### Removed
- Remove EntitasCache
### Upgrade
- Jenny has been decoupled from Entitas even more
- Jenny now stores its config in Jenny.properties by default
- Entitas now stores its config in Entitas.properties by default
- Please split Preferences.properties into Entitas.properties and Jenny.properties or delete them to automatically create new default files
## [1.11.0] - 2018-11-19
### Added
- Add support for multiple event attributes with different event target #810
### Upgrade
- All listener interfaces with `EventTarget.Any` need to be renamed
- `IPositionListener` -> `IAnyPositionListener`
- `OnPosition` -> `OnAnyPosition`
## [1.10.0] - 2018-11-14
### Changed
- Remove IContext from EntityLink.Link() method signature
### Upgrade
- Remove IContext from EntityLink.Link() method signature
## [1.9.2] - 2018-11-04
### Added
- Hotfix for Unity Asset Store missing mono hosted msbuild
## [1.9.1] - 2018-11-03
### Added
- Fix MultiReactive system retaining entities multiple times #818
## [1.9.0] - 2018-11-03
### Added
- Optimize generated code #780
- This increases entity and component creation performance
- Optimize Visual Debugging performance #799
- This increases the performance especially when having thousands of entities
- Generate XML documentation #792
- This will show documentation in the IDE
- Using latest [bee](https://github.com/sschmid/bee)
### Changed
- Context ctor signature changed. Generate to fix compiler errors.
If you don't use the [Entitas.Roslyn plugins](http://u3d.as/NuJ) from the Unity Asset Store,
you have to manually fix the affected generated context classes. E.g. `Generated/Game/GameContext.cs`,
add `() => new GameEntity()` as a last argument
```csharp
public sealed partial class GameContext : Entitas.Context<GameEntity> {
public GameContext()
: base(
GameComponentsLookup.TotalComponents,
0,
new Entitas.ContextInfo(
"Game",
GameComponentsLookup.componentNames,
GameComponentsLookup.componentTypes
),
(entity) =>
#if (ENTITAS_FAST_AND_UNSAFE)
new Entitas.UnsafeAERC(),
#else
new Entitas.SafeAERC(entity),
#endif
() => new GameEntity() // <---------- update here
) {
}
}
```
- Release retained entities when ReactiveSystem.Execute() has an exception #812
- This fixes spamming the Unity console with error messages
# 1.8.2
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
http://u3d.as/NuJ
### Entitas
⚙️ Add "@" in front of component name if it is a C# keyword #744 #756 @roygear
⚙️ Added convenience ctor to JobSystem to use all available threads on the device
⚙️ JobSystem.Execute() is now virtual
### Jenny
🛠 Fixed delays when running `jenny server`
🆕 `jenny wiz` beta. Running Jenny.exe without args will automatically run `jenny wiz`
🆕 `jenny help` aka man page
Jenny Wizard is wip. If you have feedback or feature request, please add a comment here
https://github.com/sschmid/Entitas/issues/778
# 1.8.1
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
⚙️ Add "@" in front of component name if it is a C# keyword #744 #756 @roygear
⚙️ Added convenience ctor to JobSystem to use all available threads on the device
⚙️ JobSystem.Execute() is now virtual
### Jenny
🛠 Fixed delays when running `jenny server`
🆕 `jenny wiz` beta. Running Jenny.exe without args will automatically run `jenny wiz`
🆕 `jenny help` aka man page
Jenny Wizard is wip. If you have feedback or feature request, please add a comment here
https://github.com/sschmid/Entitas/issues/778
# 1.8.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
⚙️ Enabled [Event] for non components #743
⚠️ Renamed `CustomComponentNameAttribute` to `ComponentNameAttribute`
### Jenny
⚙️ Added more logs to `gen` command
```csharp
Generating using /Users/sschmid/Dev/C#/Half-life3/Jenny.properties
Generating done (13220 files in 4 seconds)
```
⚙️ Added group to ICommand to support grouped usage overview
### Asset Store Version
# 1.7.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Visual Debugging
⚙️ StringTypeDrawer now uses EditorGUILayout.DelayedTextField
### Code Generator
🆕 Added CleanupAttribute
⚠️ Renamed `UniquePrefixAttribute` to `FlagPrefixAttribute`
### Asset Store Version
🆕 Cleanup Data Providers and Code Generators
Instead of manually writing custom systems to remove components or destroy
entities, you can now use the new `[Cleanup]` attribute to automatically
generate `<Context>CleanupSystems` for you.
E.g. adding the `[Cleanup]` attribute to a `DestroyedComponent` can replace
your custom `DestroyEntitySystem`.
```csharp
[Cleanup(CleanupMode.DestroyEntity)]
public sealed class DestroyedComponent : IComponent {
}
```
There are currently two options:
- CleanupMode.DestroyEntity
- CleanupMode.RemoveComponent
`CleanupMode.DestroyEntity` will generate a system that destroys all
entities which have this component.
`CleanupMode.RemoveComponent` will generate a system that will remove
this component from all entities which have this component.
# 1.6.1
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
🛠 Fixed context.Reset() which doesn't remove event handlers anymore #725
🛠 Updated EntitasStats to exclude JobSystem and Feature
### Jenny
🛠 Fixed Jenny dropdown UI to not show 'mixed...' anymore
⚙️ Added Jenny Server toggle to UI
⚙️ Added dry run option
⚠️ Removed EnsureStandalonePreProcessor
🆕 Added WarnIfCompilationErrorsPreProcessor
# 1.6.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### General
⚠️ Changed Entitas Asset Store package structure by separating Desperate Devs dlls into their own folder
Please run `jenny auto-import -s` or modify `Preferences.properties` to update the paths to the plugins if necessary
### Entitas
🛠 Added support to remove event listeners within event callback #698
⚠️ Improved Entitas Event API `[Event(bool)]` #717
Use "find and replace" to update all your EventAttribute usages
`[Event(true)]` is now `[Event(EventTarget.Self)]`
`[Event(false)]` is now `[Event(EventTarget.Any)]`
⚙️ Added support for `[DontDrawComponent]` for all components #678
💄 Updated comments for `group.RemoveAllEventHandlers()` #684
🛠 Fixed check for updates
### DesperateDevs
⚙️ Updated `TargetFrameworkProfilePreProcessor` #721
🛠 Added `str.ToUnixPath()`
# 1.5.2
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
🛠 Fixed EventSystemsGenerator generated EventSystems per context but those systems contained EventSystems from all context
### DesperateDevs
🛠 Added TcpMessageParser to reliably receive separate messages from a tcp stream
# 1.5.1
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### DesperateDevs
⚙️ Added better error message to EnsureStandalonePreProcessor
When EnsureStandalonePreProcessor is activated it will prevent you from accidentally generating in Unity.
To generate in Unity make sure EnsureStandalonePreProcessor is not activated.
# 1.5.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
🆕 Added JobSystem for multi threading as a proof of concept.
```csharp
public sealed class RotateSystem : JobSystem<GameEntity> {
public RotateSystem(GameContext context, int threads) :
base(context.GetGroup(GameMatcher.AllOf(GameMatcher.Rotation, GameMatcher.RotationVector)), threads) {
}
protected override void Execute(GameEntity entity) {
entity.rotation.value = entity.rotation.value * Quaternion.Euler(entity.rotationVector.value);
}
}
```
Limitations:
- Don't use generated methods like Add() and Replace()
- Modify component values directly
See https://github.com/sschmid/Entitas/issues/325#issuecomment-373961878
This is not a general purpose solution for all problems. It can be used to solve certain performance intense areas in your game. It can be very useful if there's a very large number of entities that have to be processed, or if the data transformation involves heavy calulations.
⚠️ EventSystemsGenerator generates EventSystems per context now.
🛠 Removed dependency on Entitas.CodeGeneration.Plugins from Entitas.VisualDebugging.Unity.Editor #312
### DesperateDevs
🆕 Added EnsureStandalonePreProcessor to prevent accidentally generating in Unity
# 1.4.2
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
This is a hotfix release to patch the bugs introduced by the code generator refactoring from 1.4.0.
### Entitas
🛠 Fixed needing to generate code twice to when event got removed #620
⚙️ Added group.AsEnumerable() to support linq
⚙️ Added partial keyword to ComponentEntityApiInterfaceGenerator #607
⚙️ Changed EntityLink exception to be a warning
⚙️ ComponentData can clone CodeGeneratorData
### Jenny
🆕 Added ValidateProjectPathPreProcessor #572 #563
### DesperateDevs
⚙️ Added logger.Reset()
# 1.4.1
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
This is a hotfix release to patch the bugs introduced by the code generator refactoring from 1.4.0.
### Entitas
🛠 Fixed component name generation for EventType.Removed #631 (thanks to @hegi25)
### Jenny
🛠 Fixed jenny "Collection was modified; enumeration operation may not execute." #628
🛠 Fixed jenny "Index was outside the bounds of the array." #628
# 1.4.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
Breaking changes are marked with ⚠️️
### Entitas
🆕 Added group.GetEntities(buffer) #624
🆕 Made group iteration alloc free #624
⚙️ Added support for multiple events per component
⚙️ Added `removeComponentWhenEmpty` to optionally remove or keep empty listener component
🛠 Fixed accessing non existing component in generated event system for EventType.Removed
🛠 Fixed events inheriting unique attribute from component
⚠️ Removed EventType.AddedOrRemoved
💄 Refactored and simplified all code generators
# 1.3.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
This update improves the new Entitas Events introduced in 1.1.0
Breaking changes are marked with ⚠️️
### Entitas
⚙️ Added support for multiple event listeners per entity
⚙️ EventInterfaceGenerator generates correct filename matching the class name. Thanks to @c0ffeeartc
⚠️️ Renamed some generators. Please use `auto-import` to update the generator names
# 1.2.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
This update improves the new Entitas Events introduced in 1.1.0
Breaking changes are marked with ⚠️️
### Entitas
⚙️ Added support for multiple contexts for events. Context prefix will be skipped if a component only has one context in favour of a nicer API
⚠️️ Passing sender entity as first argument in event delegate
🆕 Added new optional event types `EventType.Added`, `EventType.Removed`, `EventType.AddedOrRemoved`
🛠 Fixed typo `_listsners` in event generator Thanks to @FNGgames
### Jenny
🛠 Fixed `scan` command
# 1.1.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
🆕 Added Events aka Reactive-UI #591
⚠️ Changed `ComponentEntityInterfaceGenerator` to generate `IXyzEntity` insetad of `IXyz` to avoid name collisions with `EventInterfaceGenerator`
⚙️ Added enum support for Code Generator Attributes
⚙️ Removed `partial` keyword from ComponentGenerator
⚙️ Removed attributes from generated components
### Jenny
🆕 Added `Jenny-Auto-Import` scripts to reducde terminal interaction
⚙️ Added silent `-s` info to Jenny help page
⚙️ Using Console.WriteLine when prompting user input to support silent mode
⚙️ CodeGeneratorData can now be cloned
# 1.0.0
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
🛠 Workaround for Unity 2017.3 GUI mask bug (still shows `Mixed...` instead of `Everything` -> Unity bug) #569
# 0.47.9
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
🛠 Fixed issue with Entitas.Roslyn plugin and non-components with context attibute #564
🛠 Fixed `auto-import` not making relative search paths on Windows
### Other
⚙️ Included readme files in zip
⚙️ Updated CONTRIBUTING.md and updated bee 🐝
# 0.47.8
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
🛠 Fixed `The given assembly name or codebase was invalid` on windows #561
# 0.47.7
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
🛠 Auto-Import properly handles paths with spaces #555
# 0.47.6
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
- Using correct properties file for each Unity project by saving only the filename instead of full path
# 0.47.5
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
- Hotfix for EntityLink throwing errors OnApplicationQuit
# 0.47.4
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
### Entitas
- Hotfix for broken EntityLink (thanks to @c0ffeeartc for reporting so quickly)
# 0.47.3
As always, the Unity Asset Store version might take a few days to be processed
and accepted by Unity. Please check for updates in 2 - 4 days here:
https://www.assetstore.unity3d.com/#!/content/87638
See and discuss changes in [Milestone 0.47.3](https://github.com/sschmid/Entitas/milestone/17?closed=1)
(Finally went back to Milestone development :) Transparency FTW!)
### Entitas
- EntityLink will immediately throw an exception if the gameObject is destroyed but still linked to an entity #470
- Fixed VisualDebugging Toggle in the Entitas Preferences Window #540
### Jenny
- Even more support for multiple properties, see #550
# 0.47.2
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638
Here's another update to improve the code generator experience. Thanks again for all your great feedback!
And thanks for going through this with me :) We're almost there!
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Added migration 0.47.2
### Jenny
- Added silent mode for `jenny fix` to simplify `jenny auto-import` experience. Use `-s`, e.g `jenny auto-import -s`
- Added a potential fix for `jenny client gen` command never completes #546
- Renamed keys from `CodeGenerator.*` to `Jenny.*`. Please apply migration 0.47.2
- Added support to run CLI from any location
- Warning when no properties found
- Removed leading "./" from added searchPaths added by `jenny auto-import`
- The Roslyn foundation moved to DesperateDevs
- Using the latest Roslyn libs
### Other
- Entitas project cleanup and maintenance
- Added more automation tasks to bee 🐝
# 0.47.1
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days here: https://www.assetstore.unity3d.com/#!/content/87638
### Jenny
- Handling BadImageFormatException
- Not showing warnings for unresolved assemblies anymore
- Fixed closing AssemblyResolver before all plugin dependencies were loaded
- Fixed jenny server construction not complete before executing client command
# 0.47.0
### General
- Brand new build automation workflow (bee 🐝)
- Completely automated build, sync and release flow for faster future updates (bzzz 🐝)
- Only Entitas.zip is attached to GitHub releases
- Jenny CLI is only bundled in Asset Store version
- Added Assets folder to Entitas.zip #535
- More flexible plugin-based CLI architecture
### Jenny
- Unity support for multiple properties files by adding switch button to Entitas Preferences in case multiple properties files exist #536
- Better CLI support for multiple properties files by showing a warning in case multiple properties files exist #536
- Fixes for server / client errors (ObjectDisposedException) #529
- Renamed key `CodeGenerator.CLI.Ignore.UnusedKeys` to `Ignore.Keys`
- `auto-import` reflects assemblies and sets plugins based on content instead of name
- `auto-import` automatically detects custom plugins in Unity project without manually setting up searchPaths
- Added visual lines to `dump`
- Renamed `ICodeGeneratorBase` to `ICodeGenerationPlugin`
- Fixed `IConfigurable` commands not getting configured
- Added minified properties support
### Asset Store
- Fix for NullReferenceException (Entitas.Roslyn.SymbolExtension.ToCompilableString) #534
- Support for WrapperComponent #532
# 0.46.3
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Code Generation
- Added `IPreProcessor`
- Added TargetFrameworkProfilePreProcessor
- Fixed problems with Roslyn Generator and Visual Studio on Windows #503
# 0.46.2
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Code Generation
- Added `IDoctor` for custom diagnosis and custom symptoms treatment :) Will help improving the
code generator setup experience that is aimimg for a one-click setup
- Implemented IDoctor for ComponentDataProvider, EntityIndexDataProvider and DebugLogPostProcessor
- Removed `isEnabledByDefault`from all plugins
### TCPezy
- ResolveHost returns IPv4 address to fix issue with server / client mode on windows
# 0.46.1
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Entitas.VisualDebugging.CodeGeneration.Plugins
- Added deep device profiling support to generated Feature class #497
### Unity
- Added buttons to generate DefaultInstanceDrawer and TypeDrawer
- Added deep device profiling toggle to Entitas Preferences
<img width="415" alt="Entitas - Deep Device Profiling" src="https://user-images.githubusercontent.com/233700/33909162-f4e1a684-df8a-11e7-89d9-1e910554b954.png">
# 0.46.0
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
This release is a maintenance release as announced here:
https://github.com/sschmid/Entitas/issues/508
As the project got more mature the Entitas repository not only contained the ECS core but also a few other
modules like Logging, Serialization, Networking, Code Generator, Common Utils and more.
The goal of this refactoring was to extract reusable modules and increase the focus of the Entitas repository
on ECS. Reusable modules have been successfully extracted to their own standalone projects. Overall, with the
increased focus that is achieved by having standalone projects I expect the quality to raise, too. This is
generally the case when you have reusable code that is battle tested in multiple different scenarios.
As mentioned in #508 those projects all have the `DesperateDevs` namespace. You maybe already know about
Desperate Devs because of the new YouTube channel where I will upload more and more Video on ECS,
best practices and Software Architecture. Subscribe if you don't want to miss future videos.
https://www.youtube.com/channel/UC2q7q7tcrwWHu5GSGyt_JEQ
As a result of this refactoring I was able to remove a lot of noise from the Entitas repository and I could
easily fix platform depended bugs without any distraction.
<img width="385" alt="entitas-desperatedevs" src="https://user-images.githubusercontent.com/233700/33746219-2011570a-dbbc-11e7-9631-4e8730fa7847.png">
Entitas will benefit from having the Desperate Devs dependencies as it enforces modularity and reusability.
Additionally, it will be possible to use awesome tools like TCPezy (DesperateDev.Networking) and Jenny (DesperateDevs.CodeGeneration) independently.
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Obsolete notice
- Removed methods marked obsolete in 0.42.0 from April 2017
- Blueprints are now completely removed from the zip files (sources still available)
### Preferences
- Showing properties name in Edit Button
### Jenny (aka Code Generator)
- CodeGeneratorPreferencesDrawer will keep unavailable plugins #496
- Added Display Dialog for auto import
- Added a secret and hidden cli command, can you find it? ❤️
### TCPezy (aka entitas server)
- Fixed Unhandled Exception (appeared on Windows only) #489
### Other
- Changed language level of all projects to C# 4.0
- Deleted CodeGenerator Unity Test project
# 0.45.1
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### CodeGenerator
- Added Auto Import Button to Entitas Preferences. This will detect plugins and automatically set them in Entitas.properties
# 0.45.0
Thanks for the feedback on the new code generator so far. This update contains a lot of great improvments.
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Fixed flag components increasing the componentPool stack #445
- Logging all retained entities in ContextStillHasRetainedEntitiesException #448
- Added support for multiple indexed members per component #464
```
public sealed class MyComponent : IComponent {
// Multiple fields are now supported
[EntityIndex]
public int value;
[EntityIndex]
public int otherValue;
}
// will generate
context.GetEntitiesWithMyValue(...);
context.GetEntitiesWithMyOtherValue(...);
```
### CodeGenerator
- Displaying more prominent popup in Unity when trying to generate with compile errors #463

- AssemblyResolver won't append dll to exe extension
- Changed code generator keys and removed default values
- Changed code generator cli keys and removed default values
- Added auto-import command. Use `entitas auto-import` to automatically populate Entitas.properties
- `entitas status` command will detect potential collisions, e.g. duplicate providers from the default plugins and the roslyn plugins
- `entitas fix` can resolve plugin collisions
- `entitas fix` command will tell you to press any key
- Removed `-a` keepAlive in favour of `entitas server` and `entitas client`
- Fixed client only sending first command to server #482
- Default Plugins are now in folder called Entitas
- Refactored all commands and simplified many utils methods
- `Entitas.exe` now with capital E
### Roslyn
- Added custom support for multi-dimensional arrays types like `int[,,]` #481
Let me know if more types need custom support.
### Migration
- Added migration for 0.45.0
# 0.44.0
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Unity CodeGenerator
- Added new menu item which connects to an external code generator server instance
### CodeGenerator CLI
- Added server command
- Added client command
- Added startCodeGenerator files for macOS and Windows
### Example
Start the code generator server by double clicking `startCodeGenerator` on macOS or `startCodeGenerator.bat` on Windows, or use the terminal
```
$ mono CodeGenerator/entitas.exe server
```
You can now either use the new Unity menu item `Tools/Entitas/Generate with external Code Generator`
which connects to a running server and sends the `gen` command or connect yourself like this
```
$ mono CodeGenerator/entitas.exe client gen
```
This will connect to a running server and send the `gen` command. This is useful if you want to add your own custom commands
in your IDE like Visual Studio or Rider (or others).
Using the code generator server and client is optional but can greatly improve your workflow and
can drastically reduce the overhead of generating new files.
# 0.43.0
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.
### Breaking changes
The new code generator is part of `Entitas.Roslyn`. The Roslyn Plugins are now called `Entitas.Roslyn.CodeGeneration.Plugins`. If you already tested the new code generator beta, please update Entitas.properties
- `Entitas.Roslyn.CodeGeneration.Plugins`
- `Entitas.Roslyn.CodeGeneration.Plugins.ComponentDataProvider`
- `Entitas.Roslyn.CodeGeneration.Plugins.EntityIndexDataProvider`
New mandatory keys have been added to Entitas.properties. You can automatically add them by running `entitas fix`
### CodeGenerator
- Added `ICodeGeneratorCachable` to cache and share objects between multiple plugins to avoid redundant calculations
- Using the objectCache to share the AssemblyResolver between all plugins
- Added CodeGenerator to default searchPaths
- Added Unity menu item to generate with CLI
<img width="242" alt="entitas-unity-cli" src="https://user-images.githubusercontent.com/233700/32442888-4c457022-c2fd-11e7-8665-bc9b7619e3f9.png">
### CodeGenerator CLI
- Updated New command to use preferences
- Added CLIConfig with new key `Entitas.CodeGeneration.CodeGenerator.CLI.Ignore.UnusedKeys` to add keys that should be ignored when running `entitas status` or `entitas doctor`. You can automatically ignore keys by pressing `i`
<img width="906" alt="entitas-cli-ignoreunusedkeys" src="https://user-images.githubusercontent.com/233700/32444739-f3d660c0-c303-11e7-96ce-a111c9de2d89.png">
- Added support for custom properties files. Each command optionally accepts a path to a properties file. This way you can have multiple different configs how to run the code generator, e.g. one with the reflection-based code generator and one with the roslyn code generator.
```csharp
entitas gen My.properties
```
- Pretty CLI
### Unity
- Added Edit Button to Entitas Preferences
<img width="449" alt="entitas-preferences-editbutton" src="https://user-images.githubusercontent.com/233700/32421256-c8e4fa88-c296-11e7-8c14-8d075444ed51.png">
### Asset Store Version
- Changed project structure. The Plugins are now called `Entitas.Roslyn.CodeGeneration.Plugins`
- Using the objectCache to share the ProjectParser between all plugins which speeds up the code generation process
- Updated all packages to latest version and downgraded all projects from .NET 4.6.1 to .NET 4.6
- Added more dependencies to remove warnings when running `entitas doctor` or `entitas gen`
<img width="640" alt="entitas-roslyn-nowarnings" src="https://user-images.githubusercontent.com/233700/32421230-8766467a-c296-11e7-898a-0eaaa98c4e5a.png">
# 0.42.5
### General
- Refactored Preferences to fully embrace Entitas.properties and User.properties
### CodeGenerator CLI
- Added format command
- keepAlive argument which will keep the process alive. This is very useful when using the new roslyn code generator to avoid reloading the whole parsing infrastructure. Using this argument ith roslyn results in super fast generation time
```csharp
$ entitas gen -a
```
# 0.42.4
### Notes
Entitas development is back on track again and the wait is over. This is probably one of the last updates before Entitas reaches 1.0.0.
This verion has been tested successfully in combination with the new code generator that will work even when the code is not compiling.
### General
- Added support for User.properties. You can now either overwrite values sepcified in Entitas.properties or use placeholders
Create a new file called User.properties and specify the keys and values that should be overwritten.
You can also specify placeholers like this `${myPlaceholder}` and specify the key either in Entitas.properties or User.properties.
see: [Match One - Entitas.properties](https://github.com/sschmid/Match-One/blob/master/Entitas.properties)
see: [Match One - User.properties](https://github.com/sschmid/Match-One/blob/master/User.properties)
### Entitas
- Groups are now enumerable to iterate over groups circumventing the internal caching and potentially reducing memory allocations #408
```csharp
foreach (var e in group) {
// Look closely: no group.GetEntities()
}
```
### CodeGenerator CLI
- Added commands add, set, remove, dump
### VisualDebugging
- Fixed Entitas Stats not ignoring built-in MultiReactiveSystem in systems count
- VisualDebugging only lets you add components that the entity doesn't already have
- GUI fixes
### Other
- Properties are now formatted by default for better readability
- Ensuring dependencies in build scripts
# 0.42.3
Hotfix release for
- Fix Code Generation NullReferenceException in Unity 2017 #414
# 0.42.2
See and discuss changes in [Milestone 0.42.2](https://github.com/sschmid/Entitas/milestone/16)
### CodeGenerator
- Fix Code Generation NullReferenceException in Unity 2017 #414
- EntityIndexGenerator is sorting entity indices
- CodeGenerator fix command runs recursively #409
- Code Generator CLI maintenance
### VisualDebugging
- Update EntityDrawer to draw correct object type #399 #406
# 0.42.1
## Top new features:
Added missing support for flag components in ComponentEntityInterfaceGenerator
### General
- CodeGenerator CLI + Plugins are now included in zips and not deployed as separate zips
### CodeGenerator
- Added support for flag components in ComponentEntityInterfaceGenerator
- Removed GameState from default contexts. Defaults are now Game and Input
# 0.42.0
See and discuss changes in [Milestone 0.42.0](https://github.com/sschmid/Entitas/milestone/15)
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
- 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](https://github.com/sschmid/Entitas/blob/develop/Tests/Unity/VisualDebugging/Assets/Examples/VisualDebugging/Systems/SomeMultiReactiveSystem.cs))
- 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
# 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](https://github.com/sschmid/Match-One/blob/master/Entitas.properties)
Exiting limitation mentioned in the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md) 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
# 0.41.1
See and discuss changes in [Milestone 0.41.1](https://github.com/sschmid/Entitas/milestone/14)
### CodeGenerator
- Added ContextMatcherGenerator #358 #358 @marczaku
```csharp
// 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()
# 0.41.0
See and discuss changes in [Milestone 0.41.0](https://github.com/sschmid/Entitas/milestone/13)
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](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
- 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
# 0.40.0
See and discuss changes in [Milestone 0.40.0](https://github.com/sschmid/Entitas/milestone/12)
### 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
# 0.39.2
See and discuss changes in [Milestone 0.39.2](https://github.com/sschmid/Entitas/milestone/11)
### 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
# 0.39.1
See and discuss changes in [Milestone 0.39.1](https://github.com/sschmid/Entitas/milestone/10)
### 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
# 0.39.0
See and discuss changes in [Milestone 0.39.0](https://github.com/sschmid/Entitas/milestone/9)
### 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
# 0.38.0
See and discuss changes in [Milestone 0.38.0](https://github.com/sschmid/Entitas/milestone/8)
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
# 0.37.0
See and discuss changes in [Milestone 0.37.0](https://github.com/sschmid/Entitas/milestone/7)
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
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 went type-safe! (#257 #266)
### 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)
# 0.36.0
See and discuss changes in [Milestone 0.36.0](https://github.com/sschmid/Entitas/milestone/6)
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### 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 override `GetTrigger`, `Filter` and `Execute`.
This enables filtering entities based on component values (#234)
- Renamed the term Pool to Context (#99 #250)
- Renamed `EntityCollector` to `Collector` (#252 #253)
- Renamed `GroupEventType` to `GroupEvent` and removed the prefix `OnEntity`
- 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` and `ITearDownSystem`
- 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
# 0.35.0
See and discuss changes in [Milestone 0.35.0](https://github.com/sschmid/Entitas/milestone/5)
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Fixed adding disabled entities to groups (#192, #193)
- Removed matcher with filter (#194, #195)
### Other
- Maintenance, cleanup and formatting
- Completely new build system to create new releases
# 0.34.0
See and discuss changes in [Milestone 0.34.0](https://github.com/sschmid/Entitas/milestone/4)
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### 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
- Improved snippets
- Added Visual Studio snippets (#172)
- Added TestRunner to support test debugging (#175, #176)
- Updated build scripts (#173, #177)
- Added tests for code formatting
# 0.33.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### 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)
# 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](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### 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>()` and `pool.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 :heart:)
- 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
# 0.31.2
### Entitas.CodeGenerator
- All attributes can now be used for classes, interfaces and structs
# 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
```csharp
// 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
# 0.31.0
### General
- Removed obsolete code
### Entitas.CodeGenerator
- Generating components for attributed classes and interfaces
```csharp
// 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
```csharp
// 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
- 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
# 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
# 0.30.2
### Note
This release introduces Blueprints for Entitas (Beta). Update if you want to
use and play with Blueprints. [Read more...](https://github.com/sschmid/Entitas/wiki/Blueprints-(Beta))
### 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
# 0.30.1
### Entitas.Unity.VisualDebugging
- Fixed GameObjectDestroyExtension.DestroyGameObject() compile time error (#91)
- Improved SystemsMonitor.Draw() to use correct available width even with scrollbars
- Tweaked drawing systems list
- Added EntitasPoolErrorHierarchyIcon to visualize when there are erros
### Other
- Updated build_commands.sh to generate C# project from Unity
# 0.30.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Added IGroupObserverSystem which allows ReactiveSystems to observe multiple pools
- Added pools.CreateGroupObserver() to simplify creating a GroupObserver for multiple pools
### Entitas.CodeGenerator
- TypeReflectionProvider ignores abstract IComponents (#88)
- Renamed ComponentsGenerator to ComponentExtensionsGenerator
- Renamed PoolAttributeGenerator to PoolAttributesGenerator
### Entitas.Unity
- Moved Assets/Entitas.Unity to Assets/Entitas/Unity
- Simplified folder structure in Entitas-Unity.zip
### Entitas.Unity.CodeGenerator
- Ignoring obsolete code generators
- Generate button changes size depending on generators list height
### Entitas.Unity.VisualDebugging
- Added Feature class which inherits from Systems or DebugSystems for you, so you don't have to care anymore
- Fixed MissingReferenceException occurring occasionally when stopping game (#71)
- Added support for editing entities in EditorMode (non-playing mode)
- Fixed bug when components are added on entity creation (#87)
- Added clear buttons to search textfields
- Improved DateTimeTypeDrawer
- Added new hierarchy icons for pool and systems
### Entitas.Migration
- Added M0300
- Moving Entitas.Migration into Entitas/Migration/Editor when creating Entitas-Unity.zip
# 0.29.1
### Entitas.CodeGenerator
- Added missing support for components with properties
- Updated ComponentsGenerator to use entity.CreateComponent()
### Entitas.Unity.CodeGenerator
- Added missing support for components with properties
# 0.29.0
### Obsolete
Marked old PoolMetaData constructor obsolete. If you encounter compile errors please apply Migration 0.26.0, open C# project and generate again.
### General
- Unified Entitas sub projects into a single project
- Unified all Unity projects into a single project
- Documentation maintenance
### Entitas
- Removing all event handler for entity.OnEntityReleased after event got dispatched
- Printing entity in EntityIsNotDestroyedException
- Added TypeExtension.ImplementsInterface()
- Added component types to PoolMetaData
- Made all methods in Systems virtual
- Added auto generated header to generated files
```
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Entitas.CodeGenerator.ComponentsGenerator.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
```
### Entitas.CodeGenerator
- Using pool specific componentIds lookup when generating matchers for components with multiple pools
- TypeReflectionProvider ignores interfaces
### Entitas.Serialization
- Added Entitas.Serialization
- Added PublicMemberInfo
### Entitas.Unity.CodeGenerator
- Compile errors won't block code generation anymore
- Printing total generated file count when generating
### Entitas.Unity.VisualDebugging
- Destroying EntityBahviour when entity got released
- Using entity component pool and providing correct previous and new component
- Added unique color for each component in EntityInspector
- Added component search field in EntityInspector
<img alt="Entitas-Component-Search" src="https://cloud.githubusercontent.com/assets/233700/13554841/98141fac-e3b2-11e5-81ef-4ef39cf2bb4c.gif" width="417" />
- 'Destroy Entity' Buttons are now red
- Simplified EntityInspector and made methods static
- Unfolded components info is now shared between entities within same pool
- Added shortcuts to Entitas Preferences and Generate
- Improved TypeDrawers
- Stepper UI tweaks

- Renamed 'Script Call Optimization' to 'Optimizations'
- Added EntitasEditorLayout
# 0.28.2
### Entitas
- Added ReactiveSystem destructor to prevent memory leaks
- Added GroupObserver destructor to prevent memory leaks
### Entitas.Unity.VisualDebugging
- EntityInspector now supports dropping UnityEngine.Object into fields that are null

- UI tweaks
# 0.28.1
### Entitas.Unity
- Added "Script Call Optimization" to Entitas Preferences Window
- Added priority to IEntitasPreferencesDrawer
- Tweaked UI

### Entitas.Unity.VisualDebugging
- Added toggle to Entitas Preferences to enable or disable Visual Debugging
- Tweaked UI

# 0.28.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Added documentation (#55)
- Added an object pool for components (#58)
- Added pool.ClearComponentPool(index) and pool.ClearComponentPools()
- Added ENTITAS_FAST_AND_UNSAFE compiler flag. When set it will speed up e.Retain() and e.Release() (#59)
### Entitas.CodeGenerator
- Generated component extensions are now reusing components using a component object pool when destroying entities (#58)
- Added tests for testing the logic of generated files
- Decoupling code generation logic by adding Code Generator Intermediate Format (#62)
- Added TypeReflectionProvider
- Supporting components with namespace
- Simplified linq expressions
- Removed generated systems
- The Code Generator is not depending on Entitas anymore
### Entitas.CodeGenerator.TypeReflection
- Added Entitas.CodeGenerator.TypeReflection project
### Entitas.Unity
- Added `keys` and `values` getter to Properties
### Entitas.Unity.VisualDebugging
- Added system search field to DebugSystemsInspector
- UI tweaks and performance optimizations
- Fixed logging wrong system stats
- Added header image and current version label to Entitas Preferences Window

### Entitas.Unity.Migration
- Added Entitas.Unity.Migration which provides an easy way to migrate source files
- Added header image and current version label to Entitas Migration Window

### Other
- Removed redundant files and gitignored Entitas in all Unity projects (#63)
- Removed Unity projects from Entitas.sln
- Removed warnings
# 0.27.0
### Note
If you're using Entitas with Unity, please open the Entitas preferences and make sure that all your desired code generators are activated. Due to some code generator renamings the ComponentLookupGenerator and the ComponentsGenerator are inactive. Activate them (if desired) and generate.
### Entitas
- Added `pool.Reset()` which clears all groups, destroys all entities and resets creationIndex
### Entitas.CodeGenerator
- Renamed some code generators
- Added `CustomPrefixAttribute` to support custom prefixes for flag components
```
[CustomPrefix("flag")]
public class DestroyComponent : IComponent {
}
// default
entity.isDestroy = true;
// with CustomPrefixAttribute
entity.flagDestroy = true;
```
### Entitas.Unity
- Added "Feedback" menu item to report bugs, request features, join the chat, read the wiki and donate
### Entitas.Unity.CodeGenerator
- Removing invalid code generator names from Entitas.properties
### Entitas.Unity.VisualDebugging
- Lots of UI tweaks
- Added toggle to sort systems by execution duration
- Added toggle to hide empty systems
- ReactiveSystems are highlighted with a white font color
- Added Clear Groups Button
- Added Entity Release Button
- Splitted systems list into initialize and execute systems and visualizing them separately
- Improved stepper UI
### Entitas.Migration
- All migrations now contain information about on which folder they should be applied
```
0.26.0
- Deactivates code to prevent compile erros
- Use on folder, where generated files are located
```
### Other
- Added Commands.GenerateProjectFiles and using it in build.sh
- Updated build.sh and build_commands.sh to include latest MigrationAssistant.exe
# 0.26.1
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
# 0.26.0
### General
- Updated projects to Unity 5.3
- Improved all error messages and added hints
- Changed and applied policy.mdpolicy to all sources
### Entitas.Unity
- Moved Entitas Preferences to its own Editor Window

### Other
- Added runTests.bat for running test on windows (#49)
- Updated license
# 0.25.0
### Entitas
- Improved AERC performance
- Added group.RemoveAllEventHandlers()
- Added pool.ClearGroups() to remove all groups and remove all their event handlers
- Added pool.ResetCreationIndex()
- Throwing exception when there are retained entities and pool.DestroyAllEntities() is called
- Renamed entity.refCount to entity.retainCount
### Entitas.Unity.VisualDebugging
- Fixed creating entities
- Showing warning when there are retained entities
### Other
- Added UnityTests project with Unity Test Tools to fix a Unity specific HashSet bug
# 0.24.6
### Entitas
- Changed entity.Retain() to accept an owner object
### Entitas.Unity.VisualDebugging
- Added VisualDebugging support for displaying owners of entities

# 0.24.5
### Entitas
- Fixed dispatching group events after all groups are updated
### Entitas.CodeGenerator
- Supporting ENTITAS_DISABLE_VISUAL_DEBUGGING compiler flag
# 0.24.4
### Entitas
- Added entity.componentNames. This field is set by Entitas.Unity.VisualDebugging to provide better error messages
- Added matcher.componentNames. This field is set by Entitas.Unity.CodeGenerator to provide better error messages
- entity.ToString() now removes ComponentSuffix
- Fixed typo
### Entitas.Unity.CodeGenerator
- ComponentExtensionsGenerator sets matcher.componentNames
- Removed generating unused using in ComponentExtensionsGenerator
### Other
- Added update_project_dependencies.sh
- Refactored build commands into build_commands.sh
# 0.24.3
### Entitas
- Added systems.ActivateReactiveSystems() and systems.DeactivateReactiveSystems which should be called when you don't use systems anymore
### Other
- Merged shell scripts
# 0.24.2
### General
- Renamed XyzEditor to XyzInspector
- Streamlined naming
### Entitas.Unity.VisualDebugging
- Simplified adding a component at runtime
### Other
- buildPackage.sh now creates Entitas-CSharp.zip and Entitas-Unity.zip
# 0.24.1
### Entitas.Unity.VisualDebugging
- Added support for adding components to multiple entities at once at runtime

# 0.24.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas.Unity.CodeGenerator
- Throwing exception when attempting to generate while Unity is still compiling or assembly won't compile
### Entitas.Unity.VisualDebugging
- Added support for creating entities and adding components at runtime


# 0.23.0
### Breaking changes
Before updating, please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
- Gerneral
- Updated and applied policy
### Entitas
- Reimplemented new matcher AnyOf and NoneOf
```csharp
Matcher.AllOf(Matcher.A, Matcher.B)
.AnyOf(Matcher.C, Matcher.D)
.NoneOf(Matcher.E, Matcher.F);
```
### Entitas.CodeGenerator
- Updated generators to work with new matchers
- PoolsGenerator generates Pools.allPools (#39)
- Code Generators convert local newline to unix newline
### Entitas.Unity.CodeGenerator
- Changed CodeGeneratorConfig.disabledCodeGenerators to CodeGeneratorConfig.enabledCodeGenerators
# 0.22.3
### Entitas
- Added reactiveSystem.Clear() and systems.ClearReactiveSystems()
- Added IClearReactiveSystem. When implemented, clears reactive system after execute finished
# 0.22.2
### Fixes
- Entitas
- GroupObserver retains entities only once
### Entitas.Unity.VisualDebugging
- PoolObserver now shows retained entities
- Destroying EntityBehaviour e.OnEntityReleased instead of e.OnComponentRemoved
### Other
- New logo
# 0.22.1
### Entitas
- Throwing an exception when releasing an entity that is not destroyed yet (#32)
### Entitas.Unity.VisualDebugging
- Added hierarchy icon
- Renamed DebugSystems related classes
### Other
- buildPackage.sh includes HierarchyIcon.png.meta
# 0.22.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
- Entitas
- Restored previous pool.DestroyEntity() behaviour
- IReactiveSystem and IMultiReactiveSystem changed and use `TriggerOnEvent`
- Use the command line tool `MigrationAssistant.exe` to automatically migrate IReactiveSystem
- Renamed IStartSystem.Start to IInitializeSystem.Initialize (#21)
### Fixes
- Entitas
- e.RemoveAllComponents() updates toString cache, even if entity has no components
### Entitas
- Added AERC (Automatic Entity Reference Counting) (#30, solves #25)
- Reduced gc allocations in e.RemoveAllComponents()
- Reduced gc allocations in pool.CreateEntity() and pool.DestroyEntity()
- pool.DestroyEntity() will clean suscribed event delegates of entities (#27)
- entity.ToString() will always use component type
- Streamlined and refactored tests and sources
### Entitas.Unity.VisualDebugging
- Improved SystemMonitorEditor graph performance (#14)
### Entitas.Migration
- Added M0220 (Migrates IReactiveSystem to combine trigger and eventTypes to TriggerOnEvent)
- Updated migration descriptions
### Other
- Removed project files
- Renamed updateDependencies.sh to updateProjects.sh
- buildPackage.sh includes EntitasUpgradeGuide.md in Entitas.zip
# 0.21.0
### Fixes
- Entitas.Migration
- Changed target framework to .NET 3.5 to fix build errors in VisualStudio (#22)
### Entitas
- Changed pool.DestroyEntity(entity) behaviour
- won't trigger group.OnEntityRemoved anymore
- triggers group.OnEntityWillBeDestroyed
- removes entity from all groupObserver.collectedEntities
- ReactiveSystem doesn't pass on destroyed entities anymore
- ReactiveSystem doesn't call Execute() when filtered entities.Count == 0
### Other
- Added project files (#18)
# 0.20.0
### Breaking changes
- Entitas
- Removed all matchers except AllOfMatcher
### Entitas
- Added `IEnsureComponents` to optionally ensure entities passed in via ReactiveSystem have certain components
- Added `IExcludeComponents` to optionally exclude entities passed in via ReactiveSystem
- Added support for multiple PoolAttributes on components
```csharp
[PoolA, PoolB, PoolC]
public class SomeComponent : IComponent {}
```
### Entitas.Unity.CodeGenerator
- Added `disabledCodeGenerators` to CodeGeneratorConfig
- Added code generator toggles to CodeGeneratorPreferencesDrawer

### Entitas.Unity.VisualDebugging
- Nicer stats
# 0.19.1
### Entitas
- GroupObserver supports observing multiple groups
- Added support for IMultiReactiveSystem
- Added internal entity._isEnabled to prevent modifying pooled entities
- Replaced internal object pool with Stack<Entity>
### Entitas.CodeGenerator
- Fixed generated replace method, when replacing non existent component
### Entitas.Unity.VisualDebugging
- Drastically improved performance and memory usage by caching ToString() and reducing setting gameObject.name
# 0.19.0
### Breaking changes
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
- Entitas
- Added new e.OnComponentReplaced and removed all *WillBeRemoved events
- Added component index and changed component to OnEntityAdded and OnEntityRemoved
- IReactiveSystem.Execute takes List<Entity> instead of Entity[]
- Entitas now runs without producing garbage!
- Entitas.CodeGenerator
- Removed support for properties in components
- Entitas.Unity.VisualDebugging
- Replaced DebugPool with a more flexible PoolObserver
### Entitas
- Added group.OnEntityUpdated event with previous and new component
### Entitas.CodeGenerator
- ComponentExtensionsGenerator generates component object pool
- Converting newlines in generated files to Environment.NewLine (Pull request #11, thanks @movrajr)
### Other
- Added policy.mdpolicy
# 0.18.3
### Entitas
- Added ReactiveSystem.Activate() and .Deactivate()
### Entitas.Unity.VisualDebugging
- Displaying nested systems hierarchy for DebugSystems


- Unchecking a ReacitveSystem in VisualDebugging deactivates it
# 0.18.2
### Entitas.CodeGenerator
- Fixed #9
# 0.18.1
### Entitas.CodeGenerator
- ComponentExtensionsGenerator now supports properties
# 0.18.0
### Breaking changes
- Use the command line tool `MigrationAssistant.exe` to automatically migrate
- Changed IReactiveSystem.GetTriggeringMatcher to IReactiveSystem.trigger
- Changed IReactiveSystem.GetEventType to IReactiveSystem.eventType
Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas.Unity
- Fixed code generation issues on Windows by converting and normalizing line endings
- Fixed EntitasCheckForUpdates.CheckForUpdates() by temporarily trusting all sources
# 0.17.0
### Breaking changes
- Added `systemCodeGenerators` to CodeGenerator.Generate()
```csharp
CodeGenerator.Generate(Type[] types, string[] poolNames, string dir,
IComponentCodeGenerator[] componentCodeGenerators,
ISystemCodeGenerator[] systemCodeGenerators,
IPoolCodeGenerator[] poolCodeGenerators)
```
### Entitas.CodeGenerator
- Added PoolsGenerator which creates a getter for all pools
```csharp
var pool = Pools.pool;
var metaPool = Pools.meta;
```
- Added SystemExtensionsGenerator
```csharp
new Systems()
.Add(pool.CreateGameBoardSystem())
.Add(pool.CreateCreateGameBoardCacheSystem())
.Add(pool.CreateFallSystem())
.Add(pool.CreateFillSystem())
.Add(pool.CreateProcessInputSystem())
.Add(pool.CreateRemoveViewSystem())
.Add(pool.CreateAddViewSystem())
.Add(pool.CreateRenderPositionSystem())
.Add(pool.CreateDestroySystem())
.Add(pool.CreateScoreSystem());
```
- Added Components, Systems & Pools sub folders to generated folder
### Entitas.Unity
- Properties split with Environment.NewLine instead of '\n'
### Entitas.Unity.CodeGenerator
- Entitas preferences appends "/Generated/" to generated folder if necessary
### Entitas.Unity.VisualDebugging
- Using Queue<float> for SystemsDebugEditor.systemMonitorData
# 0.16.0
### Breaking changes
- Moved system getters from Systems to DebugSystems
### Entitas.Unity.CodeGenerator
- Generated ComponentIds use array instead of dictionary for component name lookup
### Entitas.Unity.VisualDebugging
- Added "Step manually" to DebugSystems
- Added activate / deactivate systems at runtime
- Displaying Systems.totalSystemsCount in SystemsDebugEditor
- Added SystemsMonitor visual graph

- Removed override DebugSystems.DestroyAllEntities()
# 0.15.0
### Entitas
- Added entitas_version file
- Added CreateSystem(ISystem) to PoolExtensions
- Fixed typo GroupObserver.ClearCollectedEntities()
### Entitas.Unity
- Added "Check for updates..." menu item
### Entitas.Unity.VisualDebugging
- Added Stats menu item to log current components, systems and pools
# 0.14.0
### General
- Upgraded all Unity projects to Unity 5
### Entitas
- Added Systems class
- Re-combined pool extensions for creating systems to pool.CreateSystem() and removed pool.CreateStartSystem() and pool.CreateExecuteSystem()
- Fixed: Pool won't destroy entities it doesn't contain
### Entitas.Unity
- Properties now support multiline values and placeholder replacement with ${key}
### Entitas.Unity.CodeGenerator
- Added fluent api to Entity
```csharp
pool.CreateEntity()
.IsGameBoardElement(true)
.IsMovable(true)
.AddPosition(x, y)
.AddResource(Res.Piece0)
.IsInteractive(true);
```
- CodeGenerator takes arrays of IComponentCodeGenerator and IPoolCodeGenerator to generate files so you can easily provide your own custom code generators
- Added dialog for 'Migrate Matcher' menu item
### Entitas.Unity.VisualDebugging
- Added DebugSystems

- Added HashSetTypeDrawer
# 0.13.0
### Reminder
- Entitas 0.12.0 generates prefixed matchers based on the PoolAttribute and introduces some API changes. Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### General
- Split into multiple modules and seperate projects. Entitas now consists of
- Entitas
- Entitas.CodeGenerator
- Entitas.Unity
- Entitas.Unity.CodeGenerator
- Entitas.Unity.VisualDebugging
### Entitas.Unity
- Added IEntitasPreferencesDrawer to be able to extend the Entitas preferences panel
### Entitas.Unity.CodeGenerator
- Entitas preferences internal keys changed. Please check your settings in projectRoot/Entitas.properties and update keys
- Entitas.CodeGenerator.GeneratedFolderPath -> Entitas.Unity.CodeGenerator.GeneratedFolderPath
- Entitas.CodeGenerator.Pools -> Entitas.Unity.CodeGenerator.Pools
### Entitas.Unity.VisualDebugging
- Added support to set fields to null
- Added support to create a new instance if the value of a field is null
- Added IDefaultInstanceCreator to create default objects for unsupported types
- Added IDefaultInstanceCreator implementations for array, dictionary and string
- Added support to insert and remove elements from lists, arrays and dictionaries

- Added name property to DebugPool
- Added VisualDebuggingConfig and VisualDebuggingPreferencesDrawer

- EntityDebugEditor can generate IDefaultInstanceCreator and ITypeDrawer implementations for unsupported types
- Fixed: handling null values
- Renamed ICustomTypeDrawer to ITypeDrawer
- Big refactoring to simplify drawing types
### Other
- buildPackage.sh keeps uncompressed source files in bin folder
- Added updateDependencies.sh which updates all dependencies of Entitas.Unity.CodeGenerator, Entitas.Unity.VisualDebugging and tests
- Renamed and moved files and folders to be more consistent with the new project structure
# 0.12.0
### Important
- Entitas 0.12.0 generates prefixed matchers based on the PoolAttribute and introduces some API changes. Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Added IStartSystem and pool.CreateStartSystem() extension
- Renamed pool.CreateSystem() to pool.CreateExecuteSystem()
- Added pool.CreateStartSystem()
- Added EntitasUpdater to automatically update the introduced matcher API changes
### Visual Debugging
- Fixed null exceptions
- Added support for multi dimensional and jagged arrays
- Removed Debug.Log
### Code Generator
- Added Code Generator PreferenceItem
- set generated folder path
- define multiple pools

- Added PoolAttributeGenerator
- Generated Matcher is now prefixed based on PoolAttribute (e.g. UIMatcher)
- Generating ToString() for matchers to print component name instead of index
- IndicesLookupGenerator generates indices ordered alphabetically
- Added TypeGenerator to streamline string generation from types
- Added support for nested classes
### Other
- Added Properties and CodeGeneratorConfig to serialize Entitas preferences to file
- Removed warning in AbstractCompoundMatcher
- buildPackage.sh only builds when all tests are passing
- buildPackage.sh deletes meta files before creating zip archive
# 0.11.0
### Reminder
- Entitas 0.10.0 included lots of renaming. Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md) if you are on < v0.10.0
### Entitas
- Added AllOfCompoundMatcher
- Added AnyOfMatcher
- Added AnyOfCompoundMatcher
- Added NoneOfMatcher
- Added NoneOfCompoundMatcher
- Updated Entitas to handle any implementation of IMatcher
- Fixed dispatching OnComponentAdded when replacing a non existing component with null
- Optimizations
### Visual Debugging
- Added support for custom type drawers `ICustomTypeDrawer`
- Added component folding and pooled entities count
- Added groups to PoolDebugEditor

- Added support for IList

- UI improvements
### Code Generator
- Fixed typeShortcuts to use type.FullName to support UnityEngine.Object (conflicted with System.Object)
- Added EntitasCodeGeneratorMenuItem
### Other
- Moved and renamed some folders
- Added buildPackage.sh which creates a bin/Entitas.zip with all necessary source files
# 0.10.0
### Important
- Entitas 0.10.0 includes lots of renaming. Please follow the [Entitas upgrade guide](https://github.com/sschmid/Entitas/blob/master/EntitasUpgradeGuide.md)
### Entitas
- Added empty ISystem and IExecuteSystem for more flexibility
- Added public creationIndex to Entity
- Observer is now on group not on pool
- Removed WillBeRemovedSystem and observer
- Added CreateSystem to PoolExtension
- Added fast entities count call to Pool
- Added creationIndex to entity.ToString()
- pool.CreateEntity() and pool.DestroyEntity() are now virtual
### Visual Debugging
- Added VisualDebugging
### Code Generator
- Supports enums nested in components
- Added option to [DontGenerate] to ignore generating index, too
================================================
FILE: CONTRIBUTING.md
================================================
Contributing to Entitas
=======================
The project is hosted on [GitHub][repo] where you can [report issues][issues], fork the project and [submit pull requests][pulls].
Entitas is developed with [TDD (Test Driven Development)](https://en.wikipedia.org/wiki/Test-driven_development) and [nspec](http://nspec.org).
New features are introduced following the [git-flow](https://github.com/nvie/gitflow) conventions.
Setup Entitas on your machine
=============================
Fork the repository on [GitHub][repo] and clone your forked repository to your machine
```
$ git clone https://github.com/<username>/Entitas.git
````
If you want to contribute please consider to set up [git-flow](https://github.com/nvie/gitflow).
The default branch of this repository is `master`
````
$ cd Entitas
$ git branch master origin/master
$ git flow init -d
````
Open `Entitas.sln` and run the Tests project as a console application to ensure everything works as expected. Alternatively run the tests script
```
$ ./Scripts/bee tests
```
Make changes
============
[Create a new ticket][issues-new] to let people know what you're working on and to encourage a discussion. Follow the git-flow conventions and create a new feature branch starting with `#` and the issue number:
```
$ git flow feature start <#123-your-feature>
```
Write and update unit tests and make sure all the existing tests pass. To manually test your changes in a Unity project, run
```
$ ./Scripts/bee build
$ ./Scripts/bee sync
```
This will build Entitas with all your changes and copy all required assemblies to the Tests/Unity/VisualDebugging project's `Library` folder. You can open the Tests/Unity/VisualDebugging project in Unity and verify and test your changes manually. All changes to Entitas must be done in the `Entitas.sln` project.
Contribute
==========
If you have many commits please consider using [git rebase](https://git-scm.com/docs/git-rebase) to cleanup the commits. This can simplify reviewing the pull request.
Once you're happy with your changes open a [pull request][pulls] to your feature branch. The default branch is `develop`. Don't create a [pull request][pulls] from master.
By submitting a pull request, you represent that you have the right to license your contribution to the community, and agree by submitting the patch that your contributions are licensed under the [Entitas license][license].
Thanks for your contributions and happy coding :)
Simon
[repo]: https://github.com/sschmid/Entitas "sschmid/Entitas"
[issues]: https://github.com/sschmid/Entitas/issues "Issues"
[pulls]: https://github.com/sschmid/Entitas/pulls "Pull Requests"
[issues-new]: https://github.com/sschmid/Entitas/issues/new "New issue"
[license]: https://github.com/sschmid/Entitas/blob/develop/LICENSE.txt "License"
================================================
FILE: Directory.Build.props
================================================
<Project>
<PropertyGroup>
<DefaultNetTargetFramework>net6.0</DefaultNetTargetFramework>
<DefaultTargetFramework>netstandard2.1</DefaultTargetFramework>
<DefaultTestTargetFramework>net6.0</DefaultTestTargetFramework>
<DefaultGeneratorFramework>netstandard2.0</DefaultGeneratorFramework>
<Deterministic>true</Deterministic>
<LangVersion>default</LangVersion>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>
<ItemGroup Label="NuGet">
<None Include="../../icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
<PropertyGroup Label="Docker">
<DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/obj/**/*</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/bin/**/*</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition="'$(DOTNET_RUNNING_IN_CONTAINER)' == 'true'">
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/obj/container/</BaseIntermediateOutputPath>
<BaseOutputPath>$(MSBuildProjectDirectory)/bin/container/</BaseOutputPath>
</PropertyGroup>
<Import Project="Unity3D.props" />
<PropertyGroup Label="Unity3D">
<UnityVersion>2021.3.0f1</UnityVersion>
<UnityEditor>$(UnityHubPath)/$(UnityVersion)/$(UnityEditorPath)</UnityEditor>
<UnityEngine>$(UnityHubPath)/$(UnityVersion)/$(UnityEnginePath)</UnityEngine>
</PropertyGroup>
<PropertyGroup Condition="'$(DOTNET_RUNNING_IN_CONTAINER)' == 'true'">
<UnityEditor>$(MSBuildStartupDirectory)/build/Managed/UnityEditor.dll</UnityEditor>
<UnityEngine>$(MSBuildStartupDirectory)/build/Managed/UnityEngine.dll</UnityEngine>
</PropertyGroup>
</Project>
================================================
FILE: Directory.Build.targets
================================================
<Project>
<PropertyGroup Label="NuGet">
<Authors>Simon Schmid</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>icon.png</PackageIcon>
<PackageProjectUrl>https://github.com/sschmid/Entitas</PackageProjectUrl>
<Company>Entitas</Company>
<Description>$(AssemblyName)</Description>
<Copyright>Simon Schmid</Copyright>
<PackageTags>Entitas, ECS, Entity, Component, System, DesperateDevs, Desperate, Devs</PackageTags>
<RepositoryUrl>https://github.com/sschmid/Entitas</RepositoryUrl>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
</Project>
================================================
FILE: Entitas.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
#
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Entitas", "Entitas", "{C6D52863-46B5-4E9E-86DF-B937688BAB4C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas", "src/Entitas/Entitas.csproj", "{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Benchmarks", "benchmarks/Entitas.Benchmarks/Entitas.Benchmarks.csproj", "{4DE97264-489D-4EA7-9424-245CFD3292E8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Tests", "tests/Entitas.Tests/Entitas.Tests.csproj", "{293F3CF5-5251-4963-8AB7-3CC88F53D13A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Entitas.Generators", "Entitas.Generators", "{325ACD85-BA09-42FC-964E-DAA9F4D9A81B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Generators", "gen/Entitas.Generators/Entitas.Generators.csproj", "{85A3226F-6C66-40F9-B132-E89F59F46F67}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Generators.Attributes", "src/Entitas.Generators.Attributes/Entitas.Generators.Attributes.csproj", "{95686F95-12E5-4C3B-AEFC-A164D1521024}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Generators.IntegrationTests", "tests/Entitas.Generators.IntegrationTests/Entitas.Generators.IntegrationTests.csproj", "{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Generators.Tests", "tests/Entitas.Generators.Tests/Entitas.Generators.Tests.csproj", "{93F1F79E-416A-4DAB-9B75-F1FC0FE46458}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Generators.Tests.Fixtures.Dependencies", "tests/Entitas.Generators.Tests.Fixtures.Dependencies/Entitas.Generators.Tests.Fixtures.Dependencies.csproj", "{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Entitas.Unity", "Entitas.Unity", "{552D0572-A491-49A5-8975-F53131E12E6B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Unity", "src/Entitas.Unity/Entitas.Unity.csproj", "{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Unity.Editor", "src/Entitas.Unity.Editor/Entitas.Unity.Editor.csproj", "{9AF72B25-85B0-4FDC-85C3-660926C82438}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entitas.Unity.Tests", "tests/Entitas.Unity.Tests/Entitas.Unity.Tests.csproj", "{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8}.Release|Any CPU.Build.0 = Release|Any CPU
{4DE97264-489D-4EA7-9424-245CFD3292E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4DE97264-489D-4EA7-9424-245CFD3292E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4DE97264-489D-4EA7-9424-245CFD3292E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4DE97264-489D-4EA7-9424-245CFD3292E8}.Release|Any CPU.Build.0 = Release|Any CPU
{293F3CF5-5251-4963-8AB7-3CC88F53D13A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{293F3CF5-5251-4963-8AB7-3CC88F53D13A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{293F3CF5-5251-4963-8AB7-3CC88F53D13A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{293F3CF5-5251-4963-8AB7-3CC88F53D13A}.Release|Any CPU.Build.0 = Release|Any CPU
{85A3226F-6C66-40F9-B132-E89F59F46F67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85A3226F-6C66-40F9-B132-E89F59F46F67}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85A3226F-6C66-40F9-B132-E89F59F46F67}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85A3226F-6C66-40F9-B132-E89F59F46F67}.Release|Any CPU.Build.0 = Release|Any CPU
{95686F95-12E5-4C3B-AEFC-A164D1521024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95686F95-12E5-4C3B-AEFC-A164D1521024}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95686F95-12E5-4C3B-AEFC-A164D1521024}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95686F95-12E5-4C3B-AEFC-A164D1521024}.Release|Any CPU.Build.0 = Release|Any CPU
{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964}.Release|Any CPU.Build.0 = Release|Any CPU
{93F1F79E-416A-4DAB-9B75-F1FC0FE46458}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93F1F79E-416A-4DAB-9B75-F1FC0FE46458}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93F1F79E-416A-4DAB-9B75-F1FC0FE46458}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93F1F79E-416A-4DAB-9B75-F1FC0FE46458}.Release|Any CPU.Build.0 = Release|Any CPU
{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629}.Release|Any CPU.Build.0 = Release|Any CPU
{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6}.Release|Any CPU.Build.0 = Release|Any CPU
{9AF72B25-85B0-4FDC-85C3-660926C82438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AF72B25-85B0-4FDC-85C3-660926C82438}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9AF72B25-85B0-4FDC-85C3-660926C82438}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AF72B25-85B0-4FDC-85C3-660926C82438}.Release|Any CPU.Build.0 = Release|Any CPU
{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A0A11CC3-8B1E-4345-A5FA-01FC60E581D8} = {C6D52863-46B5-4E9E-86DF-B937688BAB4C}
{4DE97264-489D-4EA7-9424-245CFD3292E8} = {C6D52863-46B5-4E9E-86DF-B937688BAB4C}
{293F3CF5-5251-4963-8AB7-3CC88F53D13A} = {C6D52863-46B5-4E9E-86DF-B937688BAB4C}
{85A3226F-6C66-40F9-B132-E89F59F46F67} = {325ACD85-BA09-42FC-964E-DAA9F4D9A81B}
{95686F95-12E5-4C3B-AEFC-A164D1521024} = {325ACD85-BA09-42FC-964E-DAA9F4D9A81B}
{2AE8A018-67C9-4CAD-83F8-A96E7EDDA964} = {325ACD85-BA09-42FC-964E-DAA9F4D9A81B}
{93F1F79E-416A-4DAB-9B75-F1FC0FE46458} = {325ACD85-BA09-42FC-964E-DAA9F4D9A81B}
{4ACE9075-27A7-49BB-B9C4-48B1D2BBF629} = {325ACD85-BA09-42FC-964E-DAA9F4D9A81B}
{CB3ADCB3-E842-4A71-B32E-15ABDE7311F6} = {552D0572-A491-49A5-8975-F53131E12E6B}
{9AF72B25-85B0-4FDC-85C3-660926C82438} = {552D0572-A491-49A5-8975-F53131E12E6B}
{CEFDF4DE-6410-4ED0-B711-D43E198BA6C4} = {552D0572-A491-49A5-8975-F53131E12E6B}
EndGlobalSection
EndGlobal
================================================
FILE: Entitas.sln.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=2DD9FDAC2C7BC744A5303D2D02567D0D/RelativePath/@EntryValue">..\.sln.dotsettings\CodeStyle.DotSettings</s:String>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=2DD9FDAC2C7BC744A5303D2D02567D0D/@KeyIndexDefined">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File2DD9FDAC2C7BC744A5303D2D02567D0D/@KeyIndexDefined">True</s:Boolean>
<s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File2DD9FDAC2C7BC744A5303D2D02567D0D/RelativePriority/@EntryValue">1</s:Double>
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=18F6DFA7A32AC84081CE80F4F2EED0FF/RelativePath/@EntryValue">..\.sln.dotsettings\InspectionSettings.DotSettings</s:String>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=18F6DFA7A32AC84081CE80F4F2EED0FF/@KeyIndexDefined">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File18F6DFA7A32AC84081CE80F4F2EED0FF/@KeyIndexDefined">True</s:Boolean>
<s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File18F6DFA7A32AC84081CE80F4F2EED0FF/RelativePriority/@EntryValue">1.5</s:Double>
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=677D4764D5BC5A438D6234119C8CE46B/RelativePath/@EntryValue">..\.sln.dotsettings\PatternsAndTemplates.DotSettings</s:String>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=677D4764D5BC5A438D6234119C8CE46B/@KeyIndexDefined">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File677D4764D5BC5A438D6234119C8CE46B/@KeyIndexDefined">True</s:Boolean>
<s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File677D4764D5BC5A438D6234119C8CE46B/RelativePriority/@EntryValue">2</s:Double></wpf:ResourceDictionary>
================================================
FILE: EntitasUpgradeGuide.md
================================================
Entitas Upgrade Guide
=====================
Entitas provides automated migration tools to help upgrading to new versions.
You can apply automatic migrations in Unity by opening the Entitas Migration Window
`Tools > Entitas > Migrate...`
This document contains checklists for every release with breaking changes.
Entitas 0.47.2 upgrade guide
============================
#### Breaking changes
Apply Migration 0.47.2 to automatically rename the changed keys your properties files.
The following keys changed from:
- CodeGenerator.SearchPaths
- CodeGenerator.Plugins
- CodeGenerator.PreProcessors
- CodeGenerator.DataProviders
- CodeGenerator.CodeGenerators
- CodeGenerator.PostProcessors
- CodeGenerator.CLI.Ignore.UnusedKeys or Ignore.Keys
to:
- Jenny.SearchPaths
- Jenny.Plugins
- Jenny.PreProcessors
- Jenny.DataProviders
- Jenny.CodeGenerators
- Jenny.PostProcessors
- Jenny.Ignore.Keys
---
Entitas 0.46.0 upgrade guide
============================
#### Breaking changes
Removed methods marked obsolete in 0.42.0 from April 2017
- `context.CreateCollector<TEntity>(IMatcher<TEntity> matcher, GroupEvent groupEvent)`
- `new Context(int totalComponents, int startCreationIndex, ContextInfo contextInfo)`
- `context.DestroyEntity(TEnity entity)`
#### After you installed
First, edit the file `Generated/Feature.cs` and comment or delete the lines with compiler errors.
Then, run auto-import to use the new DesperateDevs.CodeGeneration.Plugins and generate.
Entitas.properties can be named differently now. By default it will be called
Preferences.properties. Additionally, you can delete User.properties or rename it
to Xyz.userproperties. If this file doesn't exist, it will automatically be generated for you.
You can have multiple properties and userproperties files now, e.g.
Preferences.properties and Roslyn.properties. In Unity it will automatically find and use
the first file. When using the Code Generator CLI (called Jenny now) you can explicitly
specify files like this
```
// will find and use the first file
$ jenny gen
// specify a file
$ jenny gen Roslyn.properties
// optionally specify an other userproperties
jenny gen Roslyn.properties My.userproperties
```
---
Entitas 0.45.0 upgrade guide
============================
#### Breaking changes
Use the command line tool `MigrationAssistant.exe` and apply Migration 0.45.0 to
automatically rename the changed keys in Entitas.properties
`MigrationAssistant.exe 0.45.0 path/to/project`
The following keys in Entitas.properties changed from:
- Entitas.CodeGeneration.CodeGenerator.SearchPaths
- Entitas.CodeGeneration.CodeGenerator.Plugins
- Entitas.CodeGeneration.CodeGenerator.DataProviders
- Entitas.CodeGeneration.CodeGenerator.CodeGenerators
- Entitas.CodeGeneration.CodeGenerator.PostProcessors
- Entitas.CodeGeneration.CodeGenerator.CLI.Ignore.UnusedKeys
to:
- CodeGenerator.SearchPaths
- CodeGenerator.Plugins
- CodeGenerator.DataProviders
- CodeGenerator.CodeGenerators
- CodeGenerator.PostProcessors
- CodeGenerator.CLI.Ignore.UnusedKeys
The default plugins are now in folder called `Entitas` instead of `Default`. Please update
the searchPaths in Entitas.properties.
`Entitas.exe` is now uppercase with capital E
---
Entitas 0.42.0 upgrade guide
============================
#### Breaking changes
- 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()`)
#### After you installed
- Removed Entitas.Blueprints.Unity.*
- Remove all Entitas.Blueprints.Unity.* related code
- Remove BinaryBlueprints from your project. Consider using extension methods as described here instead https://github.com/sschmid/Entitas/issues/390
- Remove from Entitas.properties:
- Entitas.Blueprints.CodeGeneration.Plugins
- Entitas.Blueprints.CodeGeneration.Plugins.BlueprintDataProvider
- Entitas.Blueprints.CodeGeneration.Plugins.BlueprintsGenerator
- Changed ReactiveSystem.GetTrigger() method signature
- find and replace `protected override Collector` -> `protected override ICollector`
- Generate
- 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()`)
---
Entitas 0.41.0 upgrade guide
============================
#### Breaking changes
In order to deploy Entitas as Dlls which enables 3rd party Addons and the extendable command line code generator the projects have been restructured. This restructuring has an impact on namespaces.
#### Before you install
- You're fine - nothing to do for you :heart:
#### After you installed
- Apply Migrations 0.41.0-1
- Apply Migrations 0.41.0-2
- Apply Migrations 0.41.0-3
These migrations should update most of the namespaces. Depending on which features of Entitas you have used there might be a chance that not all namespaces have been updated. In this case please fix the remaining namespaces manually.
Entitas.properties keys have been updated to support the latest code generator. Please open Entitas.properties in your project root and make sure the keys are updated. Here's an example from Match One
```
Entitas.CodeGeneration.Project = Assembly-CSharp.csproj
Entitas.CodeGeneration.SearchPaths = Assets/Libraries/Entitas, Assets/Libraries/Entitas/Editor, /Applications/Unity/Unity.app/Contents/Managed
Entitas.CodeGeneration.Assemblies = Library/ScriptAssemblies/Assembly-CSharp.dll
Entitas.CodeGeneration.Plugins = Entitas.CodeGeneration.Plugins, Entitas.CodeGeneration.Unity.Editor, Entitas.VisualDebugging.CodeGeneration.Plugins, Entitas.Blueprints.CodeGeneration.Plugins
Entitas.CodeGeneration.DataProviders = Entitas.Blueprints.CodeGeneration.Plugins.BlueprintDataProvider, Entitas.CodeGeneration.Plugins.ComponentDataProvider, Entitas.CodeGeneration.Plugins.ContextDataProvider, Entitas.CodeGeneration.Plugins.EntityIndexDataProvider
Entitas.CodeGeneration.CodeGenerators = Entitas.Blueprints.CodeGeneration.Plugins.BlueprintsGenerator, Entitas.CodeGeneration.Plugins.ComponentContextGenerator, Entitas.CodeGeneration.Plugins.ComponentEntityGenerator, Entitas.CodeGeneration.Plugins.ComponentGenerator, Entitas.CodeGeneration.Plugins.ComponentsLookupGenerator, Entitas.CodeGeneration.Plugins.ContextAttributeGenerator, Entitas.CodeGeneration.Plugins.ContextGenerator, Entitas.CodeGeneration.Plugins.ContextsGenerator, Entitas.CodeGeneration.Plugins.EntityGenerator, Entitas.CodeGeneration.Plugins.EntityIndexGenerator, Entitas.CodeGeneration.Plugins.MatcherGenerator, Entitas.VisualDebugging.CodeGeneration.Plugins.ContextObserverGenerator, Entitas.VisualDebugging.CodeGeneration.Plugins.FeatureClassGenerator
Entitas.CodeGeneration.PostProcessors = Entitas.CodeGeneration.Plugins.AddFileHeaderPostProcessor, Entitas.CodeGeneration.Plugins.CleanTargetDirectoryPostProcessor, Entitas.CodeGeneration.Plugins.MergeFilesPostProcessor, Entitas.CodeGeneration.Plugins.NewLinePostProcessor, Entitas.CodeGeneration.Plugins.WriteToDiskPostProcessor, Entitas.CodeGeneration.Plugins.ConsoleWriteLinePostProcessor, Entitas.CodeGeneration.Unity.Editor.DebugLogPostProcessor
Entitas.CodeGeneration.TargetDirectory = Assets/Sources/
Entitas.CodeGeneration.Contexts = Game, GameState, Input
Entitas.VisualDebugging.Unity.SystemWarningThreshold = 8
Entitas.VisualDebugging.Unity.DefaultInstanceCreatorFolderPath = Assets/Editor/DefaultInstanceCreator/
Entitas.VisualDebugging.Unity.TypeDrawerFolderPath = Assets/Editor/TypeDrawer/
```
Explanation:
- Entitas.CodeGeneration.Project: Relative path to your project.csproj (when using Unity use `Assembly-CSharp.csproj`)
- Entitas.CodeGeneration.SearchPaths: The new code generator can be extended with 3rd party plugins. Specify all folders where plugin dlls can be found. Plugins may depend on UnityEngine or UnityEditor, if so please specify where those dlls can be found (Unity default on Mac: `/Applications/Unity/Unity.app/Contents/Managed`
- Entitas.CodeGeneration.Assemblies: One or more Dlls that contain your components
- Entitas.CodeGeneration.Plugins: One or more Code Generator Plugin Dlls or namespaces
If all set up correctly DataProviders, CodeGenerators and PostProcessors can be set in Unity.
The command line code generator currently doesn't support the following plugins:
- Entitas.Blueprints.CodeGeneration.Plugins (contains Blueprint DataProvider and CodeGenerator)
- Entitas.CodeGeneration.Unity.Editor (contains DebugLogPostProcessor)
because they use Unity specific api. They will work as expected when generating from within Unity but don't work on the command line.
To test the config for potential problems, please unzip Entitas-CodeGenerator.zip in the root folder of your project.
---
### Note for Windows users
- Right-click Entitas-CodeGenerator.zip, open properties
- Check "Unblock"
- Hit Apply
- unzip
---
```
// skip mono on Windows
$ mono ./CodeGenerator/entitas.exe
Entitas Code Generator version 0.41.0
usage: entitas new [-f] - Creates new Entitas.properties config with default values
entitas edit - Opens Entitas.properties config
entitas doctor - Checks the config for potential problems
entitas status - Lists available and unavailable plugins
entitas fix - Adds missing or removes unused keys interactively
entitas scan - Scans and prints available types found in specified assemblies
entitas dry - Simulates generating files without writing to disk
entitas gen - Generates files based on Entitas.properties
[-v] - verbose output
[-s] - silent output (errors only)
```
To check the config for potential problems please run
```
$ mono ./CodeGenerator/entitas.exe doctor
```
The `doctor` command will show you the status and potential problems. Sometime you might get a warning like this:
```
- Could not resolve xyz.dll
```
This is just a warning. If no error is shown after running the `doctor` command, you can ignore those. All code generator plugins must be resolvable in order to be used. Use the `status` command to see available and unavailable plugins. This command helps you manage the plugins. Add or remove DataProviders, CodeGenerators or PostProcessors and check with `status` until you're happy. As usual, you can also use the Entitas Preferences Window in Unity to set up everything.
If there are nor problems use the `gen` command to generate or use the green generate button in Unity as usual.
---
Entitas 0.37.0 upgrade guide
============================
#### Breaking changes
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.
This change breaks existing projects! It is possible to manually migrate existing projects but there is no special workflow
other than manually use find / replace to fix all compile errors. I use Entitas 0.37.0 in my current project (500+ systems)
and was able to migrate within less than two days. If you have less systems and components you should be able to migrate within one day.
Reminder: If you're updating from versions < 0.36.0 you should update to 0.36.0 first. Be aware that existing Blueprints(Beta) are breaking
because of the renaming from `Pool` to `Context`. Existing Binary Blueprints have to be manually updated.
If you're not sure if you should update you can wait another week. I plan to make a video to show how to upgrade existing projects.
After this you should be able to decide if you want to update or not.
#### Before you install
- Rename `SingleEntityAttribute` to `UniqueAttribute`
- Change namespace of all attributes in CodeGenerator/Attributes to `Entitas.CodeGenerator.Api`
- Find / replace `using Entitas.CodeGenerator` to `using Entitas.CodeGenerator.Api` in all generated context attributes
- Find / replace `using Entitas.CodeGenerator;` to `using Entitas.CodeGenerator.Api;` in all generated components
#### After you installed
After installing Entitas 0.37.0 you most likely end up having lots of compiler errors. The 2 biggest issues are:
- Generated components
- Systems
There migh also be other issues depending how you used Entitas before, but fixing the generated components and the systems
might already do most of the work.
##### Problem 1 (Components):
The old generated components extend Entitas.Entity by using `partial class`.
The new version inherits Entitas.Entity to have a new entity type and to get rid of `partial class` to enable
having Entitas as a precompiled dll.
##### Solution 1 (Components)
The goal is to update the generated components. I see 3 possible workflows to fix them:
1. Delete all components and generated components and use the EntitasLang DSL https://github.com/mzaks/ECS-Lang
2. Temporarily move all the logic (systems) out of your Unity project and delete the generated components.
After this there shouldn't be any compile errors anymore (if so, temporarily move them out if your Unity project).
Now you should be able to re-generate. After that, move all the files back to your Unity project.
3. Manually use find / replace in the generated components folder to migrate the components
##### Problem 2 (Systems)
All reactive systems need to be updated to be type-safe.
##### Solution 2 (Systems)
Manually use find / replace to migrate e.g. method signatures and other issues
Take a look at [Match-One AnimatePositionSystem.cs](https://github.com/sschmid/Match-One/blob/develop/Assets/Sources/Logic/View/Systems/AnimatePositionSystem.cs)
to see how the new reactive systems look like.
##### Other issues
There might be other issues related to the type-safety. Rule of thumb:
- Every occurrences of `Entity` must be typed now, e.g. `GameEntity`
- Every occurrences of `Group` must be typed now, e.g. `IGroup<GameEntity>`
- Every occurrences of `Context` must be typed now, e.g. `IContext<GameEntity>` or `GameContext` if possible
- Every occurrences of `Collector` must be typed now, e.g. `Collector<GameEntity>`
- Every occurrences of `Matcher` must be typed now, e.g. `Matcher<GameEntity>.AllOf(...)`
I recommend using find / replace on ceratin folders to fix those issues efficiently.
---
Entitas 0.36.0 upgrade guide
============================
#### Breaking changes
The term `Pool` has been replaced with `Context`. This affects all classes that
contain the word pool.
`EntityCollector` has been renamed to `Collector`
`GroupEventType` has been renamed to `GroupEvent`
#### Before you install
- Rename `Pools.CreatePool()` to `Pools.CreateContext`
- Rename `Pool` to `Context`
- Rename `Pools` to `Contexts`
- Rename `Pools.SetAllPools()` to `Pools.SetAllContexts()`
- Rename `PoolAttribute` to `ContextAttribute`
- Rename `EntityCollector` to `Collector`
- Rename `GroupEventType` to `GroupEvent`
- Rename `GroupEventType.OnEntityAdded` to `GroupEvent.Added`
- Rename `GroupEventType.OnEntityRemoved` to `GroupEvent.Removed`
- Rename `GroupEventType.OnEntityAddedOrRemoved` to `GroupEvent.AddedOrRemoved`
#### After you installed
- Use the command line tool `MigrationAssistant.exe` and apply Migration 0.36.0-2
- Manually migrate all systems and fix compiler errors
- apply Migration 0.36.0-1
- Ensure all code generator are selected and generate
---
Entitas 0.35.0 upgrade guide
============================
#### Breaking changes
`IMatcher.Where()` has been removed. See #194
#### Before you install
- You're fine - nothing to do for you :heart:
#### After you installed
- Fix all the errors where you used `matcher.Where()`
---
Entitas 0.34.0 upgrade guide
============================
#### Breaking changes
`GroupObserver` has been renamed to `EntityCollector`. See #168
#### Before you install
- Rename `GroupObserver` to `EntityCollector`
- Rename `.CreateGroupObserver()` to `.CreateEntityCollector()`
- Rename `IGroupObserverSystem` to `IEntityCollectorSystem`
- Find & Replace `public EntityCollector groupObserver` with `public EntityCollector entityCollector`
#### After you installed
- You're fine - nothing to do for you :heart:
---
Entitas 0.33.0 upgrade guide
============================
#### Breaking changes
`IDeinitializeSystem` has been renamed to `ITearDownSystem`. See #164
#### Before you install
- Manually rename `IDeinitializeSystem` to `ITearDownSystem`
#### After you installed
- You're fine - nothing to do for you :heart:
---
Entitas 0.32.0 upgrade guide
============================
Use the command line tool `MigrationAssistant.exe` to automatically fix compile errors.
Entitas 0.32.0 introduces a new Pools class. Using the new PoolsGenerator will require
to update your existing project manually. You can still use the old Pools class in your
existing project if you want. If so, please use the OldPoolsGenerator instead of the new one.
---
Entitas 0.30.0 upgrade guide
============================
Some code generators got renamed. Apply Migration 0.30.0
---
Entitas 0.29.0 upgrade guide
============================
Marked old PoolMetaData constructor obsolete. If you encounter compile errors
please apply Migration 0.26.0, open C# project and generate again.
---
Entitas 0.28.0 upgrade guide
============================
If you're using Entitas with Unity, please open the Entitas preferences and make
sure that all your desired code generators are activated.
Due to some code generator renamings the ComponentIndicesGenerators inactive.
The SystemsGenerator has been removed. Please use `pool.CreateSystem<MySystem>()` instead.
---
Entitas 0.27.0 upgrade guide
============================
If you're using Entitas with Unity, please open the Entitas preferences and make
sure that all your desired code generators are activated.
Due to some code generator renamings the ComponentLookupGenerator and
the ComponentsGenerator are inactive. Activate them (if desired) and generate.
---
Entitas 0.26.0 upgrade guide
============================
Use the command line tool `MigrationAssistant.exe` to automatically fix compile errors.
After that generate again.
---
Entitas 0.24.0 upgrade guide
============================
To fix the compile errors after updating to Entitas 0.24.0, delete in `Pools.cs`
```csharp
#if (UNITY_EDITOR)
var poolObserver = new Entitas.Unity.VisualDebugging.PoolObserver(_pool, ComponentIds.componentNames, ComponentIds.componentTypes, "Pool");
UnityEngine.Object.DontDestroyOnLoad(poolObserver.entitiesContainer);
#endif
```
and generate again.
---
Entitas 0.23.0 upgrade guide
============================
Entitas 0.23.0 changed and applied naming conventions.
Before updating to this version, follow these steps to prepare your project:
#### Rename
Pool.Count -> Pool.count
Group.Count -> Group.count
Properties.count -> Properties.count
#### Find/Replace in generated folder
": AllOfMatcher " -> ""
": base(new [] { index }) " -> ""
"static AllOfMatcher _matcher" -> "static IMatcher _matcher"
"public static AllOfMatcher" -> "public static IMatcher"
"new Matcher" -> "Matcher.AllOf"
#### Delete
In generated ...ComponentIds
namespace Entitas {
public partial class XYZMatcher {
public Matcher(int index) {
}
public override string ToString() {
return ComponentIds.IdToString(indices[0]);
}
}
}
---
Entitas 0.22.0 upgrade guide
============================
Entitas 0.22.0 changed IReactiveSystem and IMultiReactiveSystem and renamed IStartSystem.Start to IInitializeSystem.Initialize.
Use the command line tool `MigrationAssistant.exe` to automatically migrate IReactiveSystem.
---
Entitas 0.19.0 upgrade guide
============================
Entitas 0.19.0 introduces a few breaking changes:
Added new e.OnComponentReplaced and removed all *WillBeRemoved events.
If you used `group.OnEntityWillBeRemoved`, you could replace it either with
```cs
_group.OnEntityRemoved += (group, entity, index, component) => { //... };
```
or with
```cs
_group.OnEntityUpdated += (group, entity, index, previousComponent, newComponent) => { // ...};
```
If your generated component extensions are not compiling, find/replace `WillRemoveComponent` with `//WillRemoveComponent`
to temporarily ignore the errors.
IReactiveSystem.Execute takes List<Entity> instead of Entity[]. Use the command line tool `MigrationAssistant.exe` to automatically migrate.
```
$ mono MigrationAssistant.exe
usage:
[-l] - print all available versions
[version] [path] - apply migration of version [version] to source files located at [path]
$ mono MigrationAssistant.exe -l
0.18.0 - Migrates IReactiveSystem API
0.19.0 - Migrates IReactiveSystem.Execute
// Example from Math-One example project, where all the systems are located in the Features folder
$ mono MigrationAssistant.exe 0.19.0 /Path/To/Project/Assets/Sources/Features
```
---
Entitas 0.18.0 upgrade guide
============================
Entitas 0.18.0 changes IReactiveSystem. To upgrade your source files, follow these steps
- Install Entitas 0.18.0 (which will result in compiler errors)
- Use the command line tool `MigrationAssistant.exe` to automatically migrate
```
$ mono MigrationAssistant.exe
usage:
[-l] - print all available versions
[version] [path] - apply migration of version [version] to source files located at [path]
$ mono MigrationAssistant.exe -l
0.18.0 - Migrates IReactiveSystem API
// Example from Math-One example project, where all the systems are located in the Features folder
$ mono MigrationAssistant.exe 0.18.0 /Path/To/Project/Assets/Sources/Features
```
---
Entitas 0.12.0 upgrade guide
============================
Entitas 0.12.0 generates prefixed matchers based on the PoolAttribute and introduces some
API changes. In your existing project with a Entitas version < 0.12.0 manually rename the
following classes and methods.
## Before installing Entitas 0.12.0
#### Rename
pool.CreateSystem() -> pool.CreateExecuteSystem()
Now that you're prepared for integrating the latest version, delete your existing version
of Entitas, EntitasCodeGenerator and EntitasUnity.
#### Delete
Entitas
EntitasCodeGenerator
EntitasUnity
## Install Entitas 0.12.0
#### Setup Entitas Preferences
Open the Unity preference panel and select Entitas. Check and update the path to the folder where
the code generator will save all generated files. If you are using the PoolAttribute in your components,
add all custom pool names used in your application. Make sure that all existing custom PoolAttributes call
the base constructor with the same name as the class (without 'Attribute').
If you are not using the PoolAttribute in your components, you can skip this process.
```cs
using Entitas.CodeGenerator;
public class CoreGameAttribute : PoolAttribute {
public CoreGameAttribute() : base("CoreGame") {
}
}
```
#### Code Generator
Use the code generator and generate
#### Update API
Click the MenuItem "Entitas/Update API". All occurrences of the old Matcher will be updated
to the new version, which is prefixed based on the PoolAttribute.
#### Delete
Delete all custom PoolAttributes
---
Entitas 0.10.0 upgrade guide
============================
Beside features, Entitas 0.10.0 includes lots of renaming. If your current Entitas
version is < 0.10.0, you might want to follow the next few simple renaming steps,
to speed up the integration of the latest version of Entitas.
In your existing project with a Entitas version < 0.10.0 manually rename the following
classes and methods.
## Before installing Entitas 0.10.0
#### Rename
EntityRepository -> Pool
EntityRepository.GetCollection() -> Pool.GetGroup()
EntityCollection -> Group
EntityCollection.EntityCollectionChange -> Group.GroupChanged
EntityRepositoryObserver -> GroupObserver
EntityRepositoryObserver.EntityCollectionEventType -> GroupObserver.GroupEventType
IEntityMatcher -> IMatcher
IEntitySystem -> IExecuteSystem
AllOfEntityMatcher -> AllOfMatcher
EntityRepositoryAttribute -> PoolAttribute
IReactiveSubEntitySystem -> IReactiveSystem
ReactiveEntitySystem -> ReactiveSystem
#### Delete
EntityWillBeRemovedEntityRepositoryObserver -> DELETE
IReactiveSubEntityWillBeRemovedSystem -> DELETE
ReactiveEntityWillBeRemovedSystem -> DELETE
Now that you're prepared for integrating the latest version, delete your existing version
of Entitas, EntitasCodeGenerator and ToolKit.
#### Delete
Entitas
EntitasCodeGenerator
ToolKit (unless you use classes from ToolKit. The new version of Entitas doesn't depend on ToolKit anymore)
## Install Entitas 0.10.0
#### Fix remaining issues
IReactiveSubEntityWillBeRemovedSystem
- Consider implementing ISystem & ISetPool and use group.OnEntityWillBeRemoved += foobar;
#### Code Generator
Use the code generator and generate
================================================
FILE: LICENSE.md
================================================
The MIT License
Copyright (c) 2014 - 2023 Simon Schmid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: README.md
================================================
<p align="center">
<img src="images/Entitas-Header.png" alt="Entitas">
</p>
<p align="center">
<a href="https://discord.gg/uHrVx5Z"><img src="https://img.shields.io/discord/599321316377624601.svg?logo=discord&logoColor=FFFFFF&label=Discord&labelColor=6A7EC2&color=7389D8" alt="Entitas on Discord"></a>
<a href="https://github.com/sschmid/Entitas/releases"><img src="https://img.shields.io/github/release/sschmid/Entitas.svg" alt="Latest release"></a>
<a href="https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2FEntitas&screen_name=entitas_csharp&tw_p=followbutton"><img src="https://img.shields.io/twitter/follow/entitas_csharp" alt="Twitter Follow Me"></a>
<a href="https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2FEntitas&screen_name=s_schmid&tw_p=followbutton"><img src="https://img.shields.io/twitter/follow/s_schmid" alt="Twitter Follow Me"></a>
</p>
<p align="center">
<b>Entitas is free, but powered by</b>
<a href="https://www.paypal.com/donate/?hosted_button_id=BTMLSDQULZ852"><b>your donations</b></a>
</p>
<p align="center">
<a href="https://www.paypal.com/donate/?hosted_button_id=BTMLSDQULZ852"><img src="https://img.shields.io/static/v1.svg?logo=paypal&label=PayPal&labelColor=3F70B6&&message=Donate&color=gray" alt="Donate"></a>
</p>
# Entitas - The Entity Component System Framework for C# and Unity
Entitas is the most popular open-source Entity Component System Framework (ECS)
and is specifically made for C# and Unity. Several design decisions have been
made to work optimal in a garbage collected environment and to go easy on the
garbage collector. Entitas comes with an optional code generator which radically
reduces the amount of code you have to write and
[makes your code read like well written prose.](https://cleancoders.com)
# Why Entitas
- [#1 open-source ECS on GitHub](https://github.com/sschmid/Entitas)
- 100% open-source under the [MIT License](LICENSE.md)
- great and helpful community on [Discord](https://discord.gg/uHrVx5Z)
- easy to learn and easy to use
- works great in pure C# standalone projects without Unity
- comes with great Unity integration called Visual Debugging
- battle-tested at companies like [Popcore](https://popcore.com) (Rollic / Zynga / Take Two), [Gram Games](https://gram.gs), [Wooga](https://www.wooga.com), [Plarium](https://plarium.com), [Storm Chaser](https://www.stormchaser-games.com) and many more
# Video Tutorials and Unity Unite Talks
| Video | Title | Resources |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|-------------------------------------------------------------------------------------|
| <a href="https://www.youtube.com/watch?v=DZpvUnj2dGI"><img src="https://img.youtube.com/vi/DZpvUnj2dGI/0.jpg" width="200" alt="Video: Entitas - Shmup - Part 2"></a> | Entitas ECS Unity Tutorial - Git & Unit Tests | |
| <a href="https://www.youtube.com/watch?v=L-18XRTarOM"><img src="https://img.youtube.com/vi/L-18XRTarOM/0.jpg" width="200" alt="Video: Entitas - Shmup - Part 1"></a> | Entitas ECS Unity Tutorial - Setup & Basics | |
| <a href="https://www.youtube.com/watch?v=Phx7IJ3XUzg"><img src="https://img.youtube.com/vi/Phx7IJ3XUzg/0.jpg" width="200" alt="Video: Watch the Entitas Talk at Unite Europe 2016"></a> | Unite Europe 2016: ECS architecture with Unity by example | [SlideShare: Unite Europe 2016](http://www.slideshare.net/sschmid/uniteeurope-2016) |
| <a href="https://www.youtube.com/watch?v=Re5kGtxTW6E"><img src="https://img.youtube.com/vi/Re5kGtxTW6E/0.jpg" width="200" alt="Video: Watch the Entitas Talk at Unite Europe 2015"></a> | Unite Europe 2015: Entity system architecture with Unity | [SlideShare: Unite Europe 2015](http://www.slideshare.net/sschmid/uniteeurope-2015) |
# First glimpse
The optional [code generator](https://github.com/sschmid/Entitas/wiki/Code-Generator)
lets you write code that is super fast, safe and literally screams its intent.
```csharp
var entity = context.CreateEntity();
entity.AddPosition(Vector3.zero);
entity.AddVelocity(Vector3.forward);
entity.AddAsset("Player");
```
```csharp
using static GameMatcher;
public sealed class MoveSystem : IExecuteSystem
{
readonly IGroup<GameEntity> _group;
public MoveSystem(GameContext context)
{
_group = context.GetGroup(AllOf(Position, Velocity));
}
public void Execute()
{
foreach (var e in _group.GetEntities())
e.ReplacePosition(e.position.value + e.velocity.value);
}
}
```
# Overview
Entitas is fast, light and gets rid of unnecessary complexity. There are less
than a handful classes you have to know to rocket start your game or application:
- Context
- Entity
- Component
- Group
```
Entitas ECS
+-----------------+
| Context |
|-----------------|
| e e | +-----------+
| e e--|----> | Entity |
| e e | |-----------|
| e e e | | Component |
| e e | | | +-----------+
| e e | | Component-|----> | Component |
| e e e | | | |-----------|
| e e e | | Component | | Data |
+-----------------+ +-----------+ +-----------+
|
|
| +-------------+ Groups:
| | e | Subsets of entities in the context
| | e e | for blazing fast querying
+---> | +------------+
| e | | |
| e | e | e |
+--------|----+ e |
| e |
| e e |
+------------+
```
[Read more...](https://github.com/sschmid/Entitas/wiki/Home)
# Code Generator
The Code Generator generates classes and methods for you, so you can focus on
getting the job done. It radically reduces the amount of code you have to write
and improves readability by a huge magnitude. It makes your code less error-prone
while ensuring best performance.
[Read more...](https://github.com/sschmid/Entitas/wiki/Code-Generator)
# Unity integration
The optional Unity module "Visual Debugging" integrates Entitas nicely into Unity and provides powerful
editor extensions to inspect and debug contexts, groups, entities, components and systems.
[Read more...](https://github.com/sschmid/Entitas/wiki/Unity-integration)
<p align="center">
<img src="images/Entitas.Unity-MenuItems.png" alt="Entitas.Unity MenuItems" height="200"><br />
<img src="images/Entitas.Unity.VisualDebugging-Entity.png" alt="Entitas.Unity.VisualDebugging Entity" width="400">
<img src="images/Entitas.Unity.VisualDebugging-DebugSystems.png" alt="Entitas.Unity.VisualDebugging Systems" width="400">
</p>
# Entitas deep dive
[Read the wiki](https://github.com/sschmid/Entitas/wiki) or checkout the [example projects](https://github.com/sschmid/Entitas/wiki/Example-projects) to
see Entitas in action. These example projects illustrate how systems, groups, collectors and entities all play together seamlessly.
### **[» Download and setup](#download-and-setup-entitas)**
### **[» Video Tutorials and Unity Unite Talks](#video-tutorials-and-unity-unite-talks)**
### **[» Wiki and example projects](https://github.com/sschmid/Entitas/wiki)**
### **[» Ask a question](https://github.com/sschmid/Entitas/issues/new)**
---
# Download and setup Entitas
### GitHub releases (recommended)
[Show releases](https://github.com/sschmid/Entitas/releases)
### Unity package manager
> Coming soon
### NuGet
Entitas and all dependencies are available as [NuGet packages](https://www.nuget.org/packages?q=Entitas).
More detailed explanation coming soon.
### Unity Asset Store (deprecated)
[Entitas on the Unity Asset Store](http://u3d.as/NuJ) is deprecated and will not
be updated anymore. The last version available on the Asset Store is 1.12.3 and
is free to download. Please see discussion [Entitas turns 7 - and is FREE now ](https://github.com/sschmid/Entitas/discussions/1009)
# Thanks to
Big shout out to [@mzaks][github-mzaks], [@cloudjubei][github-cloudjubei] and [@devboy][github-devboy]
for endless hours of discussion and helping making Entitas awesome!
[github-mzaks]: https://github.com/mzaks "@mzaks"
[github-cloudjubei]: https://github.com/cloudjubei "@cloudjubei"
[github-devboy]: https://github.com/devboy "@devboy"
# Maintainers
- [@sschmid][github-sschmid] | [@s_schmid][twitter-sschmid] | [@entitas_csharp][twitter-entitas_csharp]
[github-sschmid]: https://github.com/sschmid "@sschmid"
[twitter-sschmid]: https://twitter.com/s_schmid "s_schmid on Twitter"
[twitter-entitas_csharp]: https://twitter.com/entitas_csharp "entitas_csharp on Twitter"
# Different language?
Entitas is available in
- [C#](https://github.com/sschmid/Entitas)
- [C++](https://github.com/JuDelCo/Entitas-Cpp)
- [Clojure](https://github.com/mhaemmerle/entitas-clj)
- [Crystal](https://github.com/spoved/entitas.cr)
- [Erlang](https://github.com/mhaemmerle/entitas_erl)
- [F#](https://github.com/darkoverlordofdata/entitas-fsharp)
- [Go](https://github.com/wooga/go-entitas)
- [Haskell](https://github.com/mhaemmerle/entitas-haskell)
- [Java](https://github.com/Rubentxu/entitas-java)
- [Kotlin](https://github.com/darkoverlordofdata/entitas-kotlin)
- [Objective-C](https://github.com/wooga/entitas)
- [Python](https://github.com/Aenyhm/entitas-python)
- [Scala](https://github.com/darkoverlordofdata/entitas-scala)
- [Swift](https://github.com/mzaks/Entitas-Swift)
- [TypeScript](https://github.com/darkoverlordofdata/entitas-ts)
================================================
FILE: Unity3D.props
================================================
<Project>
<Choose>
<When Condition="$([MSBuild]::IsOsPlatform(Windows))">
<PropertyGroup>
<OSApplicationPath>C:/Program Files</OSApplicationPath>
<UnityManagedPath>Editor/Data/Managed</UnityManagedPath>
</PropertyGroup>
</When>
<When Condition="$([MSBuild]::IsOsPlatform(OSX))">
<PropertyGroup>
<OSApplicationPath>/Applications</OSApplicationPath>
<UnityManagedPath>Unity.app/Contents/Managed</UnityManagedPath>
</PropertyGroup>
</When>
<When Condition="$([MSBuild]::IsOsPlatform(Linux))">
<PropertyGroup>
<OSApplicationPath>$([System.Environment]::GetFolderPath('System.Environment+SpecialFolder.UserProfile'))</OSApplicationPath>
<UnityManagedPath>Editor/Data/Managed</UnityManagedPath>
</PropertyGroup>
</When>
</Choose>
<PropertyGroup>
<UnityHubPath>$(OSApplicationPath)/Unity/Hub/Editor</UnityHubPath>
</PropertyGroup>
<PropertyGroup>
<UnityEnginePath>$(UnityManagedPath)/UnityEngine.dll</UnityEnginePath>
<UnityEditorPath>$(UnityManagedPath)/UnityEditor.dll</UnityEditorPath>
</PropertyGroup>
</Project>
================================================
FILE: benchmarks/Entitas.Benchmarks/AERCBenchmarks.cs
================================================
#nullable disable
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
// | Method | Mean | Error | StdDev | Rank | Allocated |
// |----------- |----------:|----------:|----------:|-----:|----------:|
// | UnsafeAERC | 1.153 ns | 0.0035 ns | 0.0033 ns | 1 | - |
// | SafeAERC | 18.992 ns | 0.0751 ns | 0.0665 ns | 2 | - |
namespace Entitas.Benchmarks
{
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
public class AERCBenchmarks
{
SafeAERC _safeAerc;
UnsafeAERC _unsafeAerc;
[GlobalSetup]
public void GlobalSetup()
{
_safeAerc = new SafeAERC(null);
_unsafeAerc = new UnsafeAERC();
}
[Benchmark]
public void SafeAERC()
{
_safeAerc.Retain(this);
_safeAerc.Release(this);
}
[Benchmark]
public void UnsafeAERC()
{
_unsafeAerc.Retain(this);
_unsafeAerc.Release(this);
}
}
}
================================================
FILE: benchmarks/Entitas.Benchmarks/CreateComponentBenchmarks.cs
================================================
#nullable disable
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
// | Method | Mean | Error | StdDev | Rank | Gen0 | Allocated |
// |---------- |---------:|----------:|----------:|-----:|-------:|----------:|
// | Manual | 3.392 ns | 0.0159 ns | 0.0149 ns | 1 | 0.0115 | 24 B |
// | Generic | 8.100 ns | 0.0564 ns | 0.0500 ns | 2 | 0.0115 | 24 B |
// | Activator | 9.741 ns | 0.0352 ns | 0.0312 ns | 3 | 0.0115 | 24 B |
namespace Entitas.Benchmarks
{
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
public class CreateComponentBenchmarks
{
Entity _entity;
[GlobalSetup]
public void GlobalSetup()
{
var context = new Context<Entity>(1, () => new Entity());
_entity = context.CreateEntity();
}
[Benchmark]
public MovableComponent Activator()
{
return (MovableComponent)_entity.CreateComponent(0, typeof(MovableComponent));
}
[Benchmark]
public MovableComponent Generic()
{
return _entity.CreateComponent<MovableComponent>(0);
}
[Benchmark]
public MovableComponent Manual()
{
var componentPool = _entity.GetComponentPool(0);
return componentPool.Count > 0
? (MovableComponent)componentPool.Pop()
: new MovableComponent();
}
}
public sealed class MovableComponent : IComponent { }
}
================================================
FILE: benchmarks/Entitas.Benchmarks/DelegateBenchmarks.cs
================================================
#nullable disable
using System;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
// | Method | Mean | Error | StdDev | Rank | Gen0 | Allocated |
// |--------------- |----------:|----------:|----------:|-----:|-------:|----------:|
// | Delegate | 4.674 ns | 0.0105 ns | 0.0093 ns | 1 | 0.0115 | 24 B |
// | InstanceMethod | 10.458 ns | 0.0646 ns | 0.0604 ns | 2 | 0.0421 | 88 B |
namespace Entitas.Benchmarks
{
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
public class DelegateBenchmarks
{
static readonly Func<int, int> TimesTwoDelegate = a => a + a;
int TimesTwo(int a) => a + a;
[Benchmark]
public void InstanceMethod()
{
new MyClass(TimesTwo).Invoke(1);
}
[Benchmark]
public void Delegate()
{
new MyClass(TimesTwoDelegate).Invoke(1);
}
class MyClass
{
readonly Func<int, int> _method;
public MyClass(Func<int, int> method)
{
_method = method;
}
public int Invoke(int a) => _method(a);
}
}
}
================================================
FILE: benchmarks/Entitas.Benchmarks/Entitas.Benchmarks.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>$(DefaultTestTargetFramework)</TargetFramework>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.13.5" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../../src/Entitas/Entitas.csproj" />
</ItemGroup>
</Project>
================================================
FILE: benchmarks/Entitas.Benchmarks/Program.cs
================================================
using BenchmarkDotNet.Running;
using Entitas.Benchmarks;
// BenchmarkRunner.Run<CreateComponentBenchmarks>();
// BenchmarkRunner.Run<DelegateBenchmarks>();
BenchmarkRunner.Run<AERCBenchmarks>();
================================================
FILE: gen/Entitas.Generators/Component/ComponentDeclaration.cs
================================================
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
namespace Entitas.Generators
{
public readonly struct ComponentDeclaration
{
public readonly SyntaxTree? SyntaxTree;
public readonly string? Namespace;
public readonly string FullName;
public readonly string Name;
public readonly ImmutableArray<MemberDeclaration> Members;
public readonly ImmutableArray<string> Contexts;
public readonly bool IsUnique;
public readonly int CleanupMode;
public readonly ImmutableArray<EventDeclaration> Events;
public readonly string FullPrefix;
public readonly string Prefix;
public ComponentDeclaration(SyntaxTree? syntaxTree, INamedTypeSymbol symbol, ImmutableArray<string> contexts)
{
SyntaxTree = syntaxTree;
Namespace = !symbol.ContainingNamespace.IsGlobalNamespace ? symbol.ContainingNamespace.ToDisplayString() : null;
FullName = symbol.ToDisplayString();
Name = symbol.Name;
Members = symbol.GetMembers()
.Where(member => member.DeclaredAccessibility == Accessibility.Public
&& !member.IsStatic
&& member.CanBeReferencedByName
&& member is IFieldSymbol or IPropertySymbol { SetMethod: not null, GetMethod: not null })
.Select<ISymbol, MemberDeclaration?>(static member => member switch
{
IFieldSymbol field => new MemberDeclaration(field),
IPropertySymbol property => new MemberDeclaration(property),
_ => null
})
.OfType<MemberDeclaration>()
.ToImmutableArray();
Contexts = contexts;
IsUnique = symbol.GetAttributes().Any(static attribute => attribute.AttributeClass?.ToDisplayString() == "Entitas.Generators.Attributes.UniqueAttribute");
var cleanupMode = symbol
.GetAttributes()
.FirstOrDefault(static attribute => attribute.AttributeClass?.ToDisplayString() == "Entitas.Generators.Attributes.CleanupAttribute")?
.ConstructorArguments.FirstOrDefault();
CleanupMode = cleanupMode?.Type?.ToDisplayString() == "Entitas.Generators.Attributes.CleanupMode" && cleanupMode.Value.Value is int mode ? mode : -1;
var prefix = Name.RemoveSuffix("Component");
Events = symbol.GetAttributes()
.Where(static attribute => attribute.AttributeClass?.ToDisplayString() == "Entitas.Generators.Attributes.EventAttribute")
.Select(static attribute => attribute.ConstructorArguments)
.Select<ImmutableArray<TypedConstant>, EventDeclaration?>(args =>
{
var eventTarget = args.Length > 0 && args[0].Type?.ToDisplayString() == "Entitas.Generators.Attributes.EventTarget" && args[0].Value is int eventTargetValue ? eventTargetValue : -1;
if (eventTarget == -1)
return null;
var eventType = args.Length > 1 && args[1].Type?.ToDisplayString() == "Entitas.Generators.Attributes.EventType" && args[1].Value is int eventTypeValue ? eventTypeValue : 0;
var order = args.Length > 2 && args[2].Type?.ToDisplayString() == "int" && args[2].Value is int orderValue ? orderValue : 0;
return new EventDeclaration(eventTarget, eventType, order, prefix);
})
.OfType<EventDeclaration>()
.ToImmutableArray();
FullPrefix = FullName.Replace(".", string.Empty).RemoveSuffix("Component");
Prefix = prefix;
}
ComponentDeclaration(ComponentDeclaration component, string fullName, string name, ImmutableArray<MemberDeclaration> members, string prefix)
{
SyntaxTree = component.SyntaxTree;
Namespace = component.Namespace;
FullName = fullName;
Name = name;
Members = members;
Contexts = component.Contexts;
IsUnique = false;
CleanupMode = -1;
Events = ImmutableArray<EventDeclaration>.Empty;
FullPrefix = prefix;
Prefix = prefix;
}
public ComponentDeclaration ToEvent(string fullName, string name, ImmutableArray<MemberDeclaration> members, string componentPrefix)
{
return new ComponentDeclaration(this, fullName, name, members, componentPrefix);
}
public string ContextAwareComponentPrefix(string contextPrefix)
{
return contextPrefix.Replace(".", string.Empty) + Prefix;
}
}
public class FullNameAndContextsComparer : IEqualityComparer<ComponentDeclaration>
{
public static readonly FullNameAndContextsComparer Instance = new FullNameAndContextsComparer();
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Contexts.SequenceEqual(y.Contexts);
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
return (obj.FullName.GetHashCode() * 397) ^ obj.Contexts.GetHashCode();
}
}
}
public class FullNameAndMembersAndContextsComparer : IEqualityComparer<ComponentDeclaration>
{
readonly IEqualityComparer<MemberDeclaration> _memberComparer;
public FullNameAndMembersAndContextsComparer(IEqualityComparer<MemberDeclaration> memberComparer)
{
_memberComparer = memberComparer;
}
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Members.SequenceEqual(y.Members, _memberComparer) &&
x.Contexts.SequenceEqual(y.Contexts);
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
var hashCode = obj.FullName.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Members.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Contexts.GetHashCode();
return hashCode;
}
}
}
public class FullNameAndMembersAndContextsAndIsUniqueComparer : IEqualityComparer<ComponentDeclaration>
{
readonly IEqualityComparer<MemberDeclaration> _memberComparer;
public FullNameAndMembersAndContextsAndIsUniqueComparer(IEqualityComparer<MemberDeclaration> memberComparer)
{
_memberComparer = memberComparer;
}
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Members.SequenceEqual(y.Members, _memberComparer) &&
x.Contexts.SequenceEqual(y.Contexts) &&
x.IsUnique == y.IsUnique;
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
var hashCode = obj.FullName.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Members.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Contexts.GetHashCode();
hashCode = (hashCode * 397) ^ obj.IsUnique.GetHashCode();
return hashCode;
}
}
}
public class FullNameAndContextsAndCleanupModeComparer : IEqualityComparer<ComponentDeclaration>
{
public static readonly FullNameAndContextsAndCleanupModeComparer Instance = new FullNameAndContextsAndCleanupModeComparer();
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Contexts.SequenceEqual(y.Contexts) &&
x.CleanupMode == y.CleanupMode;
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
var hashCode = obj.FullName.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Contexts.GetHashCode();
hashCode = (hashCode * 397) ^ obj.CleanupMode.GetHashCode();
return hashCode;
}
}
}
public class FullNameAndMembersAndContextsAndEventsComparer : IEqualityComparer<ComponentDeclaration>
{
readonly IEqualityComparer<MemberDeclaration> _memberComparer;
readonly IEqualityComparer<EventDeclaration> _eventComparer;
public FullNameAndMembersAndContextsAndEventsComparer(IEqualityComparer<MemberDeclaration> memberComparer, IEqualityComparer<EventDeclaration> eventComparer)
{
_memberComparer = memberComparer;
_eventComparer = eventComparer;
}
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Members.SequenceEqual(y.Members, _memberComparer) &&
x.Contexts.SequenceEqual(y.Contexts) &&
x.Events.SequenceEqual(y.Events, _eventComparer);
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
var hashCode = obj.FullName.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Members.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Contexts.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Events.GetHashCode();
return hashCode;
}
}
}
public class FullNameAndContextsAndEventsComparer : IEqualityComparer<ComponentDeclaration>
{
readonly IEqualityComparer<EventDeclaration> _eventComparer;
public FullNameAndContextsAndEventsComparer(IEqualityComparer<EventDeclaration> eventComparer)
{
_eventComparer = eventComparer;
}
public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
x.FullName == y.FullName &&
x.Contexts.SequenceEqual(y.Contexts) &&
x.Events.SequenceEqual(y.Events, _eventComparer);
public int GetHashCode(ComponentDeclaration obj)
{
unchecked
{
var hashCode = obj.FullName.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Contexts.GetHashCode();
hashCode = (hashCode * 397) ^ obj.Events.GetHashCode();
return hashCode;
}
}
}
public class ComponentsComparer : IEqualityComparer<ImmutableArray<ComponentDeclaration>>
{
readonly IEqualityComparer<ComponentDeclaration> _comparer;
public ComponentsComparer(IEqualityComparer<ComponentDeclaration> comparer)
{
_comparer = comparer;
}
public bool Equals(ImmutableArray<ComponentDeclaration> x, ImmutableArray<ComponentDeclaration> y) =>
x.SequenceEqual(y, _comparer);
public int GetHashCode(ImmutableArray<ComponentDeclaration> obj) => obj.GetHashCode();
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystem.cs
================================================
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void CleanupSystem(SourceProductionContext spc, ComponentDeclaration component, string context, AnalyzerConfigOptionsProvider optionsProvider)
{
if (component.CleanupMode == -1)
return;
if (!EntitasAnalyzerConfigOptions.ComponentCleanupSystems(optionsProvider, component.SyntaxTree))
return;
var cleanupSystemPrefix = component.CleanupMode == 0 ? "Remove" : "Destroy";
var cleanupAction = component.CleanupMode == 0 ? $"Remove{component.Prefix}" : "Destroy";
var contextPrefix = ContextPrefix(context);
var contextAwareComponentPrefix = component.ContextAwareComponentPrefix(contextPrefix);
var className = $"{cleanupSystemPrefix}{contextAwareComponentPrefix}CleanupSystem";
spc.AddSource(
GeneratedPath(CombinedNamespace(component.Namespace, className)),
GeneratedFileHeader(GeneratorSource(nameof(CleanupSystem))) +
NamespaceDeclaration(component.Namespace,
$$"""
public sealed class {{className}} : global::Entitas.ICleanupSystem
{
readonly global::Entitas.IGroup<global::{{contextPrefix}}.Entity> _group;
readonly global::System.Collections.Generic.List<global::{{contextPrefix}}.Entity> _buffer = new global::System.Collections.Generic.List<global::{{contextPrefix}}.Entity>();
public {{className}}(global::{{context}} context)
{
_group = context.GetGroup({{contextAwareComponentPrefix}}Matcher.{{component.Prefix}});
}
public void Cleanup()
{
foreach (var entity in _group.GetEntities(_buffer))
{
entity.{{cleanupAction}}();
}
}
}
"""));
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystems.cs
================================================
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void CleanupSystems(SourceProductionContext spc, ContextInitializationMethodDeclaration method, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentCleanupSystems(optionsProvider, method.SyntaxTree))
return;
spc.AddSource(
GeneratedPath($"{method.ContextFullName}CleanupSystemsExtension"),
GeneratedFileHeader(GeneratorSource(nameof(CleanupSystems))) +
NamespaceDeclaration(method.ContextNamespace,
$$"""
public static class {{method.ContextName}}CleanupSystemsExtension
{
public static global::Entitas.Systems CreateCleanupSystems(this {{method.ContextName}} context)
{
{{AddCleanupSystems(method.Components, method.FullContextPrefix)}}
}
}
"""));
static string AddCleanupSystems(ImmutableArray<ComponentDeclaration> components, string contextPrefix)
{
return components.Length == 0
? " return null;"
: $$"""
var systems = new global::Entitas.Systems();
{{string.Join("\n", components.Select(component =>
{
var cleanupSystemPrefix = component.CleanupMode == 0 ? "Remove" : "Destroy";
return $" systems.Add(new global::{CombinedNamespace(component.Namespace, cleanupSystemPrefix)}{component.ContextAwareComponentPrefix(contextPrefix)}CleanupSystem(context));";
}))}}
return systems;
""";
}
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ComponentIndex.cs
================================================
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void ComponentIndex(SourceProductionContext spc, ComponentDeclaration component, string context, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentComponentIndex(optionsProvider, component.SyntaxTree))
return;
var contextPrefix = ContextPrefix(context);
var contextAwareComponentPrefix = component.ContextAwareComponentPrefix(contextPrefix);
var className = $"{contextAwareComponentPrefix}ComponentIndex";
spc.AddSource(
GeneratedPath(CombinedNamespace(component.Namespace, className)),
GeneratedFileHeader(GeneratorSource(nameof(ComponentIndex))) +
NamespaceDeclaration(component.Namespace,
$$"""
public static class {{className}}
{
public static global::{{contextPrefix}}.ComponentIndex Index;
}
"""));
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ContextExtension.cs
================================================
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void ContextExtension(SourceProductionContext spc, ComponentDeclaration component, string context, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!component.IsUnique)
return;
if (!EntitasAnalyzerConfigOptions.ComponentContextExtension(optionsProvider, component.SyntaxTree))
return;
var contextPrefix = ContextPrefix(context);
var contextAwareComponentPrefix = component.ContextAwareComponentPrefix(contextPrefix);
var className = $"{contextAwareComponentPrefix}ContextExtension";
string content;
if (component.Members.Length > 0)
{
content = $$"""
public static class {{className}}
{
public static bool Has{{component.Prefix}}(this global::{{context}} context)
{
return context.Get{{component.Prefix}}Entity() != null;
}
public static global::{{contextPrefix}}.Entity Set{{component.Prefix}}(this global::{{context}} context, {{ComponentMethodParams(component)}})
{
if (context.Has{{component.Prefix}}())
{
throw new global::Entitas.EntitasException(
$"Could not set {{component.Prefix}}!\n{context} already has an entity with {{component.FullName}}!",
"You should check if the context already has a {{component.Prefix}}Entity before setting it or use context.Replace{{component.Prefix}}()."
);
}
return context.CreateEntity().Add{{component.Prefix}}({{ComponentMethodArgs(component)}});
}
public static global::{{contextPrefix}}.Entity Replace{{component.Prefix}}(this global::{{context}} context, {{ComponentMethodParams(component)}})
{
var entity = context.Get{{component.Prefix}}Entity();
if (entity == null)
entity = context.CreateEntity().Add{{component.Prefix}}({{ComponentMethodArgs(component)}});
else
entity.Replace{{component.Prefix}}({{ComponentMethodArgs(component)}});
return entity;
}
public static void Remove{{component.Prefix}}(this global::{{context}} context)
{
context.Get{{component.Prefix}}Entity().Destroy();
}
public static global::{{contextPrefix}}.Entity Get{{component.Prefix}}Entity(this global::{{context}} context)
{
return context.GetGroup({{contextAwareComponentPrefix}}Matcher.{{component.Prefix}}).GetSingleEntity();
}
public static {{component.Name}} Get{{component.Prefix}}(this global::{{context}} context)
{
return context.Get{{component.Prefix}}Entity().Get{{component.Prefix}}();
}
}
""";
}
else
{
content = $$"""
public static class {{className}}
{
public static bool Has{{component.Prefix}}(this global::{{context}} context)
{
return context.Get{{component.Prefix}}Entity() != null;
}
public static global::{{contextPrefix}}.Entity Set{{component.Prefix}}(this global::{{context}} context)
{
return context.Get{{component.Prefix}}Entity() ?? context.CreateEntity().Add{{component.Prefix}}();
}
public static void Unset{{component.Prefix}}(this global::{{context}} context)
{
context.Get{{component.Prefix}}Entity()?.Destroy();
}
public static global::{{contextPrefix}}.Entity Get{{component.Prefix}}Entity(this global::{{context}} context)
{
return context.GetGroup({{contextAwareComponentPrefix}}Matcher.{{component.Prefix}}).GetSingleEntity();
}
}
""";
}
spc.AddSource(
GeneratedPath(CombinedNamespace(component.Namespace, className)),
GeneratedFileHeader(GeneratorSource(nameof(ContextExtension))) +
NamespaceDeclaration(component.Namespace, content));
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ContextInitializationMethod.cs
================================================
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void ContextInitializationMethod(SourceProductionContext spc, ContextInitializationMethodDeclaration method, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentContextInitializationMethod(optionsProvider, method.SyntaxTree))
return;
spc.AddSource(
GeneratedPath(CombinedNamespace(method.Namespace, $"{method.Class}.{method.Name}.ContextInitialization")),
GeneratedFileHeader(GeneratorSource(nameof(ContextInitializationMethod))) +
NamespaceDeclaration(method.Namespace,
$$"""
public static partial class {{method.Class}}
{
public static partial void {{method.Name}}()
{
{{ComponentIndexAssignments(method, method.Components)}}
global::{{method.ContextFullName}}.ComponentNames = new string[]
{
{{ComponentNames(method.Components)}}
};
global::{{method.ContextFullName}}.ComponentTypes = new global::System.Type[]
{
{{ComponentTypes(method.Components)}}
};
}
}
"""));
static string ComponentIndexAssignments(ContextInitializationMethodDeclaration method, ImmutableArray<ComponentDeclaration> components)
{
return string.Join("\n", components.Select((component, i) =>
{
var contextPrefix = "global::" + CombinedNamespace(component.Namespace, ContextAware(method.FullContextPrefix).Replace(".", string.Empty));
return $" {contextPrefix}{component.Prefix}ComponentIndex.Index = new global::{method.FullContextPrefix}.ComponentIndex({i});";
}));
}
static string ComponentNames(ImmutableArray<ComponentDeclaration> components)
{
return string.Join(",\n", components.Select(static component => $" \"{component.FullName.RemoveSuffix("Component")}\""));
}
static string ComponentTypes(ImmutableArray<ComponentDeclaration> components)
{
return string.Join(",\n", components.Select(static component => $" typeof(global::{component.FullName})"));
}
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EntityExtension.cs
================================================
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void EntityExtension(SourceProductionContext spc, ComponentDeclaration component, string context, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentEntityExtension(optionsProvider, component.SyntaxTree))
return;
var contextPrefix = ContextPrefix(context);
var contextAwareComponentPrefix = component.ContextAwareComponentPrefix(contextPrefix);
var className = $"{contextAwareComponentPrefix}EntityExtension";
var index = $"{contextAwareComponentPrefix}ComponentIndex.Index.Value";
string content;
if (component.Members.Length > 0)
{
content = $$"""
public static class {{className}}
{
public static bool Has{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
return entity.HasComponent({{index}});
}
public static global::{{contextPrefix}}.Entity Add{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity, {{ComponentMethodParams(component)}})
{
var index = {{index}};
var componentPool = entity.GetComponentPool(index);
var component = componentPool.Count > 0
? ({{component.Name}})componentPool.Pop()
: new {{component.Name}}();
{{ComponentValueAssignments(component)}}
entity.AddComponent(index, component);
return entity;
}
public static global::{{contextPrefix}}.Entity Replace{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity, {{ComponentMethodParams(component)}})
{
var index = {{index}};
var componentPool = entity.GetComponentPool(index);
var component = componentPool.Count > 0
? ({{component.Name}})componentPool.Pop()
: new {{component.Name}}();
{{ComponentValueAssignments(component)}}
entity.ReplaceComponent(index, component);
return entity;
}
public static global::{{contextPrefix}}.Entity Remove{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
entity.RemoveComponent({{index}});
return entity;
}
public static {{component.Name}} Get{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
return ({{component.Name}})entity.GetComponent({{index}});
}
}
""";
}
else
{
content = $$"""
public static class {{className}}
{
static readonly {{component.Name}} Single{{component.Name}} = new {{component.Name}}();
public static bool Has{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
return entity.HasComponent({{index}});
}
public static global::{{contextPrefix}}.Entity Add{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
entity.AddComponent({{index}}, Single{{component.Name}});
return entity;
}
public static global::{{contextPrefix}}.Entity Replace{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
entity.ReplaceComponent({{index}}, Single{{component.Name}});
return entity;
}
public static global::{{contextPrefix}}.Entity Remove{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
entity.RemoveComponent({{index}});
return entity;
}
public static {{component.Name}} Get{{component.Prefix}}(this global::{{contextPrefix}}.Entity entity)
{
return ({{component.Name}})entity.GetComponent({{index}});
}
}
""";
}
spc.AddSource(
GeneratedPath(CombinedNamespace(component.Namespace, className)),
GeneratedFileHeader(GeneratorSource(nameof(EntityExtension))) +
NamespaceDeclaration(component.Namespace, content));
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EntityIndexExtension.cs
================================================
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void EntityIndexExtension(SourceProductionContext spc, ContextInitializationMethodDeclaration method, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentEntityIndexExtension(optionsProvider, method.SyntaxTree))
return;
var componentMemberPairs = method.Components
.SelectMany(component => component.Members
.Where(member => member.EntityIndexType != -1)
.Select(member => (Component: component, Member: member)))
.ToImmutableArray();
spc.AddSource(
GeneratedPath($"{method.ContextFullName}EntityIndexExtension"),
GeneratedFileHeader(GeneratorSource(nameof(EntityIndexExtension))) +
NamespaceDeclaration(method.ContextNamespace,
$$"""
public static class {{method.ContextName}}EntityIndexExtension
{{{EntityIndexNames(componentMemberPairs)}}
public static {{method.ContextName}} AddAllEntityIndexes(this {{method.ContextName}} context)
{{{AddEntityIndexes(componentMemberPairs, method)}}
return context;
}
}
""") +
EntityIndexExtensionMethods(componentMemberPairs, method));
static string EntityIndexNames(ImmutableArray<(ComponentDeclaration Component, MemberDeclaration Member)> pairs)
{
return pairs.Length == 0
? string.Empty
: "\n" + string.Join("\n", pairs.Select(static pair =>
{
var indexName = $"{pair.Component.FullPrefix}{pair.Member.Name}";
return $" public const string {indexName} = \"{indexName}\";";
})) + "\n";
}
static string AddEntityIndexes(ImmutableArray<(ComponentDeclaration Component, MemberDeclaration Member)> pairs, ContextInitializationMethodDeclaration method)
{
return pairs.Length == 0
? string.Empty
: "\n" + string.Join("\n", pairs.Select(pair =>
{
var indexName = $"{pair.Component.FullPrefix}{pair.Member.Name}";
var indexType = pair.Member.EntityIndexType == 0 ? "EntityIndex" : "PrimaryEntityIndex";
var contextAwareComponentPrefix = pair.Component.ContextAwareComponentPrefix(method.FullContextPrefix);
return $$"""
context.AddEntityIndex(new global::Entitas.{{indexType}}<global::{{method.FullContextPrefix}}.Entity, {{pair.Member.Type}}>(
{{indexName}},
context.GetGroup(global::{{CombinedNamespace(pair.Component.Namespace, contextAwareComponentPrefix)}}Matcher.{{pair.Component.Prefix}}),
(entity, component) => ((global::{{pair.Component.FullName}})component).{{pair.Member.Name}}));
""";
}));
}
static string EntityIndexExtensionMethods(ImmutableArray<(ComponentDeclaration Component, MemberDeclaration Member)> pairs, ContextInitializationMethodDeclaration method)
{
return pairs.Length == 0
? string.Empty
: "\n" + string.Join("\n", pairs
.GroupBy(pair => pair.Component.Namespace)
.Select(group => NamespaceDeclaration(group.Key,
$$"""
public static class EntityIndexExtension
{
{{string.Join("\n\n", group.Select(pair => pair.Member.EntityIndexType == 0
? $$"""
public static global::System.Collections.Generic.HashSet<global::{{method.FullContextPrefix}}.Entity> GetEntitiesWith{{pair.Component.Prefix}}{{pair.Member.Name}}(this global::{{method.ContextFullName}} context, {{pair.Member.Type}} {{pair.Member.ValidLowerFirstName}})
{
return ((global::Entitas.EntityIndex<global::{{method.FullContextPrefix}}.Entity, {{pair.Member.Type}}>)context.GetEntityIndex(global::{{method.ContextFullName}}EntityIndexExtension.{{pair.Component.FullPrefix}}{{pair.Member.Name}})).GetEntities({{pair.Member.ValidLowerFirstName}});
}
"""
: $$"""
public static global::{{method.FullContextPrefix}}.Entity GetEntityWith{{pair.Component.Prefix}}{{pair.Member.Name}}(this global::{{method.ContextFullName}} context, {{pair.Member.Type}} {{pair.Member.ValidLowerFirstName}})
{
return ((global::Entitas.PrimaryEntityIndex<global::{{method.FullContextPrefix}}.Entity, {{pair.Member.Type}}>)context.GetEntityIndex(global::{{method.ContextFullName}}EntityIndexExtension.{{pair.Component.FullPrefix}}{{pair.Member.Name}})).GetEntity({{pair.Member.ValidLowerFirstName}});
}
"""))}}
}
"""
)));
}
}
}
}
================================================
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EventSystems.cs
================================================
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using static Entitas.Generators.Templates;
namespace Entitas.Generators
{
partial class ComponentGenerator
{
static void EventSystemsContextExtension(SourceProductionContext spc, ContextInitializationMethodDeclaration method, AnalyzerConfigOptionsProvider optionsProvider)
{
if (!EntitasAnalyzerConfigOptions.ComponentEventSystemsContextExtension(optionsProvider, method.SyntaxTree))
return;
spc.AddSource(
GeneratedPath($"{method.ContextFullName}EventSystemsExtension"),
GeneratedFileHeader(GeneratorSource(nameof(EventSystemsContextExtension))) +
NamespaceDeclaration(method.ContextNamespace,
$$"""
public static class {{method.ContextName}}EventSystemsExtension
{
public static global::Entitas.Systems CreateEventSystems(this {{method.ContextName}} context)
{
{{AddEventSystems(method.Components, method.FullContextPrefix)}}
}
}
"""));
static string AddEven
gitextract_f_3brnil/
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── question.md
│ └── workflows/
│ ├── build.yml
│ ├── ci.yml
│ └── release.yml
├── .gitignore
├── .gitmodules
├── .sln.dotsettings/
│ ├── .gitignore
│ ├── CodeStyle.DotSettings
│ ├── InspectionSettings.DotSettings
│ └── PatternsAndTemplates.DotSettings
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Build.targets
├── Entitas.sln
├── Entitas.sln.DotSettings
├── EntitasUpgradeGuide.md
├── LICENSE.md
├── README.md
├── Unity3D.props
├── benchmarks/
│ └── Entitas.Benchmarks/
│ ├── AERCBenchmarks.cs
│ ├── CreateComponentBenchmarks.cs
│ ├── DelegateBenchmarks.cs
│ ├── Entitas.Benchmarks.csproj
│ └── Program.cs
├── gen/
│ └── Entitas.Generators/
│ ├── Component/
│ │ ├── ComponentDeclaration.cs
│ │ ├── ComponentGenerator.CleanupSystem.cs
│ │ ├── ComponentGenerator.CleanupSystems.cs
│ │ ├── ComponentGenerator.ComponentIndex.cs
│ │ ├── ComponentGenerator.ContextExtension.cs
│ │ ├── ComponentGenerator.ContextInitializationMethod.cs
│ │ ├── ComponentGenerator.EntityExtension.cs
│ │ ├── ComponentGenerator.EntityIndexExtension.cs
│ │ ├── ComponentGenerator.EventSystems.cs
│ │ ├── ComponentGenerator.Events.cs
│ │ ├── ComponentGenerator.Matcher.cs
│ │ ├── ComponentGenerator.cs
│ │ ├── ContextInitializationMethodDeclaration.cs
│ │ ├── EventDeclaration.cs
│ │ └── MemberDeclaration.cs
│ ├── Context/
│ │ ├── ContextDeclaration.cs
│ │ ├── ContextGenerator.ComponentIndex.cs
│ │ ├── ContextGenerator.Context.cs
│ │ ├── ContextGenerator.Entity.cs
│ │ ├── ContextGenerator.Matcher.cs
│ │ └── ContextGenerator.cs
│ ├── Entitas.Generators.csproj
│ ├── Entitas.Generators.csproj.DotSettings
│ ├── EntitasAnalyzerConfigOptions.cs
│ └── Templates.cs
├── samples/
│ └── Unity/
│ ├── .editorconfig
│ ├── Assets/
│ │ ├── Plugins.meta
│ │ ├── Sample/
│ │ │ ├── Editor/
│ │ │ │ ├── CustomObjectDrawer.cs
│ │ │ │ ├── CustomObjectDrawer.cs.meta
│ │ │ │ ├── PersonComponentDrawer.cs
│ │ │ │ └── PersonComponentDrawer.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── Runtime/
│ │ │ │ ├── Components/
│ │ │ │ │ ├── MyArray2DComponent.cs
│ │ │ │ │ ├── MyArray2DComponent.cs.meta
│ │ │ │ │ ├── MyArray3DComponent.cs
│ │ │ │ │ ├── MyArray3DComponent.cs.meta
│ │ │ │ │ ├── MyArrayComponent.cs
│ │ │ │ │ ├── MyArrayComponent.cs.meta
│ │ │ │ │ ├── MyCharComponent.cs
│ │ │ │ │ ├── MyCharComponent.cs.meta
│ │ │ │ │ ├── MyCustomObjectComponent.cs
│ │ │ │ │ ├── MyCustomObjectComponent.cs.meta
│ │ │ │ │ ├── MyDateTimeComponent.cs
│ │ │ │ │ ├── MyDateTimeComponent.cs.meta
│ │ │ │ │ ├── MyDictArrayComponent.cs
│ │ │ │ │ ├── MyDictArrayComponent.cs.meta
│ │ │ │ │ ├── MyDictionaryComponent.cs
│ │ │ │ │ ├── MyDictionaryComponent.cs.meta
│ │ │ │ │ ├── MyDontDrawComponent.cs
│ │ │ │ │ ├── MyDontDrawComponent.cs.meta
│ │ │ │ │ ├── MyFlagComponent.cs
│ │ │ │ │ ├── MyFlagComponent.cs.meta
│ │ │ │ │ ├── MyHashSetComponent.cs
│ │ │ │ │ ├── MyHashSetComponent.cs.meta
│ │ │ │ │ ├── MyJaggedArrayComponent.cs
│ │ │ │ │ ├── MyJaggedArrayComponent.cs.meta
│ │ │ │ │ ├── MyListArrayComponent.cs
│ │ │ │ │ ├── MyListArrayComponent.cs.meta
│ │ │ │ │ ├── MyListComponent.cs
│ │ │ │ │ ├── MyListComponent.cs.meta
│ │ │ │ │ ├── MyMemberListComponent.cs
│ │ │ │ │ ├── MyMemberListComponent.cs.meta
│ │ │ │ │ ├── MyMonoBehaviourSubClassComponent.cs
│ │ │ │ │ ├── MyMonoBehaviourSubClassComponent.cs.meta
│ │ │ │ │ ├── MyPersonComponent.cs
│ │ │ │ │ ├── MyPersonComponent.cs.meta
│ │ │ │ │ ├── MyPropertyComponent.cs
│ │ │ │ │ ├── MyPropertyComponent.cs.meta
│ │ │ │ │ ├── MySimpleObjectComponent.cs
│ │ │ │ │ ├── MySimpleObjectComponent.cs.meta
│ │ │ │ │ ├── MySystemObjectComponent.cs
│ │ │ │ │ ├── MySystemObjectComponent.cs.meta
│ │ │ │ │ ├── MyUniqueComponent.cs
│ │ │ │ │ ├── MyUniqueComponent.cs.meta
│ │ │ │ │ ├── MyUnsupportedObjectComponent.cs
│ │ │ │ │ ├── MyUnsupportedObjectComponent.cs.meta
│ │ │ │ │ ├── UnityBuiltInTypes/
│ │ │ │ │ │ ├── MyAnimationCurveComponent.cs
│ │ │ │ │ │ ├── MyAnimationCurveComponent.cs.meta
│ │ │ │ │ │ ├── MyBoolComponent.cs
│ │ │ │ │ │ ├── MyBoolComponent.cs.meta
│ │ │ │ │ │ ├── MyBoundsComponent.cs
│ │ │ │ │ │ ├── MyBoundsComponent.cs.meta
│ │ │ │ │ │ ├── MyColorComponent.cs
│ │ │ │ │ │ ├── MyColorComponent.cs.meta
│ │ │ │ │ │ ├── MyDoubleComponent.cs
│ │ │ │ │ │ ├── MyDoubleComponent.cs.meta
│ │ │ │ │ │ ├── MyEnumComponent.cs
│ │ │ │ │ │ ├── MyEnumComponent.cs.meta
│ │ │ │ │ │ ├── MyFlagsComponent.cs
│ │ │ │ │ │ ├── MyFlagsComponent.cs.meta
│ │ │ │ │ │ ├── MyFloatComponent.cs
│ │ │ │ │ │ ├── MyFloatComponent.cs.meta
│ │ │ │ │ │ ├── MyGameObjectComponent.cs
│ │ │ │ │ │ ├── MyGameObjectComponent.cs.meta
│ │ │ │ │ │ ├── MyIntComponent.cs
│ │ │ │ │ │ ├── MyIntComponent.cs.meta
│ │ │ │ │ │ ├── MyRectComponent.cs
│ │ │ │ │ │ ├── MyRectComponent.cs.meta
│ │ │ │ │ │ ├── MyStringComponent.cs
│ │ │ │ │ │ ├── MyStringComponent.cs.meta
│ │ │ │ │ │ ├── MyTexture2DComponent.cs
│ │ │ │ │ │ ├── MyTexture2DComponent.cs.meta
│ │ │ │ │ │ ├── MyTextureComponent.cs
│ │ │ │ │ │ ├── MyTextureComponent.cs.meta
│ │ │ │ │ │ ├── MyUnityObjectComponent.cs
│ │ │ │ │ │ ├── MyUnityObjectComponent.cs.meta
│ │ │ │ │ │ ├── MyVector2Component.cs
│ │ │ │ │ │ ├── MyVector2Component.cs.meta
│ │ │ │ │ │ ├── MyVector3Component.cs
│ │ │ │ │ │ ├── MyVector3Component.cs.meta
│ │ │ │ │ │ ├── MyVector4Component.cs
│ │ │ │ │ │ └── MyVector4Component.cs.meta
│ │ │ │ │ └── UnityBuiltInTypes.meta
│ │ │ │ ├── Components Scene.unity
│ │ │ │ ├── Components Scene.unity.meta
│ │ │ │ ├── Components.meta
│ │ │ │ ├── ComponentsController.cs
│ │ │ │ ├── ComponentsController.cs.meta
│ │ │ │ ├── Contexts/
│ │ │ │ │ ├── ContextInitialization.cs
│ │ │ │ │ ├── ContextInitialization.cs.meta
│ │ │ │ │ ├── GameContext.cs
│ │ │ │ │ ├── GameContext.cs.meta
│ │ │ │ │ ├── InputContext.cs
│ │ │ │ │ └── InputContext.cs.meta
│ │ │ │ ├── Contexts.meta
│ │ │ │ ├── Systems/
│ │ │ │ │ ├── AReactiveSystem.cs
│ │ │ │ │ ├── AReactiveSystem.cs.meta
│ │ │ │ │ ├── CleanupSystem.cs
│ │ │ │ │ ├── CleanupSystem.cs.meta
│ │ │ │ │ ├── FastSystem.cs
│ │ │ │ │ ├── FastSystem.cs.meta
│ │ │ │ │ ├── MixedSystem.cs
│ │ │ │ │ ├── MixedSystem.cs.meta
│ │ │ │ │ ├── ProcessRandomValueSystem.cs
│ │ │ │ │ ├── ProcessRandomValueSystem.cs.meta
│ │ │ │ │ ├── RandomDurationSystem.cs
│ │ │ │ │ ├── RandomDurationSystem.cs.meta
│ │ │ │ │ ├── RandomValueSystem.cs
│ │ │ │ │ ├── RandomValueSystem.cs.meta
│ │ │ │ │ ├── SlowInitializeExecuteSystem.cs
│ │ │ │ │ ├── SlowInitializeExecuteSystem.cs.meta
│ │ │ │ │ ├── SlowInitializeSystem.cs
│ │ │ │ │ ├── SlowInitializeSystem.cs.meta
│ │ │ │ │ ├── SlowSystem.cs
│ │ │ │ │ ├── SlowSystem.cs.meta
│ │ │ │ │ ├── SomeExecuteSystem.cs
│ │ │ │ │ ├── SomeExecuteSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeExecuteSystem.cs
│ │ │ │ │ ├── SomeInitializeExecuteSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeReactiveSystem.cs
│ │ │ │ │ ├── SomeInitializeReactiveSystem.cs.meta
│ │ │ │ │ ├── SomeInitializeSystem.cs
│ │ │ │ │ ├── SomeInitializeSystem.cs.meta
│ │ │ │ │ ├── SomeReactiveSystem.cs
│ │ │ │ │ ├── SomeReactiveSystem.cs.meta
│ │ │ │ │ ├── TearDownSystem.cs
│ │ │ │ │ └── TearDownSystem.cs.meta
│ │ │ │ ├── Systems Scene.unity
│ │ │ │ ├── Systems Scene.unity.meta
│ │ │ │ ├── Systems.meta
│ │ │ │ ├── SystemsController.cs
│ │ │ │ └── SystemsController.cs.meta
│ │ │ ├── Runtime.meta
│ │ │ ├── Tests/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── ContextTests.cs
│ │ │ │ │ │ ├── ContextTests.cs.meta
│ │ │ │ │ │ ├── EntityLinkTests.cs
│ │ │ │ │ │ └── EntityLinkTests.cs.meta
│ │ │ │ │ └── Tests.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Manual Tests/
│ │ │ │ │ ├── Collector Destructor/
│ │ │ │ │ │ ├── Collector Destructor.unity
│ │ │ │ │ │ ├── Collector Destructor.unity.meta
│ │ │ │ │ │ ├── CollectorDestructorController.cs
│ │ │ │ │ │ └── CollectorDestructorController.cs.meta
│ │ │ │ │ ├── Collector Destructor.meta
│ │ │ │ │ ├── Entity Stress Test/
│ │ │ │ │ │ ├── Entity Stress Test Scene.unity
│ │ │ │ │ │ ├── Entity Stress Test Scene.unity.meta
│ │ │ │ │ │ ├── EntityStressTestController.cs
│ │ │ │ │ │ └── EntityStressTestController.cs.meta
│ │ │ │ │ ├── Entity Stress Test.meta
│ │ │ │ │ ├── EntityLink/
│ │ │ │ │ │ ├── EntityLink Scene.unity
│ │ │ │ │ │ ├── EntityLink Scene.unity.meta
│ │ │ │ │ │ ├── EntityLinkController.cs
│ │ │ │ │ │ └── EntityLinkController.cs.meta
│ │ │ │ │ ├── EntityLink.meta
│ │ │ │ │ ├── Fixtures/
│ │ │ │ │ │ ├── TestComponent.cs
│ │ │ │ │ │ ├── TestComponent.cs.meta
│ │ │ │ │ │ ├── TestReactiveSystem.cs
│ │ │ │ │ │ └── TestReactiveSystem.cs.meta
│ │ │ │ │ ├── Fixtures.meta
│ │ │ │ │ ├── Group Alloc/
│ │ │ │ │ │ ├── Group Alloc Scene.unity
│ │ │ │ │ │ ├── Group Alloc Scene.unity.meta
│ │ │ │ │ │ ├── GroupAllocController.cs
│ │ │ │ │ │ └── GroupAllocController.cs.meta
│ │ │ │ │ ├── Group Alloc.meta
│ │ │ │ │ ├── Reactive System Exception/
│ │ │ │ │ │ ├── Reactive System Exception Scene.unity
│ │ │ │ │ │ ├── Reactive System Exception Scene.unity.meta
│ │ │ │ │ │ ├── ReactiveSystemExceptionController.cs
│ │ │ │ │ │ └── ReactiveSystemExceptionController.cs.meta
│ │ │ │ │ ├── Reactive System Exception.meta
│ │ │ │ │ ├── ReactiveSystem Destructor/
│ │ │ │ │ │ ├── ReactiveSystem Destructor.unity
│ │ │ │ │ │ ├── ReactiveSystem Destructor.unity.meta
│ │ │ │ │ │ ├── ReactiveSystemDestructorController.cs
│ │ │ │ │ │ └── ReactiveSystemDestructorController.cs.meta
│ │ │ │ │ └── ReactiveSystem Destructor.meta
│ │ │ │ └── Manual Tests.meta
│ │ │ └── Tests.meta
│ │ └── Sample.meta
│ ├── Entitas.properties
│ ├── Jenny.properties
│ ├── Packages/
│ │ ├── manifest.json
│ │ └── packages-lock.json
│ ├── ProjectSettings/
│ │ ├── AudioManager.asset
│ │ ├── ClusterInputManager.asset
│ │ ├── DynamicsManager.asset
│ │ ├── EditorBuildSettings.asset
│ │ ├── EditorSettings.asset
│ │ ├── GraphicsSettings.asset
│ │ ├── InputManager.asset
│ │ ├── MemorySettings.asset
│ │ ├── NavMeshAreas.asset
│ │ ├── PackageManagerSettings.asset
│ │ ├── Physics2DSettings.asset
│ │ ├── PresetManager.asset
│ │ ├── ProjectSettings.asset
│ │ ├── ProjectVersion.txt
│ │ ├── QualitySettings.asset
│ │ ├── TagManager.asset
│ │ ├── TimeManager.asset
│ │ ├── UnityConnectSettings.asset
│ │ ├── VFXManager.asset
│ │ ├── VersionControlSettings.asset
│ │ └── XRSettings.asset
│ └── restore_unity.bash
├── src/
│ ├── Entitas/
│ │ ├── Collector/
│ │ │ ├── Collector.cs
│ │ │ ├── CollectorContextExtension.cs
│ │ │ ├── CollectorException.cs
│ │ │ ├── ICollector.cs
│ │ │ ├── TriggerOnEvent.cs
│ │ │ └── TriggerOnEventMatcherExtension.cs
│ │ ├── Context/
│ │ │ ├── Context.cs
│ │ │ ├── ContextInfo.cs
│ │ │ ├── Exceptions/
│ │ │ │ ├── ContextDoesNotContainEntityException.cs
│ │ │ │ ├── ContextEntityIndexDoesAlreadyExistException.cs
│ │ │ │ ├── ContextEntityIndexDoesNotExistException.cs
│ │ │ │ ├── ContextInfoException.cs
│ │ │ │ ├── ContextStillHasRetainedEntitiesException.cs
│ │ │ │ └── EntityIsNotDestroyedException.cs
│ │ │ └── IContext.cs
│ │ ├── Entitas.csproj
│ │ ├── Entitas.csproj.DotSettings
│ │ ├── EntitasException.cs
│ │ ├── Entity/
│ │ │ ├── Entity.cs
│ │ │ ├── EntityEqualityComparer.cs
│ │ │ ├── Exceptions/
│ │ │ │ ├── EntityAlreadyHasComponentException.cs
│ │ │ │ ├── EntityDoesNotHaveComponentException.cs
│ │ │ │ ├── EntityIsAlreadyRetainedByOwnerException.cs
│ │ │ │ ├── EntityIsNotEnabledException.cs
│ │ │ │ └── EntityIsNotRetainedByOwnerException.cs
│ │ │ ├── IAERC.cs
│ │ │ ├── SafeAERC.cs
│ │ │ └── UnsafeAERC.cs
│ │ ├── EntityIndex/
│ │ │ ├── AbstractEntityIndex.cs
│ │ │ ├── EntityIndex.cs
│ │ │ ├── EntityIndexException.cs
│ │ │ ├── IEntityIndex.cs
│ │ │ └── PrimaryEntityIndex.cs
│ │ ├── Extensions/
│ │ │ ├── CollectionExtension.cs
│ │ │ └── EntitasStringExtension.cs
│ │ ├── Group/
│ │ │ ├── Group.cs
│ │ │ ├── GroupEvent.cs
│ │ │ ├── GroupExtension.cs
│ │ │ ├── GroupSingleEntityException.cs
│ │ │ └── IGroup.cs
│ │ ├── IComponent.cs
│ │ ├── Matcher/
│ │ │ ├── Interfaces/
│ │ │ │ ├── IAllOfMatcher.cs
│ │ │ │ ├── IAnyOfMatcher.cs
│ │ │ │ ├── ICompoundMatcher.cs
│ │ │ │ ├── IMatcher.cs
│ │ │ │ └── INoneOfMatcher.cs
│ │ │ ├── Matcher.cs
│ │ │ ├── MatcherEquals.cs
│ │ │ ├── MatcherException.cs
│ │ │ ├── MatcherStatic.cs
│ │ │ └── MatcherToString.cs
│ │ └── Systems/
│ │ ├── Interfaces/
│ │ │ ├── ICleanupSystem.cs
│ │ │ ├── IExecuteSystem.cs
│ │ │ ├── IInitializeSystem.cs
│ │ │ ├── IReactiveSystem.cs
│ │ │ ├── ISystem.cs
│ │ │ └── ITearDownSystem.cs
│ │ ├── ParallelSystem.cs
│ │ ├── ReactiveSystem.cs
│ │ └── Systems.cs
│ ├── Entitas.Generators.Attributes/
│ │ ├── CleanupAttribute.cs
│ │ ├── ContextAttribute.cs
│ │ ├── ContextInitializationAttribute.cs
│ │ ├── Entitas.Generators.Attributes.csproj
│ │ ├── EntityIndexAttribute.cs
│ │ ├── EventAttribute.cs
│ │ └── UniqueAttribute.cs
│ ├── Entitas.Unity/
│ │ ├── ContextObserver/
│ │ │ ├── ContextObserverBehaviour.cs
│ │ │ └── ContextObserverExtension.cs
│ │ ├── DebugSystems/
│ │ │ ├── AvgResetInterval.cs
│ │ │ ├── DebugSystems.cs
│ │ │ ├── DebugSystemsBehaviour.cs
│ │ │ ├── Feature.cs
│ │ │ ├── SystemInfo.cs
│ │ │ └── SystemInterfaceFlags.cs
│ │ ├── Entitas.Unity.csproj
│ │ ├── Entitas.Unity.csproj.DotSettings
│ │ └── Entity/
│ │ ├── DontDrawComponentAttribute.cs
│ │ ├── EntityBehaviour.cs
│ │ └── EntityLink.cs
│ └── Entitas.Unity.Editor/
│ ├── ContextObserverEditor.cs
│ ├── DebugSystemsEditor.cs
│ ├── DefaultInstanceCreator/
│ │ ├── DefaultArrayCreator.cs
│ │ ├── DefaultStringCreator.cs
│ │ └── IDefaultInstanceCreator.cs
│ ├── Entitas.Unity.Editor.csproj
│ ├── Entitas.Unity.Editor.csproj.DotSettings
│ ├── EntitasHierarchyIcon.cs
│ ├── EntitasMenuItems.cs
│ ├── EntitasSettings.cs
│ ├── EntityDrawer.cs
│ ├── EntityDrawerState.cs
│ ├── EntityEditor.cs
│ ├── EntityLinkEditor.cs
│ ├── IComponentDrawer.cs
│ ├── Images/
│ │ ├── EntitasContextErrorHierarchyIcon.png.meta
│ │ ├── EntitasContextHierarchyIcon.png.meta
│ │ ├── EntitasEntityErrorHierarchyIcon.png.meta
│ │ ├── EntitasEntityHierarchyIcon.png.meta
│ │ ├── EntitasEntityLinkHierarchyIcon.png.meta
│ │ ├── EntitasEntityLinkWarnHierarchyIcon.png.meta
│ │ ├── EntitasHeader.png.meta
│ │ ├── EntitasSystemsHierarchyIcon.png.meta
│ │ └── EntitasSystemsWarnHierarchyIcon.png.meta
│ └── TypeDrawer/
│ ├── AnimationCurveTypeDrawer.cs
│ ├── ArrayTypeDrawer.cs
│ ├── BoolTypeDrawer.cs
│ ├── BoundsTypeDrawer.cs
│ ├── CharTypeDrawer.cs
│ ├── ColorTypeDrawer.cs
│ ├── DateTimeTypeDrawer.cs
│ ├── DictionaryTypeDrawer.cs
│ ├── DoubleTypeDrawer.cs
│ ├── EnumTypeDrawer.cs
│ ├── FloatTypeDrawer.cs
│ ├── HashSetTypeDrawer.cs
│ ├── ITypeDrawer.cs
│ ├── IntTypeDrawer.cs
│ ├── ListTypeDrawer.cs
│ ├── RectTypeDrawer.cs
│ ├── StringTypeDrawer.cs
│ ├── UnityObjectTypeDrawer.cs
│ ├── Vector2TypeDrawer.cs
│ ├── Vector3TypeDrawer.cs
│ └── Vector4TypeDrawer.cs
└── tests/
├── Entitas.Generators.IntegrationTests/
│ ├── AnyFlagComponentAddedTests.cs
│ ├── AnyFlagComponentRemovedTests.cs
│ ├── CleanupSystemTests.cs
│ ├── CleanupSystemsTests.cs
│ ├── ComponentIndexTests.cs
│ ├── ContextExtensionTests.cs
│ ├── ContextInitialization.cs
│ ├── ContextTests.cs
│ ├── Entitas.Generators.IntegrationTests.csproj
│ ├── EntityExtensionTests.cs
│ ├── EntityIndexExtensionTests.cs
│ ├── EntityIndexTests.cs
│ ├── EntityTests.cs
│ ├── EventSystemsTests.cs
│ ├── FlagComponentAddedTests.cs
│ ├── FlagComponentRemovedTests.cs
│ ├── ListenerEventEntityExtensionTests.cs
│ ├── MatcherTests.cs
│ └── fixtures/
│ ├── EmptyContext.cs
│ ├── LoadingComponent.cs
│ ├── MainContext.cs
│ ├── OtherContext.cs
│ └── UserComponent.cs
├── Entitas.Generators.Tests/
│ ├── ComponentGeneratorTests.cs
│ ├── ContextGeneratorTests.cs
│ ├── Entitas.Generators.Tests.csproj
│ ├── ModuleInitializer.cs
│ ├── TestHelper.cs
│ ├── fixtures/
│ │ ├── Components/
│ │ │ ├── CleanupDestroyEntityComponent.cs
│ │ │ ├── CleanupDestroyEntityNamespacedComponent.cs
│ │ │ ├── CleanupRemoveComponent.cs
│ │ │ ├── CleanupRemoveNamespacedComponent.cs
│ │ │ ├── ComplexTypesComponent.cs
│ │ │ ├── ContextFromDifferentAssemblyNamespacedComponent.cs
│ │ │ ├── DuplicatedContextsNamespacedComponent.cs
│ │ │ ├── EntityIndexComponent.cs
│ │ │ ├── EntityIndexNamespacedComponent.cs
│ │ │ ├── EventComponent.cs
│ │ │ ├── EventNamespacedComponent.cs
│ │ │ ├── FlagEventComponent.cs
│ │ │ ├── FlagEventNamespacedComponent.cs
│ │ │ ├── MultipleFieldsComponent.cs
│ │ │ ├── MultipleFieldsNamespacedComponent.cs
│ │ │ ├── MultiplePropertiesNamespacedComponent.cs
│ │ │ ├── NoContextComponent.cs
│ │ │ ├── NoValidFieldsNamespacedComponent.cs
│ │ │ ├── NonPublicComponent.cs
│ │ │ ├── OneFieldComponent.cs
│ │ │ ├── OneFieldNamespacedComponent.cs
│ │ │ ├── PrimaryEntityIndexComponent.cs
│ │ │ ├── PrimaryEntityIndexNamespacedComponent.cs
│ │ │ ├── ReservedKeywordFieldsNamespacedComponent.cs
│ │ │ ├── SomeComponent.cs
│ │ │ ├── SomeNamespacedComponent.cs
│ │ │ ├── UniqueNamespacedComponent.cs
│ │ │ └── UniqueOneFieldNamespacedComponent.cs
│ │ ├── Contexts/
│ │ │ ├── ContextInitialization.txt
│ │ │ ├── ContextInitializationFromDifferentAssembly.txt
│ │ │ ├── EmptyContextInitialization.txt
│ │ │ ├── NamespacedContext.txt
│ │ │ └── SomeContext.txt
│ │ ├── FakeGenerated/
│ │ │ ├── ContextInitialization.cs
│ │ │ ├── MainContext.cs
│ │ │ └── MyApp.Main.Entity.cs
│ │ ├── SomeClass.cs
│ │ └── SomeNamespacedClass.cs
│ ├── remove-snapshots.bash
│ ├── snapshots/
│ │ ├── ComponentGeneratorTests.CleanupDestroyEntityComponent#DestroyMyAppMainCleanupDestroyEntityCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupDestroyEntityNamespacedComponent#MyFeature.DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupRemoveComponent#RemoveMyAppMainCleanupRemoveCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupRemoveNamespacedComponent#MyFeature.RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem.g.verified.cs
│ │ ├── ComponentGeneratorTests.CleanupSystems#MyApp.MainContextCleanupSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ComplexTypesComponent#MyFeature.MyAppMainComplexTypesEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeComponentIndex.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.Component#MyAppMainSomeMatcher.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextFromDifferentAssemblyNamespacedComponent#MyFeature.MyAppLibraryContextFromDifferentAssemblyNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.ContextInitializationFromDifferentAssembly#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.DuplicatedContextsNamespacedComponent#MyFeature.MyAppMainDuplicatedContextsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.EmptyContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
│ │ ├── ComponentGeneratorTests.EntityIndexes#MyApp.MainContextEntityIndexExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainAnyEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainAnyEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventComponent#MyAppMainEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.EventSystems#MyApp.MainContextEventSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedAddedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedRemovedListenerComponent.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultipleFieldsComponent#MyAppMainMultipleFieldsEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultipleFieldsNamespacedComponent#MyFeature.MyAppMainMultipleFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.MultiplePropertiesNamespacedComponent#MyFeature.MyAppMainMultiplePropertiesNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedComponentIndex.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedMatcher.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoCleanupSystems#EmptyContextCleanupSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoEntityIndexes#EmptyContextEntityIndexExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoEventSystems#EmptyContextEventSystemsExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.NoValidFieldsNamespacedComponent#MyFeature.MyAppMainNoValidFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.OneFieldComponent#MyAppMainOneFieldEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.OneFieldNamespacedComponent#MyFeature.MyAppMainOneFieldNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.ReservedKeywordFieldsNamespacedComponent#MyFeature.MyAppMainReservedKeywordFieldsNamespacedEntityExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.UniqueNamespacedComponent#MyFeature.MyAppMainUniqueNamespacedContextExtension.g.verified.cs
│ │ ├── ComponentGeneratorTests.UniqueOneFieldNamespacedComponent#MyFeature.MyAppMainUniqueOneFieldNamespacedContextExtension.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.ComponentIndex.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Entity.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Matcher.g.verified.cs
│ │ ├── ContextGeneratorTests.NamespacedContext#MyApp.NamespacedContext.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.ComponentIndex.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.Entity.g.verified.cs
│ │ ├── ContextGeneratorTests.SomeContext#Some.Matcher.g.verified.cs
│ │ └── ContextGeneratorTests.SomeContext#SomeContext.g.verified.cs
│ └── snapshots-to-delete.txt
├── Entitas.Generators.Tests.Fixtures.Dependencies/
│ ├── CollisionComponent.cs
│ ├── ContextInitialization.cs
│ ├── Entitas.Generators.Tests.Fixtures.Dependencies.csproj
│ ├── HealthComponent.cs
│ ├── LibraryContext.cs
│ └── MyApp.Library.Entity.cs
├── Entitas.Tests/
│ ├── CollectorTests.cs
│ ├── ContextInfoTests.cs
│ ├── ContextTests.cs
│ ├── Entitas.Tests.csproj
│ ├── EntitasErrorMessagesTests.cs
│ ├── EntitasExceptionTests.cs
│ ├── EntitasStringExtension.cs
│ ├── EntityIndexTests.cs
│ ├── EntityTests.cs
│ ├── GroupTests.cs
│ ├── MatcherTests.cs
│ ├── ParallelSystemTests.cs
│ ├── PrimaryEntityIndexTests.cs
│ ├── ReactiveSystemTests.cs
│ ├── SystemsTests.cs
│ └── fixtures/
│ ├── Components.cs
│ ├── Contexts.cs
│ ├── Systems/
│ │ ├── CleanupSystemSpy.cs
│ │ ├── ExecuteSystemSpy.cs
│ │ ├── InitializeSystemSpy.cs
│ │ ├── ReactiveSystemSpy.cs
│ │ ├── TearDownSystemSpy.cs
│ │ └── TestParallelSystem.cs
│ └── UserComponent.cs
└── Entitas.Unity.Tests/
├── Entitas.Unity.Tests.csproj
├── SystemInfoTests.cs
└── fixtures/
├── TestCleanupSystem.cs
├── TestExecuteSystem.cs
├── TestInitializeSystem.cs
├── TestReactiveSystem.cs
└── TestTearDownSystem.cs
SYMBOL INDEX (1906 symbols across 356 files)
FILE: benchmarks/Entitas.Benchmarks/AERCBenchmarks.cs
class AERCBenchmarks (line 13) | [MemoryDiagnoser]
method GlobalSetup (line 21) | [GlobalSetup]
method SafeAERC (line 28) | [Benchmark]
method UnsafeAERC (line 35) | [Benchmark]
FILE: benchmarks/Entitas.Benchmarks/CreateComponentBenchmarks.cs
class CreateComponentBenchmarks (line 14) | [MemoryDiagnoser]
method GlobalSetup (line 21) | [GlobalSetup]
method Activator (line 28) | [Benchmark]
method Generic (line 34) | [Benchmark]
method Manual (line 40) | [Benchmark]
class MovableComponent (line 50) | public sealed class MovableComponent : IComponent { }
FILE: benchmarks/Entitas.Benchmarks/DelegateBenchmarks.cs
class DelegateBenchmarks (line 14) | [MemoryDiagnoser]
method TimesTwo (line 21) | int TimesTwo(int a) => a + a;
method InstanceMethod (line 23) | [Benchmark]
method Delegate (line 29) | [Benchmark]
class MyClass (line 35) | class MyClass
method MyClass (line 39) | public MyClass(Func<int, int> method)
method Invoke (line 44) | public int Invoke(int a) => _method(a);
FILE: gen/Entitas.Generators/Component/ComponentDeclaration.cs
type ComponentDeclaration (line 8) | public readonly struct ComponentDeclaration
method ComponentDeclaration (line 24) | public ComponentDeclaration(SyntaxTree? syntaxTree, INamedTypeSymbol s...
method ComponentDeclaration (line 77) | ComponentDeclaration(ComponentDeclaration component, string fullName, ...
method ToEvent (line 92) | public ComponentDeclaration ToEvent(string fullName, string name, Immu...
method ContextAwareComponentPrefix (line 97) | public string ContextAwareComponentPrefix(string contextPrefix)
class FullNameAndContextsComparer (line 103) | public class FullNameAndContextsComparer : IEqualityComparer<ComponentDe...
method Equals (line 107) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 111) | public int GetHashCode(ComponentDeclaration obj)
class FullNameAndMembersAndContextsComparer (line 120) | public class FullNameAndMembersAndContextsComparer : IEqualityComparer<C...
method FullNameAndMembersAndContextsComparer (line 124) | public FullNameAndMembersAndContextsComparer(IEqualityComparer<MemberD...
method Equals (line 129) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 134) | public int GetHashCode(ComponentDeclaration obj)
class FullNameAndMembersAndContextsAndIsUniqueComparer (line 146) | public class FullNameAndMembersAndContextsAndIsUniqueComparer : IEqualit...
method FullNameAndMembersAndContextsAndIsUniqueComparer (line 150) | public FullNameAndMembersAndContextsAndIsUniqueComparer(IEqualityCompa...
method Equals (line 155) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 161) | public int GetHashCode(ComponentDeclaration obj)
class FullNameAndContextsAndCleanupModeComparer (line 174) | public class FullNameAndContextsAndCleanupModeComparer : IEqualityCompar...
method Equals (line 178) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 183) | public int GetHashCode(ComponentDeclaration obj)
class FullNameAndMembersAndContextsAndEventsComparer (line 195) | public class FullNameAndMembersAndContextsAndEventsComparer : IEqualityC...
method FullNameAndMembersAndContextsAndEventsComparer (line 200) | public FullNameAndMembersAndContextsAndEventsComparer(IEqualityCompare...
method Equals (line 206) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 212) | public int GetHashCode(ComponentDeclaration obj)
class FullNameAndContextsAndEventsComparer (line 225) | public class FullNameAndContextsAndEventsComparer : IEqualityComparer<Co...
method FullNameAndContextsAndEventsComparer (line 229) | public FullNameAndContextsAndEventsComparer(IEqualityComparer<EventDec...
method Equals (line 234) | public bool Equals(ComponentDeclaration x, ComponentDeclaration y) =>
method GetHashCode (line 239) | public int GetHashCode(ComponentDeclaration obj)
class ComponentsComparer (line 251) | public class ComponentsComparer : IEqualityComparer<ImmutableArray<Compo...
method ComponentsComparer (line 255) | public ComponentsComparer(IEqualityComparer<ComponentDeclaration> comp...
method Equals (line 260) | public bool Equals(ImmutableArray<ComponentDeclaration> x, ImmutableAr...
method GetHashCode (line 263) | public int GetHashCode(ImmutableArray<ComponentDeclaration> obj) => ob...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystem.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method CleanupSystem (line 9) | static void CleanupSystem(SourceProductionContext spc, ComponentDeclar...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystems.cs
class ComponentGenerator (line 9) | partial class ComponentGenerator
method CleanupSystems (line 11) | static void CleanupSystems(SourceProductionContext spc, ContextInitial...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ComponentIndex.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method ComponentIndex (line 9) | static void ComponentIndex(SourceProductionContext spc, ComponentDecla...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ContextExtension.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method ContextExtension (line 9) | static void ContextExtension(SourceProductionContext spc, ComponentDec...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.ContextInitializationMethod.cs
class ComponentGenerator (line 9) | partial class ComponentGenerator
method ContextInitializationMethod (line 11) | static void ContextInitializationMethod(SourceProductionContext spc, C...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EntityExtension.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method EntityExtension (line 9) | static void EntityExtension(SourceProductionContext spc, ComponentDecl...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EntityIndexExtension.cs
class ComponentGenerator (line 9) | partial class ComponentGenerator
method EntityIndexExtension (line 11) | static void EntityIndexExtension(SourceProductionContext spc, ContextI...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.EventSystems.cs
class ComponentGenerator (line 9) | partial class ComponentGenerator
method EventSystemsContextExtension (line 11) | static void EventSystemsContextExtension(SourceProductionContext spc, ...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.Events.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method Events (line 9) | static void Events(SourceProductionContext spc, ComponentDeclaration c...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.Matcher.cs
class ComponentGenerator (line 7) | partial class ComponentGenerator
method Matcher (line 9) | static void Matcher(SourceProductionContext spc, ComponentDeclaration ...
FILE: gen/Entitas.Generators/Component/ComponentGenerator.cs
class ComponentGenerator (line 13) | [Generator(LanguageNames.CSharp)]
method Initialize (line 16) | public void Initialize(IncrementalGeneratorInitializationContext initC...
method IsComponentCandidate (line 156) | static bool IsComponentCandidate(SyntaxNode node, CancellationToken _)
method CreateComponentDeclaration (line 175) | static ComponentDeclaration? CreateComponentDeclaration(GeneratorSynta...
method CreateComponentDeclarationsForCompilation (line 197) | static ImmutableArray<ComponentDeclaration> CreateComponentDeclaration...
method GetContexts (line 248) | static ImmutableArray<string> GetContexts(INamedTypeSymbol symbol)
method IsContextInitializationMethodCandidate (line 259) | static bool IsContextInitializationMethodCandidate(SyntaxNode node, Ca...
method CreateContextInitializationMethodDeclaration (line 271) | static ContextInitializationMethodDeclaration? CreateContextInitializa...
method ToEvent (line 295) | static ComponentDeclaration ToEvent(ComponentDeclaration component, Ev...
method GeneratorSource (line 301) | static string GeneratorSource(string source) => $"{typeof(ComponentGen...
FILE: gen/Entitas.Generators/Component/ContextInitializationMethodDeclaration.cs
type ContextInitializationMethodDeclaration (line 8) | public struct ContextInitializationMethodDeclaration
method ContextInitializationMethodDeclaration (line 21) | public ContextInitializationMethodDeclaration(SyntaxTree syntaxTree, I...
class NamespaceAndClassAndNameAndContextFullNameComparer (line 41) | public class NamespaceAndClassAndNameAndContextFullNameComparer : IEqual...
method Equals (line 45) | public bool Equals(ContextInitializationMethodDeclaration x, ContextIn...
method GetHashCode (line 51) | public int GetHashCode(ContextInitializationMethodDeclaration obj)
class NamespaceAndClassAndNameAndContextFullNameAndComponentsComparer (line 64) | public class NamespaceAndClassAndNameAndContextFullNameAndComponentsComp...
method NamespaceAndClassAndNameAndContextFullNameAndComponentsComparer (line 68) | public NamespaceAndClassAndNameAndContextFullNameAndComponentsComparer...
method Equals (line 73) | public bool Equals(ContextInitializationMethodDeclaration x, ContextIn...
method GetHashCode (line 80) | public int GetHashCode(ContextInitializationMethodDeclaration obj)
FILE: gen/Entitas.Generators/Component/EventDeclaration.cs
type EventDeclaration (line 5) | public struct EventDeclaration
method EventDeclaration (line 22) | public EventDeclaration(int eventTarget, int eventType, int order, str...
method ContextAware (line 35) | public void ContextAware(string contextAware)
class EventTargetAndEventTypeComparer (line 44) | public class EventTargetAndEventTypeComparer : IEqualityComparer<EventDe...
method Equals (line 48) | public bool Equals(EventDeclaration x, EventDeclaration y) =>
method GetHashCode (line 52) | public int GetHashCode(EventDeclaration obj)
class EventTargetAndEventTypeAndOrderComparer (line 63) | public class EventTargetAndEventTypeAndOrderComparer : IEqualityComparer...
method Equals (line 67) | public bool Equals(EventDeclaration x, EventDeclaration y) =>
method GetHashCode (line 72) | public int GetHashCode(EventDeclaration obj)
FILE: gen/Entitas.Generators/Component/MemberDeclaration.cs
type MemberDeclaration (line 8) | public readonly struct MemberDeclaration
method MemberDeclaration (line 15) | public MemberDeclaration(IFieldSymbol field) : this(field, field.Type)...
method MemberDeclaration (line 17) | public MemberDeclaration(IPropertySymbol property) : this(property, pr...
method MemberDeclaration (line 19) | public MemberDeclaration(ISymbol symbol, ITypeSymbol type) : this(GetT...
method MemberDeclaration (line 21) | public MemberDeclaration(string type, string name, int entityIndexType)
method GetTypeName (line 29) | static string GetTypeName(ITypeSymbol type)
method GetEntityIndexType (line 36) | static int GetEntityIndexType(ISymbol symbol)
method ToValidLowerFirst (line 46) | static string ToValidLowerFirst(string value)
class TypeAndNameComparer (line 55) | public class TypeAndNameComparer : IEqualityComparer<MemberDeclaration>
method Equals (line 59) | public bool Equals(MemberDeclaration x, MemberDeclaration y) =>
method GetHashCode (line 63) | public int GetHashCode(MemberDeclaration obj)
class TypeAndNameAndEntityIndexTypeComparer (line 72) | public class TypeAndNameAndEntityIndexTypeComparer : IEqualityComparer<M...
method Equals (line 76) | public bool Equals(MemberDeclaration x, MemberDeclaration y) =>
method GetHashCode (line 81) | public int GetHashCode(MemberDeclaration obj)
FILE: gen/Entitas.Generators/Context/ContextDeclaration.cs
type ContextDeclaration (line 6) | public readonly struct ContextDeclaration : IEquatable<ContextDeclaration>
method ContextDeclaration (line 16) | public ContextDeclaration(SyntaxTree syntaxTree, INamedTypeSymbol symbol)
method Equals (line 27) | public bool Equals(ContextDeclaration other) => FullName == other.Full...
method Equals (line 28) | public override bool Equals(object? obj) => obj is ContextDeclaration ...
method GetHashCode (line 29) | public override int GetHashCode() => FullName.GetHashCode();
FILE: gen/Entitas.Generators/Context/ContextGenerator.ComponentIndex.cs
class ContextGenerator (line 7) | partial class ContextGenerator
method ComponentIndex (line 9) | static void ComponentIndex(SourceProductionContext spc, ContextDeclara...
FILE: gen/Entitas.Generators/Context/ContextGenerator.Context.cs
class ContextGenerator (line 7) | partial class ContextGenerator
method Context (line 9) | static void Context(SourceProductionContext spc, ContextDeclaration co...
FILE: gen/Entitas.Generators/Context/ContextGenerator.Entity.cs
class ContextGenerator (line 7) | partial class ContextGenerator
method Entity (line 9) | static void Entity(SourceProductionContext spc, ContextDeclaration con...
FILE: gen/Entitas.Generators/Context/ContextGenerator.Matcher.cs
class ContextGenerator (line 7) | partial class ContextGenerator
method Matcher (line 9) | static void Matcher(SourceProductionContext spc, ContextDeclaration co...
FILE: gen/Entitas.Generators/Context/ContextGenerator.cs
class ContextGenerator (line 11) | [Generator(LanguageNames.CSharp)]
method Initialize (line 14) | public void Initialize(IncrementalGeneratorInitializationContext initC...
method IsContextCandidate (line 26) | static bool IsContextCandidate(SyntaxNode node, CancellationToken _)
method CreateContextDeclaration (line 45) | static ContextDeclaration? CreateContextDeclaration(GeneratorSyntaxCon...
method OnContextChanged (line 63) | static void OnContextChanged(SourceProductionContext spc, (ContextDecl...
method ContextAwarePath (line 72) | static string ContextAwarePath(ContextDeclaration context, string hint...
method GeneratorSource (line 77) | static string GeneratorSource(string source)
FILE: gen/Entitas.Generators/EntitasAnalyzerConfigOptions.cs
class EntitasAnalyzerConfigOptions (line 7) | public static class EntitasAnalyzerConfigOptions
method ComponentCleanupSystems (line 24) | public static bool ComponentCleanupSystems(AnalyzerConfigOptionsProvid...
method ComponentComponentIndex (line 25) | public static bool ComponentComponentIndex(AnalyzerConfigOptionsProvid...
method ComponentContextExtension (line 26) | public static bool ComponentContextExtension(AnalyzerConfigOptionsProv...
method ComponentContextInitializationMethod (line 27) | public static bool ComponentContextInitializationMethod(AnalyzerConfig...
method ComponentEntityExtension (line 28) | public static bool ComponentEntityExtension(AnalyzerConfigOptionsProvi...
method ComponentEntityIndexExtension (line 29) | public static bool ComponentEntityIndexExtension(AnalyzerConfigOptions...
method ComponentEvents (line 30) | public static bool ComponentEvents(AnalyzerConfigOptionsProvider optio...
method ComponentEventSystemsContextExtension (line 31) | public static bool ComponentEventSystemsContextExtension(AnalyzerConfi...
method ComponentMatcher (line 32) | public static bool ComponentMatcher(AnalyzerConfigOptionsProvider opti...
method ContextComponentIndex (line 34) | public static bool ContextComponentIndex(AnalyzerConfigOptionsProvider...
method ContextContext (line 35) | public static bool ContextContext(AnalyzerConfigOptionsProvider option...
method ContextEntity (line 36) | public static bool ContextEntity(AnalyzerConfigOptionsProvider options...
method ContextMatcher (line 37) | public static bool ContextMatcher(AnalyzerConfigOptionsProvider option...
method IsTrue (line 39) | static bool IsTrue(AnalyzerConfigOptionsProvider optionsProvider, Synt...
FILE: gen/Entitas.Generators/Templates.cs
class Templates (line 6) | public static class Templates
method GeneratedPath (line 8) | public static string GeneratedPath(string hintName)
method GeneratedFileHeader (line 13) | public static string GeneratedFileHeader(string generatorSource)
method CombinedNamespace (line 29) | public static string CombinedNamespace(string? @namespace, string suffix)
method NamespaceDeclaration (line 36) | public static string NamespaceDeclaration(string? @namespace, string c...
method RemoveSuffix (line 43) | public static string RemoveSuffix(this string str, string suffix)
method ContextPrefix (line 50) | public static string ContextPrefix(string context)
method ContextAware (line 55) | public static string ContextAware(string contextPrefix)
method ComponentMethodParams (line 60) | public static string ComponentMethodParams(ComponentDeclaration compon...
method ComponentMethodArgs (line 63) | public static string ComponentMethodArgs(ComponentDeclaration componen...
method ComponentValueMethodArgs (line 66) | public static string ComponentValueMethodArgs(ComponentDeclaration com...
method ComponentValueAssignments (line 69) | public static string ComponentValueAssignments(ComponentDeclaration co...
FILE: samples/Unity/Assets/Sample/Editor/CustomObjectDrawer.cs
class CustomObjectDrawer (line 5) | public class CustomObjectDrawer : ITypeDrawer, IDefaultInstanceCreator
method HandlesType (line 7) | public bool HandlesType(Type type) => type == typeof(MyCustomObject);
method CreateDefault (line 9) | public object CreateDefault(Type type) => new MyCustomObject("Default");
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: samples/Unity/Assets/Sample/Editor/PersonComponentDrawer.cs
class PersonComponentDrawer (line 6) | public class PersonComponentDrawer : IComponentDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(MyPersonComponent);
method DrawComponent (line 10) | public IComponent DrawComponent(IComponent component)
type PersonGender (line 23) | enum PersonGender
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyArray2DComponent.cs
class MyArray2DComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyArray3DComponent.cs
class MyArray3DComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyArrayComponent.cs
class MyArrayComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyCharComponent.cs
class MyCharComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyCustomObjectComponent.cs
class MyCustomObjectComponent (line 4) | [Context(typeof(GameContext))]
class MyCustomObject (line 10) | public class MyCustomObject
method MyCustomObject (line 14) | public MyCustomObject(string name)
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyDateTimeComponent.cs
class MyDateTimeComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyDictArrayComponent.cs
class MyDictArrayComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyDictionaryComponent.cs
class MyDictionaryComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyDontDrawComponent.cs
class MyDontDrawComponent (line 5) | [Context(typeof(GameContext)), DontDrawComponent]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyFlagComponent.cs
class MyFlagComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyHashSetComponent.cs
class MyHashSetComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyJaggedArrayComponent.cs
class MyJaggedArrayComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyListArrayComponent.cs
class MyListArrayComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyListComponent.cs
class MyListComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyMemberListComponent.cs
class MyMemberListComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyMonoBehaviourSubClassComponent.cs
class MyMonoBehaviourSubClassComponent (line 5) | [Context(typeof(GameContext))]
class MyMonoBehaviourSubClass (line 11) | public class MyMonoBehaviourSubClass : MonoBehaviour { }
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyPersonComponent.cs
class MyPersonComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyPropertyComponent.cs
class MyPropertyComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MySimpleObjectComponent.cs
class MySimpleObjectComponent (line 5) | [Context(typeof(GameContext))]
class MySimpleObject (line 11) | public class MySimpleObject
FILE: samples/Unity/Assets/Sample/Runtime/Components/MySystemObjectComponent.cs
class MySystemObjectComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyUniqueComponent.cs
class MyUniqueComponent (line 4) | [Context(typeof(GameContext)), Unique]
FILE: samples/Unity/Assets/Sample/Runtime/Components/MyUnsupportedObjectComponent.cs
class MyUnsupportedObjectComponent (line 4) | [Context(typeof(GameContext))]
class UnsupportedObject (line 10) | public class UnsupportedObject
method UnsupportedObject (line 14) | public UnsupportedObject(string value)
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyAnimationCurveComponent.cs
class MyAnimationCurveComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoolComponent.cs
class MyBoolComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoundsComponent.cs
class MyBoundsComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyColorComponent.cs
class MyColorComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyDoubleComponent.cs
class MyDoubleComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyEnumComponent.cs
class MyEnumComponent (line 4) | [Context(typeof(GameContext))]
type MyEnum (line 10) | public enum MyEnum
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFlagsComponent.cs
class MyFlagsComponent (line 4) | [Context(typeof(GameContext))]
type MyFlags (line 10) | [System.Flags]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFloatComponent.cs
class MyFloatComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyGameObjectComponent.cs
class MyGameObjectComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyIntComponent.cs
class MyIntComponent (line 4) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyRectComponent.cs
class MyRectComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyStringComponent.cs
class MyStringComponent (line 4) | [Context(typeof(GameContext)), Context(typeof(InputContext))]
method ToString (line 9) | public override string ToString() => $"MyString({Value})";
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTexture2DComponent.cs
class MyTexture2DComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTextureComponent.cs
class MyTextureComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyUnityObjectComponent.cs
class MyUnityObjectComponent (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector2Component.cs
class MyVector2Component (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector3Component.cs
class MyVector3Component (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector4Component.cs
class MyVector4Component (line 5) | [Context(typeof(GameContext))]
FILE: samples/Unity/Assets/Sample/Runtime/ComponentsController.cs
class ComponentsController (line 8) | public class ComponentsController : MonoBehaviour
method Start (line 10) | void Start()
method CreateTestGroups (line 22) | void CreateTestGroups(GameContext context)
method CreateTestEntities (line 30) | void CreateTestEntities(GameContext context)
method CreateTestEntityWithNullValues (line 113) | void CreateTestEntityWithNullValues(GameContext context)
method CreateTestEntityError (line 146) | void CreateTestEntityError(GameContext context)
FILE: samples/Unity/Assets/Sample/Runtime/Contexts/ContextInitialization.cs
class ContextInitialization (line 3) | public static partial class ContextInitialization
method InitializeAllContexts (line 5) | public static void InitializeAllContexts()
method InitializeGameContext (line 11) | [ContextInitialization(typeof(GameContext))]
method InitializeInputContext (line 14) | [ContextInitialization(typeof(InputContext))]
FILE: samples/Unity/Assets/Sample/Runtime/Contexts/GameContext.cs
class GameContext (line 3) | partial class GameContext : IContext { }
FILE: samples/Unity/Assets/Sample/Runtime/Contexts/InputContext.cs
class InputContext (line 3) | partial class InputContext : IContext { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/AReactiveSystem.cs
class AReactiveSystem (line 5) | public class AReactiveSystem : ReactiveSystem<Game.Entity>
method AReactiveSystem (line 7) | public AReactiveSystem(GameContext context) : base(context) { }
method GetTrigger (line 9) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 12) | protected override bool Filter(Game.Entity entity) => true;
method Execute (line 14) | protected override void Execute(List<Game.Entity> entities)
FILE: samples/Unity/Assets/Sample/Runtime/Systems/CleanupSystem.cs
class CleanupSystem (line 3) | public class CleanupSystem : ICleanupSystem
method Cleanup (line 5) | public void Cleanup() { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/FastSystem.cs
class FastSystem (line 4) | public class FastSystem : IExecuteSystem
method Execute (line 6) | public void Execute()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/MixedSystem.cs
class MixedSystem (line 3) | public class MixedSystem : IInitializeSystem, IExecuteSystem, ICleanupSy...
method Initialize (line 5) | public void Initialize()
method Execute (line 10) | public void Execute()
method Cleanup (line 15) | public void Cleanup()
method TearDown (line 20) | public void TearDown()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/ProcessRandomValueSystem.cs
class ProcessRandomValueSystem (line 4) | public class ProcessRandomValueSystem : ReactiveSystem<Game.Entity>
method ProcessRandomValueSystem (line 6) | public ProcessRandomValueSystem(GameContext context) : base(context) { }
method GetTrigger (line 8) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 11) | protected override bool Filter(Game.Entity entity) => true;
method Execute (line 13) | protected override void Execute(List<Game.Entity> entities)
FILE: samples/Unity/Assets/Sample/Runtime/Systems/RandomDurationSystem.cs
class RandomDurationSystem (line 5) | public class RandomDurationSystem : IExecuteSystem
method Execute (line 7) | public void Execute()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/RandomValueSystem.cs
class RandomValueSystem (line 4) | public class RandomValueSystem : IExecuteSystem
method RandomValueSystem (line 8) | public RandomValueSystem(GameContext context)
method Execute (line 13) | public void Execute()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeExecuteSystem.cs
class SlowInitializeExecuteSystem (line 4) | public class SlowInitializeExecuteSystem : IInitializeSystem, IExecuteSy...
method Initialize (line 6) | public void Initialize()
method Execute (line 11) | public void Execute()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeSystem.cs
class SlowInitializeSystem (line 4) | public class SlowInitializeSystem : IInitializeSystem
method Initialize (line 6) | public void Initialize()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SlowSystem.cs
class SlowSystem (line 4) | public class SlowSystem : IExecuteSystem
method Execute (line 6) | public void Execute()
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SomeExecuteSystem.cs
class SomeExecuteSystem (line 3) | public class SomeExecuteSystem : IExecuteSystem
method Execute (line 5) | public void Execute() { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeExecuteSystem.cs
class SomeInitializeExecuteSystem (line 3) | public class SomeInitializeExecuteSystem : IInitializeSystem, IExecuteSy...
method Initialize (line 5) | public void Initialize() { }
method Execute (line 7) | public void Execute() { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeReactiveSystem.cs
class SomeInitializeReactiveSystem (line 4) | public class SomeInitializeReactiveSystem : ReactiveSystem<Game.Entity>,...
method SomeInitializeReactiveSystem (line 6) | public SomeInitializeReactiveSystem(GameContext context) : base(contex...
method GetTrigger (line 8) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 11) | protected override bool Filter(Game.Entity entity) => true;
method Initialize (line 13) | public void Initialize() { }
method Execute (line 15) | protected override void Execute(List<Game.Entity> entities) { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeSystem.cs
class SomeInitializeSystem (line 3) | public class SomeInitializeSystem : IInitializeSystem
method Initialize (line 5) | public void Initialize() { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/SomeReactiveSystem.cs
class SomeReactiveSystem (line 4) | public class SomeReactiveSystem : ReactiveSystem<Game.Entity>
method SomeReactiveSystem (line 6) | public SomeReactiveSystem(GameContext context) : base(context) { }
method GetTrigger (line 8) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 11) | protected override bool Filter(Game.Entity entity) => true;
method Execute (line 13) | protected override void Execute(List<Game.Entity> entities) { }
FILE: samples/Unity/Assets/Sample/Runtime/Systems/TearDownSystem.cs
class TearDownSystem (line 3) | public class TearDownSystem : ITearDownSystem
method TearDown (line 5) | public void TearDown()
FILE: samples/Unity/Assets/Sample/Runtime/SystemsController.cs
class SystemsController (line 5) | public class SystemsController : MonoBehaviour
method Start (line 10) | void Start()
method CreateNestedSystems (line 26) | Systems CreateNestedSystems()
method CreateSomeSystems (line 40) | Systems CreateSomeSystems()
method Update (line 45) | void Update()
method CreateAllSystemCombinations (line 54) | Systems CreateAllSystemCombinations()
method CreateSubSystems (line 64) | Systems CreateSubSystems()
method CreateSameInstance (line 75) | Systems CreateSameInstance()
method CreateEmptySystems (line 84) | Systems CreateEmptySystems()
class SomeSystems (line 97) | sealed class SomeSystems : Feature
method SomeSystems (line 99) | public SomeSystems(GameContext gameContext)
FILE: samples/Unity/Assets/Sample/Tests/Editor/Tests/ContextTests.cs
class ContextTests (line 5) | [TestFixture]
method EnsuresSameDeterministicOrderWhenGettingEntitiesAfterDestroyAllEntities (line 8) | [Test]
FILE: samples/Unity/Assets/Sample/Tests/Editor/Tests/EntityLinkTests.cs
class EntityLinkTests (line 7) | public class EntityLinkTests
method BeforeEach (line 14) | [SetUp]
method LinksEntityAndContextAndRetainsEntity (line 25) | [Test]
method ThrowsWhenAlreadyLinked (line 37) | [Test]
method UnlinksEntityReleasesEntity (line 47) | [Test]
method ThrowsWhenAlreadyUnlinked (line 60) | [Test]
method GetSameEntityLink (line 66) | [Test]
method AddsEntityLinkAndLinks (line 72) | [Test]
method Unlinks (line 83) | [Test]
method ReusesLink (line 95) | [Test]
method CanToString (line 107) | [Test]
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Collector Destructor/CollectorDestructorController.cs
class CollectorDestructorController (line 6) | public class CollectorDestructorController : MonoBehaviour
method Start (line 11) | void Start()
method Update (line 24) | void Update()
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Entity Stress Test/EntityStressTestController.cs
class EntityStressTestController (line 4) | public class EntityStressTestController : MonoBehaviour
method Start (line 11) | void Start()
method Update (line 25) | void Update()
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/EntityLink/EntityLinkController.cs
class EntityLinkController (line 4) | public class EntityLinkController : MonoBehaviour
method Start (line 6) | void Start()
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Fixtures/TestComponent.cs
class TestComponent (line 4) | [Context(typeof(GameContext)), Context(typeof(InputContext))]
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Fixtures/TestReactiveSystem.cs
class TestReactiveSystem (line 4) | public class TestReactiveSystem : ReactiveSystem<Game.Entity>
method TestReactiveSystem (line 6) | public TestReactiveSystem(GameContext context) : base(context) { }
method GetTrigger (line 8) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 11) | protected override bool Filter(Game.Entity entity) => true;
method Execute (line 13) | protected override void Execute(List<Game.Entity> entities) { }
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Group Alloc/GroupAllocController.cs
class GroupAllocController (line 6) | public class GroupAllocController : MonoBehaviour
method Start (line 15) | void Start()
method Update (line 23) | void Update()
method Iterate (line 32) | void Iterate()
type GroupAlloc (line 61) | public enum GroupAlloc
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/Reactive System Exception/ReactiveSystemExceptionController.cs
class ReactiveSystemExceptionController (line 9) | public class ReactiveSystemExceptionController : MonoBehaviour
method Start (line 14) | void Start()
method Update (line 23) | void Update()
class ExceptionReactiveSystem (line 30) | public class ExceptionReactiveSystem : ReactiveSystem<Game.Entity>
method ExceptionReactiveSystem (line 32) | public ExceptionReactiveSystem(GameContext context) : base(context) { }
method GetTrigger (line 34) | protected override ICollector<Game.Entity> GetTrigger(IContext<Game.En...
method Filter (line 37) | protected override bool Filter(Game.Entity entity) => true;
method Execute (line 39) | protected override void Execute(List<Game.Entity> entities)
FILE: samples/Unity/Assets/Sample/Tests/Manual Tests/ReactiveSystem Destructor/ReactiveSystemDestructorController.cs
class ReactiveSystemDestructorController (line 5) | public class ReactiveSystemDestructorController : MonoBehaviour
method Start (line 10) | void Start()
method Update (line 21) | void Update()
FILE: src/Entitas.Generators.Attributes/CleanupAttribute.cs
class CleanupAttribute (line 5) | [AttributeUsage(AttributeTargets.Class)]
method CleanupAttribute (line 10) | public CleanupAttribute(CleanupMode cleanupMode)
type CleanupMode (line 16) | public enum CleanupMode
FILE: src/Entitas.Generators.Attributes/ContextAttribute.cs
class ContextAttribute (line 5) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
method ContextAttribute (line 10) | public ContextAttribute(Type type)
FILE: src/Entitas.Generators.Attributes/ContextInitializationAttribute.cs
class ContextInitializationAttribute (line 5) | [AttributeUsage(AttributeTargets.Method)]
method ContextInitializationAttribute (line 10) | public ContextInitializationAttribute(Type type)
FILE: src/Entitas.Generators.Attributes/EntityIndexAttribute.cs
class EntityIndexAttribute (line 5) | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
method EntityIndexAttribute (line 10) | public EntityIndexAttribute(bool isPrimary)
FILE: src/Entitas.Generators.Attributes/EventAttribute.cs
class EventAttribute (line 5) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
method EventAttribute (line 12) | public EventAttribute(EventTarget eventTarget, EventType eventType = E...
type EventTarget (line 20) | public enum EventTarget
type EventType (line 26) | public enum EventType
FILE: src/Entitas.Generators.Attributes/UniqueAttribute.cs
class UniqueAttribute (line 5) | [AttributeUsage(AttributeTargets.Class)]
FILE: src/Entitas.Unity.Editor/ContextObserverEditor.cs
class ContextObserverEditor (line 8) | [CustomEditor(typeof(ContextObserverBehaviour))]
method OnInspectorGUI (line 11) | public override void OnInspectorGUI()
FILE: src/Entitas.Unity.Editor/DebugSystemsEditor.cs
class DebugSystemsEditor (line 10) | [CustomEditor(typeof(DebugSystemsBehaviour))]
type SortMethod (line 13) | enum SortMethod
method OnEnable (line 49) | void OnEnable()
method OnInspectorGUI (line 54) | public override void OnInspectorGUI()
method DrawSystemsOverview (line 73) | static void DrawSystemsOverview(DebugSystems systems)
method DrawSystemsMonitor (line 91) | void DrawSystemsMonitor(DebugSystems systems)
method DrawSystemList (line 140) | void DrawSystemList(DebugSystems systems)
method DrawSystemInfos (line 221) | int DrawSystemInfos(DebugSystems systems, SystemInterfaceFlags type)
method GetSortedSystemInfos (line 324) | static IEnumerable<SystemInfo> GetSortedSystemInfos(IEnumerable<System...
method ShouldShowSystems (line 333) | static bool ShouldShowSystems(DebugSystems systems, SystemInterfaceFla...
method GetSystemStyle (line 348) | GUIStyle GetSystemStyle(SystemInfo systemInfo, SystemInterfaceFlags sy...
method AddDuration (line 366) | void AddDuration(float duration)
FILE: src/Entitas.Unity.Editor/DefaultInstanceCreator/DefaultArrayCreator.cs
class DefaultArrayCreator (line 5) | public class DefaultArrayCreator : IDefaultInstanceCreator
method HandlesType (line 7) | public bool HandlesType(Type type) => type.IsArray;
method CreateDefault (line 9) | public object CreateDefault(Type type) =>
FILE: src/Entitas.Unity.Editor/DefaultInstanceCreator/DefaultStringCreator.cs
class DefaultStringCreator (line 5) | public class DefaultStringCreator : IDefaultInstanceCreator
method HandlesType (line 7) | public bool HandlesType(Type type) => type == typeof(string);
method CreateDefault (line 9) | public object CreateDefault(Type type) => string.Empty;
FILE: src/Entitas.Unity.Editor/DefaultInstanceCreator/IDefaultInstanceCreator.cs
type IDefaultInstanceCreator (line 5) | public interface IDefaultInstanceCreator
method HandlesType (line 7) | bool HandlesType(Type type);
method CreateDefault (line 9) | object CreateDefault(Type type);
FILE: src/Entitas.Unity.Editor/EntitasHierarchyIcon.cs
class EntitasHierarchyIcon (line 7) | [InitializeOnLoad]
method EntitasHierarchyIcon (line 109) | static EntitasHierarchyIcon()
method OnHierarchyWindowItemOnGUI (line 115) | static void OnHierarchyWindowItemOnGUI(int instanceID, Rect selectionR...
FILE: src/Entitas.Unity.Editor/EntitasMenuItems.cs
class EntitasMenuItems (line 13) | public static class EntitasMenuItems
method EntitasSettings (line 19) | [MenuItem("Tools/Entitas/Settings...", false, 1)]
method EnableVisualDebugging (line 22) | [MenuItem("Tools/Entitas/Enable VisualDebugging", false, 2)]
method ValidateEnableVisualDebugging (line 31) | [MenuItem("Tools/Entitas/Enable VisualDebugging", true)]
method EnableDeepProfiling (line 41) | [MenuItem("Tools/Entitas/Enable Deep Profiling", false, 3)]
method ValidateEnableDeepProfiling (line 50) | [MenuItem("Tools/Entitas/Enable Deep Profiling", true)]
method SetSafeAerc (line 60) | [MenuItem("Tools/Entitas/AERC - Safe", false, 4)]
method ValidateSetSafeAerc (line 66) | [MenuItem("Tools/Entitas/AERC - Safe", true)]
method SetUnsafeAerc (line 74) | [MenuItem("Tools/Entitas/AERC - FastAndUnsafe", false, 5)]
method ValidateSetUnsafeAerc (line 80) | [MenuItem("Tools/Entitas/AERC - FastAndUnsafe", true)]
method GenerateDefaultInstanceCreator (line 93) | [MenuItem("Tools/Entitas/Generate/DefaultInstanceCreator", false, 6)]
method GenerateTypeDrawer (line 96) | [MenuItem("Tools/Entitas/Generate/TypeDrawer", false, 7)]
method ShowStatistics (line 99) | [MenuItem("Tools/Entitas/Show Statistics", false, 8)]
method EntitasWiki (line 107) | [MenuItem("Tools/Entitas/Open Entitas Wiki...", false, 50)]
method EntitasChat (line 110) | [MenuItem("Tools/Entitas/Join the Entitas Discord Server...", false, 51)]
method Feedback (line 113) | [MenuItem("Tools/Entitas/Feedback", false, 100)]
method ValidateFeedback (line 116) | [MenuItem("Tools/Entitas/Feedback", true)]
method ReportBug (line 119) | [MenuItem("Tools/Entitas/Report a bug...", false, 101)]
method RequestFeature (line 122) | [MenuItem("Tools/Entitas/Request a feature...", false, 102)]
method GetStatistics (line 125) | public static Dictionary<string, int> GetStatistics()
method GetContexts (line 151) | static Dictionary<string, int> GetContexts(Type[] components) => compo...
method GetContextNames (line 164) | static string[] GetContextNames(Type type) => Attribute
method GetContextNamesOrDefault (line 170) | static string[] GetContextNamesOrDefault(Type type)
method IsSystem (line 179) | static bool IsSystem(Type type) =>
FILE: src/Entitas.Unity.Editor/EntitasSettings.cs
class EntitasSettings (line 7) | public sealed class EntitasSettings : ScriptableObject
FILE: src/Entitas.Unity.Editor/EntityDrawer.cs
class EntityDrawer (line 12) | public static partial class EntityDrawer
method DrawEntity (line 14) | public static void DrawEntity(Entity entity)
method DrawMultipleEntities (line 49) | public static void DrawMultipleEntities(Entity[] entities)
method DrawComponents (line 99) | public static void DrawComponents(Entity entity)
method DrawComponent (line 143) | public static void DrawComponent(bool[] unfoldedComponents, string[] c...
method DrawObjectMember (line 220) | public static bool DrawObjectMember(Type memberType, string memberName...
method CreateDefault (line 305) | public static bool CreateDefault(Type type, out object defaultValue)
method DrawAddComponentMenu (line 341) | static int DrawAddComponentMenu(Entity entity)
method DrawUnsupportedType (line 355) | static void DrawUnsupportedType(Type memberType, string memberName, ob...
method GenerateIDefaultInstanceCreator (line 379) | public static void GenerateIDefaultInstanceCreator(string typeName)
method GenerateITypeDrawer (line 389) | public static void GenerateITypeDrawer(string typeName)
method GenerateTemplate (line 399) | static void GenerateTemplate(string folder, string filePath, string te...
FILE: src/Entitas.Unity.Editor/EntityDrawerState.cs
class EntityDrawer (line 10) | public static partial class EntityDrawer
type ComponentInfo (line 22) | public struct ComponentInfo
method EntityDrawer (line 62) | static EntityDrawer()
method GetUnfoldedComponents (line 69) | static bool[] GetUnfoldedComponents(Entity entity)
method GetComponentMemberSearch (line 83) | static string[] GetComponentMemberSearch(Entity entity)
method GetComponentInfos (line 97) | static ComponentInfo[] GetComponentInfos(Entity entity)
method GetComponentDrawer (line 120) | static IComponentDrawer GetComponentDrawer(Type type)
method GetTypeDrawer (line 129) | static ITypeDrawer GetTypeDrawer(Type type)
FILE: src/Entitas.Unity.Editor/EntityEditor.cs
class EntityEditor (line 6) | [CustomEditor(typeof(EntityBehaviour)), CanEditMultipleObjects]
method OnInspectorGUI (line 9) | public override void OnInspectorGUI()
FILE: src/Entitas.Unity.Editor/EntityLinkEditor.cs
class EntityLinkEditor (line 7) | [CustomEditor(typeof(EntityLink))]
method OnInspectorGUI (line 10) | public override void OnInspectorGUI()
FILE: src/Entitas.Unity.Editor/IComponentDrawer.cs
type IComponentDrawer (line 5) | public interface IComponentDrawer
method HandlesType (line 7) | bool HandlesType(Type type);
method DrawComponent (line 9) | IComponent DrawComponent(IComponent component);
FILE: src/Entitas.Unity.Editor/TypeDrawer/AnimationCurveTypeDrawer.cs
class AnimationCurveTypeDrawer (line 7) | public class AnimationCurveTypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(AnimationCurve);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/ArrayTypeDrawer.cs
class ArrayTypeDrawer (line 9) | public class ArrayTypeDrawer : ITypeDrawer
method HandlesType (line 11) | public bool HandlesType(Type type) => type.IsArray;
method DrawAndGetNewValue (line 13) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
method DrawRank1 (line 34) | Array DrawRank1(Array array, string memberName, Type elementType, int ...
method DrawAddElement (line 66) | Array DrawAddElement(Array array, string memberName, Type elementType)
method DrawRank2 (line 92) | Array DrawRank2(Array array, string memberName, Type elementType, obje...
method DrawRank3 (line 118) | Array DrawRank3(Array array, string memberName, Type elementType, obje...
method DrawEditActions (line 144) | static Func<Array> DrawEditActions(Array array, Type elementType, int ...
method ArrayRemoveAt (line 186) | static Array ArrayRemoveAt(Array array, Type elementType, int removeAt)
method ArrayInsertAt (line 193) | static Array ArrayInsertAt(Array array, Type elementType, object value...
FILE: src/Entitas.Unity.Editor/TypeDrawer/BoolTypeDrawer.cs
class BoolTypeDrawer (line 6) | public class BoolTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(bool);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/BoundsTypeDrawer.cs
class BoundsTypeDrawer (line 7) | public class BoundsTypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Bounds);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/CharTypeDrawer.cs
class CharTypeDrawer (line 6) | public class CharTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(char);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/ColorTypeDrawer.cs
class ColorTypeDrawer (line 7) | public class ColorTypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Color);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/DateTimeTypeDrawer.cs
class DateTimeTypeDrawer (line 6) | public class DateTimeTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(DateTime);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/DictionaryTypeDrawer.cs
class DictionaryTypeDrawer (line 10) | public class DictionaryTypeDrawer : ITypeDrawer
method HandlesType (line 14) | public bool HandlesType(Type type) => type.IsGenericType && type.GetGe...
method DrawAndGetNewValue (line 16) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/DoubleTypeDrawer.cs
class DoubleTypeDrawer (line 6) | public class DoubleTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(double);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/EnumTypeDrawer.cs
class EnumTypeDrawer (line 6) | public class EnumTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type.IsEnum;
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/FloatTypeDrawer.cs
class FloatTypeDrawer (line 6) | public class FloatTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(float);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/HashSetTypeDrawer.cs
class HashSetTypeDrawer (line 10) | public class HashSetTypeDrawer : ITypeDrawer
method HandlesType (line 12) | public bool HandlesType(Type type) => type.IsGenericType && type.GetGe...
method DrawAndGetNewValue (line 14) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/ITypeDrawer.cs
type ITypeDrawer (line 5) | public interface ITypeDrawer
method HandlesType (line 7) | bool HandlesType(Type type);
method DrawAndGetNewValue (line 9) | object DrawAndGetNewValue(Type memberType, string memberName, object v...
FILE: src/Entitas.Unity.Editor/TypeDrawer/IntTypeDrawer.cs
class IntTypeDrawer (line 6) | public class IntTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(int);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/ListTypeDrawer.cs
class ListTypeDrawer (line 10) | public class ListTypeDrawer : ITypeDrawer
method HandlesType (line 12) | public bool HandlesType(Type type) => type.GetInterfaces().Contains(ty...
method DrawAndGetNewValue (line 14) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
method DrawEditActions (line 49) | static Func<IList> DrawEditActions(IList list, Type elementType, int i...
method DrawAddElement (line 99) | IList DrawAddElement(IList list, string memberName, Type elementType)
FILE: src/Entitas.Unity.Editor/TypeDrawer/RectTypeDrawer.cs
class RectTypeDrawer (line 7) | public class RectTypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Rect);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/StringTypeDrawer.cs
class StringTypeDrawer (line 6) | public class StringTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) => type == typeof(string);
method DrawAndGetNewValue (line 10) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/UnityObjectTypeDrawer.cs
class UnityObjectTypeDrawer (line 6) | public class UnityObjectTypeDrawer : ITypeDrawer
method HandlesType (line 8) | public bool HandlesType(Type type) =>
method DrawAndGetNewValue (line 12) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/Vector2TypeDrawer.cs
class Vector2TypeDrawer (line 7) | public class Vector2TypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Vector2);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/Vector3TypeDrawer.cs
class Vector3TypeDrawer (line 7) | public class Vector3TypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Vector3);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity.Editor/TypeDrawer/Vector4TypeDrawer.cs
class Vector4TypeDrawer (line 7) | public class Vector4TypeDrawer : ITypeDrawer
method HandlesType (line 9) | public bool HandlesType(Type type) => type == typeof(Vector4);
method DrawAndGetNewValue (line 11) | public object DrawAndGetNewValue(Type memberType, string memberName, o...
FILE: src/Entitas.Unity/ContextObserver/ContextObserverBehaviour.cs
class ContextObserverBehaviour (line 7) | public class ContextObserverBehaviour : MonoBehaviour
method Initialize (line 18) | public void Initialize(IContext context)
method OnEntityCreated (line 26) | void OnEntityCreated(IContext context, Entity entity)
method OnGroupCreated (line 37) | void OnGroupCreated(IContext context, IGroup group)
method Update (line 42) | void Update()
method OnDestroy (line 47) | void OnDestroy()
method ToString (line 53) | public override string ToString()
FILE: src/Entitas.Unity/ContextObserver/ContextObserverExtension.cs
class ContextObserverExtension (line 5) | public static class ContextObserverExtension
method CreateContextObserver (line 8) | [System.Diagnostics.Conditional("false")]
method FindContextObserver (line 17) | public static ContextObserverBehaviour FindContextObserver(this IConte...
FILE: src/Entitas.Unity/DebugSystems/AvgResetInterval.cs
type AvgResetInterval (line 3) | public enum AvgResetInterval
FILE: src/Entitas.Unity/DebugSystems/DebugSystems.cs
class DebugSystems (line 8) | public class DebugSystems : Systems
method DebugSystems (line 45) | public DebugSystems(string name)
method DebugSystems (line 50) | protected DebugSystems(bool noInit) { }
method Initialize (line 52) | protected void Initialize(string name)
method Add (line 61) | public override Systems Add(ISystem system)
method ResetDurations (line 87) | public void ResetDurations()
method Initialize (line 97) | public override void Initialize()
method Execute (line 113) | public override void Execute()
method Cleanup (line 119) | public override void Cleanup()
method StepExecute (line 125) | public void StepExecute()
method StepCleanup (line 149) | public void StepCleanup()
method TearDown (line 170) | public override void TearDown()
FILE: src/Entitas.Unity/DebugSystems/DebugSystemsBehaviour.cs
class DebugSystemsBehaviour (line 5) | public class DebugSystemsBehaviour : MonoBehaviour
method Initialize (line 11) | public void Initialize(DebugSystems systems)
FILE: src/Entitas.Unity/DebugSystems/Feature.cs
class Feature (line 4) | public class Feature : DebugSystems
method Feature (line 6) | public Feature(string name) : base(name) { }
method Feature (line 8) | public Feature() : base(true) => Initialize(GetType().FullName);
method Feature (line 13) | public Feature(string name) : this() { }
method Feature (line 15) | public Feature() { }
method Initialize (line 17) | public override void Initialize()
method Execute (line 28) | public override void Execute()
method Cleanup (line 39) | public override void Cleanup()
method TearDown (line 50) | public override void TearDown()
method Feature (line 64) | public Feature(string name) { }
method Feature (line 66) | public Feature() { }
class Feature (line 11) | public class Feature : Systems
method Feature (line 6) | public Feature(string name) : base(name) { }
method Feature (line 8) | public Feature() : base(true) => Initialize(GetType().FullName);
method Feature (line 13) | public Feature(string name) : this() { }
method Feature (line 15) | public Feature() { }
method Initialize (line 17) | public override void Initialize()
method Execute (line 28) | public override void Execute()
method Cleanup (line 39) | public override void Cleanup()
method TearDown (line 50) | public override void TearDown()
method Feature (line 64) | public Feature(string name) { }
method Feature (line 66) | public Feature() { }
class Feature (line 62) | public class Feature : Systems
method Feature (line 6) | public Feature(string name) : base(name) { }
method Feature (line 8) | public Feature() : base(true) => Initialize(GetType().FullName);
method Feature (line 13) | public Feature(string name) : this() { }
method Feature (line 15) | public Feature() { }
method Initialize (line 17) | public override void Initialize()
method Execute (line 28) | public override void Execute()
method Cleanup (line 39) | public override void Cleanup()
method TearDown (line 50) | public override void TearDown()
method Feature (line 64) | public Feature(string name) { }
method Feature (line 66) | public Feature() { }
FILE: src/Entitas.Unity/DebugSystems/SystemInfo.cs
class SystemInfo (line 3) | public class SystemInfo
method SystemInfo (line 43) | public SystemInfo(ISystem system)
method AddExecutionDuration (line 55) | public void AddExecutionDuration(double executionDuration)
method AddCleanupDuration (line 67) | public void AddCleanupDuration(double cleanupDuration)
method ResetDurations (line 79) | public void ResetDurations()
method GetInterfaceFlags (line 88) | static SystemInterfaceFlags GetInterfaceFlags(ISystem system)
FILE: src/Entitas.Unity/DebugSystems/SystemInterfaceFlags.cs
type SystemInterfaceFlags (line 5) | [Flags]
FILE: src/Entitas.Unity/Entity/DontDrawComponentAttribute.cs
class DontDrawComponentAttribute (line 5) | [AttributeUsage(AttributeTargets.Class)]
FILE: src/Entitas.Unity/Entity/EntityBehaviour.cs
class EntityBehaviour (line 6) | public class EntityBehaviour : MonoBehaviour
method Initialize (line 16) | public void Initialize(IContext context, Entity entity, Stack<EntityBe...
method OnEntityReleased (line 28) | void OnEntityReleased(Entity e)
method Update (line 38) | void Update()
method OnDestroy (line 44) | void OnDestroy()
FILE: src/Entitas.Unity/Entity/EntityLink.cs
class EntityLink (line 6) | public class EntityLink : MonoBehaviour
method Link (line 13) | public void Link(Entity entity)
method Unlink (line 22) | public void Unlink()
method OnDestroy (line 31) | void OnDestroy()
method OnApplicationQuit (line 37) | void OnApplicationQuit() => _applicationIsQuitting = true;
method ToString (line 39) | public override string ToString() => $"EntityLink({gameObject.name})";
class EntityLinkExtension (line 42) | public static class EntityLinkExtension
method GetEntityLink (line 44) | public static EntityLink GetEntityLink(this GameObject gameObject) => ...
method Link (line 46) | public static EntityLink Link(this GameObject gameObject, Entity entity)
method Unlink (line 61) | public static void Unlink(this GameObject gameObject)
FILE: src/Entitas/Collector/Collector.cs
class Collector (line 8) | public class Collector<TEntity> : ICollector<TEntity> where TEntity : En...
method Collector (line 29) | public Collector(IGroup<TEntity> group, GroupEvent groupEvent) : this(...
method Collector (line 33) | public Collector(IGroup<TEntity>[] groups, GroupEvent[] groupEvents)
method Activate (line 58) | public void Activate()
method Deactivate (line 87) | public void Deactivate()
method ClearCollectedEntities (line 100) | public void ClearCollectedEntities()
method ToString (line 108) | public override string ToString()
FILE: src/Entitas/Collector/CollectorContextExtension.cs
class CollectorContextExtension (line 3) | public static class CollectorContextExtension
method CreateCollector (line 6) | public static ICollector<TEntity> CreateCollector<TEntity>(
method CreateCollector (line 13) | public static ICollector<TEntity> CreateCollector<TEntity>(
FILE: src/Entitas/Collector/CollectorException.cs
class CollectorException (line 3) | public class CollectorException : EntitasException
method CollectorException (line 5) | public CollectorException(string message, string hint) : base(message,...
FILE: src/Entitas/Collector/ICollector.cs
type ICollector (line 5) | public interface ICollector
method Activate (line 9) | void Activate();
method Deactivate (line 10) | void Deactivate();
method ClearCollectedEntities (line 11) | void ClearCollectedEntities();
type ICollector (line 14) | public interface ICollector<TEntity> : ICollector where TEntity : Entity
method Activate (line 9) | void Activate();
method Deactivate (line 10) | void Deactivate();
method ClearCollectedEntities (line 11) | void ClearCollectedEntities();
FILE: src/Entitas/Collector/TriggerOnEvent.cs
type TriggerOnEvent (line 3) | public struct TriggerOnEvent<TEntity> where TEntity : Entity
method TriggerOnEvent (line 8) | public TriggerOnEvent(IMatcher<TEntity> matcher, GroupEvent groupEvent)
FILE: src/Entitas/Collector/TriggerOnEventMatcherExtension.cs
class TriggerOnEventMatcherExtension (line 3) | public static class TriggerOnEventMatcherExtension
method Added (line 5) | public static TriggerOnEvent<TEntity> Added<TEntity>(this IMatcher<TEn...
method Removed (line 8) | public static TriggerOnEvent<TEntity> Removed<TEntity>(this IMatcher<T...
method AddedOrRemoved (line 11) | public static TriggerOnEvent<TEntity> AddedOrRemoved<TEntity>(this IMa...
FILE: src/Entitas/Context/Context.cs
class Context (line 11) | public class Context<TEntity> : IContext<TEntity> where TEntity : Entity
method Context (line 79) | public Context(int totalComponents, Func<TEntity> entityFactory) : thi...
method Context (line 83) | public Context(int totalComponents, int startCreationIndex, ContextInf...
method CreateEntity (line 187) | public TEntity CreateEntity()
method DestroyAllEntities (line 219) | public void DestroyAllEntities()
method HasEntity (line 232) | public bool HasEntity(TEntity entity) => _entities.Contains(entity);
method GetEntities (line 235) | public TEntity[] GetEntities()
method GetEntities (line 241) | public TEntity[] GetEntities(IMatcher<TEntity> matcher)
method GetGroup (line 249) | public IGroup<TEntity> GetGroup(IMatcher<TEntity> matcher)
method AddEntityIndex (line 275) | public void AddEntityIndex(IEntityIndex entityIndex)
method GetEntityIndex (line 284) | public IEntityIndex GetEntityIndex(string name)
method ResetCreationIndex (line 293) | public void ResetCreationIndex() => _creationIndex = 0;
method ClearComponentPool (line 296) | public void ClearComponentPool(int index) => _componentPools[index]?.C...
method ClearComponentPools (line 299) | public void ClearComponentPools()
method Reset (line 307) | public void Reset()
method RemoveAllEventHandlers (line 316) | public void RemoveAllEventHandlers()
method ToString (line 324) | public override string ToString() => _contextInfo.Name;
FILE: src/Entitas/Context/ContextInfo.cs
class ContextInfo (line 5) | public class ContextInfo
method ContextInfo (line 11) | public ContextInfo(string name, string[] componentNames, Type[] compon...
FILE: src/Entitas/Context/Exceptions/ContextDoesNotContainEntityException.cs
class ContextDoesNotContainEntityException (line 3) | public class ContextDoesNotContainEntityException : EntitasException
method ContextDoesNotContainEntityException (line 5) | public ContextDoesNotContainEntityException(string message, string hin...
FILE: src/Entitas/Context/Exceptions/ContextEntityIndexDoesAlreadyExistException.cs
class ContextEntityIndexDoesAlreadyExistException (line 3) | public class ContextEntityIndexDoesAlreadyExistException : EntitasException
method ContextEntityIndexDoesAlreadyExistException (line 5) | public ContextEntityIndexDoesAlreadyExistException(IContext context, s...
FILE: src/Entitas/Context/Exceptions/ContextEntityIndexDoesNotExistException.cs
class ContextEntityIndexDoesNotExistException (line 3) | public class ContextEntityIndexDoesNotExistException : EntitasException
method ContextEntityIndexDoesNotExistException (line 5) | public ContextEntityIndexDoesNotExistException(IContext context, strin...
FILE: src/Entitas/Context/Exceptions/ContextInfoException.cs
class ContextInfoException (line 3) | public class ContextInfoException : EntitasException
method ContextInfoException (line 5) | public ContextInfoException(IContext context, ContextInfo contextInfo) :
FILE: src/Entitas/Context/Exceptions/ContextStillHasRetainedEntitiesException.cs
class ContextStillHasRetainedEntitiesException (line 6) | public class ContextStillHasRetainedEntitiesException : EntitasException
method ContextStillHasRetainedEntitiesException (line 8) | public ContextStillHasRetainedEntitiesException(IContext context, IEnu...
method EntitiesToString (line 12) | static string EntitiesToString(IEnumerable<Entity> entities) =>
FILE: src/Entitas/Context/Exceptions/EntityIsNotDestroyedException.cs
class EntityIsNotDestroyedException (line 3) | public class EntityIsNotDestroyedException : EntitasException
method EntityIsNotDestroyedException (line 5) | public EntityIsNotDestroyedException(string message) :
FILE: src/Entitas/Context/IContext.cs
type IContext (line 9) | public interface IContext
method DestroyAllEntities (line 26) | void DestroyAllEntities();
method AddEntityIndex (line 28) | void AddEntityIndex(IEntityIndex entityIndex);
method GetEntityIndex (line 29) | IEntityIndex GetEntityIndex(string name);
method ResetCreationIndex (line 31) | void ResetCreationIndex();
method ClearComponentPool (line 32) | void ClearComponentPool(int index);
method ClearComponentPools (line 33) | void ClearComponentPools();
method RemoveAllEventHandlers (line 34) | void RemoveAllEventHandlers();
method Reset (line 35) | void Reset();
method CreateEntity (line 40) | TEntity CreateEntity();
method HasEntity (line 42) | bool HasEntity(TEntity entity);
method GetEntities (line 43) | TEntity[] GetEntities();
method GetEntities (line 44) | TEntity[] GetEntities(IMatcher<TEntity> matcher);
method GetGroup (line 45) | IGroup<TEntity> GetGroup(IMatcher<TEntity> matcher);
type IContext (line 38) | public interface IContext<TEntity> : IContext where TEntity : Entity
method DestroyAllEntities (line 26) | void DestroyAllEntities();
method AddEntityIndex (line 28) | void AddEntityIndex(IEntityIndex entityIndex);
method GetEntityIndex (line 29) | IEntityIndex GetEntityIndex(string name);
method ResetCreationIndex (line 31) | void ResetCreationIndex();
method ClearComponentPool (line 32) | void ClearComponentPool(int index);
method ClearComponentPools (line 33) | void ClearComponentPools();
method RemoveAllEventHandlers (line 34) | void RemoveAllEventHandlers();
method Reset (line 35) | void Reset();
method CreateEntity (line 40) | TEntity CreateEntity();
method HasEntity (line 42) | bool HasEntity(TEntity entity);
method GetEntities (line 43) | TEntity[] GetEntities();
method GetEntities (line 44) | TEntity[] GetEntities(IMatcher<TEntity> matcher);
method GetGroup (line 45) | IGroup<TEntity> GetGroup(IMatcher<TEntity> matcher);
FILE: src/Entitas/EntitasException.cs
class EntitasException (line 6) | public class EntitasException : Exception
method EntitasException (line 8) | public EntitasException(string message, string hint) :
FILE: src/Entitas/Entity/Entity.cs
class Entity (line 20) | public class Entity
method Entity (line 94) | public Entity()
method Initialize (line 100) | public void Initialize(int creationIndex, int totalComponents, Stack<I...
method CreateDefaultContextInfo (line 112) | ContextInfo CreateDefaultContextInfo()
method Reuse (line 121) | public void Reuse(int id)
method AddComponent (line 132) | public void AddComponent(int index, IComponent component)
method RemoveComponent (line 154) | public void RemoveComponent(int index)
method ReplaceComponent (line 171) | public void ReplaceComponent(int index, IComponent component)
method HandleComponent (line 182) | void HandleComponent(int index, IComponent newComponent)
method GetComponent (line 212) | public IComponent GetComponent(int index)
method GetComponents (line 223) | public IComponent[] GetComponents()
method GetComponentIndexes (line 242) | public int[] GetComponentIndexes()
method HasComponent (line 259) | public bool HasComponent(int index) => _components[index] != null;
method HasComponents (line 263) | public bool HasComponents(int[] indexes)
method HasAnyComponent (line 274) | public bool HasAnyComponent(int[] indexes)
method IsEmpty (line 284) | public bool IsEmpty()
method RemoveAllComponents (line 294) | public void RemoveAllComponents()
method GetComponentPool (line 308) | public Stack<IComponent> GetComponentPool(int index)
method CreateComponent (line 322) | public IComponent CreateComponent(int index, Type type)
method CreateComponent (line 332) | public T CreateComponent<T>(int index) where T : new()
method Retain (line 348) | public void Retain(object owner) => _aerc.Retain(owner);
method Release (line 356) | public void Release(object owner)
method Destroy (line 364) | public void Destroy()
method InternalDestroy (line 374) | public void InternalDestroy()
method RemoveAllOnEntityReleasedHandlers (line 385) | public void RemoveAllOnEntityReleasedHandlers() => OnEntityReleased = ...
method ToString (line 390) | public override string ToString()
FILE: src/Entitas/Entity/EntityEqualityComparer.cs
class EntityEqualityComparer (line 5) | public class EntityEqualityComparer<TEntity> : IEqualityComparer<TEntity...
method Equals (line 9) | public bool Equals(TEntity x, TEntity y) => x == y;
method GetHashCode (line 11) | public int GetHashCode(TEntity obj) => obj.Id;
FILE: src/Entitas/Entity/Exceptions/EntityAlreadyHasComponentException.cs
class EntityAlreadyHasComponentException (line 3) | public class EntityAlreadyHasComponentException : EntitasException
method EntityAlreadyHasComponentException (line 5) | public EntityAlreadyHasComponentException(int index, string message, s...
FILE: src/Entitas/Entity/Exceptions/EntityDoesNotHaveComponentException.cs
class EntityDoesNotHaveComponentException (line 3) | public class EntityDoesNotHaveComponentException : EntitasException
method EntityDoesNotHaveComponentException (line 5) | public EntityDoesNotHaveComponentException(int index, string message, ...
FILE: src/Entitas/Entity/Exceptions/EntityIsAlreadyRetainedByOwnerException.cs
class EntityIsAlreadyRetainedByOwnerException (line 3) | public class EntityIsAlreadyRetainedByOwnerException : EntitasException
method EntityIsAlreadyRetainedByOwnerException (line 5) | public EntityIsAlreadyRetainedByOwnerException(Entity entity, object o...
FILE: src/Entitas/Entity/Exceptions/EntityIsNotEnabledException.cs
class EntityIsNotEnabledException (line 3) | public class EntityIsNotEnabledException : EntitasException
method EntityIsNotEnabledException (line 5) | public EntityIsNotEnabledException(string message) :
FILE: src/Entitas/Entity/Exceptions/EntityIsNotRetainedByOwnerException.cs
class EntityIsNotRetainedByOwnerException (line 3) | public class EntityIsNotRetainedByOwnerException : EntitasException
method EntityIsNotRetainedByOwnerException (line 5) | public EntityIsNotRetainedByOwnerException(Entity entity, object owner) :
FILE: src/Entitas/Entity/IAERC.cs
type IAERC (line 3) | public interface IAERC
method Retain (line 6) | void Retain(object owner);
method Release (line 7) | void Release(object owner);
FILE: src/Entitas/Entity/SafeAERC.cs
class SafeAERC (line 13) | public sealed class SafeAERC : IAERC
method SafeAERC (line 23) | public SafeAERC(Entity entity)
method Retain (line 28) | public void Retain(object owner)
method Release (line 34) | public void Release(object owner)
FILE: src/Entitas/Entity/UnsafeAERC.cs
class UnsafeAERC (line 12) | public sealed class UnsafeAERC : IAERC
method Retain (line 20) | public void Retain(object owner) => _retainCount += 1;
method Release (line 22) | public void Release(object owner) => _retainCount -= 1;
FILE: src/Entitas/EntityIndex/AbstractEntityIndex.cs
class AbstractEntityIndex (line 5) | public abstract class AbstractEntityIndex<TEntity, TKey> : IEntityIndex ...
method AbstractEntityIndex (line 15) | protected AbstractEntityIndex(string name, IGroup<TEntity> group, Func...
method AbstractEntityIndex (line 23) | protected AbstractEntityIndex(string name, IGroup<TEntity> group, Func...
method Activate (line 31) | public virtual void Activate()
method Deactivate (line 37) | public virtual void Deactivate()
method ToString (line 44) | public override string ToString() => Name;
method IndexEntities (line 46) | protected void IndexEntities(IGroup<TEntity> group)
method OnEntityAdded (line 63) | protected void OnEntityAdded(IGroup<TEntity> group, TEntity entity, in...
method OnEntityRemoved (line 77) | protected void OnEntityRemoved(IGroup<TEntity> group, TEntity entity, ...
method AddEntity (line 91) | protected abstract void AddEntity(TKey key, TEntity entity);
method RemoveEntity (line 93) | protected abstract void RemoveEntity(TKey key, TEntity entity);
method Clear (line 95) | protected abstract void Clear();
FILE: src/Entitas/EntityIndex/EntityIndex.cs
class EntityIndex (line 6) | public class EntityIndex<TEntity, TKey> : AbstractEntityIndex<TEntity, T...
method EntityIndex (line 10) | public EntityIndex(string name, IGroup<TEntity> group, Func<TEntity, I...
method EntityIndex (line 16) | public EntityIndex(string name, IGroup<TEntity> group, Func<TEntity, I...
method EntityIndex (line 22) | public EntityIndex(string name, IGroup<TEntity> group, Func<TEntity, I...
method EntityIndex (line 28) | public EntityIndex(string name, IGroup<TEntity> group, Func<TEntity, I...
method Activate (line 34) | public override void Activate()
method GetEntities (line 40) | public HashSet<TEntity> GetEntities(TKey key)
method ToString (line 51) | public override string ToString() => $"EntityIndex({Name})";
method Clear (line 53) | protected override void Clear()
method AddEntity (line 74) | protected override void AddEntity(TKey key, TEntity entity)
method RemoveEntity (line 89) | protected override void RemoveEntity(TKey key, TEntity entity)
FILE: src/Entitas/EntityIndex/EntityIndexException.cs
class EntityIndexException (line 3) | public class EntityIndexException : EntitasException
method EntityIndexException (line 5) | public EntityIndexException(string message, string hint) : base(messag...
FILE: src/Entitas/EntityIndex/IEntityIndex.cs
type IEntityIndex (line 3) | public interface IEntityIndex
method Activate (line 7) | void Activate();
method Deactivate (line 8) | void Deactivate();
FILE: src/Entitas/EntityIndex/PrimaryEntityIndex.cs
class PrimaryEntityIndex (line 6) | public class PrimaryEntityIndex<TEntity, TKey> : AbstractEntityIndex<TEn...
method PrimaryEntityIndex (line 10) | public PrimaryEntityIndex(string name, IGroup<TEntity> group, Func<TEn...
method PrimaryEntityIndex (line 16) | public PrimaryEntityIndex(string name, IGroup<TEntity> group, Func<TEn...
method PrimaryEntityIndex (line 22) | public PrimaryEntityIndex(string name, IGroup<TEntity> group, Func<TEn...
method PrimaryEntityIndex (line 28) | public PrimaryEntityIndex(string name, IGroup<TEntity> group, Func<TEn...
method Activate (line 34) | public override void Activate()
method GetEntity (line 40) | public TEntity GetEntity(TKey key)
method ToString (line 46) | public override string ToString() => $"PrimaryEntityIndex({Name})";
method Clear (line 48) | protected override void Clear()
method AddEntity (line 66) | protected override void AddEntity(TKey key, TEntity entity)
method RemoveEntity (line 86) | protected override void RemoveEntity(TKey key, TEntity entity)
FILE: src/Entitas/Extensions/CollectionExtension.cs
class CollectionExtension (line 6) | public static class CollectionExtension
method SingleEntity (line 11) | public static Entity SingleEntity(this ICollection<Entity> collection)
method SingleEntity (line 22) | public static TEntity SingleEntity<TEntity>(this ICollection<TEntity> ...
class SingleEntityException (line 31) | public class SingleEntityException : EntitasException
method SingleEntityException (line 33) | public SingleEntityException(int count) :
FILE: src/Entitas/Extensions/EntitasStringExtension.cs
class EntitasStringExtension (line 3) | public static class EntitasStringExtension
method RemoveSuffix (line 5) | public static string RemoveSuffix(this string str, string suffix)
FILE: src/Entitas/Group/Group.cs
class Group (line 12) | public class Group<TEntity> : IGroup<TEntity> where TEntity : Entity
method Group (line 38) | public Group(IMatcher<TEntity> matcher)
method HandleEntitySilently (line 44) | public void HandleEntitySilently(TEntity entity)
method HandleEntity (line 53) | public void HandleEntity(TEntity entity, int index, IComponent component)
method UpdateEntity (line 62) | public void UpdateEntity(TEntity entity, int index, IComponent previou...
method RemoveAllEventHandlers (line 75) | public void RemoveAllEventHandlers()
method HandleEntity (line 82) | public GroupChanged<TEntity> HandleEntity(TEntity entity) =>
method AddEntitySilently (line 89) | bool AddEntitySilently(TEntity entity)
method AddEntity (line 107) | void AddEntity(TEntity entity, int index, IComponent component)
method RemoveEntitySilently (line 113) | bool RemoveEntitySilently(TEntity entity)
method RemoveEntity (line 126) | void RemoveEntity(TEntity entity, int index, IComponent component)
method ContainsEntity (line 139) | public bool ContainsEntity(TEntity entity) => _entities.Contains(entity);
method GetEntities (line 142) | public TEntity[] GetEntities()
method GetEntities (line 148) | public List<TEntity> GetEntities(List<TEntity> buffer)
method AsEnumerable (line 155) | public IEnumerable<TEntity> AsEnumerable() => _entities;
method GetEnumerator (line 157) | public HashSet<TEntity>.Enumerator GetEnumerator() => _entities.GetEnu...
method GetSingleEntity (line 162) | public TEntity GetSingleEntity()
method ToString (line 188) | public override string ToString() => _toStringCache ??= $"Group({_matc...
FILE: src/Entitas/Group/GroupEvent.cs
type GroupEvent (line 3) | public enum GroupEvent : byte
FILE: src/Entitas/Group/GroupExtension.cs
class GroupExtension (line 3) | public static class GroupExtension
method CreateCollector (line 6) | public static ICollector<TEntity> CreateCollector<TEntity>(this IGroup...
FILE: src/Entitas/Group/GroupSingleEntityException.cs
class GroupSingleEntityException (line 5) | public class GroupSingleEntityException<TEntity> : EntitasException wher...
method GroupSingleEntityException (line 7) | public GroupSingleEntityException(IGroup<TEntity> group) :
FILE: src/Entitas/Group/IGroup.cs
type IGroup (line 14) | public interface IGroup
method RemoveAllEventHandlers (line 18) | void RemoveAllEventHandlers();
method HandleEntitySilently (line 29) | void HandleEntitySilently(TEntity entity);
method HandleEntity (line 30) | void HandleEntity(TEntity entity, int index, IComponent component);
method HandleEntity (line 31) | GroupChanged<TEntity> HandleEntity(TEntity entity);
method UpdateEntity (line 33) | void UpdateEntity(TEntity entity, int index, IComponent previousCompon...
method ContainsEntity (line 35) | bool ContainsEntity(TEntity entity);
method GetEntities (line 37) | TEntity[] GetEntities();
method GetEntities (line 38) | List<TEntity> GetEntities(List<TEntity> buffer);
method GetSingleEntity (line 39) | TEntity GetSingleEntity();
method AsEnumerable (line 41) | IEnumerable<TEntity> AsEnumerable();
method GetEnumerator (line 42) | HashSet<TEntity>.Enumerator GetEnumerator();
type IGroup (line 21) | public interface IGroup<TEntity> : IGroup where TEntity : Entity
method RemoveAllEventHandlers (line 18) | void RemoveAllEventHandlers();
method HandleEntitySilently (line 29) | void HandleEntitySilently(TEntity entity);
method HandleEntity (line 30) | void HandleEntity(TEntity entity, int index, IComponent component);
method HandleEntity (line 31) | GroupChanged<TEntity> HandleEntity(TEntity entity);
method UpdateEntity (line 33) | void UpdateEntity(TEntity entity, int index, IComponent previousCompon...
method ContainsEntity (line 35) | bool ContainsEntity(TEntity entity);
method GetEntities (line 37) | TEntity[] GetEntities();
method GetEntities (line 38) | List<TEntity> GetEntities(List<TEntity> buffer);
method GetSingleEntity (line 39) | TEntity GetSingleEntity();
method AsEnumerable (line 41) | IEnumerable<TEntity> AsEnumerable();
method GetEnumerator (line 42) | HashSet<TEntity>.Enumerator GetEnumerator();
FILE: src/Entitas/IComponent.cs
type IComponent (line 13) | public interface IComponent { }
FILE: src/Entitas/Matcher/Interfaces/IAllOfMatcher.cs
type IAllOfMatcher (line 3) | public interface IAllOfMatcher<TEntity> : IAnyOfMatcher<TEntity> where T...
method AnyOf (line 5) | IAnyOfMatcher<TEntity> AnyOf(params int[] indexes);
method AnyOf (line 6) | IAnyOfMatcher<TEntity> AnyOf(params IMatcher<TEntity>[] matchers);
FILE: src/Entitas/Matcher/Interfaces/IAnyOfMatcher.cs
type IAnyOfMatcher (line 3) | public interface IAnyOfMatcher<TEntity> : INoneOfMatcher<TEntity> where ...
method NoneOf (line 5) | INoneOfMatcher<TEntity> NoneOf(params int[] indexes);
method NoneOf (line 6) | INoneOfMatcher<TEntity> NoneOf(params IMatcher<TEntity>[] matchers);
FILE: src/Entitas/Matcher/Interfaces/ICompoundMatcher.cs
type ICompoundMatcher (line 3) | public interface ICompoundMatcher<TEntity> : IMatcher<TEntity> where TEn...
FILE: src/Entitas/Matcher/Interfaces/IMatcher.cs
type IMatcher (line 3) | public interface IMatcher<TEntity> where TEntity : Entity
method Matches (line 6) | bool Matches(TEntity entity);
FILE: src/Entitas/Matcher/Interfaces/INoneOfMatcher.cs
type INoneOfMatcher (line 3) | public interface INoneOfMatcher<TEntity> : ICompoundMatcher<TEntity> whe...
FILE: src/Entitas/Matcher/Matcher.cs
class Matcher (line 3) | public partial class Matcher<TEntity> : IAllOfMatcher<TEntity> where TEn...
method Matcher (line 17) | Matcher() { }
method AnyOf (line 19) | IAnyOfMatcher<TEntity> IAllOfMatcher<TEntity>.AnyOf(params int[] indexes)
method AnyOf (line 27) | IAnyOfMatcher<TEntity> IAllOfMatcher<TEntity>.AnyOf(params IMatcher<TE...
method NoneOf (line 30) | public INoneOfMatcher<TEntity> NoneOf(params int[] indexes)
method NoneOf (line 38) | public INoneOfMatcher<TEntity> NoneOf(params IMatcher<TEntity>[] match...
method Matches (line 41) | public bool Matches(TEntity entity) =>
FILE: src/Entitas/Matcher/MatcherEquals.cs
class Matcher (line 3) | public partial class Matcher<TEntity>
method Equals (line 5) | public override bool Equals(object obj)
method EqualIndexes (line 23) | static bool EqualIndexes(int[] i1, int[] i2)
method GetHashCode (line 44) | public override int GetHashCode()
method ApplyHash (line 59) | static int ApplyHash(int hash, int[] indexes, int i1, int i2)
FILE: src/Entitas/Matcher/MatcherException.cs
class MatcherException (line 5) | public class MatcherException : Exception
method MatcherException (line 7) | public MatcherException(int indexes) : base($"Matcher.Indexes.Length m...
FILE: src/Entitas/Matcher/MatcherStatic.cs
class Matcher (line 6) | public partial class Matcher<TEntity>
method AllOf (line 14) | public static IAllOfMatcher<TEntity> AllOf(params int[] indexes)
method AllOf (line 21) | public static IAllOfMatcher<TEntity> AllOf(params IMatcher<TEntity>[] ...
method AnyOf (line 28) | public static IAnyOfMatcher<TEntity> AnyOf(params int[] indexes)
method AnyOf (line 35) | public static IAnyOfMatcher<TEntity> AnyOf(params IMatcher<TEntity>[] ...
method MergeIndexes (line 42) | static int[] MergeIndexes(int[] allOfIndexes, int[] anyOfIndexes, int[...
method MergeIndexes (line 53) | static int[] MergeIndexes(IMatcher<TEntity>[] matchers)
method GetComponentNames (line 68) | static string[] GetComponentNames(IMatcher<TEntity>[] matchers)
method SetComponentNames (line 79) | static void SetComponentNames(Matcher<TEntity> matcher, IMatcher<TEnti...
method DistinctIndexes (line 86) | static int[] DistinctIndexes(IList<int> indexes)
FILE: src/Entitas/Matcher/MatcherToString.cs
class Matcher (line 6) | public partial class Matcher<TEntity>
method ToString (line 10) | public override string ToString()
method GetComponentNames (line 39) | static string GetComponentNames(string prefix, int[] indexArray, strin...
FILE: src/Entitas/Systems/Interfaces/ICleanupSystem.cs
type ICleanupSystem (line 5) | public interface ICleanupSystem : ISystem
method Cleanup (line 7) | void Cleanup();
FILE: src/Entitas/Systems/Interfaces/IExecuteSystem.cs
type IExecuteSystem (line 5) | public interface IExecuteSystem : ISystem
method Execute (line 7) | void Execute();
FILE: src/Entitas/Systems/Interfaces/IInitializeSystem.cs
type IInitializeSystem (line 5) | public interface IInitializeSystem : ISystem
method Initialize (line 7) | void Initialize();
FILE: src/Entitas/Systems/Interfaces/IReactiveSystem.cs
type IReactiveSystem (line 3) | public interface IReactiveSystem : IExecuteSystem
method Activate (line 5) | void Activate();
method Deactivate (line 6) | void Deactivate();
method Clear (line 7) | void Clear();
FILE: src/Entitas/Systems/Interfaces/ISystem.cs
type ISystem (line 7) | public interface ISystem { }
FILE: src/Entitas/Systems/Interfaces/ITearDownSystem.cs
type ITearDownSystem (line 5) | public interface ITearDownSystem : ISystem
method TearDown (line 7) | void TearDown();
FILE: src/Entitas/Systems/ParallelSystem.cs
class ParallelSystem (line 9) | public abstract class ParallelSystem<TEntity> : IExecuteSystem where TEn...
method ParallelSystem (line 13) | protected ParallelSystem(IGroup<TEntity> group)
method Execute (line 18) | public virtual void Execute()
method Execute (line 26) | protected abstract void Execute(TEntity entity);
FILE: src/Entitas/Systems/ReactiveSystem.cs
class ReactiveSystem (line 10) | public abstract class ReactiveSystem<TEntity> : IReactiveSystem where TE...
method ReactiveSystem (line 17) | protected ReactiveSystem(IContext<TEntity> context)
method ReactiveSystem (line 22) | protected ReactiveSystem(ICollector<TEntity> collector)
method GetTrigger (line 28) | protected abstract ICollector<TEntity> GetTrigger(IContext<TEntity> co...
method Filter (line 31) | protected abstract bool Filter(TEntity entity);
method Execute (line 33) | protected abstract void Execute(List<TEntity> entities);
method Activate (line 38) | public void Activate() => _collector.Activate();
method Deactivate (line 44) | public void Deactivate() => _collector.Deactivate();
method Clear (line 47) | public void Clear() => _collector.ClearCollectedEntities();
method Execute (line 51) | public void Execute()
method ToString (line 83) | public override string ToString() => _toStringCache ??= $"ReactiveSyst...
FILE: src/Entitas/Systems/Systems.cs
class Systems (line 10) | public class Systems : IInitializeSystem, IExecuteSystem, ICleanupSystem...
method Add (line 18) | public virtual Systems Add(ISystem system)
method Remove (line 28) | public void Remove(ISystem system)
method Initialize (line 38) | public virtual void Initialize()
method Execute (line 46) | public virtual void Execute()
method Cleanup (line 54) | public virtual void Cleanup()
method TearDown (line 62) | public virtual void TearDown()
method ActivateReactiveSystems (line 69) | public void ActivateReactiveSystems()
method DeactivateReactiveSystems (line 86) | public void DeactivateReactiveSystems()
method ClearReactiveSystems (line 100) | public void ClearReactiveSystems()
FILE: tests/Entitas.Generators.IntegrationTests/AnyFlagComponentAddedTests.cs
class AnyFlagComponentAddedTests (line 8) | public class AnyFlagComponentAddedTests
method AnyFlagComponentAddedTests (line 14) | public AnyFlagComponentAddedTests()
method IsNullWhenNothingChanged (line 22) | [Fact]
method PassesEntityWhenAdded (line 29) | [Fact]
method SkipsWhenTriggeringComponentHasBeenRemoved (line 37) | [Fact]
method CanUnsubscribeInCallback (line 49) | [Fact]
method CanDestroyListenerEntityInCallback (line 58) | [Fact]
class AnyLoadingAddedListener (line 74) | public class AnyLoadingAddedListener : IMyAppMainAnyLoadingAddedListener
method AnyLoadingAddedListener (line 78) | public AnyLoadingAddedListener(MainContext context)
method OnAnyLoadingAdded (line 87) | public void OnAnyLoadingAdded(MyApp.Main.Entity entity)
FILE: tests/Entitas.Generators.IntegrationTests/AnyFlagComponentRemovedTests.cs
class AnyFlagComponentRemovedTests (line 8) | public class AnyFlagComponentRemovedTests
method AnyFlagComponentRemovedTests (line 14) | public AnyFlagComponentRemovedTests()
method IsNullWhenNothingChanged (line 22) | [Fact]
method PassesEntityWhenRemoved (line 30) | [Fact]
method SkipsWhenTriggeringComponentHasBeenAdded (line 42) | [Fact]
method CanUnsubscribeInCallback (line 55) | [Fact]
method CanDestroyListenerEntityInCallback (line 68) | [Fact]
class AnyLoadingRemovedListener (line 89) | public class AnyLoadingRemovedListener : IMyAppMainAnyLoadingRemovedList...
method AnyLoadingRemovedListener (line 93) | public AnyLoadingRemovedListener(MainContext context)
method OnAnyLoadingRemoved (line 102) | public void OnAnyLoadingRemoved(MyApp.Main.Entity entity)
FILE: tests/Entitas.Generators.IntegrationTests/CleanupSystemTests.cs
class CleanupSystemTests (line 8) | public class CleanupSystemTests
method CleanupSystemTests (line 12) | public CleanupSystemTests()
method RemovesComponent (line 18) | [Fact]
method DestroysEntity (line 28) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/CleanupSystemsTests.cs
class CleanupSystemsTests (line 7) | public class CleanupSystemsTests
method GeneratesCleanupSystems (line 9) | [Fact]
method GeneratesEmptyCleanupSystems (line 16) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/ComponentIndexTests.cs
class ComponentIndexTests (line 6) | public class ComponentIndexTests
method GeneratesComponentIndex (line 8) | [Fact]
method EqualsComponentIndexWithSameIndex (line 14) | [Fact]
method DoesNotEqualComponentIndexWithDifferentIndex (line 20) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/ContextExtensionTests.cs
class ContextExtensionTests (line 9) | public class ContextExtensionTests
method ContextExtensionTests (line 13) | public ContextExtensionTests()
method DoesNotHaveFlagComponent (line 23) | [Fact]
method SetsFlagComponent (line 29) | [Fact]
method HasFlagComponent (line 38) | [Fact]
method CanSetFlagComponentTwice (line 47) | [Fact]
method SetFlagComponentReturnsSameEntity (line 55) | [Fact]
method UnsetsAndDestroysFlagComponent (line 61) | [Fact]
method CanUnsetFlagComponentTwice (line 70) | [Fact]
method GetsFlagComponent (line 79) | [Fact]
method GettingUnsetFlagEntityReturnsNull (line 88) | [Fact]
method DoesNotHaveComponent (line 98) | [Fact]
method SetsComponent (line 104) | [Fact]
method ThrowsWhenSettingComponentTwice (line 115) | [Fact]
method HasComponent (line 123) | [Fact]
method GetsComponent (line 132) | [Fact]
method ThrowsWhenGettingComponentWhenNotSet (line 141) | [Fact]
method ReplacesComponent (line 148) | [Fact]
method ReplaceComponentAddsComponent (line 160) | [Fact]
method RemovesAndDestroysComponent (line 169) | [Fact]
method ThrowsWhenRemovingComponentTwice (line 178) | [Fact]
method GettingUnsetEntityReturnsNull (line 187) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/ContextInitialization.cs
class ContextInitialization (line 5) | public static partial class ContextInitialization
method InitializeMain (line 7) | [ContextInitialization(typeof(MainContext))]
method InitializeEmpty (line 10) | [ContextInitialization(typeof(EmptyContext))]
FILE: tests/Entitas.Generators.IntegrationTests/ContextTests.cs
class ContextTests (line 7) | public class ContextTests
method ContextTests (line 9) | public ContextTests()
method GeneratesContext (line 14) | [Fact]
method CreatesEntity (line 22) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/EntityExtensionTests.cs
class EntityExtensionTests (line 8) | public class EntityExtensionTests
method EntityExtensionTests (line 12) | public EntityExtensionTests()
method DoesNotHaveFlagComponent (line 22) | [Fact]
method AddsFlagComponent (line 28) | [Fact]
method HasFlagComponent (line 38) | [Fact]
method GetsFlagComponent (line 47) | [Fact]
method UsesSingleComponent (line 57) | [Fact]
method ReplacesFlagComponent (line 73) | [Fact]
method RemovesFlagComponent (line 95) | [Fact]
method DoesNotHaveComponent (line 110) | [Fact]
method AddsComponent (line 116) | [Fact]
method HasComponent (line 126) | [Fact]
method GetsComponent (line 135) | [Fact]
method ReplacesComponent (line 147) | [Fact]
method AddComponentUsesComponentPool (line 160) | [Fact]
method ReplaceComponentUsesComponentPool (line 176) | [Fact]
method RemovesComponent (line 192) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/EntityIndexExtensionTests.cs
class EntityIndexExtensionTests (line 9) | public class EntityIndexExtensionTests
method EntityIndexExtensionTests (line 13) | public EntityIndexExtensionTests()
method AddsAllEntityIndexes (line 20) | [Fact]
method GetsEntity (line 27) | [Fact]
method GetsEntities (line 36) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/EntityIndexTests.cs
class EntityIndexTests (line 6) | public class EntityIndexTests
method GeneratesEventSystems (line 8) | [Fact]
method GeneratesEmptyEventSystems (line 15) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/EntityTests.cs
class EntityTests (line 6) | public class EntityTests
method GeneratesEntity (line 8) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/EventSystemsTests.cs
class EventSystemsTests (line 7) | public class EventSystemsTests
method GeneratesEventSystems (line 9) | [Fact]
method GeneratesEmptyEventSystems (line 16) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/FlagComponentAddedTests.cs
class FlagComponentAddedTests (line 8) | public class FlagComponentAddedTests
method FlagComponentAddedTests (line 15) | public FlagComponentAddedTests()
method IsNullWhenNothingChanged (line 24) | [Fact]
method PassesEntityWhenAddedOnSameEntity (line 31) | [Fact]
method DoesNotPassEntityWhenAddedOnDifferentEntity (line 39) | [Fact]
method SkipsWhenTriggeringComponentHasBeenRemoved (line 47) | [Fact]
method CanUnsubscribeInCallback (line 58) | [Fact]
method CanDestroyListenerEntityInCallback (line 67) | [Fact]
class LoadingAddedListener (line 79) | public class LoadingAddedListener : IMyAppMainLoadingAddedListener
method LoadingAddedListener (line 83) | public LoadingAddedListener(MyApp.Main.Entity entity)
method OnLoadingAdded (line 92) | public void OnLoadingAdded(MyApp.Main.Entity entity)
FILE: tests/Entitas.Generators.IntegrationTests/FlagComponentRemovedTests.cs
class FlagComponentRemovedTests (line 8) | public class FlagComponentRemovedTests
method FlagComponentRemovedTests (line 15) | public FlagComponentRemovedTests()
method IsNullWhenNothingChanged (line 24) | [Fact]
method PassesEntityWhenRemovedOnSameEntity (line 32) | [Fact]
method DoesNotPassEntityWhenRemovedOnDifferentEntity (line 44) | [Fact]
method SkipsWhenTriggeringComponentHasBeenAdded (line 55) | [Fact]
method CanUnsubscribeInCallback (line 67) | [Fact]
method CanDestroyListenerEntityInCallback (line 79) | [Fact]
class LoadingRemovedListener (line 94) | public class LoadingRemovedListener : IMyAppMainLoadingRemovedListener
method LoadingRemovedListener (line 98) | public LoadingRemovedListener(MyApp.Main.Entity entity)
method OnLoadingRemoved (line 107) | public void OnLoadingRemoved(MyApp.Main.Entity entity)
FILE: tests/Entitas.Generators.IntegrationTests/ListenerEventEntityExtensionTests.cs
class ListenerEventEntityExtensionTests (line 8) | public class ListenerEventEntityExtensionTests
method ListenerEventEntityExtensionTests (line 13) | public ListenerEventEntityExtensionTests()
method AddsListener (line 20) | [Fact]
method RemovesListener (line 27) | [Fact]
method RemovesListenerWhenEntityIsNotEmpty (line 35) | [Fact]
method DestroysListenerWhenEntityIsEmpty (line 48) | [Fact]
class ListenerEventEntityExtensionListener (line 63) | public class ListenerEventEntityExtensionListener : IMyAppMainAnyLoading...
method ListenerEventEntityExtensionListener (line 65) | public ListenerEventEntityExtensionListener(MainContext context)
method OnAnyLoadingAdded (line 70) | public void OnAnyLoadingAdded(MyApp.Main.Entity entity) { }
FILE: tests/Entitas.Generators.IntegrationTests/MatcherTests.cs
class MatcherTests (line 6) | public class MatcherTests
method GeneratesAllOfMatcher (line 8) | [Fact]
method GeneratesAnyOfMatcher (line 16) | [Fact]
method GeneratesMatcherExtensions (line 24) | [Fact]
FILE: tests/Entitas.Generators.IntegrationTests/fixtures/EmptyContext.cs
class EmptyContext (line 5) | partial class EmptyContext : IContext { }
FILE: tests/Entitas.Generators.IntegrationTests/fixtures/LoadingComponent.cs
class LoadingComponent (line 7) | [Context(typeof(MainContext)), Context(typeof(OtherContext))]
FILE: tests/Entitas.Generators.IntegrationTests/fixtures/MainContext.cs
class MainContext (line 5) | partial class MainContext : IContext { }
FILE: tests/Entitas.Generators.IntegrationTests/fixtures/OtherContext.cs
class OtherContext (line 1) | partial class OtherContext : Entitas.IContext { }
FILE: tests/Entitas.Generators.IntegrationTests/fixtures/UserComponent.cs
class UserComponent (line 9) | [Context(typeof(MainContext)), Context(typeof(OtherContext))]
FILE: tests/Entitas.Generators.Tests.Fixtures.Dependencies/CollisionComponent.cs
class CollisionComponent (line 7) | [Context(typeof(LibraryContext))]
FILE: tests/Entitas.Generators.Tests.Fixtures.Dependencies/ContextInitialization.cs
class ContextInitialization (line 5) | public static partial class ContextInitialization
method InitializeMain (line 7) | [ContextInitialization(typeof(LibraryContext))]
method InitializeMain (line 16) | public static partial void InitializeMain()
class ContextInitialization (line 14) | public static partial class ContextInitialization
method InitializeMain (line 7) | [ContextInitialization(typeof(LibraryContext))]
method InitializeMain (line 16) | public static partial void InitializeMain()
FILE: tests/Entitas.Generators.Tests.Fixtures.Dependencies/HealthComponent.cs
class HealthComponent (line 7) | [Context(typeof(LibraryContext))]
FILE: tests/Entitas.Generators.Tests.Fixtures.Dependencies/LibraryContext.cs
class LibraryContext (line 5) | partial class LibraryContext : IContext { }
method LibraryContext (line 15) | public LibraryContext() :
class LibraryContext (line 10) | public sealed partial class LibraryContext : global::Entitas.Context<Lib...
method LibraryContext (line 15) | public LibraryContext() :
FILE: tests/Entitas.Generators.Tests.Fixtures.Dependencies/MyApp.Library.Entity.cs
class Entity (line 3) | public sealed class Entity : global::Entitas.Entity { }
FILE: tests/Entitas.Generators.Tests/ComponentGeneratorTests.cs
class ComponentGeneratorTests (line 10) | [UsesVerify]
method Verify (line 15) | static Task Verify(string fixture, Dictionary<string, string> options) =>
method VerifyComponent (line 18) | static Task VerifyComponent(string fixture, Dictionary<string, string>...
method VerifyContext (line 21) | static Task VerifyContext(string fixture, Dictionary<string, string> o...
method UsesGlobalNamespace (line 72) | [Theory]
method SomeNamespacedClass (line 95) | [Fact]
method Class (line 98) | [Fact]
method NonPublicComponent (line 107) | [Fact]
method NoContextComponent (line 110) | [Fact]
method NamespacedComponent (line 119) | [Fact]
method Component (line 122) | [Fact]
method OneFieldNamespacedComponent (line 125) | [Fact]
method OneFieldComponent (line 128) | [Fact]
method MultipleFieldsNamespacedComponent (line 131) | [Fact]
method MultipleFieldsComponent (line 134) | [Fact]
method ReservedKeywordFieldsNamespacedComponent (line 137) | [Fact]
method NoValidFieldsNamespacedComponent (line 140) | [Fact]
method MultiplePropertiesNamespacedComponent (line 143) | [Fact]
method ContextFromDifferentAssemblyNamespacedComponent (line 146) | [Fact]
method UniqueNamespacedComponent (line 149) | [Fact]
method UniqueOneFieldNamespacedComponent (line 152) | [Fact]
method CleanupRemoveNamespacedComponent (line 155) | [Fact]
method CleanupRemoveComponent (line 158) | [Fact]
method CleanupDestroyEntityNamespacedComponent (line 161) | [Fact]
method CleanupDestroyEntityComponent (line 164) | [Fact]
method CleanupSystems (line 167) | [Fact]
method NoCleanupSystems (line 170) | [Fact]
method ComplexTypesComponent (line 173) | [Fact]
method EventNamespacedComponent (line 182) | [Fact]
method EventComponent (line 185) | [Fact]
method FlagEventNamespacedComponent (line 188) | [Fact]
method FlagEventComponent (line 191) | [Fact]
method EventSystems (line 194) | [Fact]
method NoEventSystems (line 197) | [Fact]
method EntityIndexes (line 206) | [Fact]
method NoEntityIndexes (line 209) | [Fact]
method DuplicatedContextsNamespacedComponent (line 218) | [Fact]
method EmptyContextInitialization (line 227) | [Fact]
method ContextInitialization (line 230) | [Fact]
method ContextInitializationFromDifferentAssembly (line 233) | [Fact]
FILE: tests/Entitas.Generators.Tests/ContextGeneratorTests.cs
class ContextGeneratorTests (line 10) | [UsesVerify]
method Verify (line 15) | static Task Verify(string fixture, Dictionary<string, string> options) =>
method VerifyContext (line 18) | static Task VerifyContext(string fixture, Dictionary<string, string> o...
method UsesGlobalNamespace (line 23) | [Theory]
method SomeClass (line 34) | [Fact]
method NamespacedContext (line 37) | [Fact]
method SomeContext (line 40) | [Fact]
FILE: tests/Entitas.Generators.Tests/ModuleInitializer.cs
class ModuleInitializer (line 6) | public static class ModuleInitializer
method Init (line 8) | [ModuleInitializer]
FILE: tests/Entitas.Generators.Tests/TestHelper.cs
class TestHelper (line 17) | public static class TestHelper
method GetProjectRoot (line 21) | static string GetProjectRoot()
method Verify (line 29) | public static Task Verify(string source, IIncrementalGenerator generat...
method AssertUsesGlobalNamespaces (line 77) | public static void AssertUsesGlobalNamespaces(string path)
class TestAnalyzerConfigOptionsProvider (line 113) | sealed class TestAnalyzerConfigOptionsProvider : AnalyzerConfigOptionsPr...
method TestAnalyzerConfigOptionsProvider (line 117) | public TestAnalyzerConfigOptionsProvider(Dictionary<string, string> op...
method GetOptions (line 122) | public override AnalyzerConfigOptions GetOptions(SyntaxTree tree) => G...
method GetOptions (line 123) | public override AnalyzerConfigOptions GetOptions(AdditionalText textFi...
class DictionaryAnalyzerConfigOptions (line 126) | sealed class DictionaryAnalyzerConfigOptions : AnalyzerConfigOptions
method DictionaryAnalyzerConfigOptions (line 129) | public DictionaryAnalyzerConfigOptions(ImmutableDictionary<string, str...
method TryGetValue (line 130) | public override bool TryGetValue(string key, [NotNullWhen(true)] out s...
FILE: tests/Entitas.Generators.Tests/fixtures/Components/CleanupDestroyEntityComponent.cs
class CleanupDestroyEntityComponent (line 7) | [Context(typeof(MainContext)), Cleanup(CleanupMode.DestroyEntity)]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/CleanupDestroyEntityNamespacedComponent.cs
class CleanupDestroyEntityNamespacedComponent (line 9) | [Context(typeof(MainContext)), Cleanup(CleanupMode.DestroyEntity)]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/CleanupRemoveComponent.cs
class CleanupRemoveComponent (line 7) | [Context(typeof(MainContext)), Cleanup(CleanupMode.RemoveComponent)]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/CleanupRemoveNamespacedComponent.cs
class CleanupRemoveNamespacedComponent (line 9) | [Context(typeof(MainContext)), Cleanup(CleanupMode.RemoveComponent)]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/ComplexTypesComponent.cs
class ComplexTypesComponent (line 10) | [Context(typeof(MainContext))]
class NestedClass (line 19) | public class NestedClass
class InnerClass (line 21) | public class InnerClass { }
type InnerEnum (line 23) | public enum InnerEnum
FILE: tests/Entitas.Generators.Tests/fixtures/Components/ContextFromDifferentAssemblyNamespacedComponent.cs
class ContextFromDifferentAssemblyNamespacedComponent (line 9) | [Context(typeof(LibraryContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/DuplicatedContextsNamespacedComponent.cs
class DuplicatedContextsNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/EntityIndexComponent.cs
class EntityIndexComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/EntityIndexNamespacedComponent.cs
class EntityIndexNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/EventComponent.cs
class EventComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/EventNamespacedComponent.cs
class EventNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/FlagEventComponent.cs
class FlagEventComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/FlagEventNamespacedComponent.cs
class FlagEventNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/MultipleFieldsComponent.cs
class MultipleFieldsComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/MultipleFieldsNamespacedComponent.cs
class MultipleFieldsNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/MultiplePropertiesNamespacedComponent.cs
class MultiplePropertiesNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/NoContextComponent.cs
class NoContextComponent (line 7) | public sealed class NoContextComponent : IComponent { }
FILE: tests/Entitas.Generators.Tests/fixtures/Components/NoValidFieldsNamespacedComponent.cs
class NoValidFieldsNamespacedComponent (line 11) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/NonPublicComponent.cs
class NonPublicComponent (line 11) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/OneFieldComponent.cs
class OneFieldComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/OneFieldNamespacedComponent.cs
class OneFieldNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/PrimaryEntityIndexComponent.cs
class PrimaryEntityIndexComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/PrimaryEntityIndexNamespacedComponent.cs
class PrimaryEntityIndexNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/ReservedKeywordFieldsNamespacedComponent.cs
class ReservedKeywordFieldsNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/SomeComponent.cs
class SomeComponent (line 7) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/SomeNamespacedComponent.cs
class SomeNamespacedComponent (line 9) | [Context(typeof(MainContext))]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/UniqueNamespacedComponent.cs
class UniqueNamespacedComponent (line 9) | [Context(typeof(MainContext)), Unique]
FILE: tests/Entitas.Generators.Tests/fixtures/Components/UniqueOneFieldNamespacedComponent.cs
class UniqueOneFieldNamespacedComponent (line 9) | [Context(typeof(MainContext)), Unique]
FILE: tests/Entitas.Generators.Tests/fixtures/FakeGenerated/ContextInitialization.cs
class ContextInitialization (line 7) | public static partial class ContextInitialization
method InitializeMain (line 9) | [ContextInitialization(typeof(MainContext))]
method InitializeMain (line 18) | public static partial void InitializeMain()
class ContextInitialization (line 16) | public static partial class ContextInitialization
method InitializeMain (line 9) | [ContextInitialization(typeof(MainContext))]
method InitializeMain (line 18) | public static partial void InitializeMain()
FILE: tests/Entitas.Generators.Tests/fixtures/FakeGenerated/MainContext.cs
class MainContext (line 7) | partial class MainContext : IContext { }
method MainContext (line 17) | public MainContext() :
class MainContext (line 12) | public sealed partial class MainContext : global::Entitas.Context<Main.E...
method MainContext (line 17) | public MainContext() :
FILE: tests/Entitas.Generators.Tests/fixtures/FakeGenerated/MyApp.Main.Entity.cs
class Entity (line 5) | public sealed class Entity : global::Entitas.Entity { }
FILE: tests/Entitas.Generators.Tests/fixtures/SomeClass.cs
class SomeClass (line 3) | public class SomeClass { }
FILE: tests/Entitas.Generators.Tests/fixtures/SomeNamespacedClass.cs
class SomeNamespacedClass (line 5) | public class SomeNamespacedClass { }
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.CleanupDestroyEntityComponent#DestroyMyAppMainCleanupDestroyEntityCleanupSystem.g.verified.cs
class DestroyMyAppMainCleanupDestroyEntityCleanupSystem (line 11) | public sealed class DestroyMyAppMainCleanupDestroyEntityCleanupSystem : ...
method DestroyMyAppMainCleanupDestroyEntityCleanupSystem (line 16) | public DestroyMyAppMainCleanupDestroyEntityCleanupSystem(global::MyApp...
method Cleanup (line 21) | public void Cleanup()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.CleanupDestroyEntityNamespacedComponent#MyFeature.DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem.g.verified.cs
class DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem (line 13) | public sealed class DestroyMyAppMainCleanupDestroyEntityNamespacedCleanu...
method DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem (line 18) | public DestroyMyAppMainCleanupDestroyEntityNamespacedCleanupSystem(glo...
method Cleanup (line 23) | public void Cleanup()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.CleanupRemoveComponent#RemoveMyAppMainCleanupRemoveCleanupSystem.g.verified.cs
class RemoveMyAppMainCleanupRemoveCleanupSystem (line 11) | public sealed class RemoveMyAppMainCleanupRemoveCleanupSystem : global::...
method RemoveMyAppMainCleanupRemoveCleanupSystem (line 16) | public RemoveMyAppMainCleanupRemoveCleanupSystem(global::MyApp.MainCon...
method Cleanup (line 21) | public void Cleanup()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.CleanupRemoveNamespacedComponent#MyFeature.RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem.g.verified.cs
class RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem (line 13) | public sealed class RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem ...
method RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem (line 18) | public RemoveMyAppMainCleanupRemoveNamespacedCleanupSystem(global::MyA...
method Cleanup (line 23) | public void Cleanup()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.CleanupSystems#MyApp.MainContextCleanupSystemsExtension.g.verified.cs
class MainContextCleanupSystemsExtension (line 13) | public static class MainContextCleanupSystemsExtension
method CreateCleanupSystems (line 15) | public static global::Entitas.Systems CreateCleanupSystems(this MainCo...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.ComplexTypesComponent#MyFeature.MyAppMainComplexTypesEntityExtension.g.verified.cs
class MyAppMainComplexTypesEntityExtension (line 13) | public static class MyAppMainComplexTypesEntityExtension
method HasComplexTypes (line 15) | public static bool HasComplexTypes(this global::MyApp.Main.Entity entity)
method AddComplexTypes (line 20) | public static global::MyApp.Main.Entity AddComplexTypes(this global::M...
method ReplaceComplexTypes (line 35) | public static global::MyApp.Main.Entity ReplaceComplexTypes(this globa...
method RemoveComplexTypes (line 50) | public static global::MyApp.Main.Entity RemoveComplexTypes(this global...
method GetComplexTypes (line 56) | public static ComplexTypesComponent GetComplexTypes(this global::MyApp...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.Component#MyAppMainSomeComponentIndex.g.verified.cs
class MyAppMainSomeComponentIndex (line 11) | public static class MyAppMainSomeComponentIndex
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.Component#MyAppMainSomeEntityExtension.g.verified.cs
class MyAppMainSomeEntityExtension (line 11) | public static class MyAppMainSomeEntityExtension
method HasSome (line 15) | public static bool HasSome(this global::MyApp.Main.Entity entity)
method AddSome (line 20) | public static global::MyApp.Main.Entity AddSome(this global::MyApp.Mai...
method ReplaceSome (line 26) | public static global::MyApp.Main.Entity ReplaceSome(this global::MyApp...
method RemoveSome (line 32) | public static global::MyApp.Main.Entity RemoveSome(this global::MyApp....
method GetSome (line 38) | public static SomeComponent GetSome(this global::MyApp.Main.Entity ent...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.Component#MyAppMainSomeMatcher.g.verified.cs
class MyAppMainSomeMatcher (line 11) | public static class MyAppMainSomeMatcher
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.ContextFromDifferentAssemblyNamespacedComponent#MyFeature.MyAppLibraryContextFromDifferentAssemblyNamespacedEntityExtension.g.verified.cs
class MyAppLibraryContextFromDifferentAssemblyNamespacedEntityExtension (line 13) | public static class MyAppLibraryContextFromDifferentAssemblyNamespacedEn...
method HasContextFromDifferentAssemblyNamespaced (line 17) | public static bool HasContextFromDifferentAssemblyNamespaced(this glob...
method AddContextFromDifferentAssemblyNamespaced (line 22) | public static global::MyApp.Library.Entity AddContextFromDifferentAsse...
method ReplaceContextFromDifferentAssemblyNamespaced (line 28) | public static global::MyApp.Library.Entity ReplaceContextFromDifferent...
method RemoveContextFromDifferentAssemblyNamespaced (line 34) | public static global::MyApp.Library.Entity RemoveContextFromDifferentA...
method GetContextFromDifferentAssemblyNamespaced (line 40) | public static ContextFromDifferentAssemblyNamespacedComponent GetConte...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.ContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
class ContextInitialization (line 13) | public static partial class ContextInitialization
method Initialize (line 15) | public static partial void Initialize()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.ContextInitializationFromDifferentAssembly#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
class ContextInitialization (line 13) | public static partial class ContextInitialization
method Initialize (line 15) | public static partial void Initialize()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.DuplicatedContextsNamespacedComponent#MyFeature.MyAppMainDuplicatedContextsNamespacedEntityExtension.g.verified.cs
class MyAppMainDuplicatedContextsNamespacedEntityExtension (line 13) | public static class MyAppMainDuplicatedContextsNamespacedEntityExtension
method HasDuplicatedContextsNamespaced (line 17) | public static bool HasDuplicatedContextsNamespaced(this global::MyApp....
method AddDuplicatedContextsNamespaced (line 22) | public static global::MyApp.Main.Entity AddDuplicatedContextsNamespace...
method ReplaceDuplicatedContextsNamespaced (line 28) | public static global::MyApp.Main.Entity ReplaceDuplicatedContextsNames...
method RemoveDuplicatedContextsNamespaced (line 34) | public static global::MyApp.Main.Entity RemoveDuplicatedContextsNamesp...
method GetDuplicatedContextsNamespaced (line 40) | public static DuplicatedContextsNamespacedComponent GetDuplicatedConte...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EmptyContextInitialization#MyApp.ContextInitialization.Initialize.ContextInitialization.g.verified.cs
class ContextInitialization (line 13) | public static partial class ContextInitialization
method Initialize (line 15) | public static partial void Initialize()
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EntityIndexes#MyApp.MainContextEntityIndexExtension.g.verified.cs
class MainContextEntityIndexExtension (line 13) | public static class MainContextEntityIndexExtension
method AddAllEntityIndexes (line 20) | public static MainContext AddAllEntityIndexes(this MainContext context)
class EntityIndexExtension (line 47) | public static class EntityIndexExtension
method GetEntitiesWithEntityIndexValue (line 49) | public static global::System.Collections.Generic.HashSet<global::MyApp...
method GetEntityWithPrimaryEntityIndexValue (line 54) | public static global::MyApp.Main.Entity GetEntityWithPrimaryEntityInde...
method GetEntitiesWithEntityIndexNamespacedValue (line 64) | public static global::System.Collections.Generic.HashSet<global::MyApp...
method GetEntityWithPrimaryEntityIndexNamespacedValue (line 69) | public static global::MyApp.Main.Entity GetEntityWithPrimaryEntityInde...
class EntityIndexExtension (line 62) | public static class EntityIndexExtension
method GetEntitiesWithEntityIndexValue (line 49) | public static global::System.Collections.Generic.HashSet<global::MyApp...
method GetEntityWithPrimaryEntityIndexValue (line 54) | public static global::MyApp.Main.Entity GetEntityWithPrimaryEntityInde...
method GetEntitiesWithEntityIndexNamespacedValue (line 64) | public static global::System.Collections.Generic.HashSet<global::MyApp...
method GetEntityWithPrimaryEntityIndexNamespacedValue (line 69) | public static global::MyApp.Main.Entity GetEntityWithPrimaryEntityInde...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventComponent#MyAppMainAnyEventAddedListenerComponent.g.verified.cs
type IMyAppMainAnyEventAddedListener (line 11) | public interface IMyAppMainAnyEventAddedListener
method OnAnyEventAdded (line 13) | void OnAnyEventAdded(global::MyApp.Main.Entity entity, string value);
class MyAppMainAnyEventAddedListenerComponent (line 16) | public sealed class MyAppMainAnyEventAddedListenerComponent : global::En...
class MyAppMainAnyEventAddedListenerEventEntityExtension (line 21) | public static class MyAppMainAnyEventAddedListenerEventEntityExtension
method AddAnyEventAddedListener (line 23) | public static global::MyApp.Main.Entity AddAnyEventAddedListener(this ...
method RemoveAnyEventAddedListener (line 32) | public static void RemoveAnyEventAddedListener(this global::MyApp.Main...
class MyAppMainAnyEventAddedEventSystem (line 49) | public sealed class MyAppMainAnyEventAddedEventSystem : global::Entitas....
method MyAppMainAnyEventAddedEventSystem (line 55) | public MyAppMainAnyEventAddedEventSystem(MyApp.MainContext context) : ...
method GetTrigger (line 62) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 69) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 74) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventComponent#MyAppMainAnyEventRemovedListenerComponent.g.verified.cs
type IMyAppMainAnyEventRemovedListener (line 11) | public interface IMyAppMainAnyEventRemovedListener
method OnAnyEventRemoved (line 13) | void OnAnyEventRemoved(global::MyApp.Main.Entity entity);
class MyAppMainAnyEventRemovedListenerComponent (line 16) | public sealed class MyAppMainAnyEventRemovedListenerComponent : global::...
class MyAppMainAnyEventRemovedListenerEventEntityExtension (line 21) | public static class MyAppMainAnyEventRemovedListenerEventEntityExtension
method AddAnyEventRemovedListener (line 23) | public static global::MyApp.Main.Entity AddAnyEventRemovedListener(thi...
method RemoveAnyEventRemovedListener (line 32) | public static void RemoveAnyEventRemovedListener(this global::MyApp.Ma...
class MyAppMainAnyEventRemovedEventSystem (line 49) | public sealed class MyAppMainAnyEventRemovedEventSystem : global::Entita...
method MyAppMainAnyEventRemovedEventSystem (line 55) | public MyAppMainAnyEventRemovedEventSystem(MyApp.MainContext context) ...
method GetTrigger (line 62) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 69) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 74) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventComponent#MyAppMainEventAddedListenerComponent.g.verified.cs
type IMyAppMainEventAddedListener (line 11) | public interface IMyAppMainEventAddedListener
method OnEventAdded (line 13) | void OnEventAdded(global::MyApp.Main.Entity entity, string value);
class MyAppMainEventAddedListenerComponent (line 16) | public sealed class MyAppMainEventAddedListenerComponent : global::Entit...
class MyAppMainEventAddedListenerEventEntityExtension (line 21) | public static class MyAppMainEventAddedListenerEventEntityExtension
method AddEventAddedListener (line 23) | public static global::MyApp.Main.Entity AddEventAddedListener(this glo...
method RemoveEventAddedListener (line 32) | public static void RemoveEventAddedListener(this global::MyApp.Main.En...
class MyAppMainEventAddedEventSystem (line 49) | public sealed class MyAppMainEventAddedEventSystem : global::Entitas.Rea...
method MyAppMainEventAddedEventSystem (line 53) | public MyAppMainEventAddedEventSystem(MyApp.MainContext context) : bas...
method GetTrigger (line 58) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 65) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 70) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventComponent#MyAppMainEventRemovedListenerComponent.g.verified.cs
type IMyAppMainEventRemovedListener (line 11) | public interface IMyAppMainEventRemovedListener
method OnEventRemoved (line 13) | void OnEventRemoved(global::MyApp.Main.Entity entity);
class MyAppMainEventRemovedListenerComponent (line 16) | public sealed class MyAppMainEventRemovedListenerComponent : global::Ent...
class MyAppMainEventRemovedListenerEventEntityExtension (line 21) | public static class MyAppMainEventRemovedListenerEventEntityExtension
method AddEventRemovedListener (line 23) | public static global::MyApp.Main.Entity AddEventRemovedListener(this g...
method RemoveEventRemovedListener (line 32) | public static void RemoveEventRemovedListener(this global::MyApp.Main....
class MyAppMainEventRemovedEventSystem (line 49) | public sealed class MyAppMainEventRemovedEventSystem : global::Entitas.R...
method MyAppMainEventRemovedEventSystem (line 53) | public MyAppMainEventRemovedEventSystem(MyApp.MainContext context) : b...
method GetTrigger (line 58) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 65) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 70) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedAddedListenerComponent.g.verified.cs
type IMyAppMainAnyEventNamespacedAddedListener (line 13) | public interface IMyAppMainAnyEventNamespacedAddedListener
method OnAnyEventNamespacedAdded (line 15) | void OnAnyEventNamespacedAdded(global::MyApp.Main.Entity entity, strin...
class MyAppMainAnyEventNamespacedAddedListenerComponent (line 18) | public sealed class MyAppMainAnyEventNamespacedAddedListenerComponent : ...
class MyAppMainAnyEventNamespacedAddedListenerEventEntityExtension (line 23) | public static class MyAppMainAnyEventNamespacedAddedListenerEventEntityE...
method AddAnyEventNamespacedAddedListener (line 25) | public static global::MyApp.Main.Entity AddAnyEventNamespacedAddedList...
method RemoveAnyEventNamespacedAddedListener (line 34) | public static void RemoveAnyEventNamespacedAddedListener(this global::...
class MyAppMainAnyEventNamespacedAddedEventSystem (line 51) | public sealed class MyAppMainAnyEventNamespacedAddedEventSystem : global...
method MyAppMainAnyEventNamespacedAddedEventSystem (line 57) | public MyAppMainAnyEventNamespacedAddedEventSystem(MyApp.MainContext c...
method GetTrigger (line 64) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 71) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 76) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainAnyEventNamespacedRemovedListenerComponent.g.verified.cs
type IMyAppMainAnyEventNamespacedRemovedListener (line 13) | public interface IMyAppMainAnyEventNamespacedRemovedListener
method OnAnyEventNamespacedRemoved (line 15) | void OnAnyEventNamespacedRemoved(global::MyApp.Main.Entity entity);
class MyAppMainAnyEventNamespacedRemovedListenerComponent (line 18) | public sealed class MyAppMainAnyEventNamespacedRemovedListenerComponent ...
class MyAppMainAnyEventNamespacedRemovedListenerEventEntityExtension (line 23) | public static class MyAppMainAnyEventNamespacedRemovedListenerEventEntit...
method AddAnyEventNamespacedRemovedListener (line 25) | public static global::MyApp.Main.Entity AddAnyEventNamespacedRemovedLi...
method RemoveAnyEventNamespacedRemovedListener (line 34) | public static void RemoveAnyEventNamespacedRemovedListener(this global...
class MyAppMainAnyEventNamespacedRemovedEventSystem (line 51) | public sealed class MyAppMainAnyEventNamespacedRemovedEventSystem : glob...
method MyAppMainAnyEventNamespacedRemovedEventSystem (line 57) | public MyAppMainAnyEventNamespacedRemovedEventSystem(MyApp.MainContext...
method GetTrigger (line 64) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 71) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 76) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedAddedListenerComponent.g.verified.cs
type IMyAppMainEventNamespacedAddedListener (line 13) | public interface IMyAppMainEventNamespacedAddedListener
method OnEventNamespacedAdded (line 15) | void OnEventNamespacedAdded(global::MyApp.Main.Entity entity, string v...
class MyAppMainEventNamespacedAddedListenerComponent (line 18) | public sealed class MyAppMainEventNamespacedAddedListenerComponent : glo...
class MyAppMainEventNamespacedAddedListenerEventEntityExtension (line 23) | public static class MyAppMainEventNamespacedAddedListenerEventEntityExte...
method AddEventNamespacedAddedListener (line 25) | public static global::MyApp.Main.Entity AddEventNamespacedAddedListene...
method RemoveEventNamespacedAddedListener (line 34) | public static void RemoveEventNamespacedAddedListener(this global::MyA...
class MyAppMainEventNamespacedAddedEventSystem (line 51) | public sealed class MyAppMainEventNamespacedAddedEventSystem : global::E...
method MyAppMainEventNamespacedAddedEventSystem (line 55) | public MyAppMainEventNamespacedAddedEventSystem(MyApp.MainContext cont...
method GetTrigger (line 60) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 67) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 72) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventNamespacedComponent#MyFeature.MyAppMainEventNamespacedRemovedListenerComponent.g.verified.cs
type IMyAppMainEventNamespacedRemovedListener (line 13) | public interface IMyAppMainEventNamespacedRemovedListener
method OnEventNamespacedRemoved (line 15) | void OnEventNamespacedRemoved(global::MyApp.Main.Entity entity);
class MyAppMainEventNamespacedRemovedListenerComponent (line 18) | public sealed class MyAppMainEventNamespacedRemovedListenerComponent : g...
class MyAppMainEventNamespacedRemovedListenerEventEntityExtension (line 23) | public static class MyAppMainEventNamespacedRemovedListenerEventEntityEx...
method AddEventNamespacedRemovedListener (line 25) | public static global::MyApp.Main.Entity AddEventNamespacedRemovedListe...
method RemoveEventNamespacedRemovedListener (line 34) | public static void RemoveEventNamespacedRemovedListener(this global::M...
class MyAppMainEventNamespacedRemovedEventSystem (line 51) | public sealed class MyAppMainEventNamespacedRemovedEventSystem : global:...
method MyAppMainEventNamespacedRemovedEventSystem (line 55) | public MyAppMainEventNamespacedRemovedEventSystem(MyApp.MainContext co...
method GetTrigger (line 60) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 67) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 72) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.EventSystems#MyApp.MainContextEventSystemsExtension.g.verified.cs
class MainContextEventSystemsExtension (line 13) | public static class MainContextEventSystemsExtension
method CreateEventSystems (line 15) | public static global::Entitas.Systems CreateEventSystems(this MainCont...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventAddedListenerComponent.g.verified.cs
type IMyAppMainAnyFlagEventAddedListener (line 11) | public interface IMyAppMainAnyFlagEventAddedListener
method OnAnyFlagEventAdded (line 13) | void OnAnyFlagEventAdded(global::MyApp.Main.Entity entity);
class MyAppMainAnyFlagEventAddedListenerComponent (line 16) | public sealed class MyAppMainAnyFlagEventAddedListenerComponent : global...
class MyAppMainAnyFlagEventAddedListenerEventEntityExtension (line 21) | public static class MyAppMainAnyFlagEventAddedListenerEventEntityExtension
method AddAnyFlagEventAddedListener (line 23) | public static global::MyApp.Main.Entity AddAnyFlagEventAddedListener(t...
method RemoveAnyFlagEventAddedListener (line 32) | public static void RemoveAnyFlagEventAddedListener(this global::MyApp....
class MyAppMainAnyFlagEventAddedEventSystem (line 49) | public sealed class MyAppMainAnyFlagEventAddedEventSystem : global::Enti...
method MyAppMainAnyFlagEventAddedEventSystem (line 55) | public MyAppMainAnyFlagEventAddedEventSystem(MyApp.MainContext context...
method GetTrigger (line 62) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 69) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 74) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventComponent#MyAppMainAnyFlagEventRemovedListenerComponent.g.verified.cs
type IMyAppMainAnyFlagEventRemovedListener (line 11) | public interface IMyAppMainAnyFlagEventRemovedListener
method OnAnyFlagEventRemoved (line 13) | void OnAnyFlagEventRemoved(global::MyApp.Main.Entity entity);
class MyAppMainAnyFlagEventRemovedListenerComponent (line 16) | public sealed class MyAppMainAnyFlagEventRemovedListenerComponent : glob...
class MyAppMainAnyFlagEventRemovedListenerEventEntityExtension (line 21) | public static class MyAppMainAnyFlagEventRemovedListenerEventEntityExten...
method AddAnyFlagEventRemovedListener (line 23) | public static global::MyApp.Main.Entity AddAnyFlagEventRemovedListener...
method RemoveAnyFlagEventRemovedListener (line 32) | public static void RemoveAnyFlagEventRemovedListener(this global::MyAp...
class MyAppMainAnyFlagEventRemovedEventSystem (line 49) | public sealed class MyAppMainAnyFlagEventRemovedEventSystem : global::En...
method MyAppMainAnyFlagEventRemovedEventSystem (line 55) | public MyAppMainAnyFlagEventRemovedEventSystem(MyApp.MainContext conte...
method GetTrigger (line 62) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 69) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 74) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventAddedListenerComponent.g.verified.cs
type IMyAppMainFlagEventAddedListener (line 11) | public interface IMyAppMainFlagEventAddedListener
method OnFlagEventAdded (line 13) | void OnFlagEventAdded(global::MyApp.Main.Entity entity);
class MyAppMainFlagEventAddedListenerComponent (line 16) | public sealed class MyAppMainFlagEventAddedListenerComponent : global::E...
class MyAppMainFlagEventAddedListenerEventEntityExtension (line 21) | public static class MyAppMainFlagEventAddedListenerEventEntityExtension
method AddFlagEventAddedListener (line 23) | public static global::MyApp.Main.Entity AddFlagEventAddedListener(this...
method RemoveFlagEventAddedListener (line 32) | public static void RemoveFlagEventAddedListener(this global::MyApp.Mai...
class MyAppMainFlagEventAddedEventSystem (line 49) | public sealed class MyAppMainFlagEventAddedEventSystem : global::Entitas...
method MyAppMainFlagEventAddedEventSystem (line 53) | public MyAppMainFlagEventAddedEventSystem(MyApp.MainContext context) :...
method GetTrigger (line 58) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 65) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 70) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventComponent#MyAppMainFlagEventRemovedListenerComponent.g.verified.cs
type IMyAppMainFlagEventRemovedListener (line 11) | public interface IMyAppMainFlagEventRemovedListener
method OnFlagEventRemoved (line 13) | void OnFlagEventRemoved(global::MyApp.Main.Entity entity);
class MyAppMainFlagEventRemovedListenerComponent (line 16) | public sealed class MyAppMainFlagEventRemovedListenerComponent : global:...
class MyAppMainFlagEventRemovedListenerEventEntityExtension (line 21) | public static class MyAppMainFlagEventRemovedListenerEventEntityExtension
method AddFlagEventRemovedListener (line 23) | public static global::MyApp.Main.Entity AddFlagEventRemovedListener(th...
method RemoveFlagEventRemovedListener (line 32) | public static void RemoveFlagEventRemovedListener(this global::MyApp.M...
class MyAppMainFlagEventRemovedEventSystem (line 49) | public sealed class MyAppMainFlagEventRemovedEventSystem : global::Entit...
method MyAppMainFlagEventRemovedEventSystem (line 53) | public MyAppMainFlagEventRemovedEventSystem(MyApp.MainContext context)...
method GetTrigger (line 58) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 65) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 70) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedAddedListenerComponent.g.verified.cs
type IMyAppMainAnyFlagEventNamespacedAddedListener (line 13) | public interface IMyAppMainAnyFlagEventNamespacedAddedListener
method OnAnyFlagEventNamespacedAdded (line 15) | void OnAnyFlagEventNamespacedAdded(global::MyApp.Main.Entity entity);
class MyAppMainAnyFlagEventNamespacedAddedListenerComponent (line 18) | public sealed class MyAppMainAnyFlagEventNamespacedAddedListenerComponen...
class MyAppMainAnyFlagEventNamespacedAddedListenerEventEntityExtension (line 23) | public static class MyAppMainAnyFlagEventNamespacedAddedListenerEventEnt...
method AddAnyFlagEventNamespacedAddedListener (line 25) | public static global::MyApp.Main.Entity AddAnyFlagEventNamespacedAdded...
method RemoveAnyFlagEventNamespacedAddedListener (line 34) | public static void RemoveAnyFlagEventNamespacedAddedListener(this glob...
class MyAppMainAnyFlagEventNamespacedAddedEventSystem (line 51) | public sealed class MyAppMainAnyFlagEventNamespacedAddedEventSystem : gl...
method MyAppMainAnyFlagEventNamespacedAddedEventSystem (line 57) | public MyAppMainAnyFlagEventNamespacedAddedEventSystem(MyApp.MainConte...
method GetTrigger (line 64) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 71) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 76) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainAnyFlagEventNamespacedRemovedListenerComponent.g.verified.cs
type IMyAppMainAnyFlagEventNamespacedRemovedListener (line 13) | public interface IMyAppMainAnyFlagEventNamespacedRemovedListener
method OnAnyFlagEventNamespacedRemoved (line 15) | void OnAnyFlagEventNamespacedRemoved(global::MyApp.Main.Entity entity);
class MyAppMainAnyFlagEventNamespacedRemovedListenerComponent (line 18) | public sealed class MyAppMainAnyFlagEventNamespacedRemovedListenerCompon...
class MyAppMainAnyFlagEventNamespacedRemovedListenerEventEntityExtension (line 23) | public static class MyAppMainAnyFlagEventNamespacedRemovedListenerEventE...
method AddAnyFlagEventNamespacedRemovedListener (line 25) | public static global::MyApp.Main.Entity AddAnyFlagEventNamespacedRemov...
method RemoveAnyFlagEventNamespacedRemovedListener (line 34) | public static void RemoveAnyFlagEventNamespacedRemovedListener(this gl...
class MyAppMainAnyFlagEventNamespacedRemovedEventSystem (line 51) | public sealed class MyAppMainAnyFlagEventNamespacedRemovedEventSystem : ...
method MyAppMainAnyFlagEventNamespacedRemovedEventSystem (line 57) | public MyAppMainAnyFlagEventNamespacedRemovedEventSystem(MyApp.MainCon...
method GetTrigger (line 64) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 71) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 76) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedAddedListenerComponent.g.verified.cs
type IMyAppMainFlagEventNamespacedAddedListener (line 13) | public interface IMyAppMainFlagEventNamespacedAddedListener
method OnFlagEventNamespacedAdded (line 15) | void OnFlagEventNamespacedAdded(global::MyApp.Main.Entity entity);
class MyAppMainFlagEventNamespacedAddedListenerComponent (line 18) | public sealed class MyAppMainFlagEventNamespacedAddedListenerComponent :...
class MyAppMainFlagEventNamespacedAddedListenerEventEntityExtension (line 23) | public static class MyAppMainFlagEventNamespacedAddedListenerEventEntity...
method AddFlagEventNamespacedAddedListener (line 25) | public static global::MyApp.Main.Entity AddFlagEventNamespacedAddedLis...
method RemoveFlagEventNamespacedAddedListener (line 34) | public static void RemoveFlagEventNamespacedAddedListener(this global:...
class MyAppMainFlagEventNamespacedAddedEventSystem (line 51) | public sealed class MyAppMainFlagEventNamespacedAddedEventSystem : globa...
method MyAppMainFlagEventNamespacedAddedEventSystem (line 55) | public MyAppMainFlagEventNamespacedAddedEventSystem(MyApp.MainContext ...
method GetTrigger (line 60) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 67) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 72) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.FlagEventNamespacedComponent#MyFeature.MyAppMainFlagEventNamespacedRemovedListenerComponent.g.verified.cs
type IMyAppMainFlagEventNamespacedRemovedListener (line 13) | public interface IMyAppMainFlagEventNamespacedRemovedListener
method OnFlagEventNamespacedRemoved (line 15) | void OnFlagEventNamespacedRemoved(global::MyApp.Main.Entity entity);
class MyAppMainFlagEventNamespacedRemovedListenerComponent (line 18) | public sealed class MyAppMainFlagEventNamespacedRemovedListenerComponent...
class MyAppMainFlagEventNamespacedRemovedListenerEventEntityExtension (line 23) | public static class MyAppMainFlagEventNamespacedRemovedListenerEventEnti...
method AddFlagEventNamespacedRemovedListener (line 25) | public static global::MyApp.Main.Entity AddFlagEventNamespacedRemovedL...
method RemoveFlagEventNamespacedRemovedListener (line 34) | public static void RemoveFlagEventNamespacedRemovedListener(this globa...
class MyAppMainFlagEventNamespacedRemovedEventSystem (line 51) | public sealed class MyAppMainFlagEventNamespacedRemovedEventSystem : glo...
method MyAppMainFlagEventNamespacedRemovedEventSystem (line 55) | public MyAppMainFlagEventNamespacedRemovedEventSystem(MyApp.MainContex...
method GetTrigger (line 60) | protected override global::Entitas.ICollector<global::MyApp.Main.Entit...
method Filter (line 67) | protected override bool Filter(global::MyApp.Main.Entity entity)
method Execute (line 72) | protected override void Execute(global::System.Collections.Generic.Lis...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.MultipleFieldsComponent#MyAppMainMultipleFieldsEntityExtension.g.verified.cs
class MyAppMainMultipleFieldsEntityExtension (line 11) | public static class MyAppMainMultipleFieldsEntityExtension
method HasMultipleFields (line 13) | public static bool HasMultipleFields(this global::MyApp.Main.Entity en...
method AddMultipleFields (line 18) | public static global::MyApp.Main.Entity AddMultipleFields(this global:...
method ReplaceMultipleFields (line 32) | public static global::MyApp.Main.Entity ReplaceMultipleFields(this glo...
method RemoveMultipleFields (line 46) | public static global::MyApp.Main.Entity RemoveMultipleFields(this glob...
method GetMultipleFields (line 52) | public static MultipleFieldsComponent GetMultipleFields(this global::M...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.MultipleFieldsNamespacedComponent#MyFeature.MyAppMainMultipleFieldsNamespacedEntityExtension.g.verified.cs
class MyAppMainMultipleFieldsNamespacedEntityExtension (line 13) | public static class MyAppMainMultipleFieldsNamespacedEntityExtension
method HasMultipleFieldsNamespaced (line 15) | public static bool HasMultipleFieldsNamespaced(this global::MyApp.Main...
method AddMultipleFieldsNamespaced (line 20) | public static global::MyApp.Main.Entity AddMultipleFieldsNamespaced(th...
method ReplaceMultipleFieldsNamespaced (line 34) | public static global::MyApp.Main.Entity ReplaceMultipleFieldsNamespace...
method RemoveMultipleFieldsNamespaced (line 48) | public static global::MyApp.Main.Entity RemoveMultipleFieldsNamespaced...
method GetMultipleFieldsNamespaced (line 54) | public static MultipleFieldsNamespacedComponent GetMultipleFieldsNames...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.MultiplePropertiesNamespacedComponent#MyFeature.MyAppMainMultiplePropertiesNamespacedEntityExtension.g.verified.cs
class MyAppMainMultiplePropertiesNamespacedEntityExtension (line 13) | public static class MyAppMainMultiplePropertiesNamespacedEntityExtension
method HasMultiplePropertiesNamespaced (line 15) | public static bool HasMultiplePropertiesNamespaced(this global::MyApp....
method AddMultiplePropertiesNamespaced (line 20) | public static global::MyApp.Main.Entity AddMultiplePropertiesNamespace...
method ReplaceMultiplePropertiesNamespaced (line 34) | public static global::MyApp.Main.Entity ReplaceMultiplePropertiesNames...
method RemoveMultiplePropertiesNamespaced (line 48) | public static global::MyApp.Main.Entity RemoveMultiplePropertiesNamesp...
method GetMultiplePropertiesNamespaced (line 54) | public static MultiplePropertiesNamespacedComponent GetMultiplePropert...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedComponentIndex.g.verified.cs
class MyAppMainSomeNamespacedComponentIndex (line 13) | public static class MyAppMainSomeNamespacedComponentIndex
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedEntityExtension.g.verified.cs
class MyAppMainSomeNamespacedEntityExtension (line 13) | public static class MyAppMainSomeNamespacedEntityExtension
method HasSomeNamespaced (line 17) | public static bool HasSomeNamespaced(this global::MyApp.Main.Entity en...
method AddSomeNamespaced (line 22) | public static global::MyApp.Main.Entity AddSomeNamespaced(this global:...
method ReplaceSomeNamespaced (line 28) | public static global::MyApp.Main.Entity ReplaceSomeNamespaced(this glo...
method RemoveSomeNamespaced (line 34) | public static global::MyApp.Main.Entity RemoveSomeNamespaced(this glob...
method GetSomeNamespaced (line 40) | public static SomeNamespacedComponent GetSomeNamespaced(this global::M...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NamespacedComponent#MyFeature.MyAppMainSomeNamespacedMatcher.g.verified.cs
class MyAppMainSomeNamespacedMatcher (line 13) | public static class MyAppMainSomeNamespacedMatcher
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NoCleanupSystems#EmptyContextCleanupSystemsExtension.g.verified.cs
class EmptyContextCleanupSystemsExtension (line 11) | public static class EmptyContextCleanupSystemsExtension
method CreateCleanupSystems (line 13) | public static global::Entitas.Systems CreateCleanupSystems(this EmptyC...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NoEntityIndexes#EmptyContextEntityIndexExtension.g.verified.cs
class EmptyContextEntityIndexExtension (line 11) | public static class EmptyContextEntityIndexExtension
method AddAllEntityIndexes (line 13) | public static EmptyContext AddAllEntityIndexes(this EmptyContext context)
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NoEventSystems#EmptyContextEventSystemsExtension.g.verified.cs
class EmptyContextEventSystemsExtension (line 11) | public static class EmptyContextEventSystemsExtension
method CreateEventSystems (line 13) | public static global::Entitas.Systems CreateEventSystems(this EmptyCon...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.NoValidFieldsNamespacedComponent#MyFeature.MyAppMainNoValidFieldsNamespacedEntityExtension.g.verified.cs
class MyAppMainNoValidFieldsNamespacedEntityExtension (line 13) | public static class MyAppMainNoValidFieldsNamespacedEntityExtension
method HasNoValidFieldsNamespaced (line 17) | public static bool HasNoValidFieldsNamespaced(this global::MyApp.Main....
method AddNoValidFieldsNamespaced (line 22) | public static global::MyApp.Main.Entity AddNoValidFieldsNamespaced(thi...
method ReplaceNoValidFieldsNamespaced (line 28) | public static global::MyApp.Main.Entity ReplaceNoValidFieldsNamespaced...
method RemoveNoValidFieldsNamespaced (line 34) | public static global::MyApp.Main.Entity RemoveNoValidFieldsNamespaced(...
method GetNoValidFieldsNamespaced (line 40) | public static NoValidFieldsNamespacedComponent GetNoValidFieldsNamespa...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.OneFieldComponent#MyAppMainOneFieldEntityExtension.g.verified.cs
class MyAppMainOneFieldEntityExtension (line 11) | public static class MyAppMainOneFieldEntityExtension
method HasOneField (line 13) | public static bool HasOneField(this global::MyApp.Main.Entity entity)
method AddOneField (line 18) | public static global::MyApp.Main.Entity AddOneField(this global::MyApp...
method ReplaceOneField (line 30) | public static global::MyApp.Main.Entity ReplaceOneField(this global::M...
method RemoveOneField (line 42) | public static global::MyApp.Main.Entity RemoveOneField(this global::My...
method GetOneField (line 48) | public static OneFieldComponent GetOneField(this global::MyApp.Main.En...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.OneFieldNamespacedComponent#MyFeature.MyAppMainOneFieldNamespacedEntityExtension.g.verified.cs
class MyAppMainOneFieldNamespacedEntityExtension (line 13) | public static class MyAppMainOneFieldNamespacedEntityExtension
method HasOneFieldNamespaced (line 15) | public static bool HasOneFieldNamespaced(this global::MyApp.Main.Entit...
method AddOneFieldNamespaced (line 20) | public static global::MyApp.Main.Entity AddOneFieldNamespaced(this glo...
method ReplaceOneFieldNamespaced (line 32) | public static global::MyApp.Main.Entity ReplaceOneFieldNamespaced(this...
method RemoveOneFieldNamespaced (line 44) | public static global::MyApp.Main.Entity RemoveOneFieldNamespaced(this ...
method GetOneFieldNamespaced (line 50) | public static OneFieldNamespacedComponent GetOneFieldNamespaced(this g...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.ReservedKeywordFieldsNamespacedComponent#MyFeature.MyAppMainReservedKeywordFieldsNamespacedEntityExtension.g.verified.cs
class MyAppMainReservedKeywordFieldsNamespacedEntityExtension (line 13) | public static class MyAppMainReservedKeywordFieldsNamespacedEntityExtension
method HasReservedKeywordFieldsNamespaced (line 15) | public static bool HasReservedKeywordFieldsNamespaced(this global::MyA...
method AddReservedKeywordFieldsNamespaced (line 20) | public static global::MyApp.Main.Entity AddReservedKeywordFieldsNamesp...
method ReplaceReservedKeywordFieldsNamespaced (line 34) | public static global::MyApp.Main.Entity ReplaceReservedKeywordFieldsNa...
method RemoveReservedKeywordFieldsNamespaced (line 48) | public static global::MyApp.Main.Entity RemoveReservedKeywordFieldsNam...
method GetReservedKeywordFieldsNamespaced (line 54) | public static ReservedKeywordFieldsNamespacedComponent GetReservedKeyw...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.UniqueNamespacedComponent#MyFeature.MyAppMainUniqueNamespacedContextExtension.g.verified.cs
class MyAppMainUniqueNamespacedContextExtension (line 13) | public static class MyAppMainUniqueNamespacedContextExtension
method HasUniqueNamespaced (line 15) | public static bool HasUniqueNamespaced(this global::MyApp.MainContext ...
method SetUniqueNamespaced (line 20) | public static global::MyApp.Main.Entity SetUniqueNamespaced(this globa...
method UnsetUniqueNamespaced (line 25) | public static void UnsetUniqueNamespaced(this global::MyApp.MainContex...
method GetUniqueNamespacedEntity (line 30) | public static global::MyApp.Main.Entity GetUniqueNamespacedEntity(this...
FILE: tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.UniqueOneFieldNamespacedComponent#MyFeature.MyAppMainUniqueOneFieldNamespacedContextExtension.g.verified.cs
class MyAppMainUniqueOneFieldNamespacedContextExtension (line 13) | public static class MyAppMainUniqueOneFieldNamespacedContextExtension
method HasUniqueOneFieldNamespaced (line 15) | public static bool HasUniqueOneFieldNamespaced(this global::MyApp.Main...
method SetUniqueOneFieldNamespaced (line 20) | public static global::MyApp.Main.Entity SetUniqueOneFieldNamespaced(th...
method ReplaceUniqueOneFieldNamespaced (line 33) | public static global::MyApp.Main.Entity ReplaceUniqueOneFieldNamespace...
method RemoveUniqueOneFieldNamespaced (line 44) | public static void RemoveUniqueOneFieldNamespaced(this global::MyApp.M...
method GetUniqueOneFieldNamespacedEntity (line 49) | public static global::MyApp.Main.Entity GetUniqueOneFieldNamespacedEnt...
method GetUniqueOneFieldNamespaced (line 54) | public static UniqueOneFieldNamespacedComponent GetUniqueOneFieldNames...
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.ComponentIndex.g.verified.cs
type ComponentIndex (line 13) | public readonly struct ComponentIndex : global::System.IEquatable<Compon...
method ComponentIndex (line 17) | public ComponentIndex(int value)
method Equals (line 22) | public bool Equals(ComponentIndex other) => Value == other.Value;
method Equals (line 24) | public override bool Equals(object? obj) => obj is ComponentIndex othe...
method GetHashCode (line 26) | public override int GetHashCode() => Value;
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Entity.g.verified.cs
class Entity (line 13) | public sealed class Entity : global::Entitas.Entity { }
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.NamespacedContext#MyApp.Namespaced.Matcher.g.verified.cs
class Matcher (line 13) | public static class Matcher
method AllOf (line 15) | public static global::Entitas.IAllOfMatcher<Entity> AllOf(params int[]...
method AllOf (line 20) | public static global::Entitas.IAllOfMatcher<Entity> AllOf(params globa...
method AnyOf (line 25) | public static global::Entitas.IAnyOfMatcher<Entity> AnyOf(params int[]...
method AnyOf (line 30) | public static global::Entitas.IAnyOfMatcher<Entity> AnyOf(params globa...
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.NamespacedContext#MyApp.NamespacedContext.g.verified.cs
class NamespacedContext (line 13) | public sealed partial class NamespacedContext : global::Entitas.Context<...
method NamespacedContext (line 18) | public NamespacedContext() :
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.SomeContext#Some.ComponentIndex.g.verified.cs
type ComponentIndex (line 13) | public readonly struct ComponentIndex : global::System.IEquatable<Compon...
method ComponentIndex (line 17) | public ComponentIndex(int value)
method Equals (line 22) | public bool Equals(ComponentIndex other) => Value == other.Value;
method Equals (line 24) | public override bool Equals(object? obj) => obj is ComponentIndex othe...
method GetHashCode (line 26) | public override int GetHashCode() => Value;
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.SomeContext#Some.Entity.g.verified.cs
class Entity (line 13) | public sealed class Entity : global::Entitas.Entity { }
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.SomeContext#Some.Matcher.g.verified.cs
class Matcher (line 13) | public static class Matcher
method AllOf (line 15) | public static global::Entitas.IAllOfMatcher<Entity> AllOf(params int[]...
method AllOf (line 20) | public static global::Entitas.IAllOfMatcher<Entity> AllOf(params globa...
method AnyOf (line 25) | public static global::Entitas.IAnyOfMatcher<Entity> AnyOf(params int[]...
method AnyOf (line 30) | public static global::Entitas.IAnyOfMatcher<Entity> AnyOf(params globa...
FILE: tests/Entitas.Generators.Tests/snapshots/ContextGeneratorTests.SomeContext#SomeContext.g.verified.cs
class SomeContext (line 11) | public sealed partial class SomeContext : global::Entitas.Context<Some.E...
method SomeContext (line 16) | public SomeContext() :
FILE: tests/Entitas.Tests/CollectorTests.cs
class CollectorTests (line 6) | public class CollectorTests
method CollectorTests (line 12) | public CollectorTests()
method IsEmpty (line 19) | [Fact]
method ReturnsCollectedEntitiesOnAdded (line 26) | [Fact]
method OnlyCollectsMatchingEntities (line 36) | [Fact]
method CollectsEntitiesOnlyOnce (line 47) | [Fact]
method ClearsCollectedEntities (line 60) | [Fact]
method ClearsCollectedEntitiesWhenDeactivating (line 69) | [Fact]
method DoesNotCollectEntitiesWhenDeactivated (line 78) | [Fact]
method ContinuesCollectingWhenActivated (line 88) | [Fact]
method CanToString (line 102) | [Fact]
method RetainsEntityEvenAfterDestroy (line 110) | [Fact]
method ReleasesEntityWhenClearingCollectedEntities (line 120) | [Fact]
method RetainsEntitiesOnlyOnce (line 130) | [Fact]
method ReturnsCollectedEntitiesOnRemoved (line 141) | [Fact]
method ReturnsCollectedEntitiesOnAddedOrRemoved (line 153) | [Fact]
method ThrowsWhenGroupCountIsNotEqualGroupEventCount (line 168) | [Fact]
method ReturnsCollectedEntitiesOnMultipleGroupsAdded (line 181) | [Fact]
method CanToStringWithMultipleGroups (line 201) | [Fact]
method ReturnsCollectedEntitiesOnMultipleGroupsRemoved (line 216) | [Fact]
method ReturnsCollectedEntitiesOnMultipleGroupsAddedOrRemoved (line 239) | [Fact]
method ReturnsCollectedEntitiesOnMixedGroupEvents (line 267) | [Fact]
FILE: tests/Entitas.Tests/ContextInfoTests.cs
class ContextInfoTests (line 6) | public class ContextInfoTests
method SetsFieldsWithConstructorValues (line 8) | [Fact]
FILE: tests/Entitas.Tests/ContextTests.cs
class ContextTests (line 8) | public class ContextTests
method ContextTests (line 14) | public ContextTests()
method IncrementsCreationIndex (line 24) | [Fact]
method StartsWithGivenCreationIndex (line 31) | [Fact]
method IsEmpty (line 38) | [Fact]
method TotalEntityCountIsZero (line 44) | [Fact]
method CreatesEntity (line 50) | [Fact]
method HasDefaultContextInfo (line 60) | [Fact]
method CreatesComponentPools (line 69) | [Fact]
method CreatesEntityWithComponentPools (line 76) | [Fact]
method CanToString (line 83) | [Fact]
method HasCustomContextInfo (line 89) | [Fact]
method CreatesEntityWithSameContextInfo (line 96) | [Fact]
method ThrowsWhenComponentNamesLengthIsNotEqualToTotalComponents (line 103) | [Fact]
method GetsTotalEntityCount (line 110) | [Fact]
method HasEntitiesThatWereCreatedWithCreateEntity (line 117) | [Fact]
method ReturnsAllCreatedEntities (line 124) | [Fact]
method DestroysEntityAndRemovesIt (line 135) | [Fact]
method DestroysEntityAndRemovesAllComponents (line 145) | [Fact]
method RemovesOnDestroyEntityHandler (line 153) | [Fact]
method DestroysAllEntities (line 164) | [Fact]
method EnsuresSameDeterministicOrderWhenGettingEntitiesAfterDestroyingAllEntities (line 176) | [Fact]
method ThrowsWhenDestroyingAllEntitiesWithRetainedEntities (line 198) | [Fact]
method CachesEntities (line 209) | [Fact]
method UpdatesEntitiesCacheWhenCreatingEntity (line 215) | [Fact]
method UpdatesEntitiesCacheWhenDestroyingEntity (line 223) | [Fact]
method DispatchesOnEntityCreatedWhenCreatingNewEntity (line 232) | [Fact]
method DispatchesOnEntityWillBeDestroyedWhenDestroyingEntity (line 249) | [Fact]
method DispatchesOnEntityDestroyedWhenDestroyingEntity (line 267) | [Fact]
method ReleasesEntityAfterOnEntityDestroyed (line 284) | [Fact]
method ThrowsIfEntityIsReleasedBeforeItIsDestroyed (line 303) | [Fact]
method DispatchesOnGroupCreatedWhenCreatingNewGroup (line 310) | [Fact]
method DoesNotDispatchOnGroupCreatedWhenGroupAlreadyExists (line 326) | [Fact]
method RemovesEventHandlersWhenDestroyingEntity (line 334) | [Fact]
method WillNotRemoveOnEntityReleased (line 350) | [Fact]
method RemovesOnEntityReleasedAfterBeingDispatched (line 360) | [Fact]
method RemovesOnEntityReleasedAfterBeingDispatchedWhenDelayedRelease (line 372) | [Fact]
method ReturnsPushedEntity (line 390) | [Fact]
method OnlyReturnsReleasedEntities (line 400) | [Fact]
method ReturnsNewEntity (line 415) | [Fact]
method SetsUpEntityFromObjectPool (line 427) | [Fact]
method ThrowsWhenAddingComponentToDestroyedEntity (line 443) | [Fact]
method ThrowsWhenRemovingComponentFromDestroyedEntity (line 452) | [Fact]
method ThrowsWhenReplacingComponentOnDestroyedEntity (line 461) | [Fact]
method ThrowsWhenReplacingComponentWithNullOnDestroyedEntity (line 470) | [Fact]
method ThrowsWhenDestroyingDestroyedEntity (line 479) | [Fact]
method GetsEmptyGroupForMatcherWhenNoEntitiesWereCreated (line 488) | [Fact]
method GetsGroupWithMatchingEntities (line 496) | [Fact]
method GetsCachedGroup (line 516) | [Fact]
method CachedGroupContainsNewlyCreatedMatchingEntity (line 522) | [Fact]
method CachedGroupDoesNotContainEntityWhichIsNotMatchingAnymore (line 533) | [Fact]
method RemovesDestroyedEntityFromGroup (line 545) | [Fact]
method GroupDispatchesOnEntityRemovedAndOnEntityAddedWhenReplacingComponent (line 557) | [Fact]
method GroupDispatchesOnEntityUpdatedWithPreviousAndCurrentComponentWhenReplacingComponent (line 588) | [Fact]
method GroupWithMatcherNoneOfDoesNotDispatchOnEntityAddedWhenDestroyingEntity (line 612) | [Fact]
method DispatchesOnEntityAddedEventsAfterAllGroupsAreUpdated (line 624) | [Fact]
method DispatchesOnEntityRemovedEventsAfterAllGroupsAreUpdated (line 637) | [Fact]
method ThrowsWhenEntityIndexForKeyDoesNotExist (line 652) | [Fact]
method AddsEntityIndex (line 659) | [Fact]
method ThrowsWhenAddingEntityIndexWithSameName (line 671) | [Fact]
method ResetsCreationIndex (line 685) | [Fact]
method RemovesOnEntityCreated (line 693) | [Fact]
method RemovesOnEntityWillBeDestroyed (line 701) | [Fact]
method RemovesOnEntityDestroyed (line 709) | [Fact]
method RemovesOnGroupCreated (line 717) | [Fact]
method ClearsAllComponentPools (line 725) | [Fact]
method ClearsSpecificComponentPool (line 742) | [Fact]
method ThrowsWhenClearingComponentPoolThatDoesNotExist (line 756) | [Fact]
method PopsNewListFromListPool (line 763) | [Fact]
FILE: tests/Entitas.Tests/EntitasErrorMessagesTests.cs
class EntitasErrorMessagesTests (line 7) | public class EntitasErrorMessagesTests
method EntitasErrorMessagesTests (line 13) | public EntitasErrorMessagesTests(ITestOutputHelper output)
method WhenAddingComponentToDestroyedEntity (line 22) | [Fact]
method WhenRemovingComponentFromDestroyedEntity (line 29) | [Fact]
method WhenReplacingComponentOnDestroyedEntity (line 36) | [Fact]
method WhenAddingComponentTwice (line 43) | [Fact]
method WhenRemovingComponentThatDoesNotExist (line 50) | [Fact]
method WhenGettingComponentThatDoesNotExist (line 56) | [Fact]
method WhenRetainingEntityTwice (line 62) | [Fact]
method WhenReleasingEntityWithWrongOwner (line 70) | [Fact]
method WhenGettingSingleEntityFromGroupWhenMultipleExist (line 76) | [Fact]
method WhenCreatingUnbalancedGroup (line 86) | [Fact]
method WhenWrongContextInfoComponentNamesCount (line 97) | [Fact]
method WhenDestroyingRetainedEntity (line 105) | [Fact]
method WhenReleasingEntityBeforeDestroy (line 119) | [Fact]
method WhenUnknownEntityIndex (line 125) | [Fact]
method WhenDuplicateEntityIndex (line 131) | [Fact]
method WhenGettingSingleEntityFromCollectionWhenMultipleExist (line 143) | [Fact]
method WhenPrimaryEntityIndexHasMultipleEntitiesForKey (line 149) | [Fact]
method PrintErrorMessage (line 162) | void PrintErrorMessage(Action action)
FILE: tests/Entitas.Tests/EntitasExceptionTests.cs
class EntitasExceptionTests (line 6) | public class EntitasExceptionTests
method CreatesExceptionWithHintSeparatedByNewLine (line 8) | [Fact]
method IgnoresHintWhenNull (line 15) | [Fact]
FILE: tests/Entitas.Tests/EntitasStringExtension.cs
class EntitasStringExtension (line 6) | public class EntitasStringExtension
method DoesNotChangeStringWhenNotEndingWithSuffix (line 8) | [Fact]
method RemovesSuffixWhenEndingWithSuffix (line 14) | [Fact]
FILE: tests/Entitas.Tests/EntityIndexTests.cs
class EntityIndexTests (line 8) | public class EntityIndexTests
method EntityIndexTests (line 15) | public EntityIndexTests()
method HasNoEntities (line 23) | [Fact]
method GetsEntitiesForKey (line 29) | [Fact]
method MultiKeyGetsEntityForKey (line 40) | [Fact]
method RetainsEntity (line 51) | [Fact]
method MultiKeyRetainsEntity (line 60) | [Fact]
method HasExistingEntities (line 71) | [Fact]
method MultiKeyHasExistingEntities (line 79) | [Fact]
method ReleasesAndRemovesEntityFromIndexWhenComponentGetsRemoved (line 89) | [Fact]
method MultiKeyReleasesAndRemovesEntityFromIndexWhenComponentGetsRemoved (line 100) | [Fact]
method CanToString (line 115) | [Fact]
method ClearsIndexAndReleasesEntity (line 121) | [Fact]
method DoesNotAddEntitiesAnymore (line 132) | [Fact]
method HasExistingEntitiesWhenActivating (line 140) | [Fact]
method MultiKeyHasExistingEntitiesWhenActivating (line 153) | [Fact]
method AddsNewEntitiesWhenActivated (line 166) | [Fact]
method GetsLastComponentThatTriggeredAddingEntityToGroup (line 182) | [Fact]
method WorksWithNoneOf (line 206) | [Fact]
method CreateEntityIndex (line 238) | EntityIndex<TestEntity, string> CreateEntityIndex() =>
method CreateMultiKeyEntityIndex (line 244) | EntityIndex<TestEntity, string> CreateMultiKeyEntityIndex() => new Ent...
FILE: tests/Entitas.Tests/EntityTests.cs
class EntityTests (line 8) | public class EntityTests
method EntityTests (line 14) | public EntityTests()
method HasDefaultContextInfo (line 20) | [Fact]
method InitializesEntity (line 30) | [Fact]
method ReusesEntityAfterBeingDestroyed (line 45) | [Fact]
method ThrowsWhenGettingComponentThatDoesNotExist (line 64) | [Fact]
method GetsTotalComponentsCountWhenEmpty (line 71) | [Fact]
method GetsEmptyArrayOfComponentsWhenEmpty (line 77) | [Fact]
method GetsEmptyArrayOfComponentIndexesWhenEmpty (line 83) | [Fact]
method DoesNotHaveComponentWhenEmpty (line 89) | [Fact]
method DoesNotHaveComponentsWhenEmpty (line 95) | [Fact]
method DoesNotHaveAnyComponentsWhenEmpty (line 101) | [Fact]
method AddsComponent (line 107) | [Fact]
method ThrowsWhenRemovingComponentThatDoesNotExist (line 114) | [Fact]
method ReplacingNonExistingComponentAddsComponent (line 121) | [Fact]
method ThrowsWhenAddComponentTwice (line 128) | [Fact]
method RemovesComponent (line 136) | [Fact]
method ReplacesExistingComponent (line 144) | [Fact]
method DoesNotHaveAllComponentsWhenNotAllComponentsWereAdded (line 153) | [Fact]
method HasAnyComponentsWhenAnyComponentWasAdded (line 160) | [Fact]
method IsEmpty (line 167) | [Fact]
method IsNotEmptyWhenAnyComponentWasAdded (line 173) | [Fact]
method GetsAllComponents (line 180) | [Fact]
method GetsAllComponentIndexes (line 191) | [Fact]
method HasOtherComponent (line 202) | [Fact]
method HasComponentsWhenAllComponentsWereAdded (line 210) | [Fact]
method RemovesAllComponents (line 218) | [Fact]
method ToStringDoesNotRemoveComponentSuffix (line 230) | [Fact]
method UsesComponentToString (line 238) | [Fact]
method UsesFullComponentNameWithNamespaceIfToStringIsNotImplemented (line 245) | [Fact]
method GetsComponentPool (line 252) | [Fact]
method GetsSameComponentPoolInstance (line 259) | [Fact]
method PushesComponentToComponentPoolWhenRemoved (line 266) | [Fact]
method CreatesNewComponentWhenComponentPoolIsEmpty (line 278) | [Fact]
method GetsPooledComponent (line 290) | [Fact]
method DispatchesOnComponentAddedWhenAddingComponent (line 300) | [Fact]
method DispatchesOnComponentRemovedWhenRemovingComponent (line 318) | [Fact]
method DispatchesOnComponentRemovedBeforePushingComponentToPool (line 338) | [Fact]
method DispatchesOnComponentReplacedWhenReplacingComponent (line 352) | [Fact]
method ProvidesPreviousAndNewComponentOnComponentReplacedWhenReplacingWithDifferentComponent (line 374) | [Fact]
method ProvidesPreviousAndNewComponentOnComponentReplacedWhenReplacingWithSameComponent (line 394) | [Fact]
method DoesNotDispatchAnythingWhenReplacingNonExistingComponentWithNull (line 411) | [Fact]
method DispatchesOnComponentAddedWhenReplaceComponentWhichHasNotBeenAdded (line 420) | [Fact]
method DispatchesOnComponentRemovedWhenReplacingComponentWithNull (line 440) | [Fact]
method DispatchesOnComponentRemovedWhenRemovingAllComponents (line 458) | [Fact]
method DispatchesOnDestroyWhenCallingDestroy (line 469) | [Fact]
method RetainsEntity (line 478) | [Fact]
method ReleasesEntity (line 487) | [Fact]
method ThrowsWhenReleasingMoreThanItHasBeenRetained (line 496) | [Fact]
method ThrowsWhenRetainingTwiceWithSameOwner (line 505) | [Fact]
method ThrowsWhenReleasingWithUnknownOwner (line 514) | [Fact]
method ThrowsWhenReleasingWithOwnerWhichDoesNotRetainEntityAnymore (line 522) | [Fact]
method DoesNotDispatchOnEntityReleasedWhenRetaining (line 534) | [Fact]
method DispatchesOnEntityReleasedWhenRetainAndRelease (line 541) | [Fact]
method CachesComponentsAndIndexes (line 556) | [Fact]
method UpdatesCacheWhenNewComponentIsAdded (line 564) | [Fact]
method UpdatesCacheWhenComponentIsRemoved (line 575) | [Fact]
method UpdatesComponentsCacheButNotIndexesCacheWhenComponentIsReplaced (line 586) | [Fact]
method UpdatesIndexesCacheWhenAddingNewComponentWithReplaceComponent (line 597) | [Fact]
method DoesNotUpdateCacheWhenComponentIsReplacedWithSameComponent (line 606) | [Fact]
method UpdatesCacheWhenAllComponentsAreRemoved (line 617) | [Fact]
method CachesEntityDescription (line 628) | [Fact]
method UIpdatesCacheWhenNewComponentWasAdded (line 635) | [Fact]
method UpdatesCacheWhenComponentWasRemoved (line 644) | [Fact]
method DoesUpdateCacheWhenComponentWasReplaced (line 653) | [Fact]
method UpdatesCacheWhenAllComponentsWereRemoved (line 662) | [Fact]
method DoesNotUpdateCacheWhenEntityGetsRetained (line 671) | [Fact]
method DoesNotUpdateCacheWhenEntityGetsReleased (line 680) | [Fact]
method ReleasedEntityDoesNotHaveUpdatedCache (line 690) | [Fact]
method UpdatesCacheWhenRemoveAllComponentsIsCalledEvenIfEntityHasNoComponents (line 699) | [Fact]
method AssertHasComponentA (line 707) | void AssertHasComponentA(TestEntity entity, IComponent componentA = null)
method AssertHasNotComponentA (line 726) | void AssertHasNotComponentA(TestEntity entity)
FILE: tests/Entitas.Tests/GroupTests.cs
class GroupTests (line 9) | public class GroupTests
method GroupTests (line 15) | public GroupTests()
method DoesNotHaveEntitiesWhichHaveNotBeenAdded (line 22) | [Fact]
method DoesNotAddEntitiesToBuffer (line 28) | [Fact]
method IsEmpty (line 38) | [Fact]
method DoesNotContainEntity (line 44) | [Fact]
method AddsMatchingEntity (line 50) | [Fact]
method FillsBufferWithEntities (line 57) | [Fact]
method ClearsBufferBeforeFilling (line 67) | [Fact]
method DoesNotAddSameEntityTwice (line 79) | [Fact]
method EnumeratesGroup (line 87) | [Fact]
method ReturnsEnumerable (line 103) | [Fact]
method RemovesEntity (line 110) | [Fact]
method DoesNotAddEntityWhenEntityIsNotEnabled (line 119) | [Fact]
method DoesNotAddEntityWhenNotMatching (line 127) | [Fact]
method ReturnsNullWhenSingleEntityDoesNotExist (line 135) | [Fact]
method ReturnsSingleEntity (line 141) | [Fact]
method ThrowsWhenGettingSingleEntityAndMultipleMatchingEntitiesExist (line 148) | [Fact]
method DispatchesOnEntityAddedWhenMatchingEntityAdded (line 157) | [Fact]
method DoesNotDispatchOnEntityAddedWhenMatchingEntityAlreadyHasBeenAdded (line 176) | [Fact]
method DoesNotDispatchOnEntityAddedWhenEntityIsNotMatching (line 186) | [Fact]
method DispatchesOnEntityRemovedWhenEntityGotRemoved (line 196) | [Fact]
method DoesNotDispatchOnEntityRemovedWhenEntityDidNotGetRemoved (line 218) | [Fact]
method DispatchesOnEntityRemovedOnEntityAddedAndOnEntityUpdatedWhenUpdating (line 226) | [Fact]
method DoesNotDispatchOnEntityRemovedAndOnEntityAddedWhenUpdatingWhenGroupDoesNotContainEntity (line 269) | [Fact]
method RemovesAllEventHandlers (line 278) | [Fact]
method GetsCachedEntities (line 298) | [Fact]
method UpdatesCacheWhenAddingNewMatchingEntity (line 305) | [Fact]
method DoesNotUpdateCacheWhenAddingNotMatchingEntity (line 314) | [Fact]
method UpdatesCacheWhenRemovingEntity (line 324) | [Fact]
method DoesNotUpdateCacheWhenRemovingEntityThatWasNotAddedBefore (line 334) | [Fact]
method DoesNotUpdateCacheWhenUpdatingEntity (line 344) | [Fact]
method GetsCachedSingleEntities (line 353) | [Fact]
method UpdatesCacheWhenNewSingleEntityIsAdded (line 361) | [Fact]
method UpdatesCacheWhenSingleEntityIsRemoved (line 372) | [Fact]
method DoesNotUpdateCacheWhenSingleEntityIsUpdated (line 382) | [Fact]
method RetainsMatchedEntity (line 391) | [Fact]
method ReleasesRemovedEntity (line 399) | [Fact]
method UpdatesCacheBeforeCallingDelegatesSilently (line 408) | [Fact]
method UpdatesCacheBeforeCallingDelegates (line 424) | [Fact]
method UpdatesSingleEntityCacheBeforeCallingDelegatesSilently (line 440) | [Fact]
method UpdatesSingleEntityCacheBeforeCallingDelegates (line 456) | [Fact]
method RetainsEntityUntilAfterEventHandlersWereCalled (line 472) | [Fact]
method CanToString (line 489) | [Fact]
method CreateEntity (line 497) | public static TestEntity CreateEntity()
method AssertContains (line 504) | void AssertContains(params TestEntity[] expectedEntities)
method AssertContainsNot (line 518) | void AssertContainsNot(TestEntity entity)
method HandleSilently (line 525) | void HandleSilently(TestEntity entity) => _groupA.HandleEntitySilently...
method Handle (line 526) | void Handle(TestEntity entity, int index, IComponent component) => _gr...
method HandleAddA (line 527) | void HandleAddA(TestEntity entity) => Handle(entity, CID.ComponentA, e...
method HandleAddB (line 528) | void HandleAddB(TestEntity entity) => Handle(entity, CID.ComponentB, e...
method HandleRemoveA (line 529) | void HandleRemoveA(TestEntity entity, IComponent component) => Handle(...
method UpdateA (line 530) | void UpdateA(TestEntity entity, IComponent component) => _groupA.Updat...
FILE: tests/Entitas.Tests/MatcherTests.cs
class MatcherTests (line 7) | public class MatcherTests
method MatcherTests (line 15) | public MatcherTests()
method AllOfHasAllIndexes (line 36) | [Fact]
method AnyOfHasAllIndexes (line 44) | [Fact]
method AllOfNoneOfHasAllIndexes (line 52) | [Fact]
method AnyOfNoneOfHasAllIndexes (line 61) | [Fact]
method AllOfAnyOfHasAllIndexes (line 70) | [Fact]
method AllOfHasAllIndexesWithoutDuplicates (line 79) | [Fact]
method AnyOfHasAllIndexesWithoutDuplicates (line 87) | [Fact]
method AllOfNoneOfHasAllIndexesWithoutDuplicates (line 95) | [Fact]
method AnyOfNoneOfHasAllIndexesWithoutDuplicates (line 106) | [Fact]
method AllOfAnyOfHasAllIndexesWithoutDuplicates (line 117) | [Fact]
method AllOfCachesIndexes (line 128) | [Fact]
method AnyOfCachesIndexes (line 135) | [Fact]
method AllOfNoneOfCachesIndexes (line 142) | [Fact]
method AnyOfNoneOfCachesIndexes (line 149) | [Fact]
method AllOfAnyOfCachesIndexes (line 156) | [Fact]
method AllOfDoesNotMatch (line 163) | [Fact]
method AnyOfDoesNotMatch (line 169) | [Fact]
method AllOfNoneOfDoesNotMatch (line 175) | [Fact]
method AnyOfNoneOfDoesNotMatch (line 181) | [Fact]
method AllOfAnyOfDoesNotMatch (line 187) | [Fact]
method AllOfMatches (line 193) | [Fact]
method AnyOfMatches (line 201) | [Fact]
method AllOfNoneOfMatches (line 210) | [Fact]
method AnyOfNoneOfMatches (line 216) | [Fact]
method AllOfAnyOfMatches (line 224) | [Fact]
method AllOfMergesMatchersToNewMatcher (line 230) | [Fact]
method AnyOfMergesMatchersToNewMatcher (line 241) | [Fact]
method AllOfMergesMatchersToNewMatcherWithoutDuplicates (line 252) | [Fact]
method AnyOfMergesMatchersToNewMatcherWithoutDuplicates (line 263) | [Fact]
method AllOfThrowsWhenMergingMatcherWithMoreThanOneIndex (line 274) | [Fact]
method AnyOfThrowsWhenMergingMatcherWithMoreThanOneIndex (line 282) | [Fact]
method AllOfCanToString (line 290) | [Fact]
method AnyOfCanToString (line 296) | [Fact]
method AllOfNoneOfCanToString (line 302) | [Fact]
method AnyOfNoneOfCanToString (line 308) | [Fact]
method AllOfAnyOfCanToString (line 314) | [Fact]
method ToStringUsesComponentNamesWhenSet (line 320) | [Fact]
method ToStringUsesComponentNamesWhenMergedMatcher (line 328) | [Fact]
method AllOfNoneOfToStringUsesComponentNamesWhenComponentNamesSet (line 339) | [Fact]
method NoneOfMutatesAllOfMatcher (line 347) | [Fact]
method NoneOfMutatesAllOfMergedMatcher (line 358) | [Fact]
method NoneOfMutatesAnyOfMatcher (line 371) | [Fact]
method NoneOfMutatesAnyOfMergedMatcher (line 382) | [Fact]
method AnyOfMutatesAllOfMatcher (line 395) | [Fact]
method AnyOfMutatesAllOfMergedMatcher (line 406) | [Fact]
method UpdatesCacheWhenCallingAnyOf (line 419) | [Fact]
method UpdatesCacheWhenCallingNoneOf (line 428) | [Fact]
method UpdatesHashWhenChangedWithAnyOf (line 437) | [Fact]
method UpdatesHashWhenChangedWithNoneOf (line 445) | [Fact]
method EqualsEqualAllOfMatcher (line 453) | [Fact]
method EqualsEqualAllOfMatcherIndependentOfTheOrderOfIndexes (line 463) | [Fact]
method EqualsMergedMatcher (line 472) | [Fact]
method DoesNotEqualDifferentAllOfMatcher (line 484) | [Fact]
method AllOfDoesNotEqualAnyOfWithSameIndexes (line 493) | [Fact]
method DoesNotEqualDifferentTypeMatchersWithSameIndexes (line 502) | [Fact]
method EqualsCompoundMatcher (line 513) | [Fact]
method CreateEntity (line 528) | static TestEntity CreateEntity()
method CreateAllOfAB (line 535) | static IAllOfMatcher<TestEntity> CreateAllOfAB() => Matcher<TestEntity...
method CreateAnyOfAB (line 536) | static IAnyOfMatcher<TestEntity> CreateAnyOfAB() => Matcher<TestEntity...
method CreateAllOfABNoneOfCD (line 538) | static ICompoundMatcher<TestEntity> CreateAllOfABNoneOfCD() => Matcher...
method CreateAnyOfABNoneOfCD (line 542) | static ICompoundMatcher<TestEntity> CreateAnyOfABNoneOfCD() => Matcher...
method CreateAllOfABAnyOfCD (line 546) | static ICompoundMatcher<TestEntity> CreateAllOfABAnyOfCD() => Matcher<...
method AssertIndexesEqual (line 550) | static void AssertIndexesEqual(int[] indexes, params int[] expectedInd...
method AllOfAB (line 557) | static IAllOfMatcher<TestEntity> AllOfAB() => Matcher<TestEntity>.AllO...
method AllOfBA (line 558) | static IAllOfMatcher<TestEntity> AllOfBA() => Matcher<TestEntity>.AllO...
FILE: tests/Entitas.Tests/ParallelSystemTests.cs
class ParallelSystemTests (line 7) | [Collection(nameof(ParallelSystemTests))]
method ParallelSystemTests (line 12) | public ParallelSystemTests()
method ProcessesEntity (line 17) | [Fact]
method ProcessesAllEntities (line 27) | [Fact]
method ThrowsWhenThreadThrows (line 42) | [Fact]
method RecoversFromException (line 53) | [Fact]
FILE: tests/Entitas.Tests/PrimaryEntityIndexTests.cs
class PrimaryEntityIndexTests (line 6) | public class PrimaryEntityIndexTests
method PrimaryEntityIndexTests (line 13) | public PrimaryEntityIndexTests()
method ReturnsNullWhenGettingEntityForUnknownKey (line 21) | [Fact]
method GetsEntityForKey (line 27) | [Fact]
method MultiKeyGetsEntityForKey (line 34) | [Fact]
method RetainsEntity (line 42) | [Fact]
method MultiKeyRetainsEntity (line 50) | [Fact]
method HasExistingEntity (line 58) | [Fact]
method ReleasesAndRemovesEntityFromIndexWhenComponentGetsRemoved (line 66) | [Fact]
method MultiKeyReleasesAndRemovesEntityFromIndexWhenComponentGetsRemoved (line 76) | [Fact]
method ThrowsWhenAddingEntityForSameKey (line 87) | [Fact]
method CanToString (line 95) | [Fact]
method ClearsIndexAndReleasesEntity (line 101) | [Fact]
method DoesNotAddEntitiesAnymore (line 110) | [Fact]
method HasExistingEntityWhenActivating (line 119) | [Fact]
method MultiKeyHasExistingEntityWhenActivating (line 129) | [Fact]
method AddsNewEntitiesWhenActivated (line 139) | [Fact]
method CreatePrimaryEntityIndex (line 149) | PrimaryEntityIndex<TestEntity, string> CreatePrimaryEntityIndex()
method CreateMultiKeyPrimaryEntityIndex (line 157) | PrimaryEntityIndex<TestEntity, string> CreateMultiKeyPrimaryEntityIndex()
FILE: tests/Entitas.Tests/ReactiveSystemTests.cs
class ReactiveSystemTests (line 6) | public class ReactiveSystemTests
method ReactiveSystemTests (line 10) | public ReactiveSystemTests()
method DoesNotExecuteWhenNoEntitiesWereCollected (line 15) | [Fact]
method ExecutesWhenTriggered (line 23) | [Fact]
method ExecutesOnlyOnceWhenTriggered (line 32) | [Fact]
method RetainsAndReleasesCollectedEntities (line 42) | [Fact]
method CollectsChangedEntitiesInExecute (line 53) | [Fact]
method CollectsCreatedEntitiesInExecute (line 64) | [Fact]
method DoesNotExecuteWhenNotTriggered (line 77) | [Fact]
method DeactivatesAndWillNotTrigger (line 86) | [Fact]
method ActivatesAndWillTriggerAgain (line 96) | [Fact]
method ClearsCollectedEntities (line 107) | [Fact]
method CanToString (line 117) | [Fact]
method RemovedExecutesWhenTriggered (line 123) | [Fact]
method RemovedExecutesOnlyOnceWhenTriggered (line 134) | [Fact]
method RemovedDoesNotExecuteWhenNotTriggered (line 146) | [Fact]
method RetainsEntitiesUntilExecuteCompleted (line 158) | [Fact]
method AddedRemovedExecutesWhenAdded (line 176) | [Fact]
method AddedRemovedExecutesWhenRemoved (line 185) | [Fact]
method ExecutesWhenTriggeredOnMultipleContexts (line 196) | [Fact]
method FiltersEntities (line 230) | [Fact]
method ClearsReactiveSystemAfterExecute (line 269) | [Fact]
method CreateAddedSystem (line 281) | ReactiveSystemSpy CreateAddedSystem() => new ReactiveSystemSpy(_contex...
method CreateRemovedSystem (line 282) | ReactiveSystemSpy CreateRemovedSystem() => new ReactiveSystemSpy(_cont...
method CreateAddedRemovedSystem (line 283) | ReactiveSystemSpy CreateAddedRemovedSystem() => new ReactiveSystemSpy(...
method CreateEntityAB (line 285) | TestEntity CreateEntityAB() => _context.CreateEntity()
method CreateEntityAC (line 289) | TestEntity CreateEntityAC() => _context.CreateEntity()
method CreateEntityABC (line 293) | TestEntity CreateEntityABC() => _context.CreateEntity()
method AssertEntities (line 298) | static void AssertEntities(IReactiveSystemSpy system, TestEntity entit...
FILE: tests/Entitas.Tests/SystemsTests.cs
class SystemsTests (line 6) | public class SystemsTests
method SystemsTests (line 11) | public SystemsTests()
method InitializesInitializeSystemSpy (line 17) | [Fact]
method ExecutesExecuteSystemSpy (line 26) | [Fact]
method CleansUpCleanupSystemSpy (line 35) | [Fact]
method TearsDownTearDownSystemSpy (line 44) | [Fact]
method InitializesExecutesCleansUpAndTearsDownSystem (line 53) | [Fact]
method IgnoresAddingNull (line 76) | [Fact]
method ReturnsSystemsWhenAddingSystem (line 82) | [Fact]
method InitializesIInitializeSystem (line 88) | [Fact]
method RemovesIInitializeSystem (line 97) | [Fact]
method ExecutesIExecuteSystem (line 107) | [Fact]
method RemovesIExecuteSystem (line 116) | [Fact]
method AddsReactiveSystem (line 126) | [Fact]
method RemovesReactiveSystem (line 135) | [Fact]
method CleansUpICleanupSystem (line 145) | [Fact]
method RemovesICleanupSystem (line 154) | [Fact]
method TearsDownITearDownSystem (line 164) | [Fact]
method RemovesITearDownSystem (line 173) | [Fact]
method RemovesMixedSystem (line 183) | [Fact]
method InitializesExecutesCleansUpAndTearsDownSystems (line 203) | [Fact]
method InitializesExecutesCleansUpAndTearsDownSystemsRecursively (line 226) | [Fact]
method ClearsReactiveSystems (line 253) | [Fact]
method ClearsReactiveSystemsRecursively (line 267) | [Fact]
method DeactivatesReactiveSystems (line 284) | [Fact]
method DeactivatesReactiveSystemsRecursively (line 298) | [Fact]
method ActivatesReactiveSystems (line 315) | [Fact]
method ActivatesReactiveSystemsRecursively (line 334) | [Fact]
method CreateReactiveSystem (line 356) | ReactiveSystemSpy CreateReactiveSystem()
FILE: tests/Entitas.Tests/fixtures/Components.cs
class ComponentA (line 3) | public sealed class ComponentA : IComponent { }
class ComponentB (line 5) | public sealed class ComponentB : IComponent { }
class ComponentC (line 7) | public sealed class ComponentC : IComponent { }
class Component (line 9) | public static class Component
class CID (line 16) | public static class CID
class TestComponentsEntityExtension (line 26) | public static class TestComponentsEntityExtension
method AddComponentA (line 28) | public static TestEntity AddComponentA(this Entity entity)
method AddComponentB (line 34) | public static TestEntity AddComponentB(this Entity entity)
method AddComponentC (line 40) | public static TestEntity AddComponentC(this Entity entity)
method HasComponentA (line 46) | public static bool HasComponentA(this Entity entity)
method HasComponentB (line 51) | public static bool HasComponentB(this Entity entity)
method HasComponentC (line 56) | public static bool HasComponentC(this Entity entity)
method RemoveComponentA (line 61) | public static TestEntity RemoveComponentA(this Entity entity)
method RemoveComponentB (line 67) | public static TestEntity RemoveComponentB(this Entity entity)
method RemoveComponentC (line 73) | public static TestEntity RemoveComponentC(this Entity entity)
method GetComponentA (line 79) | public static ComponentA GetComponentA(this Entity entity)
method GetComponentB (line 84) | public static ComponentB GetComponentB(this Entity entity)
method GetComponentC (line 89) | public static ComponentC GetComponentC(this Entity entity)
method ReplaceComponentA (line 94) | public static TestEntity ReplaceComponentA(this Entity entity, Compone...
method ReplaceComponentB (line 100) | public static TestEntity ReplaceComponentB(this Entity entity, Compone...
method ReplaceComponentC (line 106) | public static TestEntity ReplaceComponentC(this Entity entity, Compone...
FILE: tests/Entitas.Tests/fixtures/Contexts.cs
class TestEntityExtension (line 4) | public static class TestEntityExtension
method AddUser (line 6) | public static TestEntity AddUser(this TestEntity entity, string name, ...
method RemoveUser (line 12) | public static TestEntity RemoveUser(this TestEntity entity)
method GetUser (line 18) | public static UserComponent GetUser(this TestEntity entity)
class OtherTestEntityExtension (line 24) | public static class OtherTestEntityExtension
method AddUser (line 26) | public static void AddUser(this OtherTestEntity entity, string name, i...
method RemoveUser (line 31) | public static void RemoveUser(this OtherTestEntity entity)
method GetUser (line 36) | public static UserComponent GetUser(this OtherTestEntity entity)
class TestEntity (line 42) | public sealed class TestEntity : Entity { }
class TestContext (line 44) | public sealed class TestContext : Context<TestEntity>
method TestContext (line 48) | public TestContext(int totalComponents) :
method TestContext (line 51) | public TestContext(int totalComponents, string[] componentNames, Type[...
method TestContext (line 54) | public TestContext(int totalComponents, int startCreationIndex, Contex...
class OtherTestEntity (line 64) | public sealed class OtherTestEntity : Entity { }
class OtherTestContext (line 66) | public sealed class OtherTestContext : Context<OtherTestEntity>
method OtherTestContext (line 68) | public OtherTestContext() :
class TestUserMatcher (line 82) | public static class TestUserMatcher
FILE: tests/Entitas.Tests/fixtures/Systems/CleanupSystemSpy.cs
class CleanupSystemSpy (line 3) | public class CleanupSystemSpy : ICleanupSystem
method Cleanup (line 9) | public void Cleanup() => _didCleanup += 1;
FILE: tests/Entitas.Tests/fixtures/Systems/ExecuteSystemSpy.cs
class ExecuteSystemSpy (line 3) | public class ExecuteSystemSpy : IExecuteSystem
method Execute (line 9) | public void Execute() => _didExecute += 1;
FILE: tests/Entitas.Tests/fixtures/Systems/InitializeSystemSpy.cs
class InitializeSystemSpy (line 3) | public class InitializeSystemSpy : IInitializeSystem
method Initialize (line 9) | public void Initialize() => _didInitialize += 1;
FILE: tests/Entitas.Tests/fixtures/Systems/ReactiveSystemSpy.cs
type IReactiveSystemSpy (line 5) | public interface IReactiveSystemSpy
class ReactiveSystemSpy (line 14) | public class ReactiveSystemSpy : ReactiveSystem<TestEntity>, IReactiveSy...
method ReactiveSystemSpy (line 32) | public ReactiveSystemSpy(ICollector<TestEntity> collector) : base(coll...
method ReactiveSystemSpy (line 34) | public ReactiveSystemSpy(ICollector<TestEntity> collector, Func<Entity...
method GetTrigger (line 39) | protected override ICollector<TestEntity> GetTrigger(IContext<TestEnti...
method Filter (line 41) | protected override bool Filter(TestEntity entity) => _filter?.Invoke(e...
method Initialize (line 43) | public void Initialize() => _didInitialize += 1;
method Execute (line 45) | protected override void Execute(List<TestEntity> entities)
method Cleanup (line 52) | public void Cleanup() => _didCleanup += 1;
method TearDown (line 54) | public void TearDown() => _didTearDown += 1;
FILE: tests/Entitas.Tests/fixtures/Systems/TearDownSystemSpy.cs
class TearDownSystemSpy (line 3) | public class TearDownSystemSpy : ITearDownSystem
method TearDown (line 9) | public void TearDown() => _didTearDown += 1;
FILE: tests/Entitas.Tests/fixtures/Systems/TestParallelSystem.cs
class TestParallelSystem (line 5) | public sealed class TestParallelSystem : ParallelSystem<TestEntity>
method TestParallelSystem (line 9) | public TestParallelSystem(TestContext context) : base(context.GetGroup...
method Execute (line 11) | protected override void Execute(TestEntity entity)
FILE: tests/Entitas.Tests/fixtures/UserComponent.cs
class UserComponent (line 3) | public sealed class UserComponent : IComponent
method ToString (line 8) | public override string ToString()
class UserComponent (line 16) | public sealed class UserComponent : IComponent
method ToString (line 8) | public override string ToString()
FILE: tests/Entitas.Unity.Tests/SystemInfoTests.cs
class SystemInfoTests (line 6) | public class SystemInfoTests
method SystemInfoTests (line 10) | public SystemInfoTests()
method CreatesSystemInfoForInitializeSystem (line 15) | [Fact]
method CreatesSystemInfoForExecuteSystem (line 38) | [Fact]
method CreatesSystemInfoForCleanupSystem (line 52) | [Fact]
method CreatesSystemInfoForTeardownSystem (line 66) | [Fact]
method CreatesSystemInfoForReactiveSystem (line 80) | [Fact]
method UsesNameOfDebugSystem (line 94) | [Fact(Skip = "Needs Unity")]
method AddsExecutionDuration (line 103) | [Fact]
method AddsCleanupDuration (line 113) | [Fact]
method AddsAnotherExecutionDuration (line 123) | [Fact]
method AddsAnotherCleanupDuration (line 134) | [Fact]
method ResetsDurations (line 145) | [Fact]
method KeepsMinDurationAfterReset (line 165) | [Fact]
FILE: tests/Entitas.Unity.Tests/fixtures/TestCleanupSystem.cs
class TestCleanupSystem (line 3) | public class TestCleanupSystem : ICleanupSystem
method Cleanup (line 5) | public void Cleanup() { }
FILE: tests/Entitas.Unity.Tests/fixtures/TestExecuteSystem.cs
class TestExecuteSystem (line 3) | public class TestExecuteSystem : IExecuteSystem
method Execute (line 5) | public void Execute() { }
FILE: tests/Entitas.Unity.Tests/fixtures/TestInitializeSystem.cs
class TestInitializeSystem (line 3) | public class TestInitializeSystem : IInitializeSystem
method Initialize (line 5) | public void Initialize() { }
FILE: tests/Entitas.Unity.Tests/fixtures/TestReactiveSystem.cs
class TestReactiveSystem (line 4) | public class TestReactiveSystem : ReactiveSystem<Entity>
method TestReactiveSystem (line 6) | public TestReactiveSystem(IContext<Entity> context) : base(context) { }
method GetTrigger (line 8) | protected override ICollector<Entity> GetTrigger(IContext<Entity> cont...
method Filter (line 13) | protected override bool Filter(Entity entity)
method Execute (line 18) | protected override void Execute(List<Entity> entities) { }
FILE: tests/Entitas.Unity.Tests/fixtures/TestTearDownSystem.cs
class TestTearDownSystem (line 3) | public class TestTearDownSystem : ITearDownSystem
method TearDown (line 5) | public void TearDown() { }
Condensed preview — 546 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,074K chars).
[
{
"path": ".editorconfig",
"chars": 1040,
"preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntab_w"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 535,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 591,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
},
{
"path": ".github/ISSUE_TEMPLATE/question.md",
"chars": 182,
"preview": "---\nname: Question\nabout: Ask a question and get help from the community\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Ask "
},
{
"path": ".github/workflows/build.yml",
"chars": 1862,
"preview": "name: Build\n\non: [ workflow_call, workflow_dispatch ]\n\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - name"
},
{
"path": ".github/workflows/ci.yml",
"chars": 159,
"preview": "name: CI\n\non:\n push:\n branches: [ main ]\n pull_request:\n branches: [ main ]\n\njobs:\n build:\n uses: sschmid/En"
},
{
"path": ".github/workflows/release.yml",
"chars": 563,
"preview": "name: Release\n\non: workflow_dispatch\n\njobs:\n build:\n uses: sschmid/Entitas/.github/workflows/build.yml@main\n releas"
},
{
"path": ".gitignore",
"chars": 414,
"preview": "# OS\n.DS_Store\nThumbs.db\n\n# Solution\nobj\nbin\n*.userprefs\n*.user\nTestResults\n\n# IDEs\n.idea\n.vs\n.vscode\n**/Assets/Plugins/"
},
{
"path": ".gitmodules",
"chars": 123,
"preview": "[submodule \"unity/Unity-2021.3.0f1\"]\n\tpath = unity/Unity-2021.3.0f1\n\turl = https://github.com/sschmid/Unity-2021.3.0f1.g"
},
{
"path": ".sln.dotsettings/.gitignore",
"chars": 20,
"preview": ".DS_Store\nThumbs.db\n"
},
{
"path": ".sln.dotsettings/CodeStyle.DotSettings",
"chars": 2837,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": ".sln.dotsettings/InspectionSettings.DotSettings",
"chars": 1548,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": ".sln.dotsettings/PatternsAndTemplates.DotSettings",
"chars": 2303,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": "CHANGELOG.md",
"chars": 87482,
"preview": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changel"
},
{
"path": "CONTRIBUTING.md",
"chars": 2812,
"preview": "Contributing to Entitas\n=======================\n\nThe project is hosted on [GitHub][repo] where you can [report issues][i"
},
{
"path": "Directory.Build.props",
"chars": 1700,
"preview": "<Project>\n\n <PropertyGroup>\n <DefaultNetTargetFramework>net6.0</DefaultNetTargetFramework>\n <DefaultTargetFramewo"
},
{
"path": "Directory.Build.targets",
"chars": 621,
"preview": "<Project>\n\n <PropertyGroup Label=\"NuGet\">\n <Authors>Simon Schmid</Authors>\n <PackageLicenseExpression>MIT</Packag"
},
{
"path": "Entitas.sln",
"chars": 7398,
"preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n#\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"Enti"
},
{
"path": "Entitas.sln.DotSettings",
"chars": 2258,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": "EntitasUpgradeGuide.md",
"chars": 25774,
"preview": "Entitas Upgrade Guide\n=====================\n\nEntitas provides automated migration tools to help upgrading to new version"
},
{
"path": "LICENSE.md",
"chars": 1080,
"preview": "The MIT License\n\nCopyright (c) 2014 - 2023 Simon Schmid\n\nPermission is hereby granted, free of charge, to any person obt"
},
{
"path": "README.md",
"chars": 10296,
"preview": "<p align=\"center\">\n <img src=\"images/Entitas-Header.png\" alt=\"Entitas\">\n</p>\n<p align=\"center\">\n <a href=\"https://"
},
{
"path": "Unity3D.props",
"chars": 1146,
"preview": "<Project>\n\n <Choose>\n <When Condition=\"$([MSBuild]::IsOsPlatform(Windows))\">\n <PropertyGroup>\n <OSApplic"
},
{
"path": "benchmarks/Entitas.Benchmarks/AERCBenchmarks.cs",
"chars": 1064,
"preview": "#nullable disable\n\nusing BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Order;\n\n// | Method | Mean | Err"
},
{
"path": "benchmarks/Entitas.Benchmarks/CreateComponentBenchmarks.cs",
"chars": 1546,
"preview": "#nullable disable\n\nusing BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Order;\n\n// | Method | Mean | Error"
},
{
"path": "benchmarks/Entitas.Benchmarks/DelegateBenchmarks.cs",
"chars": 1224,
"preview": "#nullable disable\n\nusing System;\nusing BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Order;\n\n// | Method | "
},
{
"path": "benchmarks/Entitas.Benchmarks/Entitas.Benchmarks.csproj",
"chars": 490,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>$(DefaultTest"
},
{
"path": "benchmarks/Entitas.Benchmarks/Program.cs",
"chars": 197,
"preview": "using BenchmarkDotNet.Running;\nusing Entitas.Benchmarks;\n\n// BenchmarkRunner.Run<CreateComponentBenchmarks>();\n// Bench"
},
{
"path": "gen/Entitas.Generators/Component/ComponentDeclaration.cs",
"chars": 11111,
"preview": "using System.Collections.Generic;\nusing System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\n\n"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystem.cs",
"chars": 2293,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.CleanupSystems.cs",
"chars": 2089,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagno"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.ComponentIndex.cs",
"chars": 1228,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.ContextExtension.cs",
"chars": 5248,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.ContextInitializationMethod.cs",
"chars": 2816,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagno"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.EntityExtension.cs",
"chars": 5400,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.EntityIndexExtension.cs",
"chars": 5863,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagno"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.EventSystems.cs",
"chars": 2416,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagno"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.Events.cs",
"chars": 10334,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.Matcher.cs",
"chars": 2063,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Component/ComponentGenerator.cs",
"chars": 17735,
"preview": "using System.Collections.Generic;\nusing System.Collections.Immutable;\nusing System.Linq;\nusing System.Threading;\nusing M"
},
{
"path": "gen/Entitas.Generators/Component/ContextInitializationMethodDeclaration.cs",
"chars": 3833,
"preview": "using System.Collections.Generic;\nusing System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\n\n"
},
{
"path": "gen/Entitas.Generators/Component/EventDeclaration.cs",
"chars": 3344,
"preview": "using System.Collections.Generic;\n\nnamespace Entitas.Generators\n{\n public struct EventDeclaration\n {\n publi"
},
{
"path": "gen/Entitas.Generators/Component/MemberDeclaration.cs",
"chars": 3291,
"preview": "using System.Collections.Generic;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\n"
},
{
"path": "gen/Entitas.Generators/Context/ContextDeclaration.cs",
"chars": 1161,
"preview": "using System;\nusing Microsoft.CodeAnalysis;\n\nnamespace Entitas.Generators\n{\n public readonly struct ContextDeclaratio"
},
{
"path": "gen/Entitas.Generators/Context/ContextGenerator.ComponentIndex.cs",
"chars": 1450,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Context/ContextGenerator.Context.cs",
"chars": 1811,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Context/ContextGenerator.Entity.cs",
"chars": 796,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Context/ContextGenerator.Matcher.cs",
"chars": 1837,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing static Entitas.Generators.Templates;\n\nname"
},
{
"path": "gen/Entitas.Generators/Context/ContextGenerator.cs",
"chars": 3578,
"preview": "using System.Linq;\nusing System.Threading;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\nusing Micr"
},
{
"path": "gen/Entitas.Generators/Entitas.Generators.csproj",
"chars": 644,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>$(DefaultGeneratorFramework)</TargetFramework"
},
{
"path": "gen/Entitas.Generators/Entitas.Generators.csproj.DotSettings",
"chars": 566,
"preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
},
{
"path": "gen/Entitas.Generators/EntitasAnalyzerConfigOptions.cs",
"chars": 4262,
"preview": "using System;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.Diagnostics;\n\nnamespace Entitas.Generators\n{\n "
},
{
"path": "gen/Entitas.Generators/Templates.cs",
"chars": 2718,
"preview": "using System;\nusing System.Linq;\n\nnamespace Entitas.Generators\n{\n public static class Templates\n {\n public "
},
{
"path": "samples/Unity/.editorconfig",
"chars": 1015,
"preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntab_w"
},
{
"path": "samples/Unity/Assets/Plugins.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 2ce47528879ae462f9e00aef0ce4c26b\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "samples/Unity/Assets/Sample/Editor/CustomObjectDrawer.cs",
"chars": 554,
"preview": "using System;\nusing Entitas.Unity.Editor;\nusing UnityEditor;\n\npublic class CustomObjectDrawer : ITypeDrawer, IDefaultIn"
},
{
"path": "samples/Unity/Assets/Sample/Editor/CustomObjectDrawer.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: f139ea7f89bfd430ca7ae4bdf876b48d\ntimeCreated: 1487547487\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Editor/PersonComponentDrawer.cs",
"chars": 752,
"preview": "using System;\nusing Entitas;\nusing Entitas.Unity.Editor;\nusing UnityEditor;\n\npublic class PersonComponentDrawer : ICompo"
},
{
"path": "samples/Unity/Assets/Sample/Editor/PersonComponentDrawer.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: be7914664e5264280ac6c734caa48785\ntimeCreated: 1460665985\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Editor.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: d0d330747609f469d9222aaca8596864\nfolderAsset: yes\ntimeCreated: 1455739666\nlicenseType: Pro\nDe"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArray2DComponent.cs",
"chars": 168,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyArray2DCompone"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArray2DComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: f31e6e9c6ad04f4b92f11a0a2e0ca9b6\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArray3DComponent.cs",
"chars": 169,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyArray3DCompone"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArray3DComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: d616f6566f1f471cbbc373c057650786\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArrayComponent.cs",
"chars": 165,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyArrayComponent"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyArrayComponent.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: a4fc4922dfd4d490db56d6180cd6436b\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyCharComponent.cs",
"chars": 160,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyCharComponent "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyCharComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 3b77b0155ae246a4b0a585ff0ef3a153\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyCustomObjectComponent.cs",
"chars": 308,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyCustomObjectCo"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyCustomObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: eecc2a73ca63436485acaf861665bf71\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDateTimeComponent.cs",
"chars": 182,
"preview": "using System;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class My"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDateTimeComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: d00ba15066ed4ae89571832b1702c7fb\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDictArrayComponent.cs",
"chars": 269,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDictArrayComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 244ce0249a4241ef98ecb6a50e3403cd\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDictionaryComponent.cs",
"chars": 222,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDictionaryComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 8d1bfafeb2824ce3ad3f77528ebf1e9b\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDontDrawComponent.cs",
"chars": 214,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing Entitas.Unity;\n\n[Context(typeof(GameContext)), DontDrawCompone"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyDontDrawComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 9de382a297974f668bf96f81d0322aec\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyFlagComponent.cs",
"chars": 138,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyFlagComponent"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyFlagComponent.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: ffc162171ca324d40985306053b0bc26\ntimeCreated: 1455739666\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyHashSetComponent.cs",
"chars": 208,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyHashSetComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 86b49e56cb2c45b19c2e1e71e79e4969\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyJaggedArrayComponent.cs",
"chars": 173,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyJaggedArrayCom"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyJaggedArrayComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 441ea2d1ab54433f8f478b274b5895ff\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyListArrayComponent.cs",
"chars": 209,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyListArrayComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: b58f3f34a6f34172bc4c93fed2a79b18\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyListComponent.cs",
"chars": 202,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyListComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: eaaacc8162f64d25b71d157ba61d15ce\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyMemberListComponent.cs",
"chars": 458,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyMemberListComp"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyMemberListComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: e189a338eb33432d8209e890900c8271\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyMonoBehaviourSubClassComponent.cs",
"chars": 273,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyMonoBehaviourSubClassComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: e95c61aa3b494c1f8f289c1be247369a\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyPersonComponent.cs",
"chars": 189,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyPersonComponen"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyPersonComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: a7251cf074c2417d9ab628ebc39842cc\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyPropertyComponent.cs",
"chars": 179,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyPropertyCompon"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyPropertyComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: cc2f53ac7164424ab6219efff219eef2\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MySimpleObjectComponent.cs",
"chars": 407,
"preview": "using System.Collections.Generic;\nusing Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npu"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MySimpleObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 55948d11b3424ecd81ec848e2b893a33\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MySystemObjectComponent.cs",
"chars": 177,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MySystemObjectCo"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MySystemObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: c7d9ee97b0ad4688a2ce1b1b88d1e047\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyUniqueComponent.cs",
"chars": 172,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext)), Unique]\npublic sealed class MyUnique"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyUniqueComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 33368b26a3264a8e8db86b4299e8d7e1\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyUnsupportedObjectComponent.cs",
"chars": 326,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyUnsupportedObj"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/MyUnsupportedObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 97beb1b2da064350968b5eb8d89e386d\ntimeCreated: 1667936395"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyAnimationCurveComponent.cs",
"chars": 199,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyAnimationCurveComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: cd6ffe73cc91487da0205160330a0203\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoolComponent.cs",
"chars": 160,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyBoolComponent "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoolComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 6114f99c89284d02bba2818f93d4b488\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoundsComponent.cs",
"chars": 184,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cl"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyBoundsComponent.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 607c2d9959a6e4db58ece12f4d320a0f\ntimeCreated: 1455739666\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyColorComponent.cs",
"chars": 181,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyColorComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: de957506614f4d9fb03ea4b5267ca0bc\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyDoubleComponent.cs",
"chars": 164,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyDoubleComponen"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyDoubleComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: ae6e38e9a97b44d5b79250a7a84d4c83\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyEnumComponent.cs",
"chars": 218,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyEnumComponent "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyEnumComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 13ec734e954d45daa3feb3293b4d4e02\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFlagsComponent.cs",
"chars": 263,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyFlagsComponent"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFlagsComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 7eca5917c1e943029dca756272db5679\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFloatComponent.cs",
"chars": 162,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyFloatComponent"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyFloatComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 614252080b7d4a03b49a0ed5d2e1682d\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyGameObjectComponent.cs",
"chars": 191,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyGameObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 67a47ddd017646da9db95a6c52a7bbd5\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyIntComponent.cs",
"chars": 158,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext))]\npublic sealed class MyIntComponent :"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyIntComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 38b3229004104b9aa19c34de5ee2812a\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyRectComponent.cs",
"chars": 179,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyRectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 314993c54360444ebd3ac933a667f11a\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyStringComponent.cs",
"chars": 259,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\n\n[Context(typeof(GameContext)), Context(typeof(InputContext))]\npubli"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyStringComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: b4c6e703065242cc95c2c2917ecb9c42\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTexture2DComponent.cs",
"chars": 189,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTexture2DComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: ee9f3e8394d44a99867d24b55aa3e4f4\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTextureComponent.cs",
"chars": 185,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyTextureComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: c4cdcbb081214b9d9b2b086ecd49f209\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyUnityObjectComponent.cs",
"chars": 188,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyUnityObjectComponent.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: d0cfe10a31f443a580841ff640c31a00\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector2Component.cs",
"chars": 185,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector2Component.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 4f7d2cc8dac94298abcf672906c17cf7\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector3Component.cs",
"chars": 185,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector3Component.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 5df4c97495d94a75ab8ab1a5f1ccef46\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector4Component.cs",
"chars": 185,
"preview": "using Entitas;\nusing Entitas.Generators.Attributes;\nusing UnityEngine;\n\n[Context(typeof(GameContext))]\npublic sealed cla"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes/MyVector4Component.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 3ef196888c544a12b34f68e104a3af96\ntimeCreated: 1667936720"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components/UnityBuiltInTypes.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: fc42c211fea84a67a0ed15d5d9a3cb8b\ntimeCreated: 1667936693"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components Scene.unity",
"chars": 4748,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components Scene.unity.meta",
"chars": 174,
"preview": "fileFormatVersion: 2\nguid: 8646dd6b1da3a4568b60fe085252f2bf\ntimeCreated: 1455739666\nlicenseType: Pro\nDefaultImporter:\n "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Components.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 713b02e4749e4da889797530373f60e3\ntimeCreated: 1667936307"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/ComponentsController.cs",
"chars": 5795,
"preview": "using System;\nusing System.Collections.Generic;\nusing Entitas.Unity;\nusing UnityEngine;\nusing static GameMyGameObjectMat"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/ComponentsController.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: b7a971593563c452781677abaf62f41b\ntimeCreated: 1455739666\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/ContextInitialization.cs",
"chars": 432,
"preview": "using Entitas.Generators.Attributes;\n\npublic static partial class ContextInitialization\n{\n public static void Initial"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/ContextInitialization.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 3de139e489844b6fb5d326d5cfe52aff\ntimeCreated: 1690465874"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/GameContext.cs",
"chars": 57,
"preview": "using Entitas;\n\npartial class GameContext : IContext { }\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/GameContext.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: a13516d2b8cd420c8a7613f2f3bc4480\ntimeCreated: 1690465381"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/InputContext.cs",
"chars": 58,
"preview": "using Entitas;\n\npartial class InputContext : IContext { }\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts/InputContext.cs.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 87b3133efe3d436eb8e6f77b85622d45\ntimeCreated: 1690465697"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Contexts.meta",
"chars": 83,
"preview": "fileFormatVersion: 2\nguid: 68d5ad989369407ca8a797a7f2921ff1\ntimeCreated: 1690465858"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/AReactiveSystem.cs",
"chars": 529,
"preview": "using System.Collections.Generic;\nusing System.Threading;\nusing Entitas;\n\npublic class AReactiveSystem : ReactiveSystem"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/AReactiveSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 8133bd2e30cfc4cd9a1ab205c8b3a288\ntimeCreated: 1432070018\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/CleanupSystem.cs",
"chars": 95,
"preview": "using Entitas;\n\npublic class CleanupSystem : ICleanupSystem\n{\n public void Cleanup() { }\n}\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/CleanupSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 26667bf2484024d36b5cca1aaf56f8de\ntimeCreated: 1475865147\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/FastSystem.cs",
"chars": 149,
"preview": "using System.Threading;\nusing Entitas;\n\npublic class FastSystem : IExecuteSystem\n{\n public void Execute()\n {\n "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/FastSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 4dbba0f12e8184b3a8ab30d670ca9692\ntimeCreated: 1432070018\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/MixedSystem.cs",
"chars": 454,
"preview": "using Entitas;\n\npublic class MixedSystem : IInitializeSystem, IExecuteSystem, ICleanupSystem, ITearDownSystem\n{\n pub"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/MixedSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 4ec7357cbe250481ebe3f79876871c99\ntimeCreated: 1475869353\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/ProcessRandomValueSystem.cs",
"chars": 566,
"preview": "using System.Collections.Generic;\nusing Entitas;\n\npublic class ProcessRandomValueSystem : ReactiveSystem<Game.Entity>\n{\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/ProcessRandomValueSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: e29e8e4de9c25452882614e48c0287a3\ntimeCreated: 1437218791\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/RandomDurationSystem.cs",
"chars": 195,
"preview": "using System.Threading;\nusing UnityEngine;\nusing Entitas;\n\npublic class RandomDurationSystem : IExecuteSystem\n{\n pub"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/RandomDurationSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 3d923a0b40aec4c62a883bcf5d32266e\ntimeCreated: 1432152477\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/RandomValueSystem.cs",
"chars": 311,
"preview": "using Entitas;\nusing UnityEngine;\n\npublic class RandomValueSystem : IExecuteSystem\n{\n readonly GameContext _context;"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/RandomValueSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 5470c556108894357a24a68dd92da480\ntimeCreated: 1437218791\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeExecuteSystem.cs",
"chars": 253,
"preview": "using System.Threading;\nusing Entitas;\n\npublic class SlowInitializeExecuteSystem : IInitializeSystem, IExecuteSystem\n{\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeExecuteSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 651ddcb189b494f1fb48addac219efb9\ntimeCreated: 1439754586\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeSystem.cs",
"chars": 166,
"preview": "using System.Threading;\nusing Entitas;\n\npublic class SlowInitializeSystem : IInitializeSystem\n{\n public void Initial"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowInitializeSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 57c7a0da41d924d80a58d9e78528fbbe\ntimeCreated: 1439754586\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowSystem.cs",
"chars": 149,
"preview": "using System.Threading;\nusing Entitas;\n\npublic class SlowSystem : IExecuteSystem\n{\n public void Execute()\n {\n "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SlowSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: ae066f52c9bcc4079a6c20142b5150fa\ntimeCreated: 1432070018\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeExecuteSystem.cs",
"chars": 99,
"preview": "using Entitas;\n\npublic class SomeExecuteSystem : IExecuteSystem\n{\n public void Execute() { }\n}\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeExecuteSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 351bfdecb9eef45019db0b774e0b0652\ntimeCreated: 1433409297\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeExecuteSystem.cs",
"chars": 162,
"preview": "using Entitas;\n\npublic class SomeInitializeExecuteSystem : IInitializeSystem, IExecuteSystem\n{\n public void Initiali"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeExecuteSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: ebb325d92872b412b8b4da1e47651ca7\ntimeCreated: 1439754586\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeReactiveSystem.cs",
"chars": 544,
"preview": "using System.Collections.Generic;\nusing Entitas;\n\npublic class SomeInitializeReactiveSystem : ReactiveSystem<Game.Entit"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeReactiveSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 13904dc9959364090bef258311f3183a\ntimeCreated: 1439754586\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeSystem.cs",
"chars": 108,
"preview": "using Entitas;\n\npublic class SomeInitializeSystem : IInitializeSystem\n{\n public void Initialize() { }\n}\n"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeInitializeSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 27103eba44f8a4d8b927a9bcdaf488a5\ntimeCreated: 1439754586\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeReactiveSystem.cs",
"chars": 479,
"preview": "using System.Collections.Generic;\nusing Entitas;\n\npublic class SomeReactiveSystem : ReactiveSystem<Game.Entity>\n{\n p"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/SomeReactiveSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 5c67dabd77edc40f1b8a6d30e6b54799\ntimeCreated: 1433409297\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/TearDownSystem.cs",
"chars": 149,
"preview": "using Entitas;\n\npublic class TearDownSystem : ITearDownSystem\n{\n public void TearDown()\n {\n UnityEngine.De"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems/TearDownSystem.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: e9f7d828623b24718b8d95c4ec445697\ntimeCreated: 1475865479\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems Scene.unity",
"chars": 4748,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems Scene.unity.meta",
"chars": 174,
"preview": "fileFormatVersion: 2\nguid: e2a9126de78c74296a0da24cc0363b9a\ntimeCreated: 1455739666\nlicenseType: Pro\nDefaultImporter:\n "
},
{
"path": "samples/Unity/Assets/Sample/Runtime/Systems.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 6b323d75517db4e3ba60b474a4c6c595\nfolderAsset: yes\ntimeCreated: 1455739666\nlicenseType: Pro\nDe"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/SystemsController.cs",
"chars": 3125,
"preview": "using Entitas;\nusing Entitas.Unity;\nusing UnityEngine;\n\npublic class SystemsController : MonoBehaviour\n{\n GameContext"
},
{
"path": "samples/Unity/Assets/Sample/Runtime/SystemsController.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 673279bc6aa4344039fa3f2674348d6f\ntimeCreated: 1455739666\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Runtime.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 48b3b593753ab4ac48e8623ed018ed73\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor/Tests/ContextTests.cs",
"chars": 938,
"preview": "using System.Linq;\nusing NUnit.Framework;\nusing Entitas;\n\n[TestFixture]\nclass ContextTests\n{\n [Test]\n public void "
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor/Tests/ContextTests.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 640477ba833484d4b9ca68074efa0c9a\ntimeCreated: 1483966795\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor/Tests/EntityLinkTests.cs",
"chars": 3031,
"preview": "using System;\nusing Entitas;\nusing Entitas.Unity;\nusing NUnit.Framework;\nusing UnityEngine;\n\npublic class EntityLinkTes"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor/Tests/EntityLinkTests.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 56872c04364084e3c9fdd237e9f388c4\ntimeCreated: 1486169352\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor/Tests.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 99230376fec554ead9805e15092fc6a8\nfolderAsset: yes\ntimeCreated: 1450119188\nlicenseType: Pro\nDe"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Editor.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 24957586ae4bc4cc383f088a35ff09de\nfolderAsset: yes\ntimeCreated: 1455740206\nlicenseType: Pro\nDe"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Manual Tests/Collector Destructor/Collector Destructor.unity",
"chars": 3304,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nSceneSettings:\n m_ObjectHideFlags: 0\n m_PVSData: \n m_PVSObjects"
},
{
"path": "samples/Unity/Assets/Sample/Tests/Manual Tests/Collector Destructor/Collector Destructor.unity.meta",
"chars": 174,
"preview": "fileFormatVersion: 2\nguid: 2bcfbecd3f0a64750a3d8f54424d44fe\ntimeCreated: 1454970059\nlicenseType: Pro\nDefaultImporter:\n "
},
{
"path": "samples/Unity/Assets/Sample/Tests/Manual Tests/Collector Destructor/CollectorDestructorController.cs",
"chars": 929,
"preview": "using UnityEngine;\nusing Entitas;\nusing Entitas.Unity;\nusing UnityEditor;\n\npublic class CollectorDestructorController : "
}
]
// ... and 346 more files (download for full content)
About this extraction
This page contains the full source code of the sschmid/Entitas GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 546 files (963.8 KB), approximately 246.4k tokens, and a symbol index with 1906 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.