UNPKG

@shockpkg/dir-projector

Version:

Package for creating Shockwave Director projectors

152 lines (151 loc) 4.12 kB
import { IProjectorOptions, Projector } from '../projector'; import { IRceditOptionsVersionStrings } from '../util'; export interface IProjectorWindowsOptions extends IProjectorOptions { /** * Patch the Shockave 3D Xtra to have a larger buffer to avoid a crash. * The buffer for resolving InstalledDisplayDrivers to a path is small. * Changes to the values stored in InstalledDisplayDrivers cause issues. * The value is now supposed to hold full paths on modern Windows. * In particular, Nvidia drivers which do this need this patch. * * @default false */ patchShockwave3dInstalledDisplayDriversSize?: boolean; /** * Icon file, requires Windows or Wine. * * @default null */ iconFile?: string | null; /** * Version strings, requires Windows or Wine. * * @default null */ fileVersion?: string | null; /** * Product version, requires Windows or Wine. * * @default null */ productVersion?: string | null; /** * Version strings, requires Windows or Wine. * * @default null */ versionStrings?: IRceditOptionsVersionStrings | null; } /** * ProjectorWindows constructor. * * @param options Options object. */ export declare class ProjectorWindows extends Projector { /** * Patch the Shockave 3D Xtra to have a larger buffer to avoid a crash. * The buffer for resolving InstalledDisplayDrivers to a path is small. * Changes to the values stored in InstalledDisplayDrivers cause issues. * The value is now supposed to hold full paths on modern Windows. * In particular, Nvidia drivers which do this need this patch. * * @default false */ patchShockwave3dInstalledDisplayDriversSize: boolean; /** * Icon file, requires Windows or Wine. * * @default null */ iconFile: string | null; /** * Version strings, requires Windows or Wine. * * @default null */ fileVersion: string | null; /** * Product version, requires Windows or Wine. * * @default null */ productVersion: string | null; /** * Version strings, requires Windows or Wine. * * @default null */ versionStrings: IRceditOptionsVersionStrings | null; constructor(options: IProjectorWindowsOptions); /** * Projector file extension. * * @returns File extension. */ readonly projectorExtension: string; /** * Config file newline characters. * * @returns Newline characters. */ readonly configNewline: string; /** * Config file newline characters. * * @returns Newline characters. */ readonly lingoNewline: string; /** * Newline characters. * * @returns Newline characters. */ readonly newline: string; /** * Splash image file extension. * * @returns File extension. */ readonly splashImageExtension: string; /** * Get the SKL name. * * @returns File name. */ readonly sklName: string; /** * Write out the projector. * * @param path Save path. * @param name Save name. */ write(path: string, name: string): Promise<void>; /** * Write the projector skeleton from archive. * * @param path Save path. * @param name Save name. */ protected _writeSkeleton(path: string, name: string): Promise<void>; /** * Patch projector. * * @param path Save path. * @param name Save name. */ protected _patch(path: string, name: string): Promise<void>; /** * Patch projector, Shockwave 3D InstalledDisplayDrivers size. * * @param path Save path. * @param name Save name. */ protected _patchShockwave3dInstalledDisplayDriversSize(path: string, name: string): Promise<void>; /** * Update projector Windows resources. * * @param path Save path. * @param name Save name. */ protected _updateResources(path: string, name: string): Promise<void>; }