arx-level-generator
Version:
A tool for creating Arx Fatalis maps
63 lines (62 loc) • 2.16 kB
TypeScript
import { ArxAnchor, ArxCell, ArxDLF, ArxFTS, ArxLLF, ArxRoom, ArxRoomDistance, ArxUniqueHeader } from 'arx-convert/types';
import { Object3D } from 'three';
import { Entities } from './Entities.js';
import { Fogs } from './Fogs.js';
import { HUD } from './HUD.js';
import { Lights } from './Lights.js';
import { Paths } from './Paths.js';
import { Player } from './Player.js';
import { MeshImportProps, Polygons } from './Polygons.js';
import { Portal } from './Portal.js';
import { Settings } from './Settings.js';
import { Translations } from './Translations.js';
import { UI } from './UI.js';
import { Vector3 } from './Vector3.js';
import { Zones } from './Zones.js';
import { OriginalLevel } from './types.js';
type ArxMapConfig = {
isFinalized: boolean;
offset: Vector3;
};
type ToBeSortedLater = {
uniqueHeaders: ArxUniqueHeader[];
cells: Omit<ArxCell, 'polygons'>[];
anchors: ArxAnchor[];
rooms: ArxRoom[];
roomDistances: ArxRoomDistance[];
};
export declare class ArxMap {
polygons: Polygons;
lights: Lights;
fogs: Fogs;
entities: Entities;
zones: Zones;
paths: Paths;
player: Player;
portals: Portal[];
config: ArxMapConfig;
hud: HUD;
ui: UI;
i18n: Translations;
todo: ToBeSortedLater;
constructor(dlf?: ArxDLF, fts?: ArxFTS, llf?: ArxLLF, areNormalsCalculated?: boolean);
private toArxData;
/**
* Loads one of the levels found in the original game
*
* Requires the pkware-test-files repo
* @see https://github.com/meszaros-lajos-gyorgy/pkware-test-files
*/
static fromOriginalLevel(levelIdx: OriginalLevel, settings: Settings): Promise<ArxMap>;
static fromThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps): ArxMap;
private static getGeneratorId;
finalize(): void;
removePortals(): void;
private movePolygonsToSameRoom;
private calculateRoomData;
saveToDisk(settings: Settings, exportJsonFiles?: boolean, prettify?: boolean): Promise<void>;
adjustOffsetTo(map: ArxMap): void;
move(offset: Vector3): void;
add(map: ArxMap, alignPolygons?: boolean): void;
}
export {};