///
import { CreatePhaserComponentConfig } from '../element';
export interface GameObjectProps {
instance: T;
ref?: React.Ref;
name?: string;
active?: boolean;
tabIndex?: boolean;
data?: any;
renderFlags?: integer;
cameraFilter?: number;
ignoreDestroy?: boolean;
input?: Phaser.Types.Input.InteractiveObject;
children?: React.ReactNode;
/**
* Creates the body in the phaser for the specified physics world
*
* note: only 'arcade' is supported for now
*/
physics?: 'arcade';
physicsType?: 'static' | 'dynamic';
}
export declare type AlphaProps = Partial>;
export declare type Point = {
x: number;
y: number;
};
export declare type BlendModeProps = Partial>;
export declare type ComputedSizeProps = Partial>;
export declare type CropProps = Partial>;
export declare type DepthProps = Partial>;
export declare type FlipProps = Partial>;
export declare type MaskProps = Partial>;
export declare type OriginProps = Partial>;
export declare type PipelineProps = Partial>;
export declare type ScrollFactorProps = Partial>;
export declare type TextureCropProps = Partial>;
export declare type TintProps = Partial>;
export declare type TransformProps = Partial & {
scale?: number | (Point & {
point?: Point;
});
allowRotation?: boolean;
}>;
export declare type VisibleProps = Partial>;
export interface AnimationProps {
playingAnimation?: string;
accumulator?: number;
delay?: number;
duration?: number;
forward?: boolean;
frameRate?: number;
isPlaying?: boolean;
msPerFrame?: number;
skipMissedFrames?: boolean;
repeat?: number;
repeatDelay?: number;
timeScale?: number;
yoyo?: boolean;
}
export interface AccelerationProps {
accelerationX?: number;
accelerationY?: number;
acceleration?: number | Point;
}
export interface AngularProps {
angularAcceleration?: number;
angularDrag?: number;
angularVelocity?: number;
}
export interface BounceProps {
bounceX?: number;
bounceY?: number;
bounce?: number | Point;
collideWorldBounds?: boolean;
onWorldBounds?: boolean;
}
export interface DebugProps {
debugBodyColor?: number;
debugShowBody?: boolean;
debugShowVelocity?: boolean;
}
export interface DragProps {
damping?: number;
dragX?: number;
dragY?: number;
drag?: number | Point;
allowDrag?: boolean;
}
export interface EnableProps {
disableBody?: boolean;
/**
* If disableBody is true, this will also hide the body
*/
hideBody?: boolean;
}
export interface FrictionProps {
frictionX?: number;
frictionY?: number;
friction?: number | Point;
}
export interface GravityProps {
allowGravity?: boolean;
gravityX?: number;
gravityY?: number;
gravity?: number | Point;
}
export interface ImmovableProps {
immovable?: boolean;
}
export interface MassProps {
mass?: number;
}
export interface SizeProps {
circle?: {
radius: number;
offsetX?: number;
offsetY?: number;
};
offset?: {
x?: number;
y?: number;
};
size?: {
width: number;
height: number;
center?: number;
};
}
export interface VelocityProps {
velocity?: number | Point;
velocityX?: number;
velocityY?: number;
maxVelocity?: number | Point;
}
declare const GameObject: CreatePhaserComponentConfig & {
scene: Phaser.Scene;
}>;
export default GameObject;