Сначала создайте новый полигон
const polygon = new Polygon()
// ... Можете добавлять блоки
polygon.blocks.add(...)
// ... Экспортировать, импортировать
polygon.import(...polygon.export())
// ... И так далее
polygon.area.setOpenWalls("left", "top")"Открывает" одну или несколько стен. Подаётся агрумент ...sides. Используемые значения: "left" | "right" | "top" | "bottom". Подавать значения можно в любом порядке.
PolygonArea.setOpenWalls("left", "top")Возвращяет размер рабочей области Vector2 в пикселях. Может использоваться для изменения размера.
PolygonArea.size = new Vector2(1000, 500) // width: 1000px, height: 500pxВозвращяет текущие соотношение пикселей и сантиметров (px:cm). Может использоваться для изменения соотношения. Соотношение поумолчанию 1 пиксель к одному сантиметру (1:1).
PolygonArea.ratio = 1 / 2 // px:cmОчищяет рабочую область.
PolygonArea.clear()Добавляет block. Имеет side-effects. Можно отслеживать добавление с помощью PolygonBlocks.on("add", block => {})
PolygonBlocks.add(#PolygonBlock) // Интрефейсы можно найти нижеУдаляет block. Имеет side-effects. Можно отслеживать добавление с помощью PolygonBlocks.on("remove", block => {})
PolygonBlocks.remove(#PolygonBlock) // Интрефейсы можно найти нижеУдаляет block по id. Имеет side-effects. Можно отслеживать добавление с помощью PolygonBlocks.on("remove", block => {}). Удаляет также из PolygonPicker и если значение maxAmount = 0, то удаляет все блоки из PolygonArea.
PolygonBlocks.removeById(7)Экспортирует используемые в PolygonArea блоки. Возвращяет PolygonBlockOutput.
Polygon.export()Импортирует в PolygonArea блоки. Принимает ...blocks в формате PolygonBlockOutput.
Если на PolygonArea всё ещё есть блоки или блока нету в PolygonPicker, выбрасывает ошибку.
Polygon.import(...PolygonBlockOutput[]) // Интрефейсы можно найти нижеinterface PolygonBlock {
id: number
name: string
image: string
amount: number
width: number // cm
height: number // cm
angle: number // deg
}interface PolygonBlockOutput {
id: number
x: number // cm
y: number // cm
angle: number // deg
}