优化框架性能,Time支持传入引擎dt
This commit is contained in:
4
source/bin/framework.d.ts
vendored
4
source/bin/framework.d.ts
vendored
@@ -750,7 +750,7 @@ declare module es {
|
|||||||
/**
|
/**
|
||||||
* 获取EntitySystem处理器
|
* 获取EntitySystem处理器
|
||||||
*/
|
*/
|
||||||
getEntityProcessor<T extends EntitySystem>(): T;
|
getEntityProcessor<T extends EntitySystem>(type: new (...args: any[]) => T): T;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare module transform {
|
declare module transform {
|
||||||
@@ -1834,7 +1834,7 @@ declare module es {
|
|||||||
update(): void;
|
update(): void;
|
||||||
lateUpdate(): void;
|
lateUpdate(): void;
|
||||||
end(): void;
|
end(): void;
|
||||||
getProcessor<T extends EntitySystem>(): T;
|
getProcessor<T extends EntitySystem>(type: new (...args: any[]) => T): T;
|
||||||
protected notifyEntityChanged(entity: Entity): void;
|
protected notifyEntityChanged(entity: Entity): void;
|
||||||
protected removeFromProcessors(entity: Entity): void;
|
protected removeFromProcessors(entity: Entity): void;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1627,8 +1627,8 @@ var es;
|
|||||||
/**
|
/**
|
||||||
* 获取EntitySystem处理器
|
* 获取EntitySystem处理器
|
||||||
*/
|
*/
|
||||||
Scene.prototype.getEntityProcessor = function () {
|
Scene.prototype.getEntityProcessor = function (type) {
|
||||||
return this.entityProcessors.getProcessor();
|
return this.entityProcessors.getProcessor(type);
|
||||||
};
|
};
|
||||||
return Scene;
|
return Scene;
|
||||||
}());
|
}());
|
||||||
@@ -3408,12 +3408,20 @@ var es;
|
|||||||
* @param entities
|
* @param entities
|
||||||
*/
|
*/
|
||||||
EntityProcessingSystem.prototype.process = function (entities) {
|
EntityProcessingSystem.prototype.process = function (entities) {
|
||||||
var _this = this;
|
if (entities.length == 0)
|
||||||
entities.forEach(function (entity) { return _this.processEntity(entity); });
|
return;
|
||||||
|
for (var i = 0, s = entities.length; i < s; ++i) {
|
||||||
|
var entity = entities[i];
|
||||||
|
this.processEntity(entity);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
EntityProcessingSystem.prototype.lateProcess = function (entities) {
|
EntityProcessingSystem.prototype.lateProcess = function (entities) {
|
||||||
var _this = this;
|
if (entities.length == 0)
|
||||||
entities.forEach(function (entity) { return _this.lateProcessEntity(entity); });
|
return;
|
||||||
|
for (var i = 0, s = entities.length; i < s; ++i) {
|
||||||
|
var entity = entities[i];
|
||||||
|
this.lateProcessEntity(entity);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
return EntityProcessingSystem;
|
return EntityProcessingSystem;
|
||||||
}(es.EntitySystem));
|
}(es.EntitySystem));
|
||||||
@@ -3689,34 +3697,24 @@ var es;
|
|||||||
* 立即从组件列表中删除所有组件
|
* 立即从组件列表中删除所有组件
|
||||||
*/
|
*/
|
||||||
ComponentList.prototype.removeAllComponents = function () {
|
ComponentList.prototype.removeAllComponents = function () {
|
||||||
var e_6, _a;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; ++i) {
|
||||||
for (var _b = __values(this._components), _c = _b.next(); !_c.done; _c = _b.next()) {
|
this.handleRemove(this._components[i]);
|
||||||
var component = _c.value;
|
|
||||||
this.handleRemove(component);
|
|
||||||
}
|
}
|
||||||
|
this.componentsByType.clear();
|
||||||
|
this.componentsToAddByType.clear();
|
||||||
|
this._components.length = 0;
|
||||||
|
this._updatableComponents.length = 0;
|
||||||
|
this._componentsToAdd = {};
|
||||||
|
this._componentsToRemove = {};
|
||||||
|
this._componentsToAddList.length = 0;
|
||||||
|
this._componentsToRemoveList.length = 0;
|
||||||
}
|
}
|
||||||
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
||||||
}
|
|
||||||
finally { if (e_6) throw e_6.error; }
|
|
||||||
}
|
|
||||||
this.componentsByType.clear();
|
|
||||||
this.componentsToAddByType.clear();
|
|
||||||
this._components.length = 0;
|
|
||||||
this._updatableComponents.length = 0;
|
|
||||||
this._componentsToAdd = {};
|
|
||||||
this._componentsToRemove = {};
|
|
||||||
this._componentsToAddList.length = 0;
|
|
||||||
this._componentsToRemoveList.length = 0;
|
|
||||||
};
|
};
|
||||||
ComponentList.prototype.deregisterAllComponents = function () {
|
ComponentList.prototype.deregisterAllComponents = function () {
|
||||||
var e_7, _a;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; ++i) {
|
||||||
for (var _b = __values(this._components), _c = _b.next(); !_c.done; _c = _b.next()) {
|
var component = this._components[i];
|
||||||
var component = _c.value;
|
|
||||||
if (!component)
|
if (!component)
|
||||||
continue;
|
continue;
|
||||||
// 处理IUpdatable
|
// 处理IUpdatable
|
||||||
@@ -3726,32 +3724,17 @@ var es;
|
|||||||
this._entity.scene.entityProcessors.onComponentRemoved(this._entity);
|
this._entity.scene.entityProcessors.onComponentRemoved(this._entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
||||||
}
|
|
||||||
finally { if (e_7) throw e_7.error; }
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
ComponentList.prototype.registerAllComponents = function () {
|
ComponentList.prototype.registerAllComponents = function () {
|
||||||
var e_8, _a;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; ++i) {
|
||||||
for (var _b = __values(this._components), _c = _b.next(); !_c.done; _c = _b.next()) {
|
var component = this._components[i];
|
||||||
var component = _c.value;
|
|
||||||
if (es.isIUpdatable(component))
|
if (es.isIUpdatable(component))
|
||||||
this._updatableComponents.push(component);
|
this._updatableComponents.push(component);
|
||||||
this.addBits(component);
|
this.addBits(component);
|
||||||
this._entity.scene.entityProcessors.onComponentAdded(this._entity);
|
this._entity.scene.entityProcessors.onComponentAdded(this._entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
||||||
}
|
|
||||||
finally { if (e_8) throw e_8.error; }
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
ComponentList.prototype.decreaseBits = function (component) {
|
ComponentList.prototype.decreaseBits = function (component) {
|
||||||
var bits = this._entity.componentBits;
|
var bits = this._entity.componentBits;
|
||||||
@@ -3898,66 +3881,31 @@ var es;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
ComponentList.prototype.onEntityTransformChanged = function (comp) {
|
ComponentList.prototype.onEntityTransformChanged = function (comp) {
|
||||||
var e_9, _a, e_10, _b;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; ++i) {
|
||||||
for (var _c = __values(this._components), _d = _c.next(); !_d.done; _d = _c.next()) {
|
var component = this._components[i];
|
||||||
var component = _d.value;
|
|
||||||
if (component.enabled)
|
if (component.enabled)
|
||||||
component.onEntityTransformChanged(comp);
|
component.onEntityTransformChanged(comp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
if (this._componentsToAddList.length > 0) {
|
||||||
finally {
|
for (var i = 0, s = this._componentsToAddList.length; i < s; ++i) {
|
||||||
try {
|
var component = this._componentsToAddList[i];
|
||||||
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
||||||
}
|
|
||||||
finally { if (e_9) throw e_9.error; }
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
for (var _e = __values(this._componentsToAddList), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
||||||
var component = _f.value;
|
|
||||||
if (component.enabled)
|
if (component.enabled)
|
||||||
component.onEntityTransformChanged(comp);
|
component.onEntityTransformChanged(comp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
||||||
}
|
|
||||||
finally { if (e_10) throw e_10.error; }
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
ComponentList.prototype.onEntityEnabled = function () {
|
ComponentList.prototype.onEntityEnabled = function () {
|
||||||
var e_11, _a;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; i++)
|
||||||
for (var _b = __values(this._components), _c = _b.next(); !_c.done; _c = _b.next()) {
|
this._components[i].onEnabled();
|
||||||
var component = _c.value;
|
|
||||||
component.onEnabled();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
||||||
}
|
|
||||||
finally { if (e_11) throw e_11.error; }
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ComponentList.prototype.onEntityDisabled = function () {
|
ComponentList.prototype.onEntityDisabled = function () {
|
||||||
var e_12, _a;
|
if (this._components.length > 0) {
|
||||||
try {
|
for (var i = 0, s = this._components.length; i < s; i++)
|
||||||
for (var _b = __values(this._components), _c = _b.next(); !_c.done; _c = _b.next()) {
|
this._components[i].onDisabled();
|
||||||
var component = _c.value;
|
|
||||||
component.onDisabled();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
||||||
}
|
|
||||||
finally { if (e_12) throw e_12.error; }
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
@@ -4182,15 +4130,19 @@ var es;
|
|||||||
* @param name
|
* @param name
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.findEntity = function (name) {
|
EntityList.prototype.findEntity = function (name) {
|
||||||
for (var i = 0, s = this._entities.length; i < s; ++i) {
|
if (this._entities.length > 0) {
|
||||||
var entity = this._entities[i];
|
for (var i = 0, s = this._entities.length; i < s; ++i) {
|
||||||
if (entity[i].name == name)
|
var entity = this._entities[i];
|
||||||
return entity;
|
if (entity.name == name)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (var i = 0, s = this._entitiesToAddedList.length; i < s; ++i) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
var entity = this._entitiesToAddedList[i];
|
for (var i = 0, s = this._entitiesToAddedList.length; i < s; ++i) {
|
||||||
if (entity.name == name)
|
var entity = this._entitiesToAddedList[i];
|
||||||
return entity;
|
if (entity.name == name)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
@@ -4200,10 +4152,12 @@ var es;
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.findEntityById = function (id) {
|
EntityList.prototype.findEntityById = function (id) {
|
||||||
for (var i = 0, s = this._entities.length; i < s; ++i) {
|
if (this._entities.length > 0) {
|
||||||
var entity = this._entities[i];
|
for (var i = 0, s = this._entities.length; i < s; ++i) {
|
||||||
if (entity.id == id)
|
var entity = this._entities[i];
|
||||||
return entity;
|
if (entity.id == id)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this._entitiesToAdded[id];
|
return this._entitiesToAdded[id];
|
||||||
};
|
};
|
||||||
@@ -4213,21 +4167,23 @@ var es;
|
|||||||
* @param tag
|
* @param tag
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.entitiesWithTag = function (tag) {
|
EntityList.prototype.entitiesWithTag = function (tag) {
|
||||||
var e_13, _a;
|
var e_6, _a;
|
||||||
var list = this.getTagList(tag);
|
var list = this.getTagList(tag);
|
||||||
var returnList = es.ListPool.obtain();
|
var returnList = es.ListPool.obtain();
|
||||||
try {
|
if (list.size > 0) {
|
||||||
for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
|
|
||||||
var entity = list_1_1.value;
|
|
||||||
returnList.push(entity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
try {
|
||||||
if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
|
for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
|
||||||
|
var entity = list_1_1.value;
|
||||||
|
returnList.push(entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
||||||
|
finally {
|
||||||
|
try {
|
||||||
|
if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
|
||||||
|
}
|
||||||
|
finally { if (e_6) throw e_6.error; }
|
||||||
}
|
}
|
||||||
finally { if (e_13) throw e_13.error; }
|
|
||||||
}
|
}
|
||||||
return returnList;
|
return returnList;
|
||||||
};
|
};
|
||||||
@@ -4237,20 +4193,22 @@ var es;
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.entityWithTag = function (tag) {
|
EntityList.prototype.entityWithTag = function (tag) {
|
||||||
var e_14, _a;
|
var e_7, _a;
|
||||||
var list = this.getTagList(tag);
|
var list = this.getTagList(tag);
|
||||||
try {
|
if (list.size > 0) {
|
||||||
for (var list_2 = __values(list), list_2_1 = list_2.next(); !list_2_1.done; list_2_1 = list_2.next()) {
|
|
||||||
var entity = list_2_1.value;
|
|
||||||
return entity;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_14_1) { e_14 = { error: e_14_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
try {
|
||||||
if (list_2_1 && !list_2_1.done && (_a = list_2.return)) _a.call(list_2);
|
for (var list_2 = __values(list), list_2_1 = list_2.next(); !list_2_1.done; list_2_1 = list_2.next()) {
|
||||||
|
var entity = list_2_1.value;
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
||||||
|
finally {
|
||||||
|
try {
|
||||||
|
if (list_2_1 && !list_2_1.done && (_a = list_2.return)) _a.call(list_2);
|
||||||
|
}
|
||||||
|
finally { if (e_7) throw e_7.error; }
|
||||||
}
|
}
|
||||||
finally { if (e_14) throw e_14.error; }
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
@@ -4259,20 +4217,24 @@ var es;
|
|||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.findComponentOfType = function (type) {
|
EntityList.prototype.findComponentOfType = function (type) {
|
||||||
for (var i = 0, s = this._entities.length; i < s; i++) {
|
if (this._entities.length > 0) {
|
||||||
var entity = this._entities[i];
|
for (var i = 0, s = this._entities.length; i < s; i++) {
|
||||||
if (entity.enabled) {
|
var entity = this._entities[i];
|
||||||
var comp = entity.getComponent(type);
|
if (entity.enabled) {
|
||||||
if (comp)
|
var comp = entity.getComponent(type);
|
||||||
return comp;
|
if (comp)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (var i = 0; i < this._entitiesToAddedList.length; i++) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
var entity = this._entitiesToAddedList[i];
|
for (var i = 0; i < this._entitiesToAddedList.length; i++) {
|
||||||
if (entity.enabled) {
|
var entity = this._entitiesToAddedList[i];
|
||||||
var comp = entity.getComponent(type);
|
if (entity.enabled) {
|
||||||
if (comp)
|
var comp = entity.getComponent(type);
|
||||||
return comp;
|
if (comp)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -4283,25 +4245,20 @@ var es;
|
|||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
EntityList.prototype.findComponentsOfType = function (type) {
|
EntityList.prototype.findComponentsOfType = function (type) {
|
||||||
var e_15, _a;
|
|
||||||
var comps = es.ListPool.obtain();
|
var comps = es.ListPool.obtain();
|
||||||
for (var i = 0; i < this._entities.length; i++) {
|
if (this._entities.length > 0) {
|
||||||
if (this._entities[i].enabled)
|
for (var i = 0, s = this._entities.length; i < s; i++) {
|
||||||
this._entities[i].getComponents(type, comps);
|
var entity = this._entities[i];
|
||||||
}
|
|
||||||
try {
|
|
||||||
for (var _b = __values(this._entitiesToAddedList), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
||||||
var entity = _c.value;
|
|
||||||
if (entity.enabled)
|
if (entity.enabled)
|
||||||
entity.getComponents(type, comps);
|
entity.getComponents(type, comps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
finally {
|
for (var i = 0, s = this._entitiesToAddedList.length; i < s; i++) {
|
||||||
try {
|
var entity = this._entitiesToAddedList[i];
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
if (entity.enabled)
|
||||||
|
entity.getComponents(type, comps);
|
||||||
}
|
}
|
||||||
finally { if (e_15) throw e_15.error; }
|
|
||||||
}
|
}
|
||||||
return comps;
|
return comps;
|
||||||
};
|
};
|
||||||
@@ -4315,68 +4272,46 @@ var es;
|
|||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
for (var _i = 0; _i < arguments.length; _i++) {
|
||||||
types[_i] = arguments[_i];
|
types[_i] = arguments[_i];
|
||||||
}
|
}
|
||||||
var e_16, _a, e_17, _b, e_18, _c;
|
|
||||||
var entities = [];
|
var entities = [];
|
||||||
for (var i = 0; i < this._entities.length; i++) {
|
if (this._entities.length > 0) {
|
||||||
if (this._entities[i].enabled) {
|
for (var i = 0, s = this._entities.length; i < s; i++) {
|
||||||
var meet = true;
|
if (this._entities[i].enabled) {
|
||||||
try {
|
var meet = true;
|
||||||
for (var types_1 = __values(types), types_1_1 = types_1.next(); !types_1_1.done; types_1_1 = types_1.next()) {
|
if (types.length > 0)
|
||||||
var type = types_1_1.value;
|
for (var t = 0, ts = types.length; t < ts; t++) {
|
||||||
var hasComp = this._entities[i].hasComponent(type);
|
var type = types[t];
|
||||||
if (!hasComp) {
|
var hasComp = this._entities[i].hasComponent(type);
|
||||||
meet = false;
|
if (!hasComp) {
|
||||||
break;
|
meet = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (meet) {
|
||||||
|
entities.push(this._entities[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (types_1_1 && !types_1_1.done && (_a = types_1.return)) _a.call(types_1);
|
|
||||||
}
|
|
||||||
finally { if (e_16) throw e_16.error; }
|
|
||||||
}
|
|
||||||
if (meet) {
|
|
||||||
entities.push(this._entities[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
for (var _d = __values(this._entitiesToAddedList), _e = _d.next(); !_e.done; _e = _d.next()) {
|
for (var i = 0, s = this._entitiesToAddedList.length; i < s; i++) {
|
||||||
var entity = _e.value;
|
var entity = this._entitiesToAddedList[i];
|
||||||
if (entity.enabled) {
|
if (entity.enabled) {
|
||||||
var meet = true;
|
var meet = true;
|
||||||
try {
|
if (types.length > 0)
|
||||||
for (var types_2 = __values(types), types_2_1 = types_2.next(); !types_2_1.done; types_2_1 = types_2.next()) {
|
for (var t = 0, ts = types.length; t < ts; t++) {
|
||||||
var type = types_2_1.value;
|
var type = types[t];
|
||||||
var hasComp = entity.hasComponent(type);
|
var hasComp = entity.hasComponent(type);
|
||||||
if (!hasComp) {
|
if (!hasComp) {
|
||||||
meet = false;
|
meet = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (e_18_1) { e_18 = { error: e_18_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (types_2_1 && !types_2_1.done && (_c = types_2.return)) _c.call(types_2);
|
|
||||||
}
|
|
||||||
finally { if (e_18) throw e_18.error; }
|
|
||||||
}
|
|
||||||
if (meet) {
|
if (meet) {
|
||||||
entities.push(entity);
|
entities.push(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_17_1) { e_17 = { error: e_17_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
||||||
}
|
|
||||||
finally { if (e_17) throw e_17.error; }
|
|
||||||
}
|
|
||||||
return entities;
|
return entities;
|
||||||
};
|
};
|
||||||
return EntityList;
|
return EntityList;
|
||||||
@@ -4425,12 +4360,12 @@ var es;
|
|||||||
};
|
};
|
||||||
EntityProcessorList.prototype.end = function () {
|
EntityProcessorList.prototype.end = function () {
|
||||||
};
|
};
|
||||||
EntityProcessorList.prototype.getProcessor = function () {
|
EntityProcessorList.prototype.getProcessor = function (type) {
|
||||||
if (this._processors.length == 0)
|
if (this._processors.length == 0)
|
||||||
return null;
|
return null;
|
||||||
for (var i = 0, s = this._processors.length; i < s; ++i) {
|
for (var i = 0, s = this._processors.length; i < s; ++i) {
|
||||||
var processor = this._processors[i];
|
var processor = this._processors[i];
|
||||||
if (processor instanceof es.EntitySystem)
|
if (processor instanceof type)
|
||||||
return processor;
|
return processor;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -4583,53 +4518,25 @@ var es;
|
|||||||
return this.isInterested(e.componentBits);
|
return this.isInterested(e.componentBits);
|
||||||
};
|
};
|
||||||
Matcher.prototype.isInterested = function (components) {
|
Matcher.prototype.isInterested = function (components) {
|
||||||
var e_19, _a, e_20, _b, e_21, _c;
|
|
||||||
if (this.allSet.length != 0) {
|
if (this.allSet.length != 0) {
|
||||||
try {
|
for (var i = 0, s = this.allSet.length; i < s; ++i) {
|
||||||
for (var _d = __values(this.allSet), _e = _d.next(); !_e.done; _e = _d.next()) {
|
var type = this.allSet[i];
|
||||||
var s = _e.value;
|
if (!components.get(es.ComponentTypeManager.getIndexFor(type)))
|
||||||
if (!components.get(es.ComponentTypeManager.getIndexFor(s)))
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_19_1) { e_19 = { error: e_19_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
||||||
}
|
|
||||||
finally { if (e_19) throw e_19.error; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.exclusionSet.length != 0) {
|
if (this.exclusionSet.length != 0) {
|
||||||
try {
|
for (var i = 0, s = this.exclusionSet.length; i < s; ++i) {
|
||||||
for (var _f = __values(this.exclusionSet), _g = _f.next(); !_g.done; _g = _f.next()) {
|
var type = this.exclusionSet[i];
|
||||||
var s = _g.value;
|
if (components.get(es.ComponentTypeManager.getIndexFor(type)))
|
||||||
if (components.get(es.ComponentTypeManager.getIndexFor(s)))
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_20_1) { e_20 = { error: e_20_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
||||||
}
|
|
||||||
finally { if (e_20) throw e_20.error; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.oneSet.length != 0) {
|
if (this.oneSet.length != 0) {
|
||||||
try {
|
for (var i = 0, s = this.oneSet.length; i < s; ++i) {
|
||||||
for (var _h = __values(this.oneSet), _j = _h.next(); !_j.done; _j = _h.next()) {
|
var type = this.oneSet[i];
|
||||||
var s = _j.value;
|
if (components.get(es.ComponentTypeManager.getIndexFor(type)))
|
||||||
if (components.get(es.ComponentTypeManager.getIndexFor(s)))
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_21_1) { e_21 = { error: e_21_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
||||||
}
|
|
||||||
finally { if (e_21) throw e_21.error; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -4639,20 +4546,10 @@ var es;
|
|||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
for (var _i = 0; _i < arguments.length; _i++) {
|
||||||
types[_i] = arguments[_i];
|
types[_i] = arguments[_i];
|
||||||
}
|
}
|
||||||
var e_22, _a;
|
|
||||||
var t;
|
var t;
|
||||||
try {
|
for (var i = 0, s = types.length; i < s; ++i) {
|
||||||
for (var types_3 = __values(types), types_3_1 = types_3.next(); !types_3_1.done; types_3_1 = types_3.next()) {
|
t = types[i];
|
||||||
t = types_3_1.value;
|
this.allSet.push(t);
|
||||||
this.allSet.push(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_22_1) { e_22 = { error: e_22_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (types_3_1 && !types_3_1.done && (_a = types_3.return)) _a.call(types_3);
|
|
||||||
}
|
|
||||||
finally { if (e_22) throw e_22.error; }
|
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
@@ -4661,20 +4558,10 @@ var es;
|
|||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
for (var _i = 0; _i < arguments.length; _i++) {
|
||||||
types[_i] = arguments[_i];
|
types[_i] = arguments[_i];
|
||||||
}
|
}
|
||||||
var e_23, _a;
|
|
||||||
var t;
|
var t;
|
||||||
try {
|
for (var i = 0, s = types.length; i < s; ++i) {
|
||||||
for (var types_4 = __values(types), types_4_1 = types_4.next(); !types_4_1.done; types_4_1 = types_4.next()) {
|
t = types[i];
|
||||||
t = types_4_1.value;
|
this.exclusionSet.push(t);
|
||||||
this.exclusionSet.push(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_23_1) { e_23 = { error: e_23_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (types_4_1 && !types_4_1.done && (_a = types_4.return)) _a.call(types_4);
|
|
||||||
}
|
|
||||||
finally { if (e_23) throw e_23.error; }
|
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
@@ -4683,19 +4570,9 @@ var es;
|
|||||||
for (var _i = 0; _i < arguments.length; _i++) {
|
for (var _i = 0; _i < arguments.length; _i++) {
|
||||||
types[_i] = arguments[_i];
|
types[_i] = arguments[_i];
|
||||||
}
|
}
|
||||||
var e_24, _a;
|
for (var i = 0, s = types.length; i < s; ++i) {
|
||||||
try {
|
var t = types[i];
|
||||||
for (var types_5 = __values(types), types_5_1 = types_5.next(); !types_5_1.done; types_5_1 = types_5.next()) {
|
this.oneSet.push(t);
|
||||||
var t = types_5_1.value;
|
|
||||||
this.oneSet.push(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e_24_1) { e_24 = { error: e_24_1 }; }
|
|
||||||
finally {
|
|
||||||
try {
|
|
||||||
if (types_5_1 && !types_5_1.done && (_a = types_5.return)) _a.call(types_5);
|
|
||||||
}
|
|
||||||
finally { if (e_24) throw e_24.error; }
|
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
@@ -4933,11 +4810,18 @@ var es;
|
|||||||
function Time() {
|
function Time() {
|
||||||
}
|
}
|
||||||
Time.update = function (currentTime) {
|
Time.update = function (currentTime) {
|
||||||
if (currentTime == -1)
|
if (currentTime == -1) {
|
||||||
currentTime = Date.now();
|
currentTime = Date.now();
|
||||||
|
}
|
||||||
if (this._lastTime == -1)
|
if (this._lastTime == -1)
|
||||||
this._lastTime = currentTime;
|
this._lastTime = currentTime;
|
||||||
var dt = (currentTime - this._lastTime) / 1000;
|
var dt = 0;
|
||||||
|
if (currentTime == -1) {
|
||||||
|
dt = (currentTime - this._lastTime) / 1000;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dt = currentTime;
|
||||||
|
}
|
||||||
if (dt > this.maxDeltaTime)
|
if (dt > this.maxDeltaTime)
|
||||||
dt = this.maxDeltaTime;
|
dt = this.maxDeltaTime;
|
||||||
this.totalTime += dt;
|
this.totalTime += dt;
|
||||||
@@ -7781,7 +7665,7 @@ var es;
|
|||||||
* @param layerMask
|
* @param layerMask
|
||||||
*/
|
*/
|
||||||
SpatialHash.prototype.overlapRectangle = function (rect, results, layerMask) {
|
SpatialHash.prototype.overlapRectangle = function (rect, results, layerMask) {
|
||||||
var e_25, _a;
|
var e_8, _a;
|
||||||
this._overlapTestBox.updateBox(rect.width, rect.height);
|
this._overlapTestBox.updateBox(rect.width, rect.height);
|
||||||
this._overlapTestBox.position = rect.location;
|
this._overlapTestBox.position = rect.location;
|
||||||
var resultCounter = 0;
|
var resultCounter = 0;
|
||||||
@@ -7812,12 +7696,12 @@ var es;
|
|||||||
return resultCounter;
|
return resultCounter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_25_1) { e_25 = { error: e_25_1 }; }
|
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (potentials_1_1 && !potentials_1_1.done && (_a = potentials_1.return)) _a.call(potentials_1);
|
if (potentials_1_1 && !potentials_1_1.done && (_a = potentials_1.return)) _a.call(potentials_1);
|
||||||
}
|
}
|
||||||
finally { if (e_25) throw e_25.error; }
|
finally { if (e_8) throw e_8.error; }
|
||||||
}
|
}
|
||||||
return resultCounter;
|
return resultCounter;
|
||||||
};
|
};
|
||||||
@@ -7829,7 +7713,7 @@ var es;
|
|||||||
* @param layerMask
|
* @param layerMask
|
||||||
*/
|
*/
|
||||||
SpatialHash.prototype.overlapCircle = function (circleCenter, radius, results, layerMask) {
|
SpatialHash.prototype.overlapCircle = function (circleCenter, radius, results, layerMask) {
|
||||||
var e_26, _a;
|
var e_9, _a;
|
||||||
var bounds = new es.Rectangle(circleCenter.x - radius, circleCenter.y - radius, radius * 2, radius * 2);
|
var bounds = new es.Rectangle(circleCenter.x - radius, circleCenter.y - radius, radius * 2, radius * 2);
|
||||||
this._overlapTestCircle.radius = radius;
|
this._overlapTestCircle.radius = radius;
|
||||||
this._overlapTestCircle.position = circleCenter;
|
this._overlapTestCircle.position = circleCenter;
|
||||||
@@ -7862,12 +7746,12 @@ var es;
|
|||||||
return resultCounter;
|
return resultCounter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_26_1) { e_26 = { error: e_26_1 }; }
|
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (potentials_2_1 && !potentials_2_1.done && (_a = potentials_2.return)) _a.call(potentials_2);
|
if (potentials_2_1 && !potentials_2_1.done && (_a = potentials_2.return)) _a.call(potentials_2);
|
||||||
}
|
}
|
||||||
finally { if (e_26) throw e_26.error; }
|
finally { if (e_9) throw e_9.error; }
|
||||||
}
|
}
|
||||||
return resultCounter;
|
return resultCounter;
|
||||||
};
|
};
|
||||||
@@ -8981,7 +8865,7 @@ var es;
|
|||||||
var messageData = this._messageTable.get(eventType);
|
var messageData = this._messageTable.get(eventType);
|
||||||
var index = messageData.findIndex(function (data) { return data.func == handler; });
|
var index = messageData.findIndex(function (data) { return data.func == handler; });
|
||||||
if (index != -1)
|
if (index != -1)
|
||||||
new es.List(messageData).removeAt(index);
|
messageData.splice(index, 1);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 触发该事件
|
* 触发该事件
|
||||||
@@ -12565,7 +12449,7 @@ var es;
|
|||||||
* 创建一个Set从一个Enumerable.List< T>。
|
* 创建一个Set从一个Enumerable.List< T>。
|
||||||
*/
|
*/
|
||||||
List.prototype.toSet = function () {
|
List.prototype.toSet = function () {
|
||||||
var e_27, _a;
|
var e_10, _a;
|
||||||
var result = new Set();
|
var result = new Set();
|
||||||
try {
|
try {
|
||||||
for (var _b = __values(this._elements), _c = _b.next(); !_c.done; _c = _b.next()) {
|
for (var _b = __values(this._elements), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||||
@@ -12573,12 +12457,12 @@ var es;
|
|||||||
result.add(x);
|
result.add(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_27_1) { e_27 = { error: e_27_1 }; }
|
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||||
}
|
}
|
||||||
finally { if (e_27) throw e_27.error; }
|
finally { if (e_10) throw e_10.error; }
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
@@ -12827,7 +12711,7 @@ var es;
|
|||||||
* 计算可见性多边形,并返回三角形扇形的顶点(减去中心顶点)。返回的数组来自ListPool
|
* 计算可见性多边形,并返回三角形扇形的顶点(减去中心顶点)。返回的数组来自ListPool
|
||||||
*/
|
*/
|
||||||
VisibilityComputer.prototype.end = function () {
|
VisibilityComputer.prototype.end = function () {
|
||||||
var e_28, _a;
|
var e_11, _a;
|
||||||
var output = es.ListPool.obtain();
|
var output = es.ListPool.obtain();
|
||||||
this.updateSegments();
|
this.updateSegments();
|
||||||
this._endPoints.sort(this._radialComparer.compare);
|
this._endPoints.sort(this._radialComparer.compare);
|
||||||
@@ -12866,12 +12750,12 @@ var es;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_28_1) { e_28 = { error: e_28_1 }; }
|
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||||
}
|
}
|
||||||
finally { if (e_28) throw e_28.error; }
|
finally { if (e_11) throw e_11.error; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VisibilityComputer._openSegments.clear();
|
VisibilityComputer._openSegments.clear();
|
||||||
@@ -12987,7 +12871,7 @@ var es;
|
|||||||
* 处理片段,以便我们稍后对它们进行分类
|
* 处理片段,以便我们稍后对它们进行分类
|
||||||
*/
|
*/
|
||||||
VisibilityComputer.prototype.updateSegments = function () {
|
VisibilityComputer.prototype.updateSegments = function () {
|
||||||
var e_29, _a;
|
var e_12, _a;
|
||||||
try {
|
try {
|
||||||
for (var _b = __values(this._segments), _c = _b.next(); !_c.done; _c = _b.next()) {
|
for (var _b = __values(this._segments), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||||
var segment = _c.value;
|
var segment = _c.value;
|
||||||
@@ -13005,12 +12889,12 @@ var es;
|
|||||||
segment.p2.begin = !segment.p1.begin;
|
segment.p2.begin = !segment.p1.begin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_29_1) { e_29 = { error: e_29_1 }; }
|
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||||
}
|
}
|
||||||
finally { if (e_29) throw e_29.error; }
|
finally { if (e_12) throw e_12.error; }
|
||||||
}
|
}
|
||||||
// 如果我们有一个聚光灯,我们需要存储前两个段的角度。
|
// 如果我们有一个聚光灯,我们需要存储前两个段的角度。
|
||||||
// 这些是光斑的边界,我们将用它们来过滤它们之外的任何顶点。
|
// 这些是光斑的边界,我们将用它们来过滤它们之外的任何顶点。
|
||||||
|
|||||||
2
source/bin/framework.min.js
vendored
2
source/bin/framework.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -250,8 +250,8 @@ module es {
|
|||||||
/**
|
/**
|
||||||
* 获取EntitySystem处理器
|
* 获取EntitySystem处理器
|
||||||
*/
|
*/
|
||||||
public getEntityProcessor<T extends EntitySystem>(): T {
|
public getEntityProcessor<T extends EntitySystem>(type: new (...args: any[]) => T): T {
|
||||||
return this.entityProcessors.getProcessor<T>();
|
return this.entityProcessors.getProcessor<T>(type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,11 +27,23 @@ module es {
|
|||||||
* @param entities
|
* @param entities
|
||||||
*/
|
*/
|
||||||
protected process(entities: Entity[]) {
|
protected process(entities: Entity[]) {
|
||||||
entities.forEach(entity => this.processEntity(entity));
|
if (entities.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (let i = 0, s = entities.length; i < s; ++ i) {
|
||||||
|
let entity = entities[i];
|
||||||
|
this.processEntity(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected lateProcess(entities: Entity[]) {
|
protected lateProcess(entities: Entity[]) {
|
||||||
entities.forEach(entity => this.lateProcessEntity(entity));
|
if (entities.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (let i = 0, s = entities.length; i < s; ++ i) {
|
||||||
|
let entity = entities[i];
|
||||||
|
this.lateProcessEntity(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,40 +73,48 @@ module es {
|
|||||||
* 立即从组件列表中删除所有组件
|
* 立即从组件列表中删除所有组件
|
||||||
*/
|
*/
|
||||||
public removeAllComponents() {
|
public removeAllComponents() {
|
||||||
for (let component of this._components) {
|
if (this._components.length > 0) {
|
||||||
this.handleRemove(component);
|
for (let i = 0, s = this._components.length; i < s; ++ i) {
|
||||||
}
|
this.handleRemove(this._components[i]);
|
||||||
|
}
|
||||||
|
|
||||||
this.componentsByType.clear();
|
this.componentsByType.clear();
|
||||||
this.componentsToAddByType.clear();
|
this.componentsToAddByType.clear();
|
||||||
this._components.length = 0;
|
this._components.length = 0;
|
||||||
this._updatableComponents.length = 0;
|
this._updatableComponents.length = 0;
|
||||||
this._componentsToAdd = {};
|
this._componentsToAdd = {};
|
||||||
this._componentsToRemove = {};
|
this._componentsToRemove = {};
|
||||||
this._componentsToAddList.length = 0;
|
this._componentsToAddList.length = 0;
|
||||||
this._componentsToRemoveList.length = 0;
|
this._componentsToRemoveList.length = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public deregisterAllComponents() {
|
public deregisterAllComponents() {
|
||||||
for (let component of this._components) {
|
if (this._components.length > 0) {
|
||||||
if (!component) continue;
|
for (let i = 0, s = this._components.length; i < s; ++ i) {
|
||||||
|
let component = this._components[i];
|
||||||
// 处理IUpdatable
|
if (!component) continue;
|
||||||
if (isIUpdatable(component))
|
|
||||||
new es.List(this._updatableComponents).remove(component);
|
// 处理IUpdatable
|
||||||
|
if (isIUpdatable(component))
|
||||||
this.decreaseBits(component);
|
new es.List(this._updatableComponents).remove(component);
|
||||||
this._entity.scene.entityProcessors.onComponentRemoved(this._entity);
|
|
||||||
|
this.decreaseBits(component);
|
||||||
|
this._entity.scene.entityProcessors.onComponentRemoved(this._entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public registerAllComponents() {
|
public registerAllComponents() {
|
||||||
for (let component of this._components) {
|
if (this._components.length > 0) {
|
||||||
if (isIUpdatable(component))
|
for (let i = 0, s = this._components.length; i < s; ++ i) {
|
||||||
this._updatableComponents.push(component);
|
let component = this._components[i];
|
||||||
|
if (isIUpdatable(component))
|
||||||
this.addBits(component);
|
this._updatableComponents.push(component);
|
||||||
this._entity.scene.entityProcessors.onComponentAdded(this._entity);
|
|
||||||
|
this.addBits(component);
|
||||||
|
this._entity.scene.entityProcessors.onComponentAdded(this._entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,25 +283,35 @@ module es {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public onEntityTransformChanged(comp: transform.Component) {
|
public onEntityTransformChanged(comp: transform.Component) {
|
||||||
for (let component of this._components) {
|
if (this._components.length > 0 ){
|
||||||
if (component.enabled)
|
for (let i = 0, s = this._components.length; i < s; ++ i) {
|
||||||
component.onEntityTransformChanged(comp);
|
let component = this._components[i];
|
||||||
|
if (component.enabled)
|
||||||
|
component.onEntityTransformChanged(comp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let component of this._componentsToAddList) {
|
if (this._componentsToAddList.length > 0) {
|
||||||
if (component.enabled)
|
for (let i = 0, s = this._componentsToAddList.length; i < s; ++ i) {
|
||||||
component.onEntityTransformChanged(comp);
|
let component = this._componentsToAddList[i];
|
||||||
|
if (component.enabled)
|
||||||
|
component.onEntityTransformChanged(comp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public onEntityEnabled() {
|
public onEntityEnabled() {
|
||||||
for (let component of this._components)
|
if (this._components.length > 0) {
|
||||||
component.onEnabled();
|
for (let i = 0, s = this._components.length; i < s; i ++)
|
||||||
|
this._components[i].onEnabled();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public onEntityDisabled() {
|
public onEntityDisabled() {
|
||||||
for (let component of this._components)
|
if (this._components.length > 0) {
|
||||||
component.onDisabled();
|
for (let i = 0, s = this._components.length; i < s; i ++)
|
||||||
|
this._components[i].onDisabled();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,16 +179,20 @@ module es {
|
|||||||
* @param name
|
* @param name
|
||||||
*/
|
*/
|
||||||
public findEntity(name: string) {
|
public findEntity(name: string) {
|
||||||
for (let i = 0, s = this._entities.length; i < s; ++ i) {
|
if (this._entities.length > 0) {
|
||||||
let entity = this._entities[i];
|
for (let i = 0, s = this._entities.length; i < s; ++ i) {
|
||||||
if (entity[i].name == name)
|
let entity = this._entities[i];
|
||||||
return entity;
|
if (entity.name == name)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0, s = this._entitiesToAddedList.length; i < s; ++ i) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
let entity = this._entitiesToAddedList[i];
|
for (let i = 0, s = this._entitiesToAddedList.length; i < s; ++ i) {
|
||||||
if (entity.name == name)
|
let entity = this._entitiesToAddedList[i];
|
||||||
return entity;
|
if (entity.name == name)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -200,12 +204,14 @@ module es {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
public findEntityById(id: number) {
|
public findEntityById(id: number) {
|
||||||
for (let i = 0, s = this._entities.length; i < s; ++ i) {
|
if (this._entities.length > 0) {
|
||||||
let entity = this._entities[i];
|
for (let i = 0, s = this._entities.length; i < s; ++ i) {
|
||||||
if (entity.id == id)
|
let entity = this._entities[i];
|
||||||
return entity;
|
if (entity.id == id)
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this._entitiesToAdded[id];
|
return this._entitiesToAdded[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,10 +224,12 @@ module es {
|
|||||||
let list = this.getTagList(tag);
|
let list = this.getTagList(tag);
|
||||||
|
|
||||||
let returnList = ListPool.obtain<Entity>();
|
let returnList = ListPool.obtain<Entity>();
|
||||||
for (let entity of list) {
|
if (list.size > 0) {
|
||||||
returnList.push(entity);
|
for (let entity of list) {
|
||||||
|
returnList.push(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnList;
|
return returnList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,8 +241,10 @@ module es {
|
|||||||
public entityWithTag(tag: number) {
|
public entityWithTag(tag: number) {
|
||||||
let list = this.getTagList(tag);
|
let list = this.getTagList(tag);
|
||||||
|
|
||||||
for (let entity of list) {
|
if (list.size > 0) {
|
||||||
return entity;
|
for (let entity of list) {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -245,21 +255,25 @@ module es {
|
|||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
public findComponentOfType<T extends Component>(type): T {
|
public findComponentOfType<T extends Component>(type): T {
|
||||||
for (let i = 0, s = this._entities.length; i < s; i++) {
|
if (this._entities.length > 0 ){
|
||||||
let entity = this._entities[i];
|
for (let i = 0, s = this._entities.length; i < s; i++) {
|
||||||
if (entity.enabled) {
|
let entity = this._entities[i];
|
||||||
let comp = entity.getComponent<T>(type);
|
if (entity.enabled) {
|
||||||
if (comp)
|
let comp = entity.getComponent<T>(type);
|
||||||
return comp;
|
if (comp)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < this._entitiesToAddedList.length; i++) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
let entity = this._entitiesToAddedList[i];
|
for (let i = 0; i < this._entitiesToAddedList.length; i++) {
|
||||||
if (entity.enabled) {
|
let entity = this._entitiesToAddedList[i];
|
||||||
let comp = entity.getComponent<T>(type);
|
if (entity.enabled) {
|
||||||
if (comp)
|
let comp = entity.getComponent<T>(type);
|
||||||
return comp;
|
if (comp)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,14 +287,20 @@ module es {
|
|||||||
*/
|
*/
|
||||||
public findComponentsOfType<T extends Component>(type): T[] {
|
public findComponentsOfType<T extends Component>(type): T[] {
|
||||||
let comps = ListPool.obtain<T>();
|
let comps = ListPool.obtain<T>();
|
||||||
for (let i = 0; i < this._entities.length; i++) {
|
if (this._entities.length > 0) {
|
||||||
if (this._entities[i].enabled)
|
for (let i = 0, s = this._entities.length; i < s; i++) {
|
||||||
this._entities[i].getComponents(type, comps);
|
let entity = this._entities[i];
|
||||||
|
if (entity.enabled)
|
||||||
|
entity.getComponents(type, comps);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let entity of this._entitiesToAddedList) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
if (entity.enabled)
|
for (let i = 0, s = this._entitiesToAddedList.length; i < s; i ++) {
|
||||||
entity.getComponents(type, comps);
|
let entity = this._entitiesToAddedList[i];
|
||||||
|
if (entity.enabled)
|
||||||
|
entity.getComponents(type, comps);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return comps;
|
return comps;
|
||||||
@@ -291,41 +311,51 @@ module es {
|
|||||||
* @param types
|
* @param types
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
public findEntitesOfComponent(...types): Entity[] {
|
public findEntitesOfComponent(...types: any[]): Entity[] {
|
||||||
let entities = [];
|
let entities = [];
|
||||||
for (let i = 0; i < this._entities.length; i++) {
|
if (this._entities.length > 0) {
|
||||||
if (this._entities[i].enabled) {
|
for (let i = 0, s = this._entities.length; i < s; i++) {
|
||||||
let meet = true;
|
if (this._entities[i].enabled) {
|
||||||
for (let type of types) {
|
let meet = true;
|
||||||
let hasComp = this._entities[i].hasComponent(type);
|
if (types.length > 0)
|
||||||
if (!hasComp) {
|
for (let t = 0, ts = types.length; t < ts; t ++) {
|
||||||
meet = false;
|
let type = types[t];
|
||||||
break;
|
let hasComp = this._entities[i].hasComponent(type);
|
||||||
|
if (!hasComp) {
|
||||||
|
meet = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (meet) {
|
||||||
|
entities.push(this._entities[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (meet) {
|
|
||||||
entities.push(this._entities[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let entity of this._entitiesToAddedList) {
|
if (this._entitiesToAddedList.length > 0) {
|
||||||
if (entity.enabled) {
|
for (let i = 0, s = this._entitiesToAddedList.length; i < s; i ++) {
|
||||||
let meet = true;
|
let entity = this._entitiesToAddedList[i];
|
||||||
for (let type of types) {
|
if (entity.enabled) {
|
||||||
let hasComp = entity.hasComponent(type);
|
let meet = true;
|
||||||
if (!hasComp) {
|
if (types.length > 0)
|
||||||
meet = false;
|
for (let t = 0, ts = types.length; t < ts; t ++) {
|
||||||
break;
|
let type = types[t];
|
||||||
|
let hasComp = entity.hasComponent(type);
|
||||||
|
if (!hasComp) {
|
||||||
|
meet = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (meet) {
|
||||||
|
entities.push(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (meet) {
|
|
||||||
entities.push(entity);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return entities;
|
return entities;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,13 +52,13 @@ module es {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public getProcessor<T extends EntitySystem>(): T {
|
public getProcessor<T extends EntitySystem>(type: new (...args: any[]) => T): T {
|
||||||
if (this._processors.length == 0)
|
if (this._processors.length == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
for (let i = 0, s = this._processors.length; i < s; ++ i) {
|
for (let i = 0, s = this._processors.length; i < s; ++ i) {
|
||||||
let processor = this._processors[i];
|
let processor = this._processors[i];
|
||||||
if (processor instanceof EntitySystem)
|
if (processor instanceof type)
|
||||||
return processor as T;
|
return processor as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,22 +26,25 @@ module es {
|
|||||||
|
|
||||||
public isInterested(components: Bits) {
|
public isInterested(components: Bits) {
|
||||||
if (this.allSet.length != 0) {
|
if (this.allSet.length != 0) {
|
||||||
for (let s of this.allSet) {
|
for (let i = 0, s = this.allSet.length; i < s; ++ i) {
|
||||||
if (!components.get(ComponentTypeManager.getIndexFor(s)))
|
let type = this.allSet[i];
|
||||||
|
if (!components.get(ComponentTypeManager.getIndexFor(type)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.exclusionSet.length != 0) {
|
if (this.exclusionSet.length != 0) {
|
||||||
for (let s of this.exclusionSet) {
|
for (let i = 0, s = this.exclusionSet.length; i < s; ++ i) {
|
||||||
if (components.get(ComponentTypeManager.getIndexFor(s)))
|
let type = this.exclusionSet[i];
|
||||||
|
if (components.get(ComponentTypeManager.getIndexFor(type)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.oneSet.length != 0) {
|
if (this.oneSet.length != 0) {
|
||||||
for (let s of this.oneSet) {
|
for (let i = 0, s = this.oneSet.length; i < s; ++ i) {
|
||||||
if (components.get(ComponentTypeManager.getIndexFor(s)))
|
let type = this.oneSet[i];
|
||||||
|
if (components.get(ComponentTypeManager.getIndexFor(type)))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,7 +54,8 @@ module es {
|
|||||||
|
|
||||||
public all(...types: any[]): Matcher {
|
public all(...types: any[]): Matcher {
|
||||||
let t;
|
let t;
|
||||||
for (t of types) {
|
for (let i = 0, s = types.length; i < s; ++ i) {
|
||||||
|
t = types[i];
|
||||||
this.allSet.push(t);
|
this.allSet.push(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +64,8 @@ module es {
|
|||||||
|
|
||||||
public exclude(...types: any[]) {
|
public exclude(...types: any[]) {
|
||||||
let t;
|
let t;
|
||||||
for (t of types) {
|
for (let i = 0, s = types.length; i < s; ++ i) {
|
||||||
|
t = types[i];
|
||||||
this.exclusionSet.push(t);
|
this.exclusionSet.push(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +73,8 @@ module es {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public one(...types: any[]) {
|
public one(...types: any[]) {
|
||||||
for (const t of types) {
|
for (let i = 0, s = types.length; i < s; ++ i) {
|
||||||
|
const t = types[i];
|
||||||
this.oneSet.push(t);
|
this.oneSet.push(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,12 +18,19 @@ module es {
|
|||||||
private static _lastTime = -1;
|
private static _lastTime = -1;
|
||||||
|
|
||||||
public static update(currentTime: number) {
|
public static update(currentTime: number) {
|
||||||
if (currentTime == -1)
|
if (currentTime == -1) {
|
||||||
currentTime = Date.now();
|
currentTime = Date.now();
|
||||||
|
}
|
||||||
if (this._lastTime == -1)
|
if (this._lastTime == -1)
|
||||||
this._lastTime = currentTime;
|
this._lastTime = currentTime;
|
||||||
|
|
||||||
let dt = (currentTime - this._lastTime) / 1000;
|
let dt = 0;
|
||||||
|
if (currentTime == -1) {
|
||||||
|
dt = (currentTime - this._lastTime) / 1000;
|
||||||
|
} else {
|
||||||
|
dt = currentTime;
|
||||||
|
}
|
||||||
|
|
||||||
if (dt > this.maxDeltaTime)
|
if (dt > this.maxDeltaTime)
|
||||||
dt = this.maxDeltaTime;
|
dt = this.maxDeltaTime;
|
||||||
this.totalTime += dt;
|
this.totalTime += dt;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ module es {
|
|||||||
let messageData = this._messageTable.get(eventType);
|
let messageData = this._messageTable.get(eventType);
|
||||||
let index = messageData.findIndex(data => data.func == handler);
|
let index = messageData.findIndex(data => data.func == handler);
|
||||||
if (index != -1)
|
if (index != -1)
|
||||||
new es.List(messageData).removeAt(index);
|
messageData.splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user