arx-convert
Version:
Converts various Arx Fatalis formats to JSON or YAML and back
24 lines • 981 B
JavaScript
import { BinaryIO } from '../common/BinaryIO.js';
import { concatArrayBuffers, times } from '../common/helpers.js';
import { EPData } from './EPData.js';
import { RoomData } from './RoomData.js';
export class Room {
static readFrom(binary) {
const { numberOfPortals, numberOfPolygons } = RoomData.readFrom(binary);
return {
portals: binary.readInt32Array(numberOfPortals),
polygons: times(() => {
return EPData.readFrom(binary);
}, numberOfPolygons),
};
}
static accumulateFrom(room) {
const roomData = RoomData.accumulateFrom(room);
const portals = new ArrayBuffer(room.portals.length * 4);
const binary = new BinaryIO(portals);
binary.writeInt32Array(room.portals);
const polygons = concatArrayBuffers(room.polygons.map(EPData.accumulateFrom));
return concatArrayBuffers([roomData, portals, polygons]);
}
}
//# sourceMappingURL=Room.js.map