add component
This commit is contained in:
parent
c4b2b23941
commit
705c793bb1
|
@ -870,7 +870,7 @@ editor.inputs['M-t'] = function() { editor.edit_level.objects.forEach(function(x
|
||||||
editor.inputs['M-t'].doc = "Unlock all objects in current level.";
|
editor.inputs['M-t'].doc = "Unlock all objects in current level.";
|
||||||
|
|
||||||
editor.inputs['C-n'] = function() {
|
editor.inputs['C-n'] = function() {
|
||||||
|
// editor.edit_level.spawn();
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
editor.inputs['C-n'].doc = "Create an empty object.";
|
editor.inputs['C-n'].doc = "Create an empty object.";
|
||||||
|
|
|
@ -266,13 +266,10 @@ var gameobject = {
|
||||||
},
|
},
|
||||||
|
|
||||||
spawn(ur, data) {
|
spawn(ur, data) {
|
||||||
|
ur ??= gameobject;
|
||||||
if (typeof ur === 'string')
|
if (typeof ur === 'string')
|
||||||
ur = prototypes.get_ur(ur);
|
ur = prototypes.get_ur(ur);
|
||||||
if (!ur) {
|
|
||||||
Log.error("Failed to make UR from " + ur);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
var go = ur.make(this, data);
|
var go = ur.make(this, data);
|
||||||
Object.hide(this, go.toString());
|
Object.hide(this, go.toString());
|
||||||
return go;
|
return go;
|
||||||
|
@ -401,6 +398,7 @@ var gameobject = {
|
||||||
register_collide(1, x.collide, x, obj.body, x.shape);
|
register_collide(1, x.collide, x, obj.body, x.shape);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
toString() { return "new_object"; },
|
||||||
|
|
||||||
flipx() { return this.scale.x < 0; },
|
flipx() { return this.scale.x < 0; },
|
||||||
flipy() { return this.scale.y < 0; },
|
flipy() { return this.scale.y < 0; },
|
||||||
|
@ -505,6 +503,9 @@ var gameobject = {
|
||||||
},
|
},
|
||||||
|
|
||||||
kill() {
|
kill() {
|
||||||
|
if (this.__kill) return;
|
||||||
|
this.__kill = true;
|
||||||
|
|
||||||
this.timers.forEach(t => t());
|
this.timers.forEach(t => t());
|
||||||
this.timers = undefined;
|
this.timers = undefined;
|
||||||
|
|
||||||
|
@ -544,8 +545,8 @@ var gameobject = {
|
||||||
obj.make = undefined;
|
obj.make = undefined;
|
||||||
Object.mixin(obj,gameobject_impl);
|
Object.mixin(obj,gameobject_impl);
|
||||||
|
|
||||||
if (this.instances)
|
// if (this.instances)
|
||||||
this.instances.push(obj);
|
// this.instances.push(obj);
|
||||||
|
|
||||||
obj.body = make_gameobject();
|
obj.body = make_gameobject();
|
||||||
|
|
||||||
|
@ -578,7 +579,7 @@ var gameobject = {
|
||||||
Object.hide(obj, 'ur','body', 'components', 'objects', '_ed', 'level', 'timers');
|
Object.hide(obj, 'ur','body', 'components', 'objects', '_ed', 'level', 'timers');
|
||||||
|
|
||||||
if (this.objects)
|
if (this.objects)
|
||||||
obj.make_objs(this.objects);
|
obj.make_objs(this.objects)
|
||||||
|
|
||||||
Object.dainty_assign(obj, this);
|
Object.dainty_assign(obj, this);
|
||||||
obj.sync();
|
obj.sync();
|
||||||
|
@ -626,8 +627,11 @@ var gameobject = {
|
||||||
data ??= undefined;
|
data ??= undefined;
|
||||||
if (typeof comp.make !== 'function') return;
|
if (typeof comp.make !== 'function') return;
|
||||||
var name = obj_unique_name(comp.toString(), this);
|
var name = obj_unique_name(comp.toString(), this);
|
||||||
this[name] = comp.make(this.body);
|
this[name] = comp.make(this);
|
||||||
Object.assign(this[name], data);
|
this[name].comp = comp.toString();
|
||||||
|
this.components[name] = this[name];
|
||||||
|
if (data)
|
||||||
|
Object.assign(this[name], data);
|
||||||
return this[name];
|
return this[name];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue