import { SpriteFrame, Vec2, Vec3 } from "cc";

//PNG结构体
export interface ImgInfo {
  Type?: number; //图片格式
  CmpType?: number; //压缩类型
  Width?: number; //宽度
  Height?: number; //高度
  Size?: number; //大小
  Xpos?: number; //Xpos
  Ypos?: number; //Ypos
  FrameXpos?: number; //帧域X
  FrameYpos?: number; //帧域Y
  Offset?: number; //偏移
  PNGdata?: Uint8Array; //Png位图数据
  QuoteIndex?: number;//引用贴图编号
}

//NPK结构体
export interface NpkInfo {
  Offset: number;
  Length: number;
  Path: string;
}

//Img结构体
export interface Img {
  ImgName: string; //img文件的路径
  Img_Index: number; //img文件在npk文件里的序号
  ImgOffset: number; //img偏移
  ImgSize: number; //img大小
  BelongsFile: string; //img属于哪个文件
  Png_Count: number; //img有多少张png文件
  Png_List: ImgInfo[] | null; //img的Png文件数组
}

//Ani_Frame结构体
export interface Ani_Frame {
  Box?: Map<number, Array<number>>; //碰撞框
  Img_Path?: string;//Img路径
  Img_Index?: number; //调用的Png下标 去Img中索引
  Pos?: Vec3; //坐标
  Flag?: Map<string, any>; //标签数组
  Delay?: number;//帧延时
  Frame?: SpriteFrame; //精灵帧
}

//Ani结构体
export interface ScriptAni {
  Img_List: Array<string>; //调用的Img路径数组
  Flag: Map<string, number>; //标签数组
  Frame: Array<Ani_Frame>; //帧对象
}

//Ani结构体
export interface ScriptAls {
  Name?: string; //Ani的名字
  Path?: string;//Ani的路径
  Layer?: Number;//图层
  FrameIndex?: Number;//开始播放帧数
}


//Pvf文件结构图
export interface ScriptFile {
  StartPos?: number;//开始位置
  Cre32?: number;//校验数据
  Offset?: number; //数据偏移
  Length?: number; //数据长度
  Data?: any; //数据
}