Skip to content

Commit 98302e7

Browse files
committed
New lib Fireflies: first docs
1 parent 1825e03 commit 98302e7

11 files changed

Lines changed: 105 additions & 0 deletions

File tree

i18n/ru/docusaurus-plugin-content-docs-libraries/current.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,13 @@
1414
"sidebar.librariesSidebar.category.Component": {
1515
"message": "Component",
1616
"description": "The label for category Component in sidebar librariesSidebar"
17+
},
18+
"sidebar.librariesSidebar.category.Fireflies": {
19+
"message": "Fireflies",
20+
"description": "The label for category Fireflies in sidebar librariesSidebar"
21+
},
22+
"sidebar.librariesSidebar.category.Block": {
23+
"message": "Блоки",
24+
"description": "The label for category Block in sidebar librariesSidebar"
1725
}
1826
}

i18n/ru/docusaurus-plugin-content-docs-libraries/current/Fireflies/blocks/BasicBlock.md

Whitespace-only changes.

i18n/ru/docusaurus-plugin-content-docs-libraries/current/Fireflies/items/BasicItem.md

Whitespace-only changes.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Начало
2+
Приветствую читателей! Данное руководство расскажет о моде-библиотеке Fireflies.
3+
4+
Данная мод-библиотека была написана с целью добавления более понятного api для объектно-ориентированного подхода, а так же недостающих на взгляд автора инструментов, по типу новых важных событий и методов. Она нацелена в основном на TypeScript, но может использоваться и без.
5+
6+
<div style={{textAlign: "center", color:"yellow", marginTop: "30px"}}>
7+
8+
А при чём тут светлячки?
9+
10+
</div>
11+
12+
<div className="resource-atlas-align-box">
13+
14+
![fireflies.png](/images/libraries/fireflies.png)
15+
16+
</div>
17+
18+
Эта библиотека изначально разрабатывалась как аналог `BlockEngine` для таких проектов, как Galacticraft и Infinite Forest, поэтому в некоторых случаях может использоваться как аналог.
19+
20+
## Возможности
21+
Ниже будут рассмотрены некоторые возможности, добавляемые мод-библиотекой.
22+
### Блоки
23+
Блоки получили отдельный класс `BasicBlock`, который располагает инструментами добавления событий для блока, тегов, блокстейтов, моделей и тайл-энтити; которые так же позволяют полностью исключить специальные типы блоков, заменяя их методами с возвратом значений, что широко практикуется в Java моддинге.
24+
25+
Блоки имеют свои классы-наследники, добавляя классы для создания блоков-растений, кустов и блоков, относящихся к дереву.
26+
27+
### Предметы
28+
Предметы получили отдельный класс `BasicItem`, который располагает инструментами добавления событий предметов, в том числе и новых, а так же тегов и свойств предмета.
29+
30+
### Тайл-энтити
31+
Тайл-энтити получили два класса: `CommonTileEntity` и `LocalTileEntity`, а так же удобный декоратор `NetworkEvent`, который позволяет добавлять пакеты в зависимости от разновидности тайла.
32+
33+
Тайлы были разделены на клиентские и серверные, которые выражены в отдельных классах. Это позволяет разделить визуальную часть и серверные вычисления явно.
34+
35+
### Измерения
36+
Добавлен новый класс `Dimension`, который позволяет в виде класса создавать кастомные миры и использовать события по типу входа-выхода игрока из мира и генерации чанка мира. Так же есть некоторые новые возможности по типу автоматического создания слоя бедрока на нижнем слое мира.
37+
38+
### Рендеринг
39+
Добавлены инструменты для более удобного создания рендеров `Animation.Base` в мире в виде класса `RenderObject`, который делает некоторую работу за вас:
40+
1. Автоматически описывает рендер исходя из указанных данных в методах.
41+
2. Запускает и убирает поток исходя из того, описали ли вы действия в нём, позволяет автоматически указать количество fps при помощи метода.
42+
3. Позволяет автоматически менять позицию рендера при смене параметров: x, y, z. Работает если эта фишка включена при помощи метода.
43+
4. Позволяет переиспользовать созданный рендер нужное количество раз.
44+
45+
### Новые возможности для кастомизации мира
46+
В модуль World были добавлены новые методы, которые позволяют менять цвета неба, тумана, подводного тумана и облаков во время игры. Так же переключать сложность и получать значение сложности игры.
47+
48+
### Подписка на события
49+
Благодаря новому декоратору `SubscribeEvent` вы можете "подписываться" на события так же, как и в Java моддинге. Достаточно просто объявить декоратор над методом в классе.
50+
51+
## Подключение
52+
53+
Подключить можно двумя способами:
54+
### ModAPI
55+
Такой способ позволяет подключить api для конкретных участков кода, и выглядит так:
56+
57+
```js
58+
ModAPI.addAPICallback("FirefliesAPI", function(api) {
59+
// Ваш код. В api лежат все модули и классы мода-библиотеки
60+
});
61+
```
62+
63+
### ModAPI и launcher.js
64+
Данный способ более предпочтителен. Он позволяет запустить мод сразу с запуском api мода-библиотеки. Это значит, что вы сможете его использовать так же, как оно используется в коде библиотеки, сразу по имени модулей и классов.
65+
66+
```js title="launcher.js"
67+
ModAPI.addAPICallback("FirefliesAPI", function(api) {
68+
Launch(api);
69+
});
70+
```
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Динамические данные
2+
Стандартное api позволяет нам получить многие данные из любого места в коде, но не все. Новый модуль `RuntimeData` призван исправить данную проблему.
3+
## Клиентские данные
4+
Модуль `local` позволяет нам узнать данные, которые часто отличаются от пользователя к пользователю. Это клиентские данные.
5+
### Данные о ванильном окне
6+
Мы можем узнать, какое окно открыто в данный момент у пользователя. Для этого используется переменная `screenName`:
7+
```ts
8+
Game.message(RuntimeData.local.screenName);
9+
```

libraries.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@ export default {
5656
'KernelExtension/custom-block-entities'
5757
]
5858
},
59+
{
60+
type: 'category',
61+
label: 'Fireflies',
62+
link: {
63+
type: 'doc',
64+
id: 'Fireflies/readme'
65+
},
66+
items: [
67+
{
68+
type: 'category',
69+
label: 'Block',
70+
items: [
71+
'Fireflies/blocks/BasicBlock'
72+
]
73+
},
74+
'Fireflies/runtime-data',
75+
]
76+
},
5977
{
6078
type: 'category',
6179
label: 'Component',

libraries/Fireflies/blocks/BasicBlock.md

Whitespace-only changes.

libraries/Fireflies/items/BasicItem.md

Whitespace-only changes.

libraries/Fireflies/readme.md

Whitespace-only changes.

libraries/Fireflies/runtime-data.md

Whitespace-only changes.

0 commit comments

Comments
 (0)