Skip to content

Commit

Permalink
Added typedoc links to documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
MaXFeeD committed Nov 6, 2024
1 parent aff692c commit 60d5629
Show file tree
Hide file tree
Showing 15 changed files with 34 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Item.createDyeItem("blackDye", "Organic Black Dye", "black");
Item.createDyeItem("brownDye", "Organic Brown Dye", "brown");
```

Однако думайте о последствиях, это изменит контекст во всех модах. То есть, метод `Item.createDyeItem` может быть вызван из любого мода, если установлен Ender IO. Но в таком случае существует и опасность заменить существующие методы или добавленные с обновлениями. Если вам необходимо что-то эскпортировать, рассмотрите [ModAPI.registerAPI](/api/ModAPI/registerAPI), он создан именно для этих целей.
Однако думайте о последствиях, это изменит контекст во всех модах. То есть, метод `Item.createDyeItem` может быть вызван из любого мода, если установлен Ender IO. Но в таком случае существует и опасность заменить существующие методы или добавленные с обновлениями. Если вам необходимо что-то эскпортировать, рассмотрите [ModAPI.registerAPI](/api/modules/ModAPI.html#registerAPI), он создан именно для этих целей.

### Глобальные значения

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ IDRegistry.genBlockID("oxidized_log");
Block.createBlock("oxidized_log", [ /* ... */ ], BLOCK_TYPE_RADIACTIVE_LOG);
```

Рассмотрите [SpecialType](/api/Block/SpecialType) для получения полной и актуальной информации по поводу доступности определенных свойств, статьи обновляются по мере необходимости.
Рассмотрите [SpecialType](/api/interfaces/Block.SpecialType.html) для получения полной и актуальной информации по поводу доступности определенных свойств, статьи обновляются по мере необходимости.

## Событий мало не бывает

