2d-physics-engine
Version:
A lightweight, flexible 2D physics engine with ECS architecture, built with TypeScript
30 lines • 1.11 kB
TypeScript
import { AABB } from '../../math/AABB';
import { Component } from '../Component.abstract';
import { Transform } from '../Transform.component';
import { Entity } from '../../core/Entity';
import { CollisionInfo } from '../../systems/PhysicsSystem/CollisionDetector';
export interface CollisionEvent {
otherEntity: Entity;
otherCollider: Collider;
otherTransform: Transform;
collisionInfo: CollisionInfo;
}
export declare abstract class Collider extends Component {
readonly componentId: symbol;
abstract readonly colliderId: symbol;
abstract calculateInertia(mass: number): number;
abstract getAABB(transform: Transform): AABB;
/**
* Called when a collision starts (colliders first come into contact)
*/
onCollideEntry?(event: CollisionEvent): void;
/**
* Called every frame while colliders are in contact
*/
onCollideStay?(event: CollisionEvent): void;
/**
* Called when a collision ends (colliders are no longer in contact)
*/
onCollideExit?(event: CollisionEvent): void;
}
//# sourceMappingURL=Collider.abstract.d.ts.map