Merge branch 'MihailRis:main' into main

This commit is contained in:
Xertis 2026-03-16 00:54:38 +03:00 • committed by GitHub
commit e049f4ae0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
61 changed files with 1209 additions and 534 deletions

View file

@ -4,14 +4,17 @@
Настройки погоды:
| Свойство | Описание | По-умолчанию |
| ------------ | ---------------------------------------- | ------------ |
| fall | Осадки (см. таблица 2) | {} |
| clouds | Облачность [0.0, 1.0] | 0.0 |
| fog_opacity | Максимальная плотность тумана [0.0, 1.0] | 0.0 |
| fog_dencity | Плотность тумана | 1.0 |
| fog_curve | Кривая тумана | 1.0 |
| thunder_rate | Частота грома [0.0, 1.0] | 0.0 |
| Свойство | Описание | По-умолчанию |
| ------------- | ------------------------------------------ | ----------------- |
| fall | Осадки (см. таблица 2) | {} |
| clouds | Облачность [0.0, 1.0] | 0.0 |
| fog_opacity | Максимальная плотность тумана [0.0, 1.0] | 0.0 |
| fog_dencity | Плотность тумана | 1.0 |
| fog_curve | Кривая тумана | 1.0 |
| thunder_rate | Частота грома [0.0, 1.0] | 0.0 |
| sky_tint | Множитель цвета неба | {1, 1, 1} |
| clouds_tint | Множитель цвета облаков | {1, 1, 1} |
| min_sky_light | Минимальный свет излучаемый небом (лунный) | {0.2, 0.25, 0.33} |
Осадки:
@ -50,4 +53,4 @@ gfx.weather.get_fall_intensity() -> number
-- Проверяет, происходит ли в данный момент переключение погоды
gfx.weather.is_transition() -> boolean
```
```

View file

@ -114,15 +114,29 @@ mat4.decompose(m: matrix)
} или nil
```
## Отслеживание точки *mat4.look_at(...)*
## Отслеживание точки - *mat4.look_at(...)*
```lua
-- cоздает матрицу вида с точки 'eye' на точку 'center', где вектор 'up' определяет верх.
-- cоздаёт матрицу вида с точки 'eye' на точку 'center', где вектор 'up' определяет верх.
mat4.look_at(eye: vec3, center: vec3, up: vec3)
-- записывает матрицу вида в dst
mat4.look_at(eye: vec3, center: vec3, up: vec3, dst: matrix)
```
## Расчёт матрицы перспективы - *mat4.perspective*
```lua
-- возвращает расчитанную матрицу перспективы.
-- параметр fov принимает значение вертикального поля зрения в градусах.
-- параметр ratio задаёт отношение сторон (сторона X к стороне Y, пример: для монитора 800:600 отношение сторон равно 4 к 3, или 4 / 3).
-- параметр near задаёт расстояние от камеры до плоскости Near.
-- параметр far задаёт расстояние от камеры до плоскости Far.
mat4.perspective(fov: number, ratio: number, near: number, far: number) -> mat4
-- расчитывает матрицу перспективы на основе переданных значений и записывает её в переменную dst.
mat4.perspective(fov: number, ratio: number, near: number, far: number, dst: mat4) -> nil
```
## Перевод в строку - *mat4.tostring(...)*
```lua

View file

@ -82,6 +82,7 @@ pack.get_info(packid: string) -> {
- `!` - required
- `?` - optional
- `~` - weak
например `!teal`
Для получения информации о нескольких паках используйте таблицу id, чтобы не
@ -101,4 +102,4 @@ pack.assemble(packids: table<string>) -> table<string>
pack.request_writeable(packid: string, callback: function(string))
```
Запрашивает у пользователя право на модификацию пака. При подтвержении новая точка входа будет передана в callback.
Запрашивает у пользователя право на модификацию пака. При подтвержении новая точка входа будет передана в callback.

View file

@ -2,22 +2,34 @@
Библиотека для работы с кватернионами.
## Кватернион из матрицы - *mat4.from_quat(...)*
## Кватернион из матрицы - *quat.from_mat4(...)*
```lua
-- создает кватернион на основе матрицы вращения
-- создаёт кватернион на основе матрицы вращения
quat.from_mat4(m: matrix) -> quat
-- записывает кватернион по матрице вращения в dst
quat.from_mat4(m: matrix, dst: quat)
```
## Кватернион из углов Эйлера - *quat.from_euler(...)*
```lua
-- создаёт кватернион на основе вектора, содержащего углы Эйлера в порядке XYZ (pitch, yaw, roll)
-- (значения углов строго в градусах)
quat.from_euler(euler: vec3) -> quat
-- записывает кватернион в dst на основе вектора, содержащего углы Эйлера в порядке XYZ (pitch, yaw, roll)
-- (значения углов строго в градусах)
quat.from_euler(euler: vec3, dst: quat)
```
## Сферическая линейная интерполяция - *quat.slerp(...)*
Интерполяция всегда выполняется по короткому пути, а вращение выполняется с постоянной скоростью.
```lua
-- создает кватернион как интерполяцию между a и b,
-- создаёт кватернион как интерполяцию между a и b,
-- где t - фактор интерполяции
quat.slerp(a: quat, b: quat, t: number) -> quat
@ -29,6 +41,6 @@ quat.slerp(a: quat, b: quat, t: number, dst: quat)
## Перевод в строку - *quat.tostring(...)*
```lua
-- возвращает строку представляющую содержимое кватерниона
-- возвращает строку, представляющую содержимое кватерниона
quat.tostring(q: quat) -> string
```

View file

@ -114,6 +114,21 @@ body:set_crouching(enabled: bool)
body:get_body_type() -> str
-- Устанавливает тип физического тела
body:set_body_type(type: str)
-- Возвращает материал тела (то же, что и у блоков)
body:get_material() -> str
-- Устанавливает материал тела
body:set_material(material: str)
-- Возвращает массу тела
body:get_mass() -> number
-- Устанавливает массу тела
body:set_mass(mass: number)
-- Возвращает упругость тела
body:get_elasticity() -> number
-- Устанавливает упругость тела
body:set_elasticity(elasticity: number)
```
### Skeleton

View file

@ -137,6 +137,18 @@ io_stream:write_line(string)
io_stream:read_fully(
[опционально] useTable: boolean
) -> Bytearray | table<number> | table<string> | string
--[[
Устанавливает позицию в потоке
Режимы:
b - Задаёт позицию относительно начало файла
c - Задаёт позицию относительно текущей позиции
e - Задаёт позицию относительно конца файла
--]]
io_stream:seek(
mode: string
offset: number
)
```
## Методы Buffered-режима