HumanBreak/src/core/render/renderer/props.ts
2024-12-21 23:27:52 +08:00

120 lines
2.9 KiB
TypeScript

import { RenderFunction, RenderItem, RenderItemPosition } from '../item';
import { Transform } from '../transform';
import {
FloorLayer,
ILayerGroupRenderExtends,
ILayerRenderExtends
} from '../preset/layer';
import type { EnemyCollection } from '@/game/enemy/damage';
import { ILineProperty } from '../preset/graphics';
export interface CustomProps {
_item: (props: BaseProps) => RenderItem;
}
export interface BaseProps {
x?: number;
y?: number;
anchorX?: number;
anchorY?: number;
zIndex?: number;
width?: number;
height?: number;
filter?: string;
hd?: boolean;
antiAliasing?: boolean;
hidden?: boolean;
transform?: Transform;
type?: RenderItemPosition;
cache?: boolean;
fall?: boolean;
id?: string;
alpha?: number;
composite?: GlobalCompositeOperation;
}
export interface SpriteProps extends BaseProps {
render?: RenderFunction;
}
export interface ContainerProps extends BaseProps {}
export interface GL2Props extends BaseProps {}
export interface ShaderProps extends BaseProps {}
export interface TextProps extends BaseProps {
text?: string;
fillStyle?: CanvasStyle;
strokeStyle?: CanvasStyle;
font?: string;
strokeWidth?: number;
}
export interface ImageProps extends BaseProps {
image: CanvasImageSource;
}
export interface CommentProps extends BaseProps {
text?: string;
}
export interface LayerGroupProps extends BaseProps {
cellSize?: number;
blockSize?: number;
floorId?: FloorIds;
bindThisFloor?: boolean;
camera?: Transform;
ex?: readonly ILayerGroupRenderExtends[];
layers?: readonly FloorLayer[];
}
export interface LayerProps extends BaseProps {
layer?: FloorLayer;
mapWidth?: number;
mapHeight?: number;
cellSize?: number;
background?: AllNumbers;
floorImage?: FloorAnimate[];
ex?: readonly ILayerRenderExtends[];
}
export interface AnimateProps extends BaseProps {}
export interface DamageProps extends BaseProps {
mapWidth?: number;
mapHeight?: number;
cellSize?: number;
enemy?: EnemyCollection;
font?: string;
strokeStyle?: CanvasStyle;
strokeWidth?: number;
}
interface GraphicPropsBase extends BaseProps, Partial<ILineProperty> {
fill?: boolean;
stroke?: boolean;
strokeAndFill?: boolean;
fillRule?: CanvasFillRule;
fillStyle?: CanvasStyle;
strokeStyle?: CanvasStyle;
}
export interface RectProps extends GraphicPropsBase {}
export interface CirclesProps extends GraphicPropsBase {}
export interface EllipseProps extends GraphicPropsBase {}
export interface LineProps extends GraphicPropsBase {}
export interface BezierProps extends GraphicPropsBase {}
export interface QuadraticProps extends GraphicPropsBase {}
export interface PathProps extends GraphicPropsBase {}
export interface IconProps extends BaseProps {}
export interface WinskinProps extends BaseProps {}