{"id":19017462,"url":"https://github.com/junkdog/dominatrix-odb","last_synced_at":"2025-07-31T09:33:10.210Z","repository":{"id":5153061,"uuid":"6321144","full_name":"junkdog/dominatrix-odb","owner":"junkdog","description":"Library for working with libGDX + Artemis Entity System Framework, primarily dealing with runtime introspection and live editing.","archived":false,"fork":false,"pushed_at":"2015-02-21T14:26:19.000Z","size":10453,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-07-14T17:09:37.911Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Metaswitch/python-common","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junkdog.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}},"created_at":"2012-10-21T14:18:09.000Z","updated_at":"2017-08-26T20:41:32.000Z","dependencies_parsed_at":"2022-08-22T15:10:47.774Z","dependency_job_id":null,"html_url":"https://github.com/junkdog/dominatrix-odb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/junkdog/dominatrix-odb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junkdog%2Fdominatrix-odb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junkdog%2Fdominatrix-odb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junkdog%2Fdominatrix-odb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junkdog%2Fdominatrix-odb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junkdog","download_url":"https://codeload.github.com/junkdog/dominatrix-odb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junkdog%2Fdominatrix-odb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268017314,"owners_count":24181666,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-08T19:47:06.208Z","updated_at":"2025-07-31T09:33:10.172Z","avatar_url":"https://github.com/junkdog.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Take Note\n\n*This small library was initially conceived during the early ECS days and hasn't really been keeping \nup-to-date with developments in [artemis-odb](https://github.com/junkdog/artemis-odb). While some of the\nfunctionality is useful, it's a little too diverse. The good bits could favorably be migrated to [artemis-odb-contrib](https://github.com/DaanVanYperen/artemis-odb-contrib)*\n\ndominatrix-odb is a small, but diverse library for working with [libGDX](http://libgdx.badlogicgames.com/) + \n[Artemis Entity System Framework](http://gamadu.com/artemis/), primarily dealing with runtime introspection and live editing.\n\n## Features\n - EntityFactoryManager for creating entities from json.\n - Serialize entities to json.\n - Type-safe annotation-driven injection from _.properties_ files.\n - UI views for:\n    - reflexively editing entities \n      ([screenshot 1](https://raw.github.com/wiki/junkdog/dominatrix-odb/images/rebelescape-editor-reflexive-03.png))\n    - toggling entity systems\n      ([screenshot 2](https://raw.github.com/wiki/junkdog/dominatrix-odb/images/rebelescape-004-systems.jpg))\n    - adding components to entities\n      ([screenshot 1](https://raw.github.com/wiki/junkdog/dominatrix-odb/images/rebelescape-editor-reflexive-03.png))\n    - inspecting entities (pretty-printed/json)\n      ([screenshot 3](https://github.com/junkdog/dominatrix-odb/wiki/entity-inspection-psytripper))\n\n## Assumptions/Limitations/State of Affairs\n - Components are required to reside in a single package: imposed by component  discovery and\n   json unserializing.\n - Uses a slightly modified [fork](https://github.com/junkdog/artemis-odb) of artemis, allowing\n   for systems to be toggled at runtime.\n - The demo uses [Project Lombok](http://projectlombok.org/) to reduce boilerplate nonsense. See their site\n   for Eclipse/Netbeans installation. (At a later stage, there may be a delomboked - vanilla java - version).\n\n\n## Usage\nJavadocs are a little scarce at the moment, see demo project for details.\n\n### The EntityFactoryManager\nIn the screen or main class:\n```java\n    entityFactoryManager = EntityFactoryManager.from(\n        Gdx.files.internal(\"data/archetypes.json\"), JsonKey.class, true);\n                \n    World world = new World();\n\tworld.setManager(entityFactoryManager);       \n    // more artemis managers/systems\n    \n    world.initialize();\n```\n\nIn the render method, make sure to call `entityFactoryManager.addNewToWorld()`; this\nhas to be done outside of Artemis' processing loop.\n\nTo create an entity, simple call `entityFactoryManager.create(\"name-of-entity\")`.\n\n### Demo\nImport _dominatrix-demo_ into eclipse as a Maven project, alternatively run `mvn package' inside the\ndemo folder,  this creates an executable jar-with-dependencies under _dominatrix-demo/target_.\nAfter starting, press **F1** to toggle keyboard shortcuts: the shortcuts demonstrate the bulk of\nthe functionality.\n\n### Maven\n\n**Nota Bene:** Maven repository on github isn't up to date; dominatrix has to be manually\ninstalled (`mvn -Pgdx-odb install`) prior to being used.\n\n```xml\n    \u003crepositories\u003e\n    \t\u003crepository\u003e\n    \t\t\u003cid\u003edominatrix-odb\u003c/id\u003e\n    \t\t\u003curl\u003ehttps://raw.github.com/junkdog/dominatrix-odb/mvn-repo/\u003c/url\u003e\n    \t\t\u003csnapshots\u003e\n    \t\t\t\u003cenabled\u003etrue\u003c/enabled\u003e\n    \t\t\u003c/snapshots\u003e\n    \t\u003c/repository\u003e\n    \u003c/repositories\u003e\n    \n    \u003cdependencies\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003enet.onedaybeard\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003eartemis-odb\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e0.3.2\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003enet.onedaybeard\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003edominatrix-gdx-odb\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e0.2.0-SNAPSHOT\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\u003c/dependencies\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunkdog%2Fdominatrix-odb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunkdog%2Fdominatrix-odb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunkdog%2Fdominatrix-odb/lists"}