1 | var clone = require("./clone");
|
2 | var setOrAddComponent = require("./set-or-add-component");
|
3 |
|
4 | function Prefabs(prefabs) {
|
5 | this.prefabs = prefabs;
|
6 | }
|
7 | Prefabs.prototype.instantiate = function(entities, name) {
|
8 | var id = entities.create();
|
9 | var prefab = this.prefabs[name];
|
10 | Object.keys(prefab).forEach(function(key) {
|
11 | if (key === "id") {
|
12 | return;
|
13 | }
|
14 | setOrAddComponent(entities, id, key, clone(prefab[key]));
|
15 | });
|
16 | return id;
|
17 | };
|
18 | Prefabs.prototype.register = function(name, components) {
|
19 | this.prefabs[name] = components;
|
20 | };
|
21 | Prefabs.prototype.registerMultiple = function(prefabs) {
|
22 | Object.keys(prefabs).forEach(function(key) {
|
23 | this.registerPrefab(key, prefabs[key]);
|
24 | }.bind(this));
|
25 | };
|
26 |
|
27 | module.exports = Prefabs;
|