Merge branch entity-center-fix #4
2
lib/index.d.ts
vendored
2
lib/index.d.ts
vendored
@ -650,7 +650,7 @@ export namespace entity {
|
||||
* @param container The container.
|
||||
* @param hitCallback The callback that is executed when an entity hits something in the container.
|
||||
*/
|
||||
export function hits(entity: NumericalEntityWithHitbox | NumericalEntity, container: Container<NumericalEntityWithHitbox | NumericalEntity>, hitCallback: (e2: NumericalEntityWithHitbox | NumericalEntity) => any): void;
|
||||
export function hits<T extends NumericalEntityWithHitbox | NumericalEntity>(entity: NumericalEntityWithHitbox | NumericalEntity, container: Container<T>, hitCallback: (e2: T) => any): void;
|
||||
|
||||
/**
|
||||
* This functions calculates whether two entities hit each other.
|
||||
|
@ -20,7 +20,16 @@ function angle(a, b) {
|
||||
}
|
||||
|
||||
function bounds(entity) {
|
||||
const { w, h, pos, hitBox } = entity;
|
||||
let pos, w, h, hitBox;
|
||||
// Object.prototype.hasOwnProperty.call is needed because of eslint
|
||||
if (Object.prototype.hasOwnProperty.call(entity, "tileW") && Object.prototype.hasOwnProperty.call(entity, "tileH")) {
|
||||
({pos, w, h} = {pos: entity.pos, w: entity.tileW, h: entity.tileH});
|
||||
} else {
|
||||
({pos, w, h} = entity);
|
||||
}
|
||||
|
||||
if (entity.hitBox) hitBox = entity.hitBox;
|
||||
|
||||
const hit = hitBox || { x: 0, y: 0, w, h };
|
||||
return {
|
||||
x: hit.x + pos.x,
|
||||
|
Loading…
Reference in New Issue
Block a user