import BinaryStream from '../../common/binarystream'; import TokenStream from './tokenstream'; import AnimatedObject from './animatedobject'; import { Animation } from './animations'; export declare const enum Flags { None = 0, DontInheritTranslation = 1, DontInheritScaling = 2, DontInheritRotation = 4, Billboarded = 8, BillboardedLockX = 16, BillboardedLockY = 32, BillboardedLockZ = 64, CameraAnchored = 128 } /** * A generic object. * * The parent class for all objects that exist in the world, and may contain spatial animations. * This includes bones, particle emitters, and many other things. */ export default abstract class GenericObject extends AnimatedObject { name: string; objectId: number; parentId: number; flags: Flags; constructor(flags?: Flags); readMdx(stream: BinaryStream): void; writeMdx(stream: BinaryStream): void; writeNonGenericAnimationChunks(stream: BinaryStream): void; readGenericBlock(stream: TokenStream): Generator; writeGenericHeader(stream: TokenStream): void; writeGenericAnimations(stream: TokenStream): void; /** * Allows to easily iterate either the GenericObject animations or the parent object animations. */ eachAnimation(wantGeneric: boolean): Generator; /** * Gets the byte length of the GenericObject part of whatever this object this. * * This is needed because only the KGTR, KGRT, and KGSC animations actually belong to it. */ getGenericByteLength(): number; getByteLength(): number; }