roguelike-pumpkin-patch
Version:
A roguelike development library in JavaScript.
30 lines (29 loc) • 1.16 kB
TypeScript
/** Vision callback function */
declare type canSee = (position: Array<number>) => boolean;
/** Angles that are in shadows */
interface Shadow {
startAngle: number;
endAngle: number;
}
/** Field of view */
export default class FOV {
private canSee;
private range;
/** Accepts a callback function to determine if a location is seethrough */
constructor(canSee: canSee, range?: number);
/** Do the FOV calculation */
look(position: Array<number>, lookRangeOverride?: number): void;
/** Get angle a tile resides in
* This ranges from -180 to 180, so be careful
*/
angleTo(startPosition: Array<number>, endPosition: Array<number>): number;
/** Get angular size of a square */
angularSize(startPosition: Array<number>, endPosition: Array<number>): number;
/** Get distance */
distance(startPosition: Array<number>, endPosition: Array<number>): number;
/** Check if in shadows */
isInShadows(angle: number, shadows: Array<Shadow>): boolean;
/** Add a shadow to the shadow array */
combineShadow(shadows: Array<Shadow>, newShadow: Shadow): void;
}
export {};