add "include_non_selectable" parameter to blocks raycast

This commit is contained in:
clasher113 2026-01-05 23:05:47 +02:00
parent ce769143f8
commit 8f1739c85b
10 changed files with 57 additions and 23 deletions

View file

@ -92,7 +92,9 @@ block.material(blockid: int) -> string
## Raycast
```lua
block.raycast(start: vec3, dir: vec3, max_distance: number, [опционально] dest: table, [опционально] filter: table) -> {
block.raycast(start: vec3, dir: vec3, max_distance: number, [опционально] dest: table,
[опционально] filter: table, [опционально] include_non_selectable = false
) -> {
block: int, -- id блока
endpoint: vec3, -- точка касания луча
iendpoint: vec3, -- позиция блока, которого касается луч
@ -106,6 +108,9 @@ block.raycast(start: vec3, dir: vec3, max_distance: number, [опциональ
Аргумент `filter` позволяет указать какие блоки являются "прозрачными" для луча, прим.: {"base:glass","base:water"}.
Для использования агрумент `dest` нужно чем-то заполнить(можно nil), это сделано для обратной совместимости
Аргумент `include_non_selectable` определяет, будут ли учтены блоки, которые нельзя выбрать курсором.
Пример - `base:water`
Функция возвращает таблицу с результатами или nil, если луч не касается блока.
Для результата будет использоваться целевая (dest) таблица вместо создания новой, если указан опциональный аргумент.

View file

@ -62,8 +62,9 @@ entities.get_all_in_radius(center: vec3, radius: number) -> table<int>
```
```lua
entities.raycast(start: vec3, dir: vec3, max_distance: number,
ignore: int, [optional] destination: table, [optional] filter: table) -> table или nil
entities.raycast(start: vec3, dir: vec3, max_distance: number, ignore: int, [optional] destination: table,
[optional] filter: table, [optional] include_non_selectable = false
) -> table или nil
```
Функция является расширенным вариантом [block.raycast](libblock.md#raycast). Возвращает таблицу с результатами если луч касается блока, либо сущности.