From 1676911c8a2621274bf75ff7271faa926cf58d6c Mon Sep 17 00:00:00 2001 From: Rubén Beltrán del Río Date: Mon, 28 May 2018 21:35:38 -0500 Subject: Add Grab System (#9) * Remove unused code * Adds grab components * Adds grab nodes * Add sensors to the physics world * Add grab systems * Add new sprites * Attach grab components * Add grab system to engine * Update changelog --- lib/components/grab.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 lib/components/grab.js (limited to 'lib/components/grab.js') diff --git a/lib/components/grab.js b/lib/components/grab.js new file mode 100644 index 0000000..ab808a8 --- /dev/null +++ b/lib/components/grab.js @@ -0,0 +1,60 @@ +import { Component } from '@serpentity/serpentity'; + +/** + * Component that stores a dash skill + * + * @extends {external:Serpentity.Component} + * @class GrabComponent + * @param {object} config a configuration object to extend. + */ +export default class GrabComponent extends Component { + constructor(config) { + + super(config); + + /** + * The properthy that holds the grab state + * + * @property {boolean} grabbing + * @instance + * @memberof GrabComponent + */ + this.dashing = this.grabbing || false; + + /** + * The constraint used for the grab + * + * @property {external:MatterJs.Constraint} constraint + * @instance + * @memberof GrabComponent + */ + this.constraint = this.constraint || null; + + /** + * Whether the grab is locked from occuring + * + * @property {boolean} locked + * @instance + * @memberof GrabComponent + */ + this.locked = this.locked || false; + + /** + * Cooldown before lock is removed + * + * @property {number} cooldown + * @instance + * @memberof GrabComponent + */ + this.cooldown = this.cooldown || 3000; + + /** + * Current cooldown + * + * @property {number} currentCooldown + * @instance + * @memberof GrabComponent + */ + this.currentCooldown = 0; + } +}; -- cgit