## Classes
AngleComponentexternal:Serpentity.Component
BodyComponentexternal:Serpentity.Component
CoupledEntitiesComponentexternal:Serpentity.Component
PixiContainerComponentexternal:Serpentity.Component
PhysicalWithAttributesNodeexternal:Serpentity.Node
PhysicalNodeexternal:Serpentity.Node
RenderableCoupleNodeexternal:Serpentity.Node
RenderableWithAttributesNodeexternal:Serpentity.Node
RenderableNodeexternal:Serpentity.Node
Sumo
AttributesToRenderableSystemexternal:Serpentity.System
CreateCouplingLineSystemexternal:Serpentity.System
PhysicsToAttributesSystemexternal:Serpentity.System
PhysicsWorldControlSystemexternal:Serpentity.System
RenderSystemexternal:Serpentity.System
## Members
PixiFactory : object

Factory object that contains many methods to create prefab pixi objects

SumoFactory : object

Factory object that contains many methods to create prefab entities.

## AngleComponent ⇐ external:Serpentity.Component **Kind**: global class **Extends**: external:Serpentity.Component ### new AngleComponent(config) Component that stores an angle | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ## BodyComponent ⇐ external:Serpentity.Component **Kind**: global class **Extends**: external:Serpentity.Component ### new BodyComponent(config) Component that stores a body for physics calculation | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ## CoupledEntitiesComponent ⇐ external:Serpentity.Component **Kind**: global class **Extends**: external:Serpentity.Component ### new CoupledEntitiesComponent(config) Component that stores a number of entities coupled to this one. | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ## PixiContainerComponent ⇐ external:Serpentity.Component **Kind**: global class **Extends**: external:Serpentity.Component * [PixiContainerComponent](#PixiContainerComponent) ⇐ external:Serpentity.Component * [new PixiContainerComponent(config)](#new_PixiContainerComponent_new) * [.container](#PixiContainerComponent+container) ### new PixiContainerComponent(config) Component that stores a pixi container | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### pixiContainerComponent.container The properthy that holds the pixi container **Kind**: instance property of [PixiContainerComponent](#PixiContainerComponent) **Properties** | Name | Type | | --- | --- | | container | external:PixiJs.Container | ## PhysicalWithAttributesNode ⇐ external:Serpentity.Node **Kind**: global class **Extends**: external:Serpentity.Node * [PhysicalWithAttributesNode](#PhysicalWithAttributesNode) ⇐ external:Serpentity.Node * [new PhysicalWithAttributesNode()](#new_PhysicalWithAttributesNode_new) * [.types](#PhysicalWithAttributesNode.types) ### new PhysicalWithAttributesNode() Node identifying an entity that can interact with physics and has components updated from its values ### PhysicalWithAttributesNode.types Holds the types that are used to identify an entity with a physics object and external attributes **Kind**: static property of [PhysicalWithAttributesNode](#PhysicalWithAttributesNode) **Properties** | Name | Type | | --- | --- | | types | object | ## PhysicalNode ⇐ external:Serpentity.Node **Kind**: global class **Extends**: external:Serpentity.Node * [PhysicalNode](#PhysicalNode) ⇐ external:Serpentity.Node * [new PhysicalNode()](#new_PhysicalNode_new) * [.types](#PhysicalNode.types) ### new PhysicalNode() Node identifying an entity that can interact with physics ### PhysicalNode.types Holds the types that are used to identify an entity with a physical body **Kind**: static property of [PhysicalNode](#PhysicalNode) **Properties** | Name | Type | | --- | --- | | types | object | ## RenderableCoupleNode ⇐ external:Serpentity.Node **Kind**: global class **Extends**: external:Serpentity.Node * [RenderableCoupleNode](#RenderableCoupleNode) ⇐ external:Serpentity.Node * [new RenderableCoupleNode()](#new_RenderableCoupleNode_new) * [.types](#RenderableCoupleNode.types) ### new RenderableCoupleNode() Node identifying an entity that has coupled entities and can be rendered ### RenderableCoupleNode.types Holds the types that are used to identify a renderable couple **Kind**: static property of [RenderableCoupleNode](#RenderableCoupleNode) **Properties** | Name | Type | | --- | --- | | types | object | ## RenderableWithAttributesNode ⇐ external:Serpentity.Node **Kind**: global class **Extends**: external:Serpentity.Node * [RenderableWithAttributesNode](#RenderableWithAttributesNode) ⇐ external:Serpentity.Node * [new RenderableWithAttributesNode()](#new_RenderableWithAttributesNode_new) * [.types](#RenderableWithAttributesNode.types) ### new RenderableWithAttributesNode() Node identifying a renderable entity, should have position and a symbol to render ### RenderableWithAttributesNode.types Holds the types that are used to identify a renderable with external attributes **Kind**: static property of [RenderableWithAttributesNode](#RenderableWithAttributesNode) **Properties** | Name | Type | | --- | --- | | types | object | ## RenderableNode ⇐ external:Serpentity.Node **Kind**: global class **Extends**: external:Serpentity.Node * [RenderableNode](#RenderableNode) ⇐ external:Serpentity.Node * [new RenderableNode()](#new_RenderableNode_new) * [.types](#RenderableNode.types) ### new RenderableNode() Node identifying a renderable entity, should have a pixi renderable ### RenderableNode.types Holds the types that are used to identify a renderable entity **Kind**: static property of [RenderableNode](#RenderableNode) **Properties** | Name | Type | | --- | --- | | types | object | ## Sumo **Kind**: global class **Properties** | Name | Type | Default | Description | | --- | --- | --- | --- | | [element] | HTMLElement | | the element in which to render. Required, will throw if not provided | | [fps] | Number | 60 | the fps target to maintain | | [verticalResolution] | Number | 224 | how many pixels to render in the vertical axis (gets scaled if the canvas is larger) | | [aspectRatio] | Array.<Number> | [2.76, 1] | the aspect ratio experssed as an array of two numbers, where aspect ratio x:y is [x, y] (eg. [16, 9]) | * [Sumo](#Sumo) * [new Sumo(config)](#new_Sumo_new) * [.startLoop()](#Sumo+startLoop) * [.pauseLoop()](#Sumo+pauseLoop) ### new Sumo(config) Sumo - main entry point. Attached to window->load | Param | Type | Description | | --- | --- | --- | | config | object | the configuration to extend the object | ### sumo.startLoop() Starts the main loop. Resets the FPS (if you change it it won't go live until after you stop and start the loop) **Kind**: instance method of [Sumo](#Sumo) ### sumo.pauseLoop() Pauses the loop **Kind**: instance method of [Sumo](#Sumo) ## AttributesToRenderableSystem ⇐ external:Serpentity.System **Kind**: global class **Extends**: external:Serpentity.System * [AttributesToRenderableSystem](#AttributesToRenderableSystem) ⇐ external:Serpentity.System * [new AttributesToRenderableSystem(config)](#new_AttributesToRenderableSystem_new) * [.added(engine)](#AttributesToRenderableSystem+added) * [.removed()](#AttributesToRenderableSystem+removed) * [.update(currentFrameDuration)](#AttributesToRenderableSystem+update) ### new AttributesToRenderableSystem(config) Updates the renderables based on their attribuets | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### attributesToRenderableSystem.added(engine) Initializes system when added. Requests renderable nodes and attaches to event listeners to add / remove them to pixi stage **Kind**: instance method of [AttributesToRenderableSystem](#AttributesToRenderableSystem) | Param | Type | Description | | --- | --- | --- | | engine | external:Serpentity.Engine | the serpentity engine to which we are getting added | ### attributesToRenderableSystem.removed() Clears system resources when removed. **Kind**: instance method of [AttributesToRenderableSystem](#AttributesToRenderableSystem) ### attributesToRenderableSystem.update(currentFrameDuration) Runs on every update of the loop. Updates the graphics so they're rendered correctly **Kind**: instance method of [AttributesToRenderableSystem](#AttributesToRenderableSystem) | Param | Type | Description | | --- | --- | --- | | currentFrameDuration | Number | the duration of the current frame | ## CreateCouplingLineSystem ⇐ external:Serpentity.System **Kind**: global class **Extends**: external:Serpentity.System * [CreateCouplingLineSystem](#CreateCouplingLineSystem) ⇐ external:Serpentity.System * [new CreateCouplingLineSystem(config)](#new_CreateCouplingLineSystem_new) * [.added(engine)](#CreateCouplingLineSystem+added) * [.removed()](#CreateCouplingLineSystem+removed) * [.update(currentFrameDuration)](#CreateCouplingLineSystem+update) ### new CreateCouplingLineSystem(config) Renders renderable objects using pixi | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### createCouplingLineSystem.added(engine) Initializes system when added. Requests renderable nodes and **Kind**: instance method of [CreateCouplingLineSystem](#CreateCouplingLineSystem) | Param | Type | Description | | --- | --- | --- | | engine | external:Serpentity.Engine | the serpentity engine to which we are getting added | ### createCouplingLineSystem.removed() Clears system resources when removed. **Kind**: instance method of [CreateCouplingLineSystem](#CreateCouplingLineSystem) ### createCouplingLineSystem.update(currentFrameDuration) Runs on every update of the loop. Does nothing. **Kind**: instance method of [CreateCouplingLineSystem](#CreateCouplingLineSystem) | Param | Type | Description | | --- | --- | --- | | currentFrameDuration | Number | the duration of the current frame | ## PhysicsToAttributesSystem ⇐ external:Serpentity.System **Kind**: global class **Extends**: external:Serpentity.System * [PhysicsToAttributesSystem](#PhysicsToAttributesSystem) ⇐ external:Serpentity.System * [new PhysicsToAttributesSystem(config)](#new_PhysicsToAttributesSystem_new) * [.added(engine)](#PhysicsToAttributesSystem+added) * [.removed()](#PhysicsToAttributesSystem+removed) * [.update(currentFrameDuration)](#PhysicsToAttributesSystem+update) ### new PhysicsToAttributesSystem(config) Distribuets physics data to the related components | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### physicsToAttributesSystem.added(engine) Initializes system when added. Requests physics nodes **Kind**: instance method of [PhysicsToAttributesSystem](#PhysicsToAttributesSystem) | Param | Type | Description | | --- | --- | --- | | engine | external:Serpentity.Engine | the serpentity engine to which we are getting added | ### physicsToAttributesSystem.removed() Clears system resources when removed. **Kind**: instance method of [PhysicsToAttributesSystem](#PhysicsToAttributesSystem) ### physicsToAttributesSystem.update(currentFrameDuration) Runs on every update of the loop. Updates the other components based on physics **Kind**: instance method of [PhysicsToAttributesSystem](#PhysicsToAttributesSystem) | Param | Type | Description | | --- | --- | --- | | currentFrameDuration | Number | the duration of the current frame | ## PhysicsWorldControlSystem ⇐ external:Serpentity.System **Kind**: global class **Extends**: external:Serpentity.System * [PhysicsWorldControlSystem](#PhysicsWorldControlSystem) ⇐ external:Serpentity.System * [new PhysicsWorldControlSystem(config)](#new_PhysicsWorldControlSystem_new) * [.added(engine)](#PhysicsWorldControlSystem+added) * [.removed()](#PhysicsWorldControlSystem+removed) * [.update(currentFrameDuration)](#PhysicsWorldControlSystem+update) ### new PhysicsWorldControlSystem(config) Adds and removes objects to the physics world and calls update | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### physicsWorldControlSystem.added(engine) Initializes system when added. Requests physics nodes and attaches to event listeners to add / remove them to pixi stage **Kind**: instance method of [PhysicsWorldControlSystem](#PhysicsWorldControlSystem) | Param | Type | Description | | --- | --- | --- | | engine | external:Serpentity.Engine | the serpentity engine to which we are getting added | ### physicsWorldControlSystem.removed() Clears system resources when removed. **Kind**: instance method of [PhysicsWorldControlSystem](#PhysicsWorldControlSystem) ### physicsWorldControlSystem.update(currentFrameDuration) Runs on every update of the loop. Updates the physics **Kind**: instance method of [PhysicsWorldControlSystem](#PhysicsWorldControlSystem) | Param | Type | Description | | --- | --- | --- | | currentFrameDuration | Number | the duration of the current frame | ## RenderSystem ⇐ external:Serpentity.System **Kind**: global class **Extends**: external:Serpentity.System * [RenderSystem](#RenderSystem) ⇐ external:Serpentity.System * [new RenderSystem(config)](#new_RenderSystem_new) * [.added(engine)](#RenderSystem+added) * [.removed()](#RenderSystem+removed) * [.update(currentFrameDuration)](#RenderSystem+update) ### new RenderSystem(config) Renders renderable objects using pixi | Param | Type | Description | | --- | --- | --- | | config | object | a configuration object to extend. | ### renderSystem.added(engine) Initializes system when added. Requests renderable nodes and attaches to event listeners to add / remove them to pixi stage **Kind**: instance method of [RenderSystem](#RenderSystem) | Param | Type | Description | | --- | --- | --- | | engine | external:Serpentity.Engine | the serpentity engine to which we are getting added | ### renderSystem.removed() Clears system resources when removed. **Kind**: instance method of [RenderSystem](#RenderSystem) ### renderSystem.update(currentFrameDuration) Runs on every update of the loop. Does nothing. **Kind**: instance method of [RenderSystem](#RenderSystem) | Param | Type | Description | | --- | --- | --- | | currentFrameDuration | Number | the duration of the current frame | ## PixiFactory : object Factory object that contains many methods to create prefab pixi objects **Kind**: global variable * [PixiFactory](#PixiFactory) : object * [.createSumo()](#PixiFactory.createSumo) ⇒ external:CreateJs.Container * [.createEmptyGraphic()](#PixiFactory.createEmptyGraphic) ⇒ external:CreateJs.Container ### PixiFactory.createSumo() ⇒ external:CreateJs.Container Creates a sumo container **Kind**: static method of [PixiFactory](#PixiFactory) **Returns**: external:CreateJs.Container - the created container ### PixiFactory.createEmptyGraphic() ⇒ external:CreateJs.Container Creates an empty graphic **Kind**: static method of [PixiFactory](#PixiFactory) **Returns**: external:CreateJs.Container - the created container ## SumoFactory : object Factory object that contains many methods to create prefab entities. **Kind**: global variable * [SumoFactory](#SumoFactory) : object * [.createSumo([engine], [config])](#SumoFactory.createSumo) ⇒ external:Serpentity.Entity * [.createRubberBand([engine], [config])](#SumoFactory.createRubberBand) ⇒ external:Serpentity.Entity ### SumoFactory.createSumo([engine], [config]) ⇒ external:Serpentity.Entity Creates a sumo entity and adds it to the engine. Can override position in the config object **Kind**: static method of [SumoFactory](#SumoFactory) **Returns**: external:Serpentity.Entity - the created entity | Param | Type | Description | | --- | --- | --- | | [engine] | external:Serpentity | the serpentity engine to attach to. If not sent, it will not be attached. | | [config] | object | the config to override the entity, accepts the key `position` as an object with an x and y property. | ### SumoFactory.createRubberBand([engine], [config]) ⇒ external:Serpentity.Entity Creates a rubber band entity and adds it to the engine. **Kind**: static method of [SumoFactory](#SumoFactory) **Returns**: external:Serpentity.Entity - the created entity | Param | Type | Description | | --- | --- | --- | | [engine] | external:Serpentity | the serpentity engine to attach to. If not sent, it will not be attached. | | [config] | object | the config to override the entity, it must include entityA and entityB which will be tied by it. If they are not sent or don't have a physics body, this will throw. |