Expand Down Expand Up @@ -338,7 +338,7 @@ Callback.addCallback("ItemUse", (coords, item, block, isExternal, playerUid) =>
</TabItem>
</Tabs>

В первую очередь, [BlockSource](/api/BlockSource) используется для получения данных об окружающем мире и его изменения. Мы еще неоднократно затронем этот класс. Убеждаясь, что мы дотронулись именно до блока новых бревен, будет получен источник блоков для игрока, вызвавшего событие; и в качестве примера блок будет повернут в следующую сторону, пока не пройдет через все вариации.
В первую очередь, [BlockSource](/api/classes/BlockSource-1.html) используется для получения данных об окружающем мире и его изменения. Мы еще неоднократно затронем этот класс. Убеждаясь, что мы дотронулись именно до блока новых бревен, будет получен источник блоков для игрока, вызвавшего событие; и в качестве примера блок будет повернут в следующую сторону, пока не пройдет через все вариации.

Представим, что у вас появилась потребность создать подобие лаки-блока. Воспользуемся событием __DestroyBlock__ для обнаружения разрушения блока:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Block.createLiquidBlock("ink", {
});
```

Это создаст текучий и стоячий блоки жидкостей, а также добавит полнофункциональное ведро для использования игроком и разлитием с помощью раздатчиков. Для последнего задействованы функции [Item.setLiquidClip](/api/Item/setLiquidClip) и [Item.registerDispenseFunction](/api/Item/registerDispenseFunction).
Это создаст текучий и стоячий блоки жидкостей, а также добавит полнофункциональное ведро для использования игроком и разлитием с помощью раздатчиков. Для последнего задействованы функции [Item.setLiquidClip](/api/modules/Item.html#setLiquidClip) и [Item.registerDispenseFunction](/api/modules/Item.html#registerDispenseFunction).

<details>
<summary>Стандарты для создания локализации</summary>
Expand All @@ -57,7 +57,7 @@ Translation.addTranslation("Bucket of Ink", {

## Прочие возможности

Любые взаимодействия с жидкостями должны быть обработаны разработчиком, конкретных событий или рекомендаций здесь нет. Рассмотрите [LiquidRegistry](/api/LiquidRegistry) для получения подробностей.
Любые взаимодействия с жидкостями должны быть обработаны разработчиком, конкретных событий или рекомендаций здесь нет. Рассмотрите [LiquidRegistry](/api/modules/LiquidRegistry.html) для получения подробностей.

### Дополнительные свойства

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Модели блоков

Если в двух словах попытаться описать предназначение [ICRender](/api/ICRender), окажется что формы или же модели блоков прекрасно подойдут под него. Эта технология позволит связать новосозданные модели с определенным блоком, разместить нужную модель по координатам, динамично обновлять рендеры, физические и визуальные формы блоков, а возможно и вовсе, заменять модели обычных предметов. Начнем с рассмотрения моделей [BlockRenderer](/api/BlockRenderer) и закончим несколькими формами для самых разных целей.
Если в двух словах попытаться описать предназначение [ICRender](/api/modules/ICRender.html), окажется что формы или же модели блоков прекрасно подойдут под него. Эта технология позволит связать новосозданные модели с определенным блоком, разместить нужную модель по координатам, динамично обновлять рендеры, физические и визуальные формы блоков, а возможно и вовсе, заменять модели обычных предметов. Начнем с рассмотрения моделей [BlockRenderer](/api/classes/BlockRenderer.Model.html) и закончим несколькими формами для самых разных целей.

:::note Чем отличаются простые формы от моделей

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,7 @@ Translation.addTranslation("tile.oxidized_log_stairs.name", {

## Реализация собственных форм

Сложна не более, чем создание полублоков. Как уже было сказано, формы блоков представляют собой параллелепипед или же типичную коробку в трехмерном мире. Для этого задействуется функция [Block.setShape](/api/Block/setShape):
Сложна не более, чем создание полублоков. Как уже было сказано, формы блоков представляют собой параллелепипед или же типичную коробку в трехмерном мире. Для этого задействуется функция [Block.setShape](/api/modules/Block.html#setShape):

```js
Block.setShape(<числовой идентификатор>, <x1>, <y1>, <z1>, <x2>, <y2>, <z2>, <вариация>);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Callback.addCallback("ItemUse", function(coords, item, block, isRemote, playerUi
});
```

Используя относительные координаты (соседний блок к той стороне, на которую мы нажали) получим углы поворота, на который должна быть повернута стрела для достижения цели. Учитывая, что запускаем стрелу именно мы, неплохим вариантом будет изменить [еще и игровые данные](#прочие-свойства), указывая игрока как источника урона этого снаряда. Стрела по умолчанию не имеет ускорения, так что она просто "выпадет" относительно нажатого блока. Рассмотрите [World.getRelativeCoords](/api/World/getRelativeCoords) для получения относительных координат.
Используя относительные координаты (соседний блок к той стороне, на которую мы нажали) получим углы поворота, на который должна быть повернута стрела для достижения цели. Учитывая, что запускаем стрелу именно мы, неплохим вариантом будет изменить [еще и игровые данные](#прочие-свойства), указывая игрока как источника урона этого снаряда. Стрела по умолчанию не имеет ускорения, так что она просто "выпадет" относительно нажатого блока. Рассмотрите [World.getRelativeCoords](/api/modules/World.html#getRelativeCoords) для получения относительных координат.

Помимо простого установки угла обзора, движок предоставляет функционал для наиболее часто используемых формул. К ним относятся и методы, упрощающие предыдущую реализацию вылета стрелы:

Expand Down Expand Up @@ -185,7 +185,7 @@ Callback.addCallback("ItemUseNoTarget", function(item, playerUid) {
});
```

Теперь огненные шары могут быть запущены не только раздатчиком или гастом, но и нами. Использование метода [Entity.moveToAngle](/api/Entity/moveToAngle) позволяет упростить код с запуском стрелы выше, задействуя ускорение еще быстрее. Дополнительные примеры использования механики ускорения можно найти в моде Portal Gun, это отличный способ путешествовать по миру. В нем нет сложных формул, что на самом деле лишь помогает еще лучше понять как все работает.
Теперь огненные шары могут быть запущены не только раздатчиком или гастом, но и нами. Использование метода [Entity.moveToAngle](/api/modules/Entity.html#moveToAngle) позволяет упростить код с запуском стрелы выше, задействуя ускорение еще быстрее. Дополнительные примеры использования механики ускорения можно найти в моде Portal Gun, это отличный способ путешествовать по миру. В нем нет сложных формул, что на самом деле лишь помогает еще лучше понять как все работает.

## Инвентарь

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Callback.addCallback("PlayerChangedDimension", function(playerUid, currentId, la

### А вот и блок

Любой блок в мире определяется на основе координат, идентификатора, вариации и описания состояний. C технической точки зрения, даже воздух является блоком, заполняя все пустые ячейки конструктора из чанков. Для описания идентификаторов в мире используйте [VanillaTileID](/api/VanillaTileID), они актуальны только для мира, не инвентаря.
Любой блок в мире определяется на основе координат, идентификатора, вариации и описания состояний. C технической точки зрения, даже воздух является блоком, заполняя все пустые ячейки конструктора из чанков. Для описания идентификаторов в мире используйте [VanillaTileID](/api/enums/VanillaTileID.html), они актуальны только для мира, не инвентаря.

Начнем с метода установки/замены блока, старый блок будет заменен новым:

Expand Down Expand Up @@ -247,7 +247,7 @@ Callback.addCallback("ItemUse", function(coords, item, block, isExternal, player
});
```
Использование блокстейтов необходимо только для обычной древесины, в случае адской вариация служит показателем поворота блока. Здесь нас интересуют несколько функций и класс [BlockState](/api/BlockState). Функция `getBlock`, о которой было сказано ранее, возвращает необходимый нам класс блокстейта. В частности, он содержит следующие методы и данные:
Использование блокстейтов необходимо только для обычной древесины, в случае адской вариация служит показателем поворота блока. Здесь нас интересуют несколько функций и класс [BlockState](/api/classes/BlockState.html). Функция `getBlock`, о которой было сказано ранее, возвращает необходимый нам класс блокстейта. В частности, он содержит следующие методы и данные:
```js
// получая блокстейт, у нас есть вся информация об этом блоке
Expand Down Expand Up @@ -304,7 +304,7 @@ region.setExtraBlock(coords.x, coords.y, coords.z, block);
:::caution Список свойств для блоков
Пока находится в разработке, но как только мы закончим его, здесь обязательно появится ссылка с описанием каждого из них. А пока, воспользуйтесь получением состояний, используя метод `getNamedStatesScriptable`. Актуальный список доступных состояний можно найти в [EBlockStates](/api/EBlockStates).
Пока находится в разработке, но как только мы закончим его, здесь обязательно появится ссылка с описанием каждого из них. А пока, воспользуйтесь получением состояний, используя метод `getNamedStatesScriptable`. Актуальный список доступных состояний можно найти в [EBlockStates](/api/enums/EBlockStates.html).
:::
Expand Down Expand Up @@ -383,7 +383,7 @@ const item = Entity.getCarriedItem(playerUid);
region.spawnDroppedItem(position.x, position.y, position.z, item.id, item.count, item.data, item.extra || null);
```
После призыва предмет может быть изменен с помощью [Entity.setDroppedItem](/api/Entity/setDroppedItem), используя уникальный идентификатор существа. Воспользуйтесь для этого возвращаемым результатом метода или событиями.
После призыва предмет может быть изменен с помощью [Entity.setDroppedItem](/api/modules/Entity.html#setDroppedItem), используя уникальный идентификатор существа. Воспользуйтесь для этого возвращаемым результатом метода или событиями.
Ну а помимо калбеков `EntityAdded` или `EntityAddedLocal`, всегда можно получить список мобов между двумя точками в мире. Результат будет возвращен в виде массива и отфильтрован по типу существа:
Expand Down
Loading

0 comments on commit 60d5629

Please sign in to comment.