kvark / vange-rs

Rusty Vangers clone
https://vange.rs
Apache License 2.0
420 stars 21 forks source link

Либа для визуализации и редактирования из JS #206

Open DileSoft opened 2 years ago

DileSoft commented 2 years ago

Просто показывать мир из указанного положения камеры, читать/писать данные мира, загружать/сохранять файлы.

Можно для начала простое чтение/запись по точкам.

int getTopHeight(int x, int y) int getBottomHeight(int x, int y) int getDeltaHeight(int x, int y) int getTopMaterial(int x, int y) int getBottomMaterial(int x, int y) bool getIsDoubleLayer(int x, int y) setTopHeight(int x, int y, int height) setBottomHeight(int x, int y, int height) setDeltaHeight(int x, int y, int height) setTopMaterial(int x, int y, int material) setBottomMaterial(int x, int y, int height) setIsDoubleLayer(int x, int y, bool isDoubleLayer)

Get/set палитры с конвертацией <-> rgb тоже хорошо бы сделать.

Потом можно добавить методы какой-то пакетной обработки, например засунуть ArrayBuffer с информации о высоте какого-то региона.

Плюс хорошо бы еще команды смены положения камеры, как в 3d-версии.

После чего обвязку из vange-rs web, где создается страница с canvas-ом и возможностью указать config, и всё.

Мне важно чтобы я мог на страничке подключить результирующую библиотеку, создать canvas, привязать его к ней через JS, а потом через JS вызывать функции чтения/записи данных, смены камеры, и импорта/экспорта файлов (но это можно позже).

Rust должен публиковать функции для wasm-bindgen.