UNPKG

sc4

Version:

A command line utility for automating SimCity 4 modding tasks & modifying savegames

106 lines (105 loc) 2.62 kB
import Stream from './stream.js'; import { kFileType } from './symbols.js'; import WriteBuffer from './write-buffer.js'; export default class S3D { static [kFileType]: 1523640343; version: string; vertexGroups: VertexGroup[]; indexGroups: number[][]; primGroups: PrimGroup[][]; materialGroups: MaterialGroup[]; animations: AnimationSection; properties: PropGroup[]; regpGroups: RegpGroup[]; parse(rs: Stream): this; toBuffer(): Uint8Array<ArrayBufferLike>; } declare class VertexGroup { flags: number; format: number; vertices: Vertex[]; parse(rs: Stream): this; write(ws: WriteBuffer): void; } declare class Vertex { x: number; y: number; z: number; u: number; v: number; parse(rs: Stream): this; write(ws: WriteBuffer): void; } declare class PrimGroup { type: number; first: number; numIndex: number; parse(rs: Stream): this; write(ws: WriteBuffer): void; } declare class MaterialGroup { flags: number; alphaFunc: number; depthFunc: number; sourceBlend: number; destBlend: number; alphaThreshold: number; matClass: number; reserved: number; textures: MaterialGroupTexture[]; parse(rs: Stream, version: [number, number]): this; write(ws: WriteBuffer): void; } declare class MaterialGroupTexture { minor: number; id: number; wrapU: number; wrapV: number; magFilter: number; minFilter: number; animRate: number; animMode: number; name: string; parse(rs: Stream, version: [number, number]): this; write(ws: WriteBuffer): void; } declare class AnimationSection { numFrames: number; frameRate: number; playMode: number; flags: number; displacement: number; groups: AnimationGroup[]; parse(rs: Stream): this; write(ws: WriteBuffer): void; [Symbol.iterator](): Generator<AnimationGroup, void, unknown>; map(...args: Parameters<Array<AnimationGroup>['map']>): unknown[]; } type BlockIndex = { vertex: number; index: number; prim: number; material: number; }; declare class AnimationGroup { flags: number; name: string; blocks: BlockIndex[]; parse(rs: Stream, section: AnimationSection): this; write(ws: WriteBuffer): void; } declare class PropGroup { meshIndex: number; frameIndex: number; assignmentType: string; assignedValue: string; parse(rs: Stream): this; write(ws: WriteBuffer): void; } declare class RegpGroup { name: string; groups: any; parse(rs: Stream): this; write(ws: WriteBuffer): void; } export {};