the-world-engine
Version:
three.js based, unity like game engine for browser
1,894 lines (1,893 loc) • 334 kB
TypeScript
import type { ReadonlyVector2 } from "../../math/ReadonlyVector2";
import type { Vector2 } from "three/src/Three";
import type { Physics2DLoader } from "../../physics/2d/Physics2DLoader";
import type { PhysicsMaterial2D } from "../../physics/2d/PhysicsMaterial2D";
import type * as CollisionLayerConstType from "../../physics/CollisionLayerConstType";
export type PhysicsSettingObject = {
loader?: typeof Physics2DLoader;
gravity?: Vector2;
defaultMaterial?: PhysicsMaterial2D;
velocityIterations?: number;
positionIterations?: number;
queriesHitTriggers?: boolean;
reuseCollisionCallbacks?: boolean;
collisionLayerMaskMatrix?: object;
};
export declare class PhysicsSetting {
private readonly _physicsSettingObject;
constructor(physicsSettingObject: PhysicsSettingObject);
static createDefaultObject(): PhysicsSettingObject;
/**
* load physics engine from Physics2DLoader. you must call this method for use physics engine.
* @param value Physics2DLoader
* @returns this
*/
loader(value: typeof Physics2DLoader): this;
/**
* The gravity applied to all rigid bodies in the Scene. (default: (0, -9.81))
* @param value gravity
* @returns this
*/
gravity(value: ReadonlyVector2): this;
/**
* default physics material of rigidbody. (default: null)
* @param value default physics material
* @returns this
*/
defaultMaterial(value: PhysicsMaterial2D): this;
/**
* The number of iterations of the physics solver when considering objects' velocities. (default: 8)
*
* A higher number of interations will improve accuracy at the expense of processing overhead.
* @param value velocity iterations
* @returns this
*/
velocityIterations(value: number): this;
/**
* The number of iterations of the physics solver when considering objects' positions. (default: 3)
*
* A higher number of interations will improve accuracy at the expense of processing overhead.
* @param value position iterations
* @returns this
*/
positionIterations(value: number): this;
/**
* specifies whether queries (raycasts, spherecasts, overlap tests, etc.) hit Triggers by default. (default: true)
* @param value if true, queries hit Triggers by default.
* @returns this
*/
queriesHitTriggers(value: boolean): this;
/**
* Determines whether the garbage collector should reuse only a single instance of a Collision type for all collision callbacks.
*
* When an Component.onCollisionEnter, Component.onCollisionStay or Component.onCollisionExit collision callback occurs,
* the Collision object passed to it is created for each individual callback.
* This means the garbage collector has to remove each object, which reduces performance.
*
* When this option is true,
* only a single instance of the Collision type is created and reused for each individual callback.
* This reduces waste for the garbage collector to handle and improves performance.
*
* You would only set this option to false if the Collision object is referenced outside of the collision callback for processing later,
* so recycling the Collision object is not required.
*
* (default: true)
* @param value if true, reuse Collision object.
* @returns this
*/
reuseCollisionCallbacks(value: boolean): this;
/**
* Layer-based collision detection is a way to make a GameObject collide with another GameObject that is set up to a specific Layer or Layers.
*
* layerCollisionMatrix can define layers and their collision behavior.
*
* for example:
*
* ```typescript
* type MyLayer = ["default", "player", "enemy"];
*
* this.setting.physics.layerCollisionMatrix<MyLayer>({
* default: { enemy: true, player: true, default: true },
* player: { enemy: false, player: true },
* enemy: { enemy: true }
* });
* ```
* means that the default layer will collide with all layers,
* the player layer will collide with the default and themself,
* and the enemy layer will collide with the default and themself.
*
* @param collisionMatrix The collision matrix.
* @returns this
*/
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[0]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[1]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[2]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[3]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[4]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[5]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[6]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[7]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[8]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[9]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
};
} & {
[key in T[10]]: {
[key in T[10]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
};
} & {
[key in T[10]]: {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
};
} & {
[key in T[11]]: {
[key in T[11]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
};
} & {
[key in T[10]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
};
} & {
[key in T[11]]: {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
};
} & {
[key in T[12]]: {
[key in T[12]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
};
} & {
[key in T[10]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
};
} & {
[key in T[11]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
};
} & {
[key in T[12]]: {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
};
} & {
[key in T[13]]: {
[key in T[13]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
};
} & {
[key in T[7]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
};
} & {
[key in T[8]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
};
} & {
[key in T[9]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
};
} & {
[key in T[10]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
};
} & {
[key in T[11]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
};
} & {
[key in T[12]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
};
} & {
[key in T[13]]: {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
};
} & {
[key in T[14]]: {
[key in T[14]]: boolean;
};
}): this;
layerCollisionMatrix<T extends [CollisionLayerConstType.DefaultLayerName, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] = never>(collisionMatrix: T extends never ? never : object & {
[key in T[0]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
} & {
[key in T[0]]: boolean;
};
} & {
[key in T[1]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
} & {
[key in T[1]]: boolean;
};
} & {
[key in T[2]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
} & {
[key in T[2]]: boolean;
};
} & {
[key in T[3]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
} & {
[key in T[3]]: boolean;
};
} & {
[key in T[4]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
} & {
[key in T[4]]: boolean;
};
} & {
[key in T[5]]: {
[key in T[15]]: boolean;
} & {
[key in T[14]]: boolean;
} & {
[key in T[13]]: boolean;
} & {
[key in T[12]]: boolean;
} & {
[key in T[11]]: boolean;
} & {
[key in T[10]]: boolean;
} & {
[key in T[9]]: boolean;
} & {
[key in T[8]]: boolean;
} & {
[key in T[7]]: boolean;
} & {
[key in T[6]]: boolean;
} & {
[key in T[5]]: boolean;
};
} & {
[key in T[6]]: {
[key in T[15]]: boolean;