Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sam-ecs

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sam-ecs - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0

272

dist/Manager.js

@@ -18,2 +18,8 @@ 'use strict';

//node imports
// const { SortedArraySet, FastSet } = require('collections');
var FastSet = require('collections/fast-set.js'),
SortedSet = require('collections/sorted-array-set.js');
var EventEmitter = require('events');
//user imports

@@ -32,10 +38,12 @@ var RandomStringGenerator = require('./utils/RandomStringGenerator.js');

//node inmports
var EventEmitter = require('events');
/**
* @description - Set intersection taken from Mozilla
* @description - Special reducer for action ADD_ENTITY
* @param {Object} action - the action received by the manager
* @param {Manager} manager - the manager itself
*/
Set.prototype.intersection = function (setB) {
var intersection = new Set();
function addEntityReducer(action, manager) {
if (!action.components) {
throw "'" + action.type + "' must specify components to add to the entity!";
}
var entity = new Entity(manager);
var _iteratorNormalCompletion = true;

@@ -46,8 +54,6 @@ var _didIteratorError = false;

try {
for (var _iterator = setB[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var elem = _step.value;
for (var _iterator = action.components[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var component = _step.value;
if (this.has(elem)) {
intersection.add(elem);
}
entity.addComponent(component);
}

@@ -69,40 +75,2 @@ } catch (err) {

return intersection;
};
/**
* @description - Special reducer for action ADD_ENTITY
* @param {Object} action - the action received by the manager
* @param {Manager} manager - the manager itself
*/
function addEntityReducer(action, manager) {
if (!action.components) {
throw "'" + action.type + "' must specify components to add to the entity!";
}
var entity = new Entity(manager);
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = action.components[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var component = _step2.value;
entity.addComponent(component);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
manager.addEntity(entity);

@@ -145,3 +113,3 @@ }

*/
this._hashes = new Set();
this._hashes = new FastSet();
}

@@ -260,3 +228,3 @@

if (!(componentName in this._entitiesByComponent)) {
this._entitiesByComponent[componentName] = new Set();
this._entitiesByComponent[componentName] = new FastSet();
}

@@ -305,3 +273,3 @@ this._entitiesByComponent[componentName].add(entity.hash());

this._entitiesByComponent[componentName].delete(hash);
if (this._entitiesByComponent[componentName].size <= 0) {
if (this._entitiesByComponent[componentName].length <= 0) {
delete this._entitiesByComponent[componentName];

@@ -334,3 +302,3 @@ }

this._entitiesByComponent[componentName].delete(hash);
if (this._entitiesByComponent[componentName].size <= 0) {
if (this._entitiesByComponent[componentName].length <= 0) {
delete this._entitiesByComponent[componentName];

@@ -349,3 +317,3 @@ }

value: function _addToComponentList(componentName, hash) {
if (!(componentName in this._entitiesByComponent)) this._entitiesByComponent[componentName] = new Set();
if (!(componentName in this._entitiesByComponent)) this._entitiesByComponent[componentName] = new FastSet();

@@ -385,9 +353,9 @@ this._entitiesByComponent[componentName].add(hash);

var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator3 = types[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var type = _step3.value;
for (var _iterator2 = types[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var type = _step2.value;

@@ -400,12 +368,12 @@ if (!(type in this._reducers)) {

} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
if (_didIteratorError2) {
throw _iteratorError2;
}

@@ -446,9 +414,9 @@ }

value: function _removeReducerFromTypes(reducer, types) {
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator4 = types[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var type = _step4.value;
for (var _iterator3 = types[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var type = _step3.value;

@@ -458,12 +426,12 @@ this._removeReducerFromList(reducer, this._reducers[type], type);

} catch (err) {
_didIteratorError4 = true;
_iteratorError4 = err;
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion4 && _iterator4.return) {
_iterator4.return();
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
}
} finally {
if (_didIteratorError4) {
throw _iteratorError4;
if (_didIteratorError3) {
throw _iteratorError3;
}

@@ -536,9 +504,9 @@ }

if (!this._reducers[action.type]) return;
var _iteratorNormalCompletion5 = true;
var _didIteratorError5 = false;
var _iteratorError5 = undefined;
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
try {
for (var _iterator5 = this._reducers[action.type][Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
var fun = _step5.value;
for (var _iterator4 = this._reducers[action.type][Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var fun = _step4.value;

@@ -548,12 +516,12 @@ fun(action, this);

} catch (err) {
_didIteratorError5 = true;
_iteratorError5 = err;
_didIteratorError4 = true;
_iteratorError4 = err;
} finally {
try {
if (!_iteratorNormalCompletion5 && _iterator5.return) {
_iterator5.return();
if (!_iteratorNormalCompletion4 && _iterator4.return) {
_iterator4.return();
}
} finally {
if (_didIteratorError5) {
throw _iteratorError5;
if (_didIteratorError4) {
throw _iteratorError4;
}

@@ -648,9 +616,9 @@ }

var shouldInvalidate = true;
var _iteratorNormalCompletion6 = true;
var _didIteratorError6 = false;
var _iteratorError6 = undefined;
var _iteratorNormalCompletion5 = true;
var _didIteratorError5 = false;
var _iteratorError5 = undefined;
try {
for (var _iterator6 = this._processors[processorName].getComponentNames()[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
var componentName = _step6.value;
for (var _iterator5 = this._processors[processorName].getComponentNames()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
var componentName = _step5.value;

@@ -663,12 +631,12 @@ if (!(componentName in components)) {

} catch (err) {
_didIteratorError6 = true;
_iteratorError6 = err;
_didIteratorError5 = true;
_iteratorError5 = err;
} finally {
try {
if (!_iteratorNormalCompletion6 && _iterator6.return) {
_iterator6.return();
if (!_iteratorNormalCompletion5 && _iterator5.return) {
_iterator5.return();
}
} finally {
if (_didIteratorError6) {
throw _iteratorError6;
if (_didIteratorError5) {
throw _iteratorError5;
}

@@ -683,2 +651,33 @@ }

/**
* @description - Allows entities to be sorted in the
* cached list that is given to a processor
* @param {String} processorName - the name of the processor
* to be sorted
* @param {Function} equal - determines if two items are equal, should
* nearly always compare entityHash values
* @param {Function} compare - comparator function for the sorting
*/
}, {
key: 'addSorterForProcessorList',
value: function addSorterForProcessorList(processorName, equal, compare) {
if (!this._processorsCachedEntityLists[processorName]) {
this._processorsCachedEntityLists[processorName] = {
'invalid': true,
'set': new SortedSet([], equal, compare),
'isSorted': true,
'equal': equal,
'compare': compare
};
} else {
Object.assign(this._processorsCachedEntityLists[processorName], {
'invalid': true,
'set': new SortedSet(this._processorsCachedEntityLists[processorName].set.toArray(), equal, compare),
'equal': equal,
'compare': compare
});
}
}
/**
* @description - typically called whenever an entity has deleted a

@@ -695,3 +694,3 @@ * component, it needs to invalidate any processor list that depended

for (var processorName in this._processors) {
if (this._processors[processorName].getComponentNames().has(component) && this._processorsCachedEntityLists[processorName].set.has(entityHash)) {
if (this._processors[processorName].getComponentNames().has(component) && this._processorsCachedEntityLists[processorName] && this._processorsCachedEntityLists[processorName].set.has(entityHash)) {
this._processorsCachedEntityLists[processorName].invalid = true;

@@ -716,12 +715,13 @@ }

}
this._processorsCachedEntityLists[processorName].invalid = false;
var cachedListObject = this._processorsCachedEntityLists[processorName];
cachedListObject.invalid = false;
var set = new Set(Object.keys(this._entitiesByHash));
var _iteratorNormalCompletion7 = true;
var _didIteratorError7 = false;
var _iteratorError7 = undefined;
var set = cachedListObject.isSorted ? new SortedSet(Object.keys(this._entitiesByHash), cachedListObject.equal, cachedListObject.compare) : new FastSet(Object.keys(this._entitiesByHash));
var _iteratorNormalCompletion6 = true;
var _didIteratorError6 = false;
var _iteratorError6 = undefined;
try {
for (var _iterator7 = componentSet[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
var component = _step7.value;
for (var _iterator6 = componentSet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
var component = _step6.value;

@@ -732,3 +732,3 @@ /* none of the entities in the manager have a required component of the

if (!this.hasComponent(component)) {
this._processorsCachedEntityLists[processorName].set = new Set();
cachedListObject.set = new FastSet();
return;

@@ -739,12 +739,12 @@ }

} catch (err) {
_didIteratorError7 = true;
_iteratorError7 = err;
_didIteratorError6 = true;
_iteratorError6 = err;
} finally {
try {
if (!_iteratorNormalCompletion7 && _iterator7.return) {
_iterator7.return();
if (!_iteratorNormalCompletion6 && _iterator6.return) {
_iterator6.return();
}
} finally {
if (_didIteratorError7) {
throw _iteratorError7;
if (_didIteratorError6) {
throw _iteratorError6;
}

@@ -754,3 +754,3 @@ }

this._processorsCachedEntityLists[processorName].set = set;
cachedListObject.set = set;
}

@@ -832,9 +832,9 @@

value: function fromJSON(obj) {
var _iteratorNormalCompletion8 = true;
var _didIteratorError8 = false;
var _iteratorError8 = undefined;
var _iteratorNormalCompletion7 = true;
var _didIteratorError7 = false;
var _iteratorError7 = undefined;
try {
for (var _iterator8 = obj.entities[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
var entityObj = _step8.value;
for (var _iterator7 = obj.entities[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
var entityObj = _step7.value;

@@ -855,12 +855,12 @@ var hashValue = entityObj.hash;

} catch (err) {
_didIteratorError8 = true;
_iteratorError8 = err;
_didIteratorError7 = true;
_iteratorError7 = err;
} finally {
try {
if (!_iteratorNormalCompletion8 && _iterator8.return) {
_iterator8.return();
if (!_iteratorNormalCompletion7 && _iterator7.return) {
_iterator7.return();
}
} finally {
if (_didIteratorError8) {
throw _iteratorError8;
if (_didIteratorError7) {
throw _iteratorError7;
}

@@ -920,9 +920,9 @@ }

entity._setHash(hash);
var _iteratorNormalCompletion9 = true;
var _didIteratorError9 = false;
var _iteratorError9 = undefined;
var _iteratorNormalCompletion8 = true;
var _didIteratorError8 = false;
var _iteratorError8 = undefined;
try {
for (var _iterator9 = componentList[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
var componentObject = _step9.value;
for (var _iterator8 = componentList[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
var componentObject = _step8.value;

@@ -940,12 +940,12 @@ if (componentObject.name in this._componentLibrary) {

} catch (err) {
_didIteratorError9 = true;
_iteratorError9 = err;
_didIteratorError8 = true;
_iteratorError8 = err;
} finally {
try {
if (!_iteratorNormalCompletion9 && _iterator9.return) {
_iterator9.return();
if (!_iteratorNormalCompletion8 && _iterator8.return) {
_iterator8.return();
}
} finally {
if (_didIteratorError9) {
throw _iteratorError9;
if (_didIteratorError8) {
throw _iteratorError8;
}

@@ -952,0 +952,0 @@ }

{
"name": "sam-ecs",
"version": "2.1.0",
"version": "2.2.0",
"description": "A specialized entity component system",

@@ -21,3 +21,3 @@ "main": "./dist/index.js",

},
"repo": {
"repository": {
"type": "git",

@@ -37,3 +37,6 @@ "url": "https://github.com/therealsamf/Sam-ECS.git"

"jest-cli": "^17.0.0"
},
"dependencies": {
"collections": "^5.0.5"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc