Skip to content

odogono/elsinore-js

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Elsinore.js

A Javascript Entity Component System

Build Status

NPM NPM

Introduction

Basic Usage

Concepts

API

Component

A Component is a collection of data, identified by a url. (RE-PHRASE)

Entity

An Entity in the strictest sense is merely an integer. Elsinore has an Entity class which provides a number of helpful functions for working with it.

An entities id is made up of two parts - the entity id, and an entityset id.

EntitySet

There are generally two kinds of EntitySet - synchronous and asynchronous. As you might guess, the latter has a promise based API.

EntitySets may be persistent or transient. The default EntitySet is memory based and asynchronous. EntitySets that are persistent (and asynchronous) may use a database, such as redis, indexeddb or sqlite.

You can add components and entities to an entityset.

An EntitySet will assign an id to an entity or component if it does not already have one.

EntitySets have a UUID.

EntitySets may emit events when entities and components are added, removed, or updated.

Memory EntitySet

If an entity or component has an id already, the EntitySet will not replace it.

Adding a component to the EntitySet creates a copy of it.

Retrieving a component from the EntitySet does not copy it, so that you can mutate the component directly.

Query

Queries are used to select a subset of entities from an EntitySet. The result is usually another EntitySet or a single Entity.

Registry

Schema

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published