Files
esengine/demo/libs/framework/framework.d.ts

1032 lines
35 KiB
TypeScript
Raw Normal View History

2020-06-08 11:49:45 +08:00
declare interface Array<T> {
findIndex(predicate: Function): number;
any(predicate: Function): boolean;
firstOrDefault(predicate: Function): T;
find(predicate: Function): T;
where(predicate: Function): Array<T>;
count(predicate: Function): number;
findAll(predicate: Function): Array<T>;
contains(value: any): boolean;
removeAll(predicate: Function): void;
remove(element: any): boolean;
removeAt(index: any): void;
removeRange(index: any, count: any): void;
select(selector: Function): Array<T>;
orderBy(keySelector: Function, comparer: Function): Array<T>;
orderByDescending(keySelector: Function, comparer: Function): Array<T>;
groupBy(keySelector: Function): Array<T>;
sum(selector: any): any;
}
2020-06-09 19:45:09 +08:00
declare class PriorityQueueNode {
priority: number;
insertionIndex: number;
queueIndex: number;
}
declare class AStarPathfinder {
static search<T>(graph: IAstarGraph<T>, start: T, goal: T): T[];
private static hasKey;
private static getKey;
static recontructPath<T>(cameFrom: Map<T, T>, start: T, goal: T): T[];
}
declare class AStarNode<T> extends PriorityQueueNode {
data: T;
constructor(data: T);
}
declare class AstarGridGraph implements IAstarGraph<Point> {
dirs: Point[];
walls: Point[];
weightedNodes: Point[];
defaultWeight: number;
weightedNodeWeight: number;
private _width;
private _height;
private _neighbors;
constructor(width: number, height: number);
isNodeInBounds(node: Point): boolean;
isNodePassable(node: Point): boolean;
search(start: Point, goal: Point): Point[];
getNeighbors(node: Point): Point[];
cost(from: Point, to: Point): number;
heuristic(node: Point, goal: Point): number;
}
interface IAstarGraph<T> {
getNeighbors(node: T): Array<T>;
cost(from: T, to: T): number;
heuristic(node: T, goal: T): any;
}
declare class PriorityQueue<T extends PriorityQueueNode> {
private _numNodes;
private _nodes;
private _numNodesEverEnqueued;
constructor(maxNodes: number);
clear(): void;
readonly count: number;
contains(node: T): boolean;
enqueue(node: T, priority: number): void;
dequeue(): T;
remove(node: T): void;
isValidQueue(): boolean;
private onNodeUpdated;
private cascadeDown;
private cascadeUp;
private swap;
private hasHigherPriority;
}
declare class BreadthFirstPathfinder {
static search<T>(graph: IUnweightedGraph<T>, start: T, goal: T): T[];
private static hasKey;
}
interface IUnweightedGraph<T> {
getNeighbors(node: T): T[];
}
declare class UnweightedGraph<T> implements IUnweightedGraph<T> {
edges: Map<T, T[]>;
addEdgesForNode(node: T, edges: T[]): this;
getNeighbors(node: T): T[];
}
declare class Point {
x: number;
y: number;
2020-06-16 11:59:40 +08:00
constructor(x?: number, y?: number);
}
declare class UnweightedGridGraph implements IUnweightedGraph<Point> {
private static readonly CARDINAL_DIRS;
private static readonly COMPASS_DIRS;
walls: Point[];
private _width;
private _hegiht;
private _dirs;
private _neighbors;
constructor(width: number, height: number, allowDiagonalSearch?: boolean);
isNodeInBounds(node: Point): boolean;
isNodePassable(node: Point): boolean;
getNeighbors(node: Point): Point[];
search(start: Point, goal: Point): Point[];
}
interface IWeightedGraph<T> {
getNeighbors(node: T): T[];
cost(from: T, to: T): number;
}
declare class WeightedGridGraph implements IWeightedGraph<Point> {
static readonly CARDINAL_DIRS: Point[];
private static readonly COMPASS_DIRS;
walls: Point[];
weightedNodes: Point[];
defaultWeight: number;
weightedNodeWeight: number;
private _width;
private _height;
private _dirs;
private _neighbors;
constructor(width: number, height: number, allowDiagonalSearch?: boolean);
isNodeInBounds(node: Point): boolean;
isNodePassable(node: Point): boolean;
search(start: Point, goal: Point): Point[];
getNeighbors(node: Point): Point[];
cost(from: Point, to: Point): number;
}
declare class WeightedNode<T> extends PriorityQueueNode {
data: T;
constructor(data: T);
}
declare class WeightedPathfinder {
static search<T>(graph: IWeightedGraph<T>, start: T, goal: T): T[];
private static hasKey;
private static getKey;
static recontructPath<T>(cameFrom: Map<T, T>, start: T, goal: T): T[];
}
declare class DebugDefaults {
static verletParticle: number;
static verletConstraintEdge: number;
}
2020-06-08 16:23:48 +08:00
declare abstract class Component {
entity: Entity;
2020-06-08 18:26:05 +08:00
private _enabled;
updateInterval: number;
readonly transform: Transform;
2020-06-08 18:26:05 +08:00
enabled: boolean;
setEnabled(isEnabled: boolean): this;
2020-06-19 18:16:42 +08:00
readonly stage: egret.Stage;
2020-06-16 00:04:28 +08:00
initialize(): void;
2020-06-08 23:04:57 +08:00
onAddedToEntity(): void;
onRemovedFromEntity(): void;
onEnabled(): void;
onDisabled(): void;
onEntityTransformChanged(comp: ComponentTransform): void;
2020-06-08 16:23:48 +08:00
update(): void;
2020-06-16 11:59:40 +08:00
debugRender(): void;
2020-06-08 20:11:58 +08:00
registerComponent(): void;
deregisterComponent(): void;
2020-06-08 16:23:48 +08:00
}
2020-06-08 11:49:45 +08:00
declare class Entity {
2020-06-09 23:14:47 +08:00
private static _idGenerator;
2020-06-08 11:49:45 +08:00
name: string;
2020-06-09 23:14:47 +08:00
readonly id: number;
2020-06-08 11:49:45 +08:00
scene: Scene;
readonly transform: Transform;
2020-06-08 23:04:57 +08:00
readonly components: ComponentList;
2020-06-08 16:23:48 +08:00
private _updateOrder;
2020-06-08 18:26:05 +08:00
private _enabled;
2020-06-22 15:27:58 +08:00
_isDestoryed: boolean;
2020-06-09 23:14:47 +08:00
private _tag;
2020-06-08 20:11:58 +08:00
componentBits: BitSet;
parent: Transform;
position: Vector2;
localPosition: Vector2;
rotation: number;
rotationDegrees: number;
localRotation: number;
localRotationDegrees: number;
scale: Vector2;
localScale: Vector2;
readonly worldInverseTransform: Matrix2D;
readonly localToWorldTransform: Matrix2D;
readonly worldToLocalTransform: Matrix2D;
2020-06-08 23:04:57 +08:00
readonly isDestoryed: boolean;
2020-06-08 18:26:05 +08:00
enabled: boolean;
setEnabled(isEnabled: boolean): this;
2020-06-09 23:14:47 +08:00
tag: number;
2020-06-19 18:16:42 +08:00
readonly stage: egret.Stage;
2020-06-08 11:49:45 +08:00
constructor(name: string);
2020-06-08 16:23:48 +08:00
updateOrder: number;
setUpdateOrder(updateOrder: number): this;
2020-06-09 23:14:47 +08:00
setTag(tag: number): Entity;
2020-06-08 11:49:45 +08:00
attachToScene(newScene: Scene): void;
2020-06-08 23:04:57 +08:00
detachFromScene(): void;
2020-06-08 16:23:48 +08:00
addComponent<T extends Component>(component: T): T;
hasComponent<T extends Component>(type: any): boolean;
getOrCreateComponent<T extends Component>(type: T): T;
getComponent<T extends Component>(type: any): T;
getComponents(typeName: string | any, componentList?: any): any;
removeComponentForType<T extends Component>(type: any): boolean;
removeComponent(component: Component): void;
removeAllComponents(): void;
2020-06-08 16:23:48 +08:00
update(): void;
2020-06-08 23:04:57 +08:00
onAddedToScene(): void;
onRemovedFromScene(): void;
onTransformChanged(comp: ComponentTransform): void;
2020-06-08 11:49:45 +08:00
destory(): void;
}
declare class Scene extends egret.DisplayObjectContainer {
camera: Camera;
2020-06-08 20:11:58 +08:00
readonly entities: EntityList;
readonly renderableComponents: RenderableComponentList;
readonly content: ContentManager;
enablePostProcessing: boolean;
2020-06-08 16:23:48 +08:00
private _projectionMatrix;
private _transformMatrix;
private _matrixTransformMatrix;
private _renderers;
private _postProcessors;
private _afterPostProcessorRenderer;
private _didSceneBegin;
readonly entityProcessors: EntityProcessorList;
2020-06-08 11:49:45 +08:00
constructor(displayObject: egret.DisplayObject);
createEntity(name: string): Entity;
addEntity(entity: Entity): Entity;
2020-06-08 20:11:58 +08:00
destroyAllEntities(): void;
2020-06-08 18:26:05 +08:00
findEntity(name: string): Entity;
addEntityProcessor(processor: EntitySystem): EntitySystem;
removeEntityProcessor(processor: EntitySystem): void;
getEntityProcessor<T extends EntitySystem>(): T;
addRenderer<T extends Renderer>(renderer: T): T;
getRenderer<T extends Renderer>(type: any): T;
removeRenderer(renderer: Renderer): void;
begin(): void;
end(): void;
protected onStart(): void;
protected onActive(): void;
protected onDeactive(): void;
2020-06-22 15:27:58 +08:00
protected unload(): void;
2020-06-08 16:23:48 +08:00
update(): void;
postRender(): void;
2020-06-18 23:22:54 +08:00
render(): void;
2020-06-08 11:49:45 +08:00
}
declare class SceneManager {
private static _scene;
private static _nextScene;
static sceneTransition: SceneTransition;
2020-06-22 15:27:58 +08:00
static stage: egret.Stage;
constructor(stage: egret.Stage);
static scene: Scene;
static initialize(stage: egret.Stage): void;
static update(): void;
static render(): void;
static startSceneTransition<T extends SceneTransition>(sceneTransition: T): T;
2020-06-08 11:49:45 +08:00
}
declare enum DirtyType {
clean = 0,
positionDirty = 1,
scaleDirty = 2,
rotationDirty = 3
}
2020-06-08 23:04:57 +08:00
declare enum ComponentTransform {
position = 0,
scale = 1,
rotation = 2
}
2020-06-08 11:49:45 +08:00
declare class Transform {
readonly entity: Entity;
private _children;
private _parent;
2020-06-08 16:23:48 +08:00
private _localPosition;
private _localRotation;
private _localScale;
private _translationMatrix;
private _rotationMatrix;
private _scaleMatrix;
private _worldTransform;
private _worldToLocalTransform;
private _worldInverseTransform;
private _rotation;
private _position;
private _scale;
private _localTransform;
private _hierachyDirty;
private _localDirty;
private _localPositionDirty;
private _localScaleDirty;
private _localRotationDirty;
private _positionDirty;
private _worldToLocalDirty;
private _worldInverseDirty;
2020-06-08 11:49:45 +08:00
readonly childCount: number;
constructor(entity: Entity);
getChild(index: number): Transform;
readonly worldInverseTransform: Matrix2D;
readonly localToWorldTransform: Matrix2D;
readonly worldToLocalTransform: Matrix2D;
2020-06-08 11:49:45 +08:00
parent: Transform;
setParent(parent: Transform): this;
rotation: number;
localRotation: number;
2020-06-08 16:23:48 +08:00
position: Vector2;
localPosition: Vector2;
scale: Vector2;
localScale: Vector2;
rotationDegrees: number;
localRotationDegrees: number;
setLocalScale(scale: Vector2): this;
setScale(scale: Vector2): this;
setLocalRotationDegrees(degrees: number): this;
setLocalRotation(radians: number): this;
setRotation(radians: number): this;
setRotationDegrees(degrees: number): this;
2020-06-08 16:23:48 +08:00
setLocalPosition(localPosition: Vector2): this;
setPosition(position: Vector2): this;
2020-06-08 23:04:57 +08:00
setDirty(dirtyFlagType: DirtyType): void;
2020-06-19 09:16:49 +08:00
roundPosition(): void;
2020-06-08 16:23:48 +08:00
updateTransform(): void;
2020-06-08 11:49:45 +08:00
}
2020-06-08 16:23:48 +08:00
declare class Camera extends Component {
private _zoom;
private _origin;
private _transformMatrix;
private _inverseTransformMatrix;
2020-06-18 23:22:54 +08:00
private _projectionMatrix;
private _minimumZoom;
private _maximumZoom;
private _areMatrixesDirty;
private _inset;
private _bounds;
private _areBoundsDirty;
2020-06-18 23:22:54 +08:00
private _isProjectionMatrixDirty;
readonly bounds: Rectangle;
zoom: number;
minimumZoom: number;
maximumZoom: number;
origin: Vector2;
2020-06-19 09:16:49 +08:00
position: Vector2;
2020-06-08 16:23:48 +08:00
readonly transformMatrix: Matrix2D;
readonly inverseTransformMatrix: Matrix2D;
2020-06-08 16:23:48 +08:00
constructor();
2020-06-18 23:22:54 +08:00
onSceneSizeChanged(newWidth: number, newHeight: number): void;
setMinimumZoom(minZoom: number): Camera;
setMaximumZoom(maxZoom: number): Camera;
setZoom(zoom: number): this;
2020-06-08 16:23:48 +08:00
setPosition(position: Vector2): this;
2020-06-19 00:38:37 +08:00
forceMatrixUpdate(): void;
2020-06-19 18:16:42 +08:00
protected updateMatrixes(): void;
screenToWorldPoint(screenPosition: Vector2): Vector2;
worldToScreenPoint(worldPosition: Vector2): Vector2;
2020-06-19 00:38:37 +08:00
onEntityTransformChanged(comp: ComponentTransform): void;
2020-06-08 11:49:45 +08:00
destory(): void;
}
declare class CameraInset {
2020-06-19 18:16:42 +08:00
left: number;
right: number;
top: number;
bottom: number;
}
2020-06-19 09:16:49 +08:00
declare class FollowCamera extends Component {
camera: Camera;
followLerp: number;
deadzone: Rectangle;
focusOffset: Vector2;
mapLockEnabled: boolean;
mapSize: Vector2;
private _targetEntity;
private _cameraStyle;
private _worldSpaceDeadZone;
private _desiredPositionDelta;
private _targetCollider;
constructor(targetEntity: Entity, cameraStyle?: CameraStyle);
onAddedToEntity(): void;
follow(targetEntity: Entity, cameraStyle?: CameraStyle): void;
update(): void;
private clampToMapSize;
private updateFollow;
}
declare enum CameraStyle {
lockOn = 0,
cameraWindow = 1
}
2020-06-10 08:57:17 +08:00
declare class Mesh extends Component {
private _verts;
private _primitiveCount;
private _triangles;
private _topLeftVertPosition;
private _width;
private _height;
initialize(): void;
setVertPosition(positions: Vector2[]): this;
setTriangles(triangles: number[]): this;
recalculateBounds(): this;
render(): void;
2020-06-10 08:57:17 +08:00
}
declare class VertexPosition {
position: Vector2;
constructor(position: Vector2);
}
declare class PolygonMesh extends Mesh {
constructor(points: Vector2[], arePointsCCW?: boolean);
}
declare abstract class RenderableComponent extends Component implements IRenderable {
private _isVisible;
protected _areBoundsDirty: boolean;
protected _bounds: Rectangle;
protected _localOffset: Vector2;
readonly width: number;
readonly height: number;
isVisible: boolean;
readonly bounds: Rectangle;
protected getWidth(): number;
protected getHeight(): number;
protected onBecameVisible(): void;
protected onBecameInvisible(): void;
abstract render(camera: Camera): any;
isVisibleFromCamera(camera: Camera): boolean;
onEntityTransformChanged(comp: ComponentTransform): void;
}
declare class ScreenSpaceCamera extends Camera {
protected updateMatrixes(): void;
}
2020-06-19 18:16:42 +08:00
declare class Sprite {
texture2D: egret.Texture;
readonly sourceRect: Rectangle;
readonly center: Vector2;
origin: Vector2;
readonly uvs: Rectangle;
constructor(texture: egret.Texture, sourceRect?: Rectangle, origin?: Vector2);
}
declare class SpriteRenderer extends RenderableComponent {
private _sprite;
private _origin;
2020-06-19 18:16:42 +08:00
private _bitmap;
readonly bounds: Rectangle;
sprite: Sprite;
setSprite(sprite: Sprite): SpriteRenderer;
origin: Vector2;
setOrigin(origin: Vector2): this;
setColor(color: number): void;
2020-06-19 18:16:42 +08:00
isVisibleFromCamera(camera: Camera): boolean;
render(camera: Camera): void;
2020-06-22 15:27:58 +08:00
onRemovedFromEntity(): void;
}
2020-06-16 00:04:28 +08:00
interface ITriggerListener {
onTriggerEnter(other: Collider, local: Collider): any;
onTriggerExit(other: Collider, local: Collider): any;
}
declare class Mover extends Component {
private _triggerHelper;
onAddedToEntity(): void;
calculateMovement(motion: Vector2): CollisionResult;
applyMovement(motion: Vector2): void;
move(motion: Vector2): CollisionResult;
}
2020-06-12 08:47:13 +08:00
declare abstract class Collider extends Component {
shape: Shape;
physicsLayer: number;
isTrigger: boolean;
2020-06-15 10:42:06 +08:00
registeredPhysicsBounds: Rectangle;
2020-06-16 00:04:28 +08:00
shouldColliderScaleAndRotationWithTransform: boolean;
collidesWithLayers: number;
_localOffsetLength: number;
_isPositionDirty: boolean;
_isRotationDirty: boolean;
2020-06-15 10:42:06 +08:00
protected _isParentEntityAddedToScene: any;
protected _colliderRequiresAutoSizing: any;
protected _localOffset: Vector2;
protected _isColliderRegistered: any;
2020-06-12 08:47:13 +08:00
readonly bounds: Rectangle;
localOffset: Vector2;
setLocalOffset(offset: Vector2): void;
registerColliderWithPhysicsSystem(): void;
unregisterColliderWithPhysicsSystem(): void;
2020-06-16 00:04:28 +08:00
overlaps(other: Collider): any;
collidesWith(collider: Collider, motion: Vector2): CollisionResult;
onAddedToEntity(): void;
2020-06-16 20:22:22 +08:00
onRemovedFromEntity(): void;
2020-06-16 00:04:28 +08:00
onEntityTransformChanged(comp: ComponentTransform): void;
onEnabled(): void;
onDisabled(): void;
2020-06-15 10:42:06 +08:00
}
declare class BoxCollider extends Collider {
width: number;
setWidth(width: number): BoxCollider;
height: number;
setHeight(height: number): void;
constructor();
2020-06-16 11:59:40 +08:00
setSize(width: number, height: number): this;
2020-06-12 08:47:13 +08:00
}
2020-06-08 18:26:05 +08:00
declare class EntitySystem {
private _scene;
private _entities;
private _matcher;
readonly matcher: Matcher;
scene: Scene;
constructor(matcher?: Matcher);
initialize(): void;
2020-06-08 20:11:58 +08:00
onChanged(entity: Entity): void;
add(entity: Entity): void;
onAdded(entity: Entity): void;
remove(entity: Entity): void;
onRemoved(entity: Entity): void;
2020-06-08 18:26:05 +08:00
update(): void;
lateUpdate(): void;
protected begin(): void;
protected process(entities: Entity[]): void;
protected lateProcess(entities: Entity[]): void;
protected end(): void;
}
declare abstract class EntityProcessingSystem extends EntitySystem {
constructor(matcher: Matcher);
abstract processEntity(entity: Entity): any;
lateProcessEntity(entity: Entity): void;
protected process(entities: Entity[]): void;
protected lateProcess(entities: Entity[]): void;
}
2020-06-08 20:11:58 +08:00
declare class BitSet {
private static LONG_MASK;
private _bits;
constructor(nbits?: number);
and(bs: BitSet): void;
andNot(bs: BitSet): void;
cardinality(): number;
clear(pos?: number): void;
private ensure;
get(pos: number): boolean;
intersects(set: BitSet): boolean;
isEmpty(): boolean;
nextSetBit(from: number): number;
set(pos: number, value?: boolean): void;
2020-06-08 20:11:58 +08:00
}
2020-06-08 23:04:57 +08:00
declare class ComponentList {
private _entity;
private _components;
private _componentsToAdd;
private _componentsToRemove;
private _tempBufferList;
constructor(entity: Entity);
readonly count: number;
2020-06-08 23:04:57 +08:00
readonly buffer: Component[];
add(component: Component): void;
remove(component: Component): void;
removeAllComponents(): void;
deregisterAllComponents(): void;
registerAllComponents(): void;
updateLists(): void;
private handleRemove;
getComponent<T extends Component>(type: any, onlyReturnInitializedComponents: boolean): T;
getComponents(typeName: string | any, components?: any): any;
2020-06-08 23:04:57 +08:00
update(): void;
onEntityTransformChanged(comp: any): void;
}
2020-06-08 20:11:58 +08:00
declare class ComponentTypeManager {
private static _componentTypesMask;
static add(type: any): void;
static getIndexFor(type: any): number;
}
declare class EntityList {
scene: Scene;
private _entitiesToRemove;
private _entitiesToAdded;
private _tempEntityList;
private _entities;
2020-06-09 23:14:47 +08:00
private _entityDict;
private _unsortedTags;
2020-06-08 20:11:58 +08:00
constructor(scene: Scene);
readonly count: number;
readonly buffer: Entity[];
add(entity: Entity): void;
remove(entity: Entity): void;
findEntity(name: string): Entity;
2020-06-09 23:14:47 +08:00
getTagList(tag: number): Entity[];
addToTagList(entity: Entity): void;
removeFromTagList(entity: Entity): void;
2020-06-08 20:11:58 +08:00
update(): void;
removeAllEntities(): void;
updateLists(): void;
}
declare class EntityProcessorList {
private _processors;
add(processor: EntitySystem): void;
remove(processor: EntitySystem): void;
onComponentAdded(entity: Entity): void;
onComponentRemoved(entity: Entity): void;
onEntityAdded(entity: Entity): void;
onEntityRemoved(entity: Entity): void;
protected notifyEntityChanged(entity: Entity): void;
protected removeFromProcessors(entity: Entity): void;
begin(): void;
update(): void;
lateUpdate(): void;
end(): void;
getProcessor<T extends EntitySystem>(): T;
}
2020-06-08 18:26:05 +08:00
declare class Matcher {
2020-06-08 20:11:58 +08:00
protected allSet: BitSet;
protected exclusionSet: BitSet;
protected oneSet: BitSet;
2020-06-08 18:26:05 +08:00
static empty(): Matcher;
2020-06-08 20:11:58 +08:00
IsIntersted(e: Entity): boolean;
2020-06-08 18:26:05 +08:00
}
declare class RenderableComponentList {
private _components;
readonly count: number;
readonly buffer: IRenderable[];
add(component: IRenderable): void;
remove(component: IRenderable): void;
updateList(): void;
}
declare class Time {
static unscaledDeltaTime: any;
static deltaTime: number;
static timeScale: number;
static frameCount: number;
private static _lastTime;
static update(currentTime: number): void;
}
declare class PostProcessor {
enable: boolean;
effect: egret.CustomFilter;
scene: Scene;
shape: egret.Shape;
constructor(effect?: egret.CustomFilter);
onAddedToScene(scene: Scene): void;
process(source: egret.DisplayObject): void;
protected drawFullscreenQuad(texture: egret.DisplayObject, effect?: egret.CustomFilter): void;
unload(): void;
}
declare abstract class Renderer {
camera: Camera;
onAddedToScene(scene: Scene): void;
2020-06-19 00:38:37 +08:00
protected beginRender(cam: Camera): void;
abstract render(scene: Scene): any;
2020-06-22 15:27:58 +08:00
unload(): void;
protected renderAfterStateCheck(renderable: IRenderable, cam: Camera): void;
}
declare class DefaultRenderer extends Renderer {
render(scene: Scene): void;
}
interface IRenderable {
bounds: Rectangle;
enabled: boolean;
isVisible: boolean;
isVisibleFromCamera(camera: Camera): any;
render(camera: Camera): any;
}
declare class ScreenSpaceRenderer extends Renderer {
render(scene: Scene): void;
}
declare abstract class SceneTransition {
2020-06-22 15:27:58 +08:00
private _hasPreviousSceneRender;
loadsNewScene: boolean;
isNewSceneLoaded: boolean;
protected sceneLoadAction: Function;
onScreenObscured: Function;
onTransitionCompleted: Function;
readonly hasPreviousSceneRender: boolean;
2020-06-22 15:27:58 +08:00
constructor(sceneLoadAction: Function);
preRender(): void;
render(): void;
2020-06-22 15:27:58 +08:00
onBeginTransition(): void;
protected transitionComplete(): void;
2020-06-22 15:27:58 +08:00
protected loadNextScene(): void;
2020-06-22 19:37:10 +08:00
tickEffectProgressProperty(filter: egret.CustomFilter, duration: number, easeType: Function, reverseDirection?: boolean): Promise<{}>;
}
declare class FadeTransition extends SceneTransition {
fadeToColor: number;
fadeOutDuration: number;
2020-06-22 15:27:58 +08:00
fadeEaseType: Function;
delayBeforeFadeInDuration: number;
private _mask;
private _alpha;
constructor(sceneLoadAction: Function);
2020-06-22 15:27:58 +08:00
onBeginTransition(): void;
render(): void;
}
2020-06-22 19:37:10 +08:00
declare class WindTransition extends SceneTransition {
private _mask;
private _windEffect;
duration: number;
windSegments: number;
size: number;
easeType: (t: number) => number;
constructor(sceneLoadAction: Function);
onBeginTransition(): void;
}
2020-06-12 08:47:13 +08:00
declare class Flags {
static isFlagSet(self: number, flag: number): boolean;
static isUnshiftedFlagSet(self: number, flag: number): boolean;
2020-06-12 08:56:10 +08:00
static setFlagExclusive(self: number, flag: number): number;
static setFlag(self: number, flag: number): number;
static unsetFlag(self: number, flag: number): number;
static invertFlags(self: number): number;
2020-06-12 08:47:13 +08:00
}
2020-06-08 11:49:45 +08:00
declare class MathHelper {
2020-06-16 00:04:28 +08:00
static readonly Epsilon: number;
static readonly Rad2Deg: number;
static readonly Deg2Rad: number;
2020-06-08 16:23:48 +08:00
static toDegrees(radians: number): number;
static toRadians(degrees: number): number;
static map(value: number, leftMin: number, leftMax: number, rightMin: number, rightMax: number): number;
2020-06-15 10:42:06 +08:00
static lerp(value1: number, value2: number, amount: number): number;
static clamp(value: number, min: number, max: number): number;
2020-06-16 00:04:28 +08:00
static pointOnCirlce(circleCenter: Vector2, radius: number, angleInDegrees: number): Vector2;
static isEven(value: number): boolean;
2020-06-08 11:49:45 +08:00
}
declare class Matrix2D {
m11: number;
m12: number;
m21: number;
m22: number;
m31: number;
m32: number;
private static _identity;
static readonly identity: Matrix2D;
2020-06-19 00:38:37 +08:00
constructor(m11?: number, m12?: number, m21?: number, m22?: number, m31?: number, m32?: number);
2020-06-08 11:49:45 +08:00
translation: Vector2;
rotation: number;
rotationDegrees: number;
scale: Vector2;
static add(matrix1: Matrix2D, matrix2: Matrix2D): Matrix2D;
static divide(matrix1: Matrix2D, matrix2: Matrix2D): Matrix2D;
static multiply(matrix1: Matrix2D, matrix2: Matrix2D): Matrix2D;
2020-06-08 16:23:48 +08:00
static multiplyTranslation(matrix: Matrix2D, x: number, y: number): Matrix2D;
determinant(): number;
static invert(matrix: Matrix2D, result?: Matrix2D): Matrix2D;
2020-06-08 16:23:48 +08:00
static createTranslation(xPosition: number, yPosition: number, result?: Matrix2D): Matrix2D;
static createRotation(radians: number, result?: Matrix2D): Matrix2D;
static createScale(xScale: number, yScale: number, result?: Matrix2D): Matrix2D;
2020-06-08 11:49:45 +08:00
}
2020-06-09 23:14:47 +08:00
declare class Rectangle {
x: number;
y: number;
width: number;
height: number;
private _tempMat;
private _transformMat;
readonly left: number;
readonly right: number;
readonly top: number;
readonly bottom: number;
readonly center: Vector2;
location: Vector2;
2020-06-19 09:16:49 +08:00
size: Vector2;
2020-06-15 10:42:06 +08:00
constructor(x?: number, y?: number, width?: number, height?: number);
intersects(value: Rectangle): boolean;
contains(value: Vector2): boolean;
2020-06-19 09:16:49 +08:00
containsRect(value: Rectangle): boolean;
2020-06-19 18:16:42 +08:00
getHalfSize(): Vector2;
static fromMinMax(minX: number, minY: number, maxX: number, maxY: number): Rectangle;
getClosestPointOnRectangleBorderToPoint(point: Point): {
res: Vector2;
edgeNormal: Vector2;
};
calculateBounds(parentPosition: Vector2, position: Vector2, origin: Vector2, scale: Vector2, rotation: number, width: number, height: number): void;
static rectEncompassingPoints(points: Vector2[]): Rectangle;
2020-06-09 23:14:47 +08:00
}
2020-06-08 11:49:45 +08:00
declare class Vector2 {
x: number;
y: number;
2020-06-16 00:04:28 +08:00
private static readonly unitYVector;
private static readonly unitXVector;
private static readonly unitVector2;
private static readonly zeroVector2;
static readonly zero: Vector2;
static readonly one: Vector2;
static readonly unitX: Vector2;
static readonly unitY: Vector2;
2020-06-15 12:16:23 +08:00
constructor(x?: number, y?: number);
2020-06-08 11:49:45 +08:00
static add(value1: Vector2, value2: Vector2): Vector2;
static divide(value1: Vector2, value2: Vector2): Vector2;
static multiply(value1: Vector2, value2: Vector2): Vector2;
static subtract(value1: Vector2, value2: Vector2): Vector2;
normalize(): void;
length(): number;
2020-06-19 09:16:49 +08:00
round(): Vector2;
static normalize(value: Vector2): Vector2;
2020-06-09 23:14:47 +08:00
static dot(value1: Vector2, value2: Vector2): number;
static distanceSquared(value1: Vector2, value2: Vector2): number;
2020-06-19 09:16:49 +08:00
static clamp(value1: Vector2, min: Vector2, max: Vector2): Vector2;
2020-06-15 10:42:06 +08:00
static lerp(value1: Vector2, value2: Vector2, amount: number): Vector2;
2020-06-08 16:23:48 +08:00
static transform(position: Vector2, matrix: Matrix2D): Vector2;
static distance(value1: Vector2, value2: Vector2): number;
2020-06-16 00:04:28 +08:00
static negate(value: Vector2): Vector2;
}
declare class ColliderTriggerHelper {
private _entity;
private _activeTriggerIntersections;
private _previousTriggerIntersections;
private _tempTriggerList;
constructor(entity: Entity);
2020-06-16 00:04:28 +08:00
update(): void;
private checkForExitedColliders;
private notifyTriggerListeners;
2020-06-08 11:49:45 +08:00
}
2020-06-09 23:14:47 +08:00
declare enum PointSectors {
center = 0,
top = 1,
bottom = 2,
topLeft = 9,
topRight = 5,
left = 8,
right = 4,
bottomLeft = 10,
bottomRight = 6
}
declare class Collisions {
static isLineToLine(a1: Vector2, a2: Vector2, b1: Vector2, b2: Vector2): boolean;
static lineToLineIntersection(a1: Vector2, a2: Vector2, b1: Vector2, b2: Vector2): Vector2;
static closestPointOnLine(lineA: Vector2, lineB: Vector2, closestTo: Vector2): Vector2;
static isCircleToCircle(circleCenter1: Vector2, circleRadius1: number, circleCenter2: Vector2, circleRadius2: number): boolean;
static isCircleToLine(circleCenter: Vector2, radius: number, lineFrom: Vector2, lineTo: Vector2): boolean;
static isCircleToPoint(circleCenter: Vector2, radius: number, point: Vector2): boolean;
static isRectToCircle(rect: Rectangle, cPosition: Vector2, cRadius: number): boolean;
static isRectToLine(rect: Rectangle, lineFrom: Vector2, lineTo: Vector2): boolean;
static isRectToPoint(rX: number, rY: number, rW: number, rH: number, point: Vector2): boolean;
static getSector(rX: number, rY: number, rW: number, rH: number, point: Vector2): PointSectors;
}
declare class Physics {
private static _spatialHash;
2020-06-16 11:59:40 +08:00
static spatialHashCellSize: number;
static readonly allLayers: number;
2020-06-16 11:59:40 +08:00
static reset(): void;
static clear(): void;
static overlapCircleAll(center: Vector2, randius: number, results: any[], layerMask?: number): number;
2020-06-15 10:42:06 +08:00
static boxcastBroadphase(rect: Rectangle, layerMask?: number): Collider[];
static boxcastBroadphaseExcludingSelf(collider: Collider, rect: Rectangle, layerMask?: number): Collider[];
static addCollider(collider: Collider): void;
static removeCollider(collider: Collider): void;
2020-06-15 10:42:06 +08:00
static updateCollider(collider: Collider): void;
}
2020-06-11 20:36:36 +08:00
declare abstract class Shape {
bounds: Rectangle;
2020-06-12 08:47:13 +08:00
position: Vector2;
center: Vector2;
abstract recalculateBounds(collider: Collider): any;
abstract pointCollidesWithShape(point: Vector2): CollisionResult;
2020-06-16 00:04:28 +08:00
abstract overlaps(other: Shape): any;
abstract collidesWithShape(other: Shape): CollisionResult;
2020-06-12 08:47:13 +08:00
}
2020-06-11 20:36:36 +08:00
declare class Polygon extends Shape {
points: Vector2[];
isUnrotated: boolean;
private _polygonCenter;
private _areEdgeNormalsDirty;
2020-06-15 10:42:06 +08:00
protected _originalPoints: Vector2[];
_edgeNormals: Vector2[];
readonly edgeNormals: Vector2[];
isBox: boolean;
constructor(points: Vector2[], isBox?: boolean);
2020-06-15 10:42:06 +08:00
private buildEdgeNormals;
2020-06-11 20:36:36 +08:00
setPoints(points: Vector2[]): void;
collidesWithShape(other: Shape): any;
2020-06-11 20:36:36 +08:00
recalculateCenterAndEdgeNormals(): void;
2020-06-16 00:04:28 +08:00
overlaps(other: Shape): any;
2020-06-11 20:36:36 +08:00
static findPolygonCenter(points: Vector2[]): Vector2;
static getClosestPointOnPolygonToPoint(points: Vector2[], point: Vector2): {
closestPoint: any;
distanceSquared: any;
edgeNormal: any;
};
pointCollidesWithShape(point: Vector2): CollisionResult;
containsPoint(point: Vector2): boolean;
static buildSymmertricalPolygon(vertCount: number, radius: number): any[];
recalculateBounds(collider: Collider): void;
2020-06-11 20:36:36 +08:00
}
2020-06-15 10:42:06 +08:00
declare class Box extends Polygon {
width: number;
height: number;
constructor(width: number, height: number);
private static buildBox;
2020-06-15 10:42:06 +08:00
updateBox(width: number, height: number): void;
containsPoint(point: Vector2): boolean;
}
2020-06-15 10:42:06 +08:00
declare class Circle extends Shape {
radius: number;
private _originalRadius;
constructor(radius: number);
pointCollidesWithShape(point: Vector2): CollisionResult;
collidesWithShape(other: Shape): CollisionResult;
recalculateBounds(collider: Collider): void;
2020-06-16 00:04:28 +08:00
overlaps(other: Shape): any;
2020-06-15 10:42:06 +08:00
}
declare class CollisionResult {
collider: Collider;
2020-06-15 10:42:06 +08:00
minimumTranslationVector: Vector2;
normal: Vector2;
point: Vector2;
2020-06-16 00:04:28 +08:00
invertResult(): void;
2020-06-15 10:42:06 +08:00
}
declare class ShapeCollisions {
2020-06-16 00:04:28 +08:00
static polygonToPolygon(first: Polygon, second: Polygon): CollisionResult;
static intervalDistance(minA: number, maxA: number, minB: number, maxB: any): number;
static getInterval(axis: Vector2, polygon: Polygon, min: number, max: number): {
min: number;
max: number;
};
2020-06-15 10:42:06 +08:00
static circleToPolygon(circle: Circle, polygon: Polygon): CollisionResult;
2020-06-16 00:04:28 +08:00
static circleToBox(circle: Circle, box: Box): CollisionResult;
static pointToCircle(point: Vector2, circle: Circle): CollisionResult;
static closestPointOnLine(lineA: Vector2, lineB: Vector2, closestTo: Vector2): Vector2;
static pointToPoly(point: Vector2, poly: Polygon): CollisionResult;
2020-06-16 00:04:28 +08:00
static circleToCircle(first: Circle, second: Circle): CollisionResult;
}
declare class SpatialHash {
2020-06-15 10:42:06 +08:00
gridBounds: Rectangle;
2020-06-12 08:47:13 +08:00
private _raycastParser;
private _cellSize;
private _inverseCellSize;
private _overlapTestCircle;
private _tempHashSet;
private _cellDict;
constructor(cellSize?: number);
2020-06-15 10:42:06 +08:00
remove(collider: Collider): void;
register(collider: Collider): void;
clear(): void;
2020-06-12 08:47:13 +08:00
overlapCircle(circleCenter: Vector2, radius: number, results: Collider[], layerMask: any): number;
aabbBroadphase(bounds: Rectangle, excludeCollider: Collider, layerMask: number): Collider[];
private cellAtPosition;
private cellCoords;
}
declare class RaycastResultParser {
}
declare class NumberDictionary {
private _store;
private getKey;
2020-06-16 20:22:22 +08:00
private intToUint;
2020-06-12 08:47:13 +08:00
add(x: number, y: number, list: Collider[]): void;
remove(obj: Collider): void;
tryGetValue(x: number, y: number): Collider[];
clear(): void;
}
declare class ContentManager {
protected loadedAssets: Map<string, any>;
load(name: string, local?: boolean): Promise<any>;
dispose(): void;
}
2020-06-15 12:16:23 +08:00
declare class Emitter<T> {
private _messageTable;
constructor();
addObserver(eventType: T, handler: Function): void;
removeObserver(eventType: T, handler: Function): void;
emit(eventType: T, data: any): void;
}
2020-06-18 12:14:06 +08:00
declare class GlobalManager {
static globalManagers: GlobalManager[];
private _enabled;
enabled: boolean;
setEnabled(isEnabled: boolean): void;
onEnabled(): void;
onDisabled(): void;
update(): void;
static registerGlobalManager(manager: GlobalManager): void;
static unregisterGlobalManager(manager: GlobalManager): void;
static getGlobalManager<T extends GlobalManager>(type: any): T;
}
declare class TouchState {
x: number;
y: number;
touchPoint: number;
touchDown: boolean;
readonly position: Vector2;
reset(): void;
}
declare class Input {
private static _init;
private static _stage;
private static _previousTouchState;
private static _gameTouchs;
private static _resolutionOffset;
private static _resolutionScale;
private static _touchIndex;
private static _totalTouchCount;
static readonly touchPosition: Vector2;
static maxSupportedTouch: number;
static readonly resolutionScale: Vector2;
static readonly totalTouchCount: number;
static readonly gameTouchs: TouchState[];
static readonly touchPositionDelta: Vector2;
static initialize(stage: egret.Stage): void;
private static initTouchCache;
private static touchBegin;
private static touchMove;
private static touchEnd;
private static setpreviousTouchState;
static scaledPosition(position: Vector2): Vector2;
}
declare class ListPool {
private static readonly _objectQueue;
static warmCache(cacheCount: number): void;
static trimCache(cacheCount: any): void;
static clearCache(): void;
static obtain<T>(): Array<T>;
static free<T>(obj: Array<T>): void;
}
declare class Pair<T> {
first: T;
second: T;
constructor(first: T, second: T);
clear(): void;
equals(other: Pair<T>): boolean;
}
2020-06-16 11:59:40 +08:00
declare class RectangleExt {
static union(first: Rectangle, point: Point): Rectangle;
static unionR(value1: Rectangle, value2: Rectangle): Rectangle;
}
2020-06-10 08:57:17 +08:00
declare class Triangulator {
triangleIndices: number[];
private _triPrev;
private _triNext;
triangulate(points: Vector2[], arePointsCCW?: boolean): void;
private initialize;
static testPointTriangle(point: Vector2, a: Vector2, b: Vector2, c: Vector2): boolean;
}
declare class Vector2Ext {
static isTriangleCCW(a: Vector2, center: Vector2, c: Vector2): boolean;
static cross(u: Vector2, v: Vector2): number;
2020-06-15 10:42:06 +08:00
static perpendicular(first: Vector2, second: Vector2): Vector2;
2020-06-16 00:04:28 +08:00
static normalize(vec: Vector2): Vector2;
static transformA(sourceArray: Vector2[], sourceIndex: number, matrix: Matrix2D, destinationArray: Vector2[], destinationIndex: number, length: number): void;
2020-06-19 00:38:37 +08:00
static transformR(position: Vector2, matrix: Matrix2D): Vector2;
static transform(sourceArray: Vector2[], matrix: Matrix2D, destinationArray: Vector2[]): void;
2020-06-10 08:57:17 +08:00
}
declare class WebGLUtils {
static getWebGL(): WebGLRenderingContext;
static drawUserIndexPrimitives<T>(primitiveType: number, vertexData: T[], vertexOffset: number, numVertices: number, indexData: number[], indexOffset: number, primitiveCount: number): void;
private static getElementCountArray;
static checkGLError(): void;
}