UNPKG

roguelike-pumpkin-patch

Version:
30 lines (29 loc) 1.16 kB
/** 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 {};