- Fixed
Manager().remove()
- Refactored
Manager()
to support the newArchetypeTable()
- Added new static methods
Clock.getElapsed()
,Clock.getDelta()
andClock.getFrameRate()
- Added
Query().single()
which gets a single entity on a query - Fixed
boundsColliding()
- Added position as an argument to
BoundingCircle()
- Added a new method
Manager().createMany()
which adds an array of several entities' components - Fixed up
Query.each()
method to pass required components to supplied callback
- Added a new plugin
Renderer2DPlugin()
for rendering onto 2d context of canvas - Added a new plugin
Renderer2DPlugin()
for rendering onto 2d context of canvas - Added
TweenPlugin()
to manage tweens - Added new plugins related to physics including
Physics2DPlugin()
,Broadphase2DPlugin()
,Narrowphase2DPlugin()
andIntergrator2DPlugin()
- Added a new plugin
Renderer2DPlugin()
for rendering onto 2d context of canvas - Added method
Manager().registerPlugin()
to add plugins onto theManager()
- Fixed a bug on the collision manifold generation
- Deactivated static friction due to instability
Geometry.getNormals()
is now a static method.- Changed
Shape.calcInertia()
to a static method - Removed
Composite()
andHeightMap()
- Removed
ImpulseSolver
,ContactSolver
andFrictionSolllver
which are replaced byCollisionManifold.sopve()
- Moved
SAT
and moved functionality toSATNarrowPhase
- Changed
Shape.getNormals()
to be static - Changed
Shape.getVertices()
to a static method - Added a verlet intergrator
- Implemented warmstarting
- Added Coulomb friction to the bodies which applies kinetic and static friction
- Added friction resolution to the new Collision solver
- Created a new solver
Query()
added to help cache and iterate entities and their components- Deprecated all instance methods of
Renderer2D
in favor of static methods - Deprecated all instance methods of
Vector2()
in favor of static methods - Changed first parameter of
Angle()
to accept radians, nor degrees - Added
LoadManager()
to monitor state of loaders - deprecated
Logger
in favor of decomposing its functions - Deprecated all instance methods of
Color()
in favor of static methods - Deprecated all instance methods of
BoundingBox()
andBoundingCircle()
- Deprecated all instance methods of
Matrix3x2()
in favor of static methods - Deprecated
Clock().update()
in favor ofClock().update()
- Removed all methods named
.toJson()
andfromJson()
and gettersCHAOS_CLASSNAME
andCHAOS_OBJ_TYPE
from all classes - Deprecated
Camera()
in favor ofCamera2D()
- Deprecated
Renderer2D().clear()
in favor ofRenderer2D.clear()
- New static method
geometry.setAttributes()
to update vertex attributes - Changed
Renderer().setViewPort()
andRenderer().bintTo()
to static methods - Redefined System
Query()
added to help cache and iterate entities and their components- Fixed a bug within contact data creation
- Added a new structure
ArchetypeType()
- Added
Noise()
to create pseudo-random numbers. - Added
CorcleBuffer.init()
method - Made
StaticImageMaterial
become centered - Added new method
Interpolation.cosine()
for cosine interpolation - Added new method
Vector.rotateFast()
for optimisation purposes - Added a new option
autoPlay
on manager to detemine if manger should play on creation - Added
Transform.scale
property for scaling entities - removed
BufferGeometry.init()
as it is no longer used - Parameter
accumulate
ofClock.update()
is now optional - Added a new property
Transform.lastPosition
- Added a new method
Ovwrlaps.colliding
to check if twoboundingCircle()
and/orBoundingSquare()
are colliding - Added
Entity.id
to keep track of entities - Added options to the
bodyDebugger()
to extend functionality - Added a second parameter
manager
onSystem.update()
- Fixed the method
Pool.give()
- Added new method
BoundingBox.translate()
to translate aBoundingBox()
around - Fixed
Broadphase()
not included in main namespace - Deprecated
World()
in favour of usingWorld2D()
- Deprecated
Body
in favor ofBody2D()
- Removed
Err
as it is replaced byLogger
- New module
Logger
to provide same functionality asErr
- Added new method
IndexedList.has()
- Fixed
Cookie.get()
- Added a new loader
TextureLoader()
to load in images as textures - Added a new loader
SoundLoader()
to load sound - Removed
Loader()
class Manager.loader
is no longer available
- Refactored the
mixin()
function - Fixed the method
Body.applyForce()
- Added
Body.applyImpulse()
method - Added
LineGeometry()
,BoxGeometry()
andTriangleGeometru()
- Constants have been added
- New class
Color()
for color management - Added
Body.addShape()
method to add shapes to a body - Added new material
TextMaterial()
for text rendering - Added new event
clear
onto manager - Fixed an error in
Angle()
constructor - Fixed issues with raycasting
- Fixed unwanted stretching of
SpriteMaterial()
- Fixed
SpriteMaterial.setMaxFrames()
to set up max frames correctly - Fixed an error on
SpriteMaterial.setAction()
- Modified raycaster to have basic working
- New methods
IndexedList.get()
andIndexedList.set()
- New module for raycasting into world
- Deprecated
Angle.radian
andAngle.degree
in favor ofAngle.value
, AddedAngle.cos
andAngle.sin
- Fixed undefined reference to
Err
module - Fixed
Manager.getComponentList()
- New
BufferGeometry.updateVertices()
to update vertices dynamically - Fixed error in
System()
- Fixed
bodyDebugger()
- Fixed working of
IndexedList()
- Added
IndexedList.get()
to fetch a stored value by its key - Refactored
manager.addComponent()
andmanager.removeComponent()
- Fixed movable of composited bodies not removed from manager componentList
- Fixed bug on
Composite()
where it doesn't move when added toWorld()
- Cleared up some unwanted code
- Fixed
Intergrator.update()
- Added
World.enableIntergrate
to enable/disable intergration of a world - Fixed crashing errors in
Manager.addComponent()
andManager.removeComponent()
- Fixed
Manager.unregisterSystem()
to properly remove core systems Movable.torque
added to store torque- Added new class
Intergrator()
for inergrating movement into transforms - Moved out
Bound()
,Movable()
andTransform()
components to intergrator folder Err.deprecate()
parameters and functionality- Removed a duplicate export of
Rectangle()
Component.requires()
parametersbodyDebugger()
added to debug- Intergrators now clear torque every update
- Fixed a prototype implementation error on
Body()
by inheriting fromComponent()
- Fixed
Perf()
and added it to manager - Added
fpsDebugger()
to display fps - New class
Tween()
for animating objects - Added
TweenManager()
for animations - Depreciated
Entity.Default()
in favour of
- fixed
Manager.getEntityByTags()
and - Signal value doesnt change
Component.implement()
to replaceUtils.inheritComponent()
- Removed
Utils.inheritSystem()
.UseSystem.implement()
instead - New function
mixin()
for prototype injection - Renamed
Vec2()
toVector2()
- Added
Signal()
class Overlaps.AABBvsSphere
returned incorrect results- Fixed renderer to scale on multiple devices
- Added a perf manager
- Added World.imtergrator property.
- depreciated to Err module.
- Created a boilerplate function for generating a manager with default systems.
- added a new function createEntity() to reduce boilerplate.
- Added restitution demo
- Fixed an error when getting position from
Composite()
- Fixed up
PathFollowing()
behaviour
- Fixed a collision response of trigondue to rad/deg conversion error
- Added a feature to
BodySprite()
- the stuff i broke forced a merge without thinking,i regret that for the past 4 hours
- Added an new body
Trigon()
for singular triangle shape - Fixed up traingle shape
- Fixed a minor error on keyboard
NarrowPhase()
andSATNarrowPhase()
for narrow phase of the physics engine module- Fixed
Verlet
intergrator - Updated
Verlet.solve()
andEuler.solve()
intergrators to use torque - Added
Body.torque
- Fixed potentially undefined behaviour in static
Vector.lerp()
- Fixed issue where
Manager.getEntitiesByTags()
does not return the expected results - Fixed issue where an entity is removedfrom a
Manager()
usingManager.remove()
,it cannot be added to anotherManager()
- Added
StaticImageMaterial.offset
- Removed
ImageMaterial()
as it is a dublicate ofStaticImageMaterial()
- Fixed a getter error on
Composite.type
ImageMaterial()
for rendering images- Added
Composite.type
- Added easing and interpolation functions
- Serialization method for
Sprite()
Geometry.toJson()
throwing error- Serialization methods for
BoundingBox()
andBoundingCircle()
- Serialization of
Movable()
component - Serialization method for
Vector()
- FIxed issue where serialization not working as intended in
Angle()
- Serialization method for
Transform()
,Movable()
andBounds()
components - Serialization method set to instance instead of static
- Serialization method for
Constriant()
- Serialization method for
Circle()
- Deserialization method for
Shape()
andGeometry()
- Serialization method for
Shape()
andGeometry()
- Implemented serialization method for
Body()
- Added serialization to
Component()
class - Added methods
init()
,destroy()
,update()
,get()
andrequires()
toComponent()
- Implemented serialization of entities.
- Added new function
wrapAngle()
- New methods of
Angle()
for serialization - conversion in
Angle()
constructor - Added
IndexedList()
datastructure Manager.query()
to search forentities using the physics system- Fixed
defaultCollisionHandler()
anddefaultPrecollisionHandler()
not working - Fixed
Camera()
and added a basic camera controller - Intergrated
Bounds()
into main namespace - Fixed error due to
Sprite.draw()
removed