UNPKG

splat-ecs

Version:
28 lines (25 loc) 737 B
var clone = require("./clone"); var setOrAddComponent = require("./set-or-add-component"); function Prefabs(prefabs) { this.prefabs = prefabs; } Prefabs.prototype.instantiate = function(entities, name) { var id = entities.create(); var prefab = this.prefabs[name]; Object.keys(prefab).forEach(function(key) { if (key === "id") { return; } setOrAddComponent(entities, id, key, clone(prefab[key])); }); return id; }; Prefabs.prototype.register = function(name, components) { this.prefabs[name] = components; }; Prefabs.prototype.registerMultiple = function(prefabs) { Object.keys(prefabs).forEach(function(key) { this.registerPrefab(key, prefabs[key]); }.bind(this)); }; module.exports = Prefabs;