arx-level-generator
Version:
A tool for creating Arx Fatalis maps
48 lines (47 loc) • 1.8 kB
TypeScript
import { ArxColor, ArxPolygon, ArxPolygonFlags, ArxTextureContainer } from 'arx-convert/types';
import { Object3D, Box3 } from 'three';
import { Polygon, TransparencyType } from './Polygon.js';
import { Settings } from './Settings.js';
import { Vector3 } from './Vector3.js';
export declare const QUADIFY = "quadify";
export declare const DONT_QUADIFY = "don't quadify";
export declare const SHADING_FLAT = "flat";
export declare const SHADING_SMOOTH = "smooth";
export type MeshImportProps = {
tryToQuadify?: typeof QUADIFY | typeof DONT_QUADIFY;
shading?: typeof SHADING_FLAT | typeof SHADING_SMOOTH;
flags?: ArxPolygonFlags;
/**
* room id - used when a map has portals, default value is undefined (the Polygon constructor will handle it)
*/
room?: number;
};
type TextureContainer = ArxTextureContainer & {
remaining: number;
maxRemaining: number;
};
export declare class Polygons extends Array<Polygon> {
cashedBBox: {
numberOfPolygons: number;
value: Box3;
};
exportTextures(settings: Settings): Promise<Record<string, string>>;
toArxData(): Promise<{
polygons: ArxPolygon[];
textureContainers: ArxTextureContainer[];
}>;
countNindices(): Record<string, Record<TransparencyType | "opaque", number>>;
getTextureContainers(): TextureContainer[];
empty(): void;
calculateNormals(): void;
addThreeJsMesh(threeJsObj: Object3D): void;
addThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps): void;
addThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps, isRoot: false): Polygons;
getVertexColors(): ArxColor[];
getBoundingBox(): Box3;
getCenter(): Vector3;
getHeight(): number;
getWidth(): number;
getDepth(): number;
}
export {};