{"id":21233531,"url":"https://github.com/friflo/friflo.engine-docs","last_synced_at":"2025-04-14T00:33:48.993Z","repository":{"id":218362774,"uuid":"746229375","full_name":"friflo/Friflo.Engine-docs","owner":"friflo","description":"API Reference for ECS (Entity Component System) Friflo.Engine.ECS","archived":false,"fork":false,"pushed_at":"2024-12-13T12:10:30.000Z","size":6857,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-13T12:38:53.833Z","etag":null,"topics":["csharp","ecs","ecs-framework","entity-component-system"],"latest_commit_sha":null,"homepage":"https://github.com/friflo/Friflo.Engine.ECS","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/friflo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-21T13:10:17.000Z","updated_at":"2024-12-13T12:10:35.000Z","dependencies_parsed_at":"2024-03-14T08:29:08.705Z","dependency_job_id":"fbcda628-bf74-4cdb-83e0-9d4240030b50","html_url":"https://github.com/friflo/Friflo.Engine-docs","commit_stats":null,"previous_names":["friflo/friflo.engine-docs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2FFriflo.Engine-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2FFriflo.Engine-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2FFriflo.Engine-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/friflo%2FFriflo.Engine-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/friflo","download_url":"https://codeload.github.com/friflo/Friflo.Engine-docs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235000384,"owners_count":18920170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","ecs","ecs-framework","entity-component-system"],"created_at":"2024-11-20T23:59:16.216Z","updated_at":"2025-01-21T18:29:47.902Z","avatar_url":"https://github.com/friflo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"[![logo](docs/images/friflo-ECS.svg)](https://github.com/friflo/Friflo.Engine.ECS)        ![SPLASH](docs/images/paint-splatter.svg)\n\n\n[![Github Repo](https://img.shields.io/badge/Friflo.Engine.ECS-grey?logo=github\u0026logoColor=white)](https://github.com/friflo/Friflo.Engine.ECS)\n[![Demos](https://img.shields.io/badge/Demos-22aa22?logo=github\u0026logoColor=white)](https://github.com/friflo/Friflo.Engine.ECS-Demos)\n[![Wiki](https://img.shields.io/badge/Wiki-A200FF?logo=gitbook\u0026logoColor=white)](https://friflo.gitbook.io/friflo.engine.ecs)\n\n# **Friflo.Engine.ECS  ·  API Reference**\n\n\nThis project contains the C# API reference of [**Friflo Engine ECS - GitHub**](https://github.com/friflo/Friflo.Engine.ECS).    \n\n| Namespace                                                             | Description                                                                                                                   |\n| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| [Friflo.Engine.ECS](api/Friflo.Engine.ECS.md)                         | Contains types and methods to query, add, remove or change [Entity](api/Entity.md)'s in an [EntityStore](api/EntityStore.md). |\n| [Friflo.Engine.ECS.Collections](api/Friflo.Engine.ECS.Collections.md) | Contains types to enable data binding for common .NET applications.                                                           |\n| [Friflo.Engine.ECS.Index](api/Friflo.Engine.ECS.Index.md)             | Enables search for indexed component values in O(1) for types: string, int, enum, float, Guid, DateTime, .... \u003cbr/\u003eSupport efficient entity relationships like entity links (foreign keys) and back links (JOIN's).|\n| [Friflo.Engine.ECS.Serialize](api/Friflo.Engine.ECS.Serialize.md)     | Contains types and methods to serialize / deserialize [Entity](api/Entity.md)'s as JSON.                                      |\n| [Friflo.Engine.ECS.Systems](api/Friflo.Engine.ECS.Systems.md)         | Used to organize and execute a set of systems within a [SystemRoot](api/SystemRoot.md).                                       |\n| [Friflo.Engine.ECS.Utils](api/Friflo.Engine.ECS.Utils.md)             | Utility types and methods typically used by generic libraries.                                                                |\n\nCommon used structs and classes.\n\n| Type                                          |           | Description\n| --------------------------------------------- | --------- | -----------------------------\n| [EntityStore](api/EntityStore.md)             | class     | Container of entities. Typically called `World` in other implementations.\n| [Entity](api/Entity.md)                       | struct    | An object in an EntityStore. Contains components, tags, scripts and child entities.\n|                                               |           |\n| [IComponent](api/IComponent.md)               | interface | Attribute structs as component types.\n| [ITag](api/ITag.md)                           | interface | Attribute structs as tags.\n| [Script](api/Script.md)                       | class     | Base class of scripts that can be added to entities.\n|                                               |           |\n| [ArchetypeQuery](api/ArchetypeQuery.md)       | class     | Used to return components and entities matching the assigned query filter.\n| [QueryJob](api/QueryJob.md)                   | class     | Enables parallel query execution.\n| [ParallelJobRunner](api/ParallelJobRunner.md) | class     | Required for parallel (multi threaded) query execution.\n| [CommandBuffer](api/CommandBuffer.md)         | class     | Record entity changes on arbitrary threads and Playback() them on the main thread.\n|                                               |           |\n| [EventFilter](api/EventFilter.md)             | class     | Used to filter structural changes made to entities like added/removed components/tags.\n| [EventRecorder](api/EventRecorder.md)         | class     | Record entity changes like adding/removing commands/tags. Required for EventFilter's.\n|                                               |           |\n| [EntityBatch](api/EntityBatch.md)             | class     | Used to optimize adding/removing components/tags to entities via a fluent API.\n| [CreateEntityBatch](api/CreateEntityBatch.md) | class     | Used to optimize entity creation via a fluent API.\n|                                               |           |\n| [EntitySerializer](api/EntitySerializer.md)   | class     | Enables serialization of entities to / from JSON.\n\n\n## Hello World\n\nThe hello world examples demonstrates the creation of some entities  \nand their movement using a simple `ForEachEntity()` call.  \n\nMuch more examples at [Friflo.Engine.ECS · Examples](https://github.com/friflo/Friflo.Engine.ECS#-examples)\n\n```csharp\npublic struct Velocity : IComponent { public Vector3 value; }\n\npublic static void HelloWorld()\n{\n    var store = new EntityStore();\n    for (int n = 0; n \u003c 10; n++) {\n        store.CreateEntity(new Position(n, 0, 0), new Velocity{ value = new Vector3(0, n, 0)});\n    }\n    var query = store.Query\u003cPosition, Velocity\u003e();\n    query.ForEachEntity((ref Position position, ref Velocity velocity, Entity entity) =\u003e {\n        position.value += velocity.value;\n    });\n}\n```\n\n\u003ca href=\"https://sdl-wasm-sample-web.vercel.app/docs/MonoGame/\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/friflo/Friflo.Engine-docs/main/docs/images/MonoGame-wasm.png\" width=\"600\" height=\"405\"/\u003e\n\u003c/a\u003e\n\nInteractive Browser Demo showing MonoGame WebAssembly integration. [Try out Demo](https://sdl-wasm-sample-web.vercel.app/docs/MonoGame/).  \n*Note:* WebGL rendering performance cannot compete with Desktop build.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriflo%2Ffriflo.engine-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffriflo%2Ffriflo.engine-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriflo%2Ffriflo.engine-docs/lists"